Skip to content

YumYum 디자인 시스템 — 타이포그래피 토큰 v2

냠냠픽업 디자인 시스템 타이포그래피 가이드 작성일: 2026-05-13 버전: v2.0


1. 디자인 원칙

1.1 핵심 컨셉

  • 명확하고 친근하게 — 식음료 픽업 서비스에 맞는 톤
  • 한글 가독성 절대 우선 — 한국 서비스
  • Pretendard 베이스, LaundryGothic은 임팩트용 (컬러 시스템의 Tier 구조와 동일)

1.2 폰트 사용 비율

  • Pretendard (Tier 1): 95% (모든 본문, UI 텍스트)
  • LaundryGothic (Tier 2): 5% (로고, 온보딩, 이벤트성 헤드라인)

1.3 Tier 구조

Tier폰트용도사용 빈도
Tier 1 — BasePretendard본문, 라벨, 버튼, 일상 UI95%
Tier 2 — DisplayLaundryGothic로고, 온보딩, 이벤트 배너, 빅넘버, 마스코트 인용구5%

2. 폰트 패밀리

2.1 Pretendard (Tier 1)

가장 안정적인 한글 가독성을 제공하는 범용 폰트.

  • 본문, 모든 UI 텍스트
  • 9단계 weight 제공 (Thin~Black), 4단계만 사용
  • 영문, 숫자도 포함 (별도 영문 폰트 불필요)
  • 가격 표시 같은 숫자 정렬에는 font-variant-numeric: tabular-nums 활용

2.2 LaundryGothic (Tier 2)

특이한 굴곡과 개성으로 브랜드 임팩트를 주는 디스플레이 폰트.

쓰는 곳

  • 로고 (필수)
  • 온보딩 헤드라인
  • 이벤트 배너 제목
  • 빅넘버 강조 (가격, 절약 금액)
  • 시즌 캠페인 타이틀
  • 마스코트 인용구

쓰지 않는 곳

  • 긴 본문 (가독성 떨어짐)
  • 버튼, 라벨 등 일관된 UI 패턴
  • 3줄 이상의 텍스트

기본 규칙

  • 한 화면에 LaundryGothic은 1~2곳만
  • 짧고 감정 표현이 필요한 곳에서만

2.3 CSS Variables

css
--font-family-base: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
--font-family-display: 'LaundryGothic', 'Pretendard', sans-serif;

3. Font Weight

Pretendard의 9단계 weight 중 4단계만 사용. 더 많이 쓰면 위계가 흐려짐.

TokenValue사용 비율용도
font-weight-regular40080%본문, 긴 텍스트, 보조 텍스트 (기본값)
font-weight-medium50015%라벨, 버튼, 메뉴명 (한글에서 가장 많이 쓰는 강조)
font-weight-semibold6004%작은 제목, 가격 강조, 섹션 헤딩
font-weight-bold7001%큰 제목, 빅넘버, Hero 헤드라인 (아껴 사용)

LaundryGothic은 Bold 1단계만 사용.

사용하지 않을 Weight

  • Thin(100), ExtraLight(200), Light(300): 한글에서 너무 얇아 가독성 떨어짐
  • ExtraBold(800), Black(900): 한글에서 너무 무거워 답답함

한글 vs 영문 Weight 차이

한글은 자소가 많아 같은 weight에서도 영문보다 무겁게 느껴짐. 영문 디자인 시스템에서 Bold를 쓰는 자리도, 한글에서는 SemiBold로 충분한 경우가 많음.


4. Type Scale (Primitives)

기준점은 16px (base). 한글 모바일 본문 가독성의 황금 기준.

TokenSize비율용도
text-xs12px캡션, 부가 정보
text-sm14px×1.17보조 본문
text-base16px×1.14기본 본문 (기준점)
text-lg18px×1.125강조 본문, 작은 제목
text-xl22px×1.22서브타이틀
text-2xl28px×1.27페이지 헤딩
text-3xl36px×1.29큰 헤딩, Display
text-4xl48px×1.33Hero, 빅넘버

모든 단계가 1.1~1.3배 비율로 자연스러운 흐름을 만들어냄.


5. Line Height & Letter Spacing

5.1 핵심 원칙

"폰트 크기가 클수록 줄높이와 자간을 좁게"

큰 글자는 자간이 자연스럽게 벌어져 보이므로 좁혀야 하고, 작은 글자는 빽빽해 보이므로 띄워야 함 (착시 보정).

5.2 Line Height Scale

TokenValue용도
lh-tight1.1Display, 빅넘버
lh-snug1.2큰 헤딩 (3xl 이상)
lh-condensed1.3헤딩 (2xl)
lh-normal1.4서브타이틀 (xl)
lh-relaxed1.5작은 본문, 라벨, 캡션
lh-loose1.6본문 (base, lg) ⭐

5.3 Letter Spacing Scale

TokenValue용도
ls-tight-0.02emDisplay, 큰 헤딩 (3xl 이상)
ls-snug-0.01em헤딩 (xl, 2xl)
ls-normal0본문, 라벨
ls-wide0.01em작은 텍스트 (xs, 캡션)

6. 의미별 토큰 (Semantic Tokens)

Primitives를 조합한 실제 사용 토큰. 디자이너가 바로 가져다 쓰는 단위.

6.1 Display (빅넘버, Hero 헤드라인)

TokenSizeWeightLine H.Letter S.용도
display48pxBold (700)1.1-0.02emHero 헤드라인, 빅넘버 (한 화면 1개 이하)
display-sm36pxBold (700)1.2-0.02em큰 헤드라인

6.2 Heading (제목)

TokenSizeWeightLine H.Letter S.용도
heading-lg28pxSemiBold (600)1.3-0.01em페이지 제목, 매장명
heading-md22pxSemiBold (600)1.4-0.01em섹션 제목
heading-sm18pxSemiBold (600)1.50카드 제목, 소제목

6.3 Body (본문)

TokenSizeWeightLine H.Letter S.용도
body-lg18pxRegular (400)1.60강조 본문, 인용구
body16pxRegular (400)1.60기본 본문 (모든 본문은 일단 이걸로 시작)
body-sm14pxRegular (400)1.50보조 본문, 설명문

6.4 Label (버튼, 라벨, UI 텍스트)

TokenSizeWeightLine H.Letter S.용도
label-lg16pxMedium (500)1.50큰 버튼, 메인 CTA
label14pxMedium (500)1.50기본 버튼, 라벨, 메뉴명
label-sm12pxMedium (500)1.50.01em작은 뱃지, 태그

6.5 Caption (캡션, 부가 정보)

TokenSizeWeightLine H.Letter S.용도
caption12pxRegular (400)1.50.01em캡션, 부가 정보, 시간 표시

7. 사용 가이드라인

7.1 토큰 선택 흐름

1. 어떤 종류의 텍스트인가?
   - 가장 강조하고 싶은 한 줄? → Display
   - 제목? → Heading (lg/md/sm)
   - 본문? → Body (lg/기본/sm)
   - 버튼/라벨? → Label (lg/기본/sm)
   - 작은 부가 정보? → Caption

2. 크기 변형이 필요한가?
   - 더 크게 → -lg
   - 더 작게 → -sm

7.2 한 화면에서의 위계

좋은 위계는 보통 3~5단계가 한 화면에 등장.

예시 — 매장 상세 화면

  • 매장명: heading-lg
  • 픽업 정보 제목: heading-sm
  • 본문 설명: body-sm 또는 body
  • 가격: display-sm 또는 heading-md
  • 주문 버튼: label-lg
  • 부가 정보: caption

7.3 Tier 2 (LaundryGothic) 적용

같은 의미 토큰을 Tier 2 폰트로도 쓸 수 있음:

  • display-sm + LaundryGothic → 온보딩 헤드라인
  • heading-lg + LaundryGothic → 이벤트 배너 제목
  • display + LaundryGothic → 빅넘버 강조

기본은 Pretendard. 특별한 임팩트가 필요할 때만 font-family를 LaundryGothic으로 바꿈.


8. CSS Variables 구현 예시

css
:root {
  /* Font Family */
  --font-family-base: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-family-display: 'LaundryGothic', 'Pretendard', sans-serif;

  /* Font Weight */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Type Scale (Primitives) */
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-xl: 22px;
  --text-2xl: 28px;
  --text-3xl: 36px;
  --text-4xl: 48px;

  /* Line Height */
  --lh-tight: 1.1;
  --lh-snug: 1.2;
  --lh-condensed: 1.3;
  --lh-normal: 1.4;
  --lh-relaxed: 1.5;
  --lh-loose: 1.6;

  /* Letter Spacing */
  --ls-tight: -0.02em;
  --ls-snug: -0.01em;
  --ls-normal: 0;
  --ls-wide: 0.01em;
}

/* Semantic Tokens */
.text-display {
  font-size: var(--text-4xl);
  font-weight: var(--font-weight-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
}

.text-display-sm {
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-bold);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
}

.text-heading-lg {
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-semibold);
  line-height: var(--lh-condensed);
  letter-spacing: var(--ls-snug);
}

.text-heading-md {
  font-size: var(--text-xl);
  font-weight: var(--font-weight-semibold);
  line-height: var(--lh-normal);
  letter-spacing: var(--ls-snug);
}

.text-heading-sm {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-normal);
}

.text-body-lg {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-regular);
  line-height: var(--lh-loose);
  letter-spacing: var(--ls-normal);
}

.text-body {
  font-size: var(--text-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--lh-loose);
  letter-spacing: var(--ls-normal);
}

.text-body-sm {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-regular);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-normal);
}

.text-label-lg {
  font-size: var(--text-base);
  font-weight: var(--font-weight-medium);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-normal);
}

.text-label {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-normal);
}

.text-label-sm {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-wide);
}

.text-caption {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-regular);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-wide);
}

/* Tier 2 — LaundryGothic 변형 */
.text-display.is-display-font,
.text-heading-lg.is-display-font {
  font-family: var(--font-family-display);
}

9. Figma 적용 방법

9.1 Text Style 구조 권장

Yumyum/
├── Display/
│   ├── display
│   └── display-sm
├── Heading/
│   ├── heading-lg
│   ├── heading-md
│   └── heading-sm
├── Body/
│   ├── body-lg
│   ├── body ⭐ (기본)
│   └── body-sm
├── Label/
│   ├── label-lg
│   ├── label
│   └── label-sm
├── Caption/
│   └── caption
└── Display-LaundryGothic/ (Tier 2 변형)
    ├── display-laundry
    └── heading-laundry

9.2 권장 Figma 플러그인

  • Tokens Studio — JSON으로 타이포그래피 토큰 일괄 import/export
  • Typestyles — 텍스트 스타일 일괄 변경 관리

10. 기존 vs 신규 비교

항목기존v2 (신규)
단계 수8개 (정의 모호)12개 의미별 토큰
사이즈 분포28/18/17/16/14/12/10 (들쭉날쭉)12/14/16/18/22/28/36/48 (균등)
Weight 사용Bold/SemiBold/Regular 혼재, 일관성 ✗Regular/Medium/SemiBold/Bold, 4단계 명확
Line Height정의 없음6단계 (1.1~1.6)
Letter Spacing정의 없음4단계 (-0.02em ~ 0.01em)
폰트 패밀리1개 (LaundryGothic)Tier 구조 (Pretendard + LaundryGothic)
명명 체계h1/h2/h3 + title + body 혼재카테고리-사이즈 일관 체계
한글 최적화없음한글 가독성 기준 설계

11. 다음 단계

타이포그래피 시스템이 자리잡으면, 다음 디자인 시스템 요소도 같은 방식으로 정리:

  • [ ] Spacing — 4px 베이스 그리드 (4, 8, 12, 16, 24, 32, 40, 64)
  • [ ] Radius — 4, 8, 12, 16, 24 (pill)
  • [ ] Elevation/Shadow — 0~4단계
  • [ ] Components — Button, Input, Card, Modal, Badge, Toast 등 (컬러 + 타이포 토큰 조합)
  • [ ] Stratis UI Icons — Stratis UI Icons 통일, 사이즈 가이드

이 문서는 살아있는 문서입니다. 디자인 시스템이 발전하면서 함께 업데이트하세요.

냠냠픽업 — 지속가능한 중개수수료 2% 음식 픽업 서비스