# 타이포그래피 --- ## 폰트 패밀리 | 역할 | 폰트 | 적용 범위 | |------|------|-----------| | 기본 (한글) | Pretendard Variable / Pretendard | 모든 UI 텍스트 | | 기본 (영문/숫자) | Inter | 영문 전용 컨텍스트 | | 코드 | JetBrains Mono / Fira Code | 코드 블록, API Key 등 | CSS 변수: ```css --font-sans: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', Consolas, Monaco, 'Courier New', monospace; ``` --- ## 타입 스케일 8단계 스케일. `rem` 단위 기준 (root 16px). | 단계 | 이름 | px | rem | line-height | weight | 용도 | |------|------|----|-----|-------------|--------|------| | 1 | Display | 48px | 3rem | 1.2 | 700 | 히어로, 랜딩 | | 2 | H1 | 36px | 2.25rem | 1.2 | 700 | 페이지 제목 | | 3 | H2 | 30px | 1.875rem | 1.25 | 600 | 섹션 제목 | | 4 | H3 | 24px | 1.5rem | 1.3 | 600 | 카드 제목 | | 5 | Body-lg | 18px | 1.125rem | 1.6 | 400 | 강조 본문 | | 6 | Body | 16px | 1rem | 1.6 | 400 | 기본 본문 | | 7 | Caption | 14px | 0.875rem | 1.5 | 400 | 레이블, 보조 | | 8 | Overline | 12px | 0.75rem | 1.5 | 500 | 카테고리, 태그 | --- ## Font Weight | 값 | 이름 | 사용처 | |----|------|--------| | 300 | Light | 큰 디스플레이 텍스트 부제목 | | 400 | Regular | 기본 본문 | | 500 | Medium | 캡션, Overline, 강조 레이블 | | 600 | SemiBold | H2, H3, 버튼 | | 700 | Bold | Display, H1, 강조 수치 | --- ## Tailwind 클래스 매핑 | 단계 | Tailwind 클래스 | |------|----------------| | Display | `text-5xl font-bold leading-tight` | | H1 | `text-4xl font-bold leading-tight` | | H2 | `text-3xl font-semibold leading-snug` | | H3 | `text-2xl font-semibold leading-snug` | | Body-lg | `text-lg font-normal leading-relaxed` | | Body | `text-base font-normal leading-relaxed` | | Caption | `text-sm font-normal leading-normal` | | Overline | `text-xs font-medium leading-normal tracking-wide uppercase` | --- ## 한글 타이포그래피 규칙 - `word-break: keep-all` 적용 — 단어 중간에서 줄바꿈 방지 - 한글 사용 시 `letter-spacing` 조정 금지 (Pretendard 기본값 유지) - 본문 최대 너비: `max-w-prose` (65ch) — 가독성 확보 ```css /* 전역 적용 권장 */ p, li, dd { word-break: keep-all; } ``` --- ## 색상 규칙 | 상황 | 클래스 | |------|--------| | 제목, 본문 | `text-[var(--color-text-primary)]` | | 보조 설명 | `text-[var(--color-text-secondary)]` | | placeholder, 비활성 | `text-[var(--color-text-tertiary)]` | | 링크 | `text-[var(--color-primary)] hover:text-[var(--color-primary-hover)]` | | 위험/오류 | `text-[var(--color-danger)]` |