CSS DESIGN GLOSSARY · v.0.1

CSS 디자인 용어집

"예쁘게"가 아니라 정확한 단어로 — LLM에 시키는 법
2026-05-13
HOW TO USE · 0

이렇게 시키세요진단 → 확인 → 요청

추상적 불만에서 정확한 수치 한 줄까지
4단계로 좁혀 간다.

처음부터 "padding 20px로 늘려"는 못 시킨다.
가설 → 확인 → 수치 → 요청 4단계로 대화하며 좁힌다.

4 단계 흐름
  1. 증상 표현 — "이 카드 답답해 보여" (추상)
  2. 용어로 가설 — "padding 부족 같은데?" (이 용어집에서 배운 단어로)
  3. 현재 수치 확인 요청 — "확인해줄래?" (LLM이 수치 알려줌)
  4. 정확한 수치로 최종 요청 — "20px로 늘려줘" (수치 명시)
모든 슬라이드의 PROMPT 박스
이 4단계의 마지막 한 줄이다.
실제 대화 예시 — padding 진단
YOU · 1단계 증상 + 2단계 가설.card 답답해 보여. padding이 부족한 거 같은데, 현재 값 확인해줄래?
AI · 3단계 수치 확인 .card의 현재 padding은 8px입니다. 카드 답답함 진단 시 권장은 20~24px입니다.
YOU · 4단계 정확한 요청 그럼 .card의 padding을 20px로 늘려줘. 수정 후 DevTools로 적용 확인까지.
AI · 작업 + 검증 수정 완료. 적용 확인했습니다. 화면에서 카드 안쪽 여백이 늘어났는지 확인 부탁드립니다.
HOW TO USE
GUIDE
BASICS · 페이지 해부

페이지 부위 이름Layout Anatomy

"이 윗부분"이 아니라 "헤더"로.
위치마다 이름이 있다.

이름을 알면 "헤더에", "사이드바를" 같이 콕 짚어 시킬 수 있다.

자주 쓰는 부위 이름
이름위치 · 역할
header최상단 영역 (로고 + 메뉴)
nav · navbar메뉴바 — 헤더 안 / 사이드 / 하단
hero큰 시각 + 핵심 메시지
main본문 영역
aside · sidebar본문 옆 보조 영역
footer최하단 — 저작권·링크
card · modal콘텐츠 박스 / 떠 있는 박스
모르는 부위는 "이 부분 이름이 뭐야?" 먼저 물어보면 OK.
전형적인 페이지 구조
HEADER · 로고 + NAV(메뉴)
HERO · 큰 시각 + 핵심 메시지
ASIDE
(사이드바
+ NAV)
MAIN · 본문
CARD
CARD
PROMPT
"헤더에 로고는 왼쪽, 메뉴는 오른쪽으로 배치해줘. 사이드바는 데스크탑에서만 보이게."
BASICS · LAYOUT ANATOMY
ANATOMY
TERM · 01 · CONCEPT

Box Model박스 모델

모든 HTML 요소는 4겹의 박스다. 안쪽부터 content · padding · border · margin.

안쪽 여백은 padding, 바깥 여백은 margin. padding이 끝나는 지점이 곧 border가 시작되는 지점이다.

4겹의 정체
비유역할
content사진 자체텍스트·이미지가 들어감
padding매트지박스 안쪽 여백
border액자 테두리박스의 경계선
margin옆 액자와의 벽박스 바깥쪽 여백
카드 답답함 → padding 문제. 카드 달라붙음 → margin / gap 문제.
BOX MODEL — 4겹 양파
content (내용물)
margin border padding content
※ 주의 — 그림에서 border와 padding 사이가 떨어져 보이지만, 실제로는 border 끝이 곧 padding 시작점. 별도의 빈 공간 layer는 없다. 이해를 돕기 위한 시각적 분리일 뿐.
CSS · BOX MODEL
01 / 04
TERM · 01 · IN PRACTICE

Padding안쪽 여백

"이 카드 답답해 보여"의 90%는 padding이 부족해서다.

요소의 테두리 안쪽내용물 사이의 공간. 박스를 "더 넓어 보이게" 만드는 것이 아니라, 숨 쉴 자리를 주는 것.

단축 문법 — 시계 방향 아님
/* 4방향 동일 */ padding: 16px; /* 위아래 · 좌우 */ padding: 12px 24px;
감 잡기 — 권장값
위치
작은 버튼8px 16px
큰 카드20~24px
섹션 컨테이너40~64px
실전 — 노란 영역이 padding
padding: 0답답
갇힘
padding: 8px보통
조금 숨통
padding: 20px읽힘
편하게 읽힘
PROMPT
"이 카드 안쪽 여백(padding)이 8px이라 답답해. 20px로 늘려줘."
CSS · BOX MODEL · PADDING
02 / 04
TERM · 01 · IN PRACTICE

Border테두리

박스의 보이는 선. 굵기 1px만 바꿔도 디자인 인상이 바뀐다.

content·padding을 감싸는 경계선. 굵기·스타일·색 세 가지로 정의한다.

문법
/* 굵기 / 스타일 / 색 */ border: 1px solid #e5e7eb; /* 한 면만 */ border-bottom: 1px solid #e5e7eb;
실전 — 굵기·색이 만드는 인상
none-
미니멀
1px solid기본
현대적
2px solid강조
메모지
4px red올드
경고
PROMPT
"카드 테두리(border)가 2px 검정이라 너무 강해. 1px 두께, 연한 회색(#e5e7eb)으로 바꿔줘."
CSS · BOX MODEL · BORDER
03 / 04
TERM · 01 · IN PRACTICE

Margin바깥 여백

다른 박스와의 거리. 가까우면 한 묶음, 멀면 별개 그룹.

요소 바깥의 빈 공간. "묶기"와 "분리"를 시각적으로 표현하는 도구.

Gestalt 근접성 법칙
거리인식
0 ~ 4px한 묶음으로 보임
12 ~ 16px같은 그룹 안 분리
32px 이상별개 그룹으로 보임
실전 — 카드 사이 거리
margin: 0달라붙음
카드 A
카드 B
margin-right: 16px분리
카드 A
카드 B
PROMPT
"카드들이 거의 붙어있어. 카드에 margin-right 16px 줘서 사이 띄워줘."
CSS · BOX MODEL · MARGIN
04 / 04
BRIDGE · margin → gap

Gap박스 사이 간격

margin과 같은 결과, 더 깔끔한 방법.
요즘 카드 그리드는 거의 gap을 쓴다.

margin은 박스마다 일일이 줘야 한다.
gap은 감싸는 박스(flex / grid)에 한 번이면 끝.

코드 길이 차이
/* margin 방식 — 마지막 카드 처리 필요 */ .card { margin-right: 16px; } .card:last-child { margin-right: 0; }
/* gap 방식 — 한 줄 */ .grid { display: flex; gap: 16px; }
margin은 사라지지 않는다 — 박스 모델의 한 겹.
다만 카드 묶음 사이 간격은 gap이 깔끔.
실전 — 같은 결과, 두 방식
margin 방식 (옛날)동작 OK
카드 A
카드 B
카드 C
gap 방식 (요즘)깔끔
카드 A
카드 B
카드 C
PROMPT
"카드 그리드 사이 간격 16px로 띄워줘. margin 말고 gap 써서."
CSS · BRIDGE · MARGIN → GAP
BRIDGE
TERM · 02 · CONCEPT

Flexbox한 줄 줄 세우기

여러 박스를 한 방향으로 줄 세운다.
메뉴 / 버튼 / 카드 한 줄에 쓴다.

박스들을 감싸고 있는 바깥 박스에 display: flex를 주면, 안에 있는 박스들이 기본적으로 한 줄로 늘어선다.
방향(가로/세로)과 정렬(시작·가운데·끝)을 정할 수 있다. (flex-wrap을 쓰면 여러 줄도 가능)

핵심 3속성
속성역할
flex-direction줄 방향 — row(가로) / column(세로)
justify-content줄 따라 정렬 — start / center / end / space-between
align-items줄에 수직 정렬 — center / stretch
/* 가장 흔한 패턴 */ display: flex; gap: 16px; align-items: center;
FLEX — 방향이 다이렉트
flex-direction: row기본
A
B
C
flex-direction: column세로
A
B
C
여러 요소를 한 줄로 보여줘야 한다면 → Flex.
CSS · LAYOUT · FLEX
01 / 02
TERM · 02 · IN PRACTICE

Flex 정렬justify-content

줄을 어디에 붙일 것인가.
왼쪽 / 가운데 / 오른쪽 / 양 끝.

justify-content는 줄 방향(가로면 좌우, 세로면 위아래)을 따라 박스들을 어디에 모을지 결정한다.

어디에 쓰나
패턴예시
flex-start좌측 메뉴, 리스트 아이콘
center중앙 정렬 버튼, 페이지 가운데
flex-end우측 버튼, 닫기 X
space-between헤더 — 로고 좌, 메뉴 우
/* 헤더 좌우 분리 */ display: flex; justify-content: space-between;
실전 — 4가지 정렬
flex-start
A
B
C
center가운데
A
B
C
flex-end
A
B
C
space-between양끝
A
B
C
PROMPT
"헤더에 flex 써서, 로고는 왼쪽 / 메뉴는 오른쪽 끝 / 세로는 가운데로 정렬해줘."
CSS · LAYOUT · FLEX
02 / 02
TERM · 03 · CONCEPT

Grid바둑판 배치

행과 열 모두 컨트롤.
카드 그리드 · 대시보드처럼 격자로 배치.

Flex는 한 줄, Grid는 격자(바둑판).
여러 박스를 가로·세로 모두 정해진 칸에 깔끔하게 깔 때 쓴다.

핵심 3속성
속성역할
display: grid격자 모드 켜기
grid-template-columns열을 몇 개, 어떤 크기로 나눌지
gap칸 사이 간격
/* 카드 3개를 한 줄에 균등 */ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
GRID — 격자의 구성
repeat(3, 1fr)3열
A
B
C
D
E
F
1fr 2fr1:2 비율
사이드
본문
1fr은 "남은 공간 1조각"이라는 뜻.
1fr 2fr이면 1:2 비율로 칸이 나뉜다.
CSS · LAYOUT · GRID
01 / 02
TERM · 03 · IN PRACTICE

Grid 실전카드 그리드

가장 자주 쓰는 패턴.
repeat(N, 1fr) + gap 한 줄로 끝.

카드 여러 개를 줄·열로 깔 때 쓰는 가장 흔한 레시피.
칸 개수만 정하면 안에 들어가는 카드는 알아서 균등 분배.

권장 패턴
상황설정
카드 3개 한 줄repeat(3, 1fr)
반응형 자동 줄바꿈repeat(auto-fill, minmax(240px, 1fr))
사이드바 + 본문1fr 3fr
실전 — gap에 따라 카드 폭이 달라진다
repeat(3, 1fr) · gap 8기본
카드 A
카드 B
카드 C
repeat(3, 1fr) · gap 32좁아짐
카드 A
카드 B
카드 C
repeat(2, 1fr)2열
카드 A
카드 B
1fr 2fr비율
사이드
본문
PROMPT
"카드 그리드를 3열 균등 배치(grid), 카드 사이 간격 16px로 만들어줘."
CSS · LAYOUT · GRID
02 / 02
TERM · 04 · CONCEPT

Typography글자 다루기

글자의 4개 다이얼을 알면
"읽히는 글"과 "안 읽히는 글"이 갈린다.

글자에는 네 가지 다이얼이 있다 — 글꼴 / 크기 / 굵기 / 행간.
이 4개만 조정하면 글의 인상이 완전히 달라진다.

4개 다이얼
속성역할
font-family글꼴 — 본문은 sans, 제목은 serif가 흔함
font-size크기 — px 또는 rem 단위
font-weight굵기 — 400 보통 · 700 굵게
line-height행간 — 줄과 줄 사이 거리 (1.5~1.7 권장)
"글이 답답해" → 십중팔구 line-height 문제.
"위계가 안 보여" → font-size / weight 문제.
크기가 바뀌면 인상이 바뀐다
font-size: 12px본문 보조
CSS 디자인 용어집
font-size: 18px본문
CSS 디자인 용어집
font-size: 28px부제
CSS 디자인 용어집
font-size: 44px제목
CSS 디자인 용어집
CSS · TYPOGRAPHY
01 / 02
TERM · 04 · IN PRACTICE

Line-height행간

한 줄이 차지하는 높이.
값이 커질수록 줄 사이 여유가 늘어난다.

line-height는 한 줄이 차지하는 높이다.
숫자(1.0, 1.6 등)는 글자 크기의 배수 — 1.6이면 글자 높이의 1.6배.

권장값
용도
큰 제목1.1 ~ 1.3 (타이트하게)
본문1.5 ~ 1.7 (가장 흔히)
시·강조 문구1.8 ~ 2.0 (여유 있게)
본문이 답답하다 싶으면 line-height: 1.6부터 시도.
같은 글, 행간 차이
line-height: 1.0답답
CSS 디자인 용어를 알면 LLM에게 정확히 시킬 수 있다. "예쁘게"가 아니라 "padding 20px"으로.
line-height: 1.6읽힘
CSS 디자인 용어를 알면 LLM에게 정확히 시킬 수 있다. "예쁘게"가 아니라 "padding 20px"으로.
line-height: 2.2흩어짐
CSS 디자인 용어를 알면 LLM에게 정확히 시킬 수 있다. "예쁘게"가 아니라 "padding 20px"으로.
PROMPT
"본문 행간(line-height)이 1.2라 답답해. 1.6으로 늘려줘."
CSS · TYPOGRAPHY · LINE-HEIGHT
02 / 02
TERM · 05 · CONCEPT

Hierarchy위계

무엇이 먼저고 무엇이 보조인지
한눈에 보이게 만드는 기술.

정보에는 중요도가 다른 층이 있다.
제목 → 부제 → 본문 → 메타. 시각적으로 이 순서가 보여야 한다.

위계를 만드는 4가지 무기
도구활용
크기제목 크게, 본문 작게 (1.5배 이상 차이)
굵기중요한 곳만 굵게 (700), 나머지는 보통(400)
강조는 검정, 보조 정보는 회색
여백중요한 것 주변에 더 많은 빈 공간
한 화면의 위계는 3~4단계까지.
그 이상이면 보는 사람이 어디부터 읽을지 헷갈린다.
위계 있음 vs 없음
위계 없음 (flat)읽기 힘듦
CSS DESIGN GLOSSARY
박스 모델 이해하기
padding은 안쪽 여백, margin은 바깥쪽 여백.
2026-05-13 · 5분 분량
위계 있음한눈에 들어옴
CSS DESIGN GLOSSARY
박스 모델 이해하기
padding은 안쪽 여백, margin은 바깥쪽 여백.
2026-05-13 · 5분 분량
CSS · HIERARCHY
01 / 02
TERM · 05 · IN PRACTICE

위계 적용in practice

제목 / 본문 / 메타를
크기·굵기·색으로 한눈에 갈라낸다.

잘 만든 카드는 안 봐도 위계가 들린다 — 큰 글자가 먼저, 작은 회색 글자는 마지막.
이게 안 되면 LLM에 "글 강약 좀 줘"라고 말할 수 있다.

실전 권장 수치
요소크기 / 굵기 / 색
제목 (h1)28~56px · 700 · 검정
부제18~22px · 500 · 진한 회색
본문14~16px · 400 · 회색
메타 (날짜·태그)11~12px · 400 · 옅은 회색
실전 — 위계 있는 카드
강약 약함단조
NEW POST
CSS 디자인 용어집 v0.1 공개
초보자가 LLM에게 CSS와 UI 디자인을 정확히 시키기 위한 단어 카드 모음.
홍보봉 · 2026-05-13
강약 명확시선이 흐름
NEW POST
CSS 디자인 용어집 v0.1 공개
초보자가 LLM에게 CSS와 UI 디자인을 정확히 시키기 위한 단어 카드 모음.
홍보봉 · 2026-05-13
PROMPT
"카드 안 글들이 다 비슷해서 위계가 없어. 제목은 28px 굵게 진한 검정, 본문은 14px 보통 진회색, 메타는 11px 옅은 회색으로 강약 줘."
CSS · HIERARCHY · IN PRACTICE
02 / 02
TERM · 06 · CONCEPT

Whitespace여백

비어 있는 공간도 디자인의 일부다.
여백이 적으면 답답, 많으면 시원.

여백은 "버리는 공간"이 아니다.
정보를 묶고, 끊고, 숨 쉬게 만드는 적극적인 도구.

여백의 두 종류
종류예시
Macro (큰 여백)섹션·블록 사이 — margin 64px+
Micro (작은 여백)줄·글자 사이 — padding 16px · line-height 1.7
Gestalt 근접성 법칙: 가까운 것끼리 한 묶음으로 보인다.
묶고 싶으면 여백 줄이고, 분리하고 싶으면 여백 늘려라.
같은 정보, 여백만 다름
여백 부족답답
NEW
CSS 디자인 용어집 v0.1
초보자가 LLM에게 CSS와 UI 디자인을 정확히 시키기 위한 단어 카드.
여백 충분시원
NEW
CSS 디자인 용어집 v0.1
초보자가 LLM에게 CSS와 UI 디자인을 정확히 시키기 위한 단어 카드.
CSS · WHITESPACE
01 / 02
TERM · 06 · IN PRACTICE

여백으로 묶기grouping

여백을 어디에 더 주느냐가
"한 묶음"과 "별개"를 가른다.

안쪽 여백은 좁게, 그룹 사이 여백은 넓게.
반대로 하면 어디까지가 한 묶음인지 알 수 없다.

감 잡기 — 여백 크기 단계
관계여백
한 묶음 안 (제목 ↔ 본문)8 ~ 12px
같은 그룹 안 카드끼리16 ~ 24px
다른 그룹 사이48 ~ 96px
시원 vs 답답 — 같은 카드 비교
tight (좁음)답답
TIP
여백이 디자인의 80%
정보를 묶고 끊는 도구로 쓰자.
airy (넉넉)시원
TIP
여백이 디자인의 80%
정보를 묶고 끊는 도구로 쓰자.
PROMPT
"카드 안쪽 여백이 8px이라 답답해. padding 24px로 키우고, 카드 사이 간격도 24px로 시원하게 풀어줘."
CSS · WHITESPACE · IN PRACTICE
02 / 02
TERM · 07 · CONCEPT

Contrast대비

글자와 배경이 충분히 달라야 읽힌다.
"안 보여"의 절반은 대비 부족.

대비(contrast)는 두 색이 얼마나 다른지의 정도.
글자색과 배경색의 명도(밝기) 차이가 너무 작으면 글이 사라진다.

대비 기준 (WCAG)
상황최소 대비
본문 (작은 글)4.5 : 1 이상
큰 제목 (대략 24px 이상)3 : 1 이상
약한 대비 (회색 글자 on 흰색)대비 부족 — 본문에 못 씀
"글자 잘 안 보여" 진단 → 십중팔구 색 대비 문제.
회색 글자(#aaa, #ccc)는 본문에 쓰지 말 것.
대비 비교 — 같은 배경
옅은 회색 on 흰대비 부족
CSS 디자인 용어집 v0.1
진한 검정 on 흰또렷
CSS 디자인 용어집 v0.1
#fff on #1a1a1a강한 강조
CSS 디자인 용어집 v0.1
색상 충돌눈 아픔
CSS 디자인 용어집 v0.1
CSS · CONTRAST
01 / 02
TERM · 07 · IN PRACTICE

대비 활용in practice

대비를 위계 도구로 쓰면
크기 안 키워도 강조가 된다.

제일 중요한 텍스트는 가장 진한 검정, 보조 정보는 옅은 회색.
크기 차이 없이도 시선의 순서를 만들 수 있다.

색 단계 권장 (4단계면 충분)
역할
본문·제목 (강한 정보)#111 ~ #1a1a1a
보조 텍스트#4a5568
메타·라벨#71717a
비활성·플레이스홀더#a1a1aa
대비로 위계 만들기
전부 같은 회색위계 없음
NEW
CSS 디자인 용어집 v0.1
초보자를 위한 단어 카드.
2026-05-13
3단계 색시선 순서
NEW
CSS 디자인 용어집 v0.1
초보자를 위한 단어 카드.
2026-05-13
PROMPT
"카드 본문 색이 #aaa라 너무 옅어서 안 보여. 본문은 진한 검정(#1a1a1a)으로, 메타만 회색(#71717a)으로 대비 줘."
CSS · CONTRAST · IN PRACTICE
02 / 02
TERM · 08 · CONCEPT

Color색을 이름으로 부르기

색을 "회색", "파란색"이 아니라
역할 이름으로 부를 수 있다.

웬만한 디자인엔 색마다 역할 이름이 있다 — primary, ink, surface...
이름만 알면 "이 부분 색을 X로 바꿔달라"가 가능해진다.

자주 쓰이는 색 이름
이름역할
primary강조 — 주요 버튼, 링크, 활성 상태
ink / ink-2 / ink-3본문 검정 → 보조 회색 단계
surface카드 배경 (보통 흰색)
bg페이지 배경 (옅은 회색)
border테두리·구분선
이름을 알면 "primary 색이 너무 강해", "ink-3 대비가 부족해" 같이 콕 짚어 말할 수 있다.
이 PT가 쓰고 있는 색
ink
ink-2
ink-3
border
bg
primary
primary-soft
success
warn
surface
CSS · COLOR · NAMING
01 / 02
TERM · 08 · IN PRACTICE

색 수정 요청이름으로 콕 짚기

"여기 색 이상해"가 아니라
"이 부분 ink-3ink로 바꿔줘".

색을 바꾸고 싶을 때 디자이너처럼 "규칙"을 알 필요 없다.
현재 색의 이름과 바꿀 색의 이름만 알면 LLM이 알아서 처리.

자주 쓰는 요청 패턴
증상이렇게 요청
본문이 너무 옅어"본문을 ink로 진하게"
강조가 약해"이 버튼을 primary로 강조"
구분선 안 보여"border 색 한 단계 진하게"
강조가 시끄러워"primary-soft로 옅게 바꿔"
같은 카드, 색 토큰만 바꿈
본문 = ink-3옅음
NEW
CSS 디자인 용어집
색에는 이름이 있다.
본문 = ink진함
NEW
CSS 디자인 용어집
색에는 이름이 있다.
PROMPT
"이 카드 본문 색이 너무 옅어. 본문 색을 ink-3에서 ink로 바꿔줘."
CSS · COLOR · REQUEST
02 / 02
TERM · 09 · CONCEPT

Shape모양 · 모서리 · 그림자

모서리 둥글기와 그림자가
"현대적"과 "올드함"을 가른다.

border-radius는 모서리 둥글기, box-shadow는 그림자.
둘 다 "강할수록 좋다"가 아니다 — 대부분의 UI에서는 옅은 쪽이 깔끔하다.

모서리 둥글기 권장
요소border-radius
버튼6 ~ 8px
카드8 ~ 12px
태그·뱃지999px (완전 둥근 pill)
아바타·아이콘50% (원형)
한 디자인 안 radius 값을 2~3개로 통일.
5px, 7px, 12px, 14px 막 섞이면 어색하다.
모서리 둥글기 비교
radius: 0각진
버튼
radius: 4px살짝
버튼
radius: 12px현대적
버튼
radius: 999pxpill
버튼
CSS · SHAPE
01 / 02
TERM · 09 · IN PRACTICE

Shadow그림자

그림자는 옅을수록 현대적.
짙으면 90년대 디자인이 된다.

box-shadow는 카드가 살짝 떠 있는 느낌을 준다.
보통 네 요소로 읽는다 — x-offset · y-offset · blur · color (색은 검정에 투명도).

그림자 권장
강도
없음 (border만)none
옅게 (기본 카드)0 1px 2px rgba(0,0,0,.06)
떠 있게 (호버·모달)0 4px 12px rgba(0,0,0,.08)
금지 (올드)0 10px 30px rgba(0,0,0,.3)
그림자 비교
shadow: none미니멀
카드
subtle기본
카드
medium떠 있음
카드
heavy올드
카드
PROMPT
"카드 그림자(box-shadow)가 너무 짙어. 거의 안 보일 정도로 옅게 바꿔줘 — 살짝 떠 있는 느낌."
CSS · SHAPE · SHADOW
02 / 02
TERM · 10 · CONCEPT

Position박스 위치 정하기

박스를 흐름대로 둘지
특정 자리에 고정할지 정한다.

기본적으로 박스는 위에서 아래로 흐름대로 쌓인다.
position으로 이 흐름을 깨고 특정 위치에 박을 수 있다.

5가지 값
의미
static기본 — 위에서 아래로 흐름
relative자기 자리 기준 미세 이동
absolute가까운 position 지정 부모(보통 relative) 기준 — 뱃지·닫기 버튼
fixed스크롤해도 화면에 고정 — 헤더·플로팅 버튼
sticky스크롤하다 멈춤 — 섹션 헤더
실전 — absolute로 뱃지 띄우기
흐름대로static
상품 카드
NEW
뱃지 띄움absolute
상품 카드
NEW
PROMPT
"카드 우측 상단에 NEW 뱃지 띄워줘. 카드 박스 기준 absolute, 위에서 8px, 오른쪽에서 8px 위치로."
CSS · POSITION
01 / 01
TERM · 11 · CONCEPT

Sizing크기 단위

px? rem? %?
상황에 맞는 단위를 골라야 한다.

고정값(px)상대값(rem · % · vw)의 차이만 알면 대부분의 크기 지시는 가능하다.

자주 쓰는 4단위
단위언제 쓰나
px고정 — border, 아이콘
rem폰트·padding (권장)
%부모 기준 비율
clamp()최소·기본·최대 한꺼번에
clamp(16px, 4vw, 24px)
= "최소 16, 적당히, 최대 24" — 반응형 글자에 자주 쓴다.
% 단위 — 부모 기준 비율
25%
50%
75%
100%
PROMPT
"컨테이너 가로폭을 최대 1200px까지로 제한하고, 화면 가운데로 정렬해줘."
CSS · SIZING
01 / 01
TERM · 12 · CONCEPT

숨기기display · visibility · opacity

요소를 안 보이게 하는 3가지 방법.
각자 결과가 다르다.

"안 보이게 해줘"라고 시킬 때 결과는 셋 중 하나.
공간도 사라질지, 자리만 비울지, 클릭은 받을지를 구분해야 한다.

3가지 방법 비교
방법결과
display: none완전히 사라짐 — 공간도 없음, 클릭 불가
visibility: hidden안 보이지만 공간은 차지 — 자리 유지
opacity: 0투명 — 안 보이지만 클릭은 가능
메뉴 닫기 → display: none.
로딩 자리 비우기 → visibility: hidden.
페이드 효과 → opacity.
자리 차지 여부 비교
display: none공간 X
위 박스
아래 박스
visibility: hidden공간 O
위 박스
숨겨진 박스
아래 박스
opacity: 0투명
위 박스
투명 박스
아래 박스
PROMPT
"메뉴 닫혔을 때 완전히 사라지게 해줘 (display: none) — 공간도 안 남게."
CSS · DISPLAY · VISIBILITY
01 / 01
PART B · 진단 사전

LLM이 "고쳤다"는데
화면이 안 바뀔 때

코드는 바뀌었지만 화면은 그대로일 때 — 원인 5가지
SPECIFICITY · !IMPORTANT · INLINE · CACHE · BUILD
DIAGNOSIS · 01

SpecificityCSS 우선순위 싸움

같은 박스에 여러 규칙이 충돌하면
더 구체적인 규칙이 이긴다.

LLM이 새 규칙을 추가했는데 안 먹는다면 —
기존에 더 점수가 높은 규칙이 이미 자리 잡고 있을 가능성.

선택자 점수표
선택자점수
inline (style="...")1000 — 일반 CSS보다 강함
#id100
.class · :hover10
div · p (태그)1
!important별도 규칙 — 위 점수 뒤집음
진단법: DevTools로 요소 검사 → Styles 탭에서 취소선 그어진 속성이 패배자.
충돌 예시
.card { padding: 20px; } // 10점 (패배) .section .card { padding: 4px; } // 20점 (승)
PROMPT
"카드 padding 20px 적용했는데 화면은 그대로야. DevTools 보니 다른 규칙(.section .card)이 4px로 이기고 있어. 내 selector를 더 구체적으로 짜서 우선순위 높여줘."
DIAGNOSIS · SPECIFICITY
01 / 04
DIAGNOSIS · 02

!important & inline규칙 위에 규칙

점수 무시하고 무조건 이기는 두 가지.
이걸 못 보면 영원히 안 바뀐다.

!important는 점수 시스템을 무시하고 무조건 이긴다.
inline style(HTML에 직접 박힌 style="...")도 마찬가지.

진단 절차
증상확인할 것
CSS 고쳐도 안 바뀜HTML에 inline style="..." 있는지
다른 규칙이 무조건 이김!important 있는지 grep
JS로 동적 적용element.style.xxx = "..." 있는지
우선순위 (가장 강한 것부터)
  1. !important — 별도 규칙. 일반 우선순위를 뒤집는다
  2. inline style — HTML 안 <div style="...">. 일반 CSS보다 강함
  3. 점수 높은 selector — id, 중첩 클래스 등
  4. 점수 같으면 나중에 쓴 것 — 파일 순서 영향
PROMPT
"카드 padding 고쳤는데 안 바뀌어. HTML에 inline style (style="...")이나 CSS에 !important가 박혀있는지 먼저 확인해줘. 있으면 빼고 CSS로 통합해줘."
DIAGNOSIS · !IMPORTANT / INLINE
02 / 04
DIAGNOSIS · 03

캐시 & 빌드파일이 안 갱신됨

코드는 분명 바꿨는데
브라우저가 옛날 파일을 보고 있다면.

CSS는 맞게 고쳤는데 화면이 그대로면 —
브라우저가 캐시를 보고 있거나, 빌드가 안 돌았을 가능성.

3가지 막힘
원인해결
브라우저 캐시Cmd+Shift+R (하드 새로고침)
HMR 안 도는 상태dev server 재시작
빌드 산출물 안 갱신build 명령 실행
"고쳤는데 안 바뀌어" 진단 1순위 — 하드 새로고침 (Cmd+Shift+R).
절반은 여기서 해결된다.
단계별 진단 순서
  1. 하드 새로고침 — Mac: Cmd+Shift+R / Win: Ctrl+F5
  2. DevTools 열고 Disable cache 체크 후 새로고침
  3. Network 탭에서 CSS 파일 status code 확인 (200이어야)
  4. 빌드 산출물 mtime 확인 — build 명령 다시 돌렸나?
  5. 시크릿 모드에서 확인 (모든 캐시 무시)
PROMPT
"CSS 고쳤는데 화면 그대로. 하드 새로고침(Cmd+Shift+R) 먼저 → 안 되면 DevTools Network에서 CSS 파일이 제대로 로드(status 200) 됐는지 확인 → 그래도 안 되면 빌드 다시 돌리자."
DIAGNOSIS · CACHE / BUILD
03 / 04
DIAGNOSIS · 04

6단계 진단빠른 체크리스트

"LLM이 고쳤다는데 안 바뀜" —
이 순서대로 확인하면 90% 잡는다.

아래 순서대로 위에서 아래로 확인.
대부분 1~2번에서 해결된다.

진단의 핵심은 DevTools 사용.
요소 검사 → Styles 탭 → 어느 규칙이 이겼는지 본다.
CHECK LIST
  1. 하드 새로고침 했는가? (Cmd+Shift+R)
  2. DevTools로 요소 검사 — 적용된 CSS 규칙 확인
  3. 다른 규칙에 덮였는가? (취소선 그어진 속성)
  4. inline style이나 !important가 박혀있는가?
  5. 어느 CSS 파일이 책임지는가? base vs theme
  6. 빌드 산출물에 실제 반영됐는가? (mtime 확인)
DIAGNOSIS · CHECKLIST
04 / 04
· FIN ·

"예쁘게"가 아니라
정확한 단어로

CSS 디자인 용어를 알면 LLM에게 정확히 시킬 수 있다.
CSS DESIGN GLOSSARY · v.0.1 · 2026-05-13
← / → KEYS
01 / 33