Skip to content

YumYum 디자인 시스템 — 컴포넌트 라이브러리 v3

냠냠픽업 디자인 시스템 컴포넌트 가이드 작성일: 2026-05-13 최종 갱신: 2026-05-18 — Toast 컴포넌트 spec HEX cool gray v3로 마이그레이션 (#2D2B27 → #333333, #FAF9F7 → #FAFAFA) 버전: v3.0 (cool gray v3 시리즈)


0. 개요

이 문서는 YumYum 디자인 시스템의 4가지 토큰(Color + Typography + Spacing + Radius + Elevation)을 조합해서 만든 13개 핵심 컴포넌트를 정의함.

컴포넌트 분류

Phase 1 — Foundations (3)
  ├─ Button
  ├─ Input
  └─ Badge / Tag

Phase 2 — Containers (2)
  ├─ Card
  └─ List Item

Phase 3 — Overlays (2)
  ├─ Modal / Bottom Sheet
  └─ Toast / Snackbar

Phase 4 — Navigation (2)
  ├─ Header (App Bar)
  └─ Tab Bar

Phase 5 — Specialized (5)
  ├─ Restaurant Card
  ├─ Menu Item Card
  ├─ Price Display
  ├─ Quantity Stepper
  └─ Order Summary

1. Button

📌 2026-05-16 업데이트 — Figma "Button - Large" 컴포넌트 (node 6978:19157, 6978:19161) 기준으로 정렬. 기존 doc(48h, radius-md)에서 55h, pill (radius-full) 로 변경. variant도 Figma 기준으로 재정의.

1.1 Variants (4)

  • Primaryyellow-500 배경 + neutral-800 텍스트. 주요 액션 (주문하기, 결제). 한 화면 1개
  • Darkneutral-900 배경 + 흰색 텍스트. 카카오 로그인 등 외부 브랜드 액션
  • Outline — 흰 배경 + neutral-800 보더 + neutral-900 텍스트. 이메일 로그인, 보조 액션
  • Ghost — 배경/보더 없음. 약한 액션 (더보기, 닫기)

1.2 Sizes (3)

SizeHeightPaddingRadiusTypographyGap
Small326/12radius-xs (4)label-sm (12)4
Medium ⭐4010/16radius-sm (8)label (14)6
Large5514/32radius-full (pill)SemiBold 16/248

Large는 Hero 액션 (로그인, 주문 시작 등) 전용. 모바일 손가락 터치 영역 확보 + 친근한 pill 모양으로 캐릭터 톤과 조화.

1.3 States — Primary 기준

StateBackgroundText
Defaultyellow-500 #FFDE36neutral-800
Hoveryellow-600 #F2CC0Fneutral-800
Pressedyellow-700 #C8A607neutral-50
Disabledneutral-200neutral-400

1.4 States — Dark (카카오 등)

StateBackgroundText
Defaultneutral-900 #222222#FFFFFF
Pressedneutral-950 #0A0A0A#FFFFFF
Disabledneutral-300neutral-500

1.5 States — Outline (이메일 등)

StateBackgroundBorderText
Default#FFFFFF0.5px neutral-800neutral-900
Pressedneutral-500.5px neutral-800neutral-900
Disabledneutral-1000.5px neutral-300neutral-400

1.6 Icon 사용 (Large)

  • 아이콘 위치: 텍스트 좌측, gap 8px
  • 아이콘 크기: 24×24
  • 아이콘 컬러: 텍스트와 동일 컬러 또는 브랜드 컬러 유지 (예: 카카오 말풍선)

1.7 원칙

  • 한 화면에 Primary는 1개
  • Label은 명령형 ("확인" O, "확인 버튼" X)
  • Disabled는 톤이 아닌 회색 사용
  • Large는 풀폭 (w-full) 기본 — 좌우 page padding(16px) 안쪽에서 100% 차지
  • 외부 브랜드 액션은 해당 브랜드 가이드 우선 (카카오 #FEE500이 아니라 검정인 이유: 냠냠픽업 캐릭터/배경 컬러와 충돌 회피한 코니의 의도적 선택)

2. Input

2.1 Anatomy

Label + (Leading Icon) + Placeholder/Input + (Trailing Icon) + Helper text

2.2 Sizes (3)

SizeHeightPaddingFont
Small326/1213px
Medium ⭐4410/1214px
Large5214/1416px

2.3 States (5)

StateBorder
Default0.5px solid neutral-300
Focused1px solid neutral-800 + 3px yellow-100 ring
FilledDefault와 동일
Error1.5px solid neutral-800 + alert icon
Disabled0.5px solid neutral-200 + neutral-100 bg

2.4 Variations

  • Search (검색 아이콘)
  • Password (눈 아이콘 토글)
  • Textarea (min-height 80)
  • Select (chevron-down)

2.5 원칙

  • Label은 위에, Placeholder는 예시만
  • Focused 시 노랑 ring (brand 강조)
  • Error는 색이 아닌 아이콘 + 두꺼운 보더

3. Badge / Tag

3.1 모양으로 의미 구분

  • Badge (radius-xs 4px) — 상태, 카운트, 속성
  • Tag (radius-full ∞) — 카테고리, 필터, 키워드

3.2 Variants (3)

VariantBackgroundText비율
Defaultneutral-100neutral-70095%
Strongneutral-800neutral-503%
Brandyellow-500neutral-8002%

3.3 Specs

  • Badge: 3/8 padding, label-sm (11px)
  • Tag: 4/10 padding, label-sm (12px)
  • Icon size: 12px, gap-xs (4px)

3.4 변형

  • With Icon (clock, map-pin, flame 등)
  • Counter (숫자, 99+)
  • Removable Tag (X 버튼)
  • Dot Badge (작은 점만)

3.5 원칙

  • 한 곳에 3개 이내
  • 텍스트는 짧게 (2-5자)

4. Card

4.1 Anatomy

Container + (Media) + Header + Body + (Footer)

4.2 Layout Variants (4)

  • Vertical — 이미지 위 + 콘텐츠 아래 (가장 일반적)
  • Horizontal — 이미지 옆 + 콘텐츠 (리스트형)
  • Compact — 이미지 없음, 간단
  • Full — 모든 영역 포함

4.3 Style Variants (3)

  • Basic — 일반 (95%)
  • Selected — yellow-50 bg + 1.5px yellow-500 border
  • Promotion — Tier 2 Secondary 컬러 (Pink 그라데이션 등)

4.4 States (4) — 인터랙티브 카드만

StateStyle
Defaultwhite bg + 0.5px neutral-200 border
Hoverneutral-50 bg + neutral-300 border
Pressedneutral-100 bg + scale(0.98)
Selectedyellow-50 bg + 1.5px yellow-500 border

4.5 Specs

  • Padding: space-lg (16px)
  • Internal gap: space-md (12px)
  • Radius: radius-md (12px)
  • Elevation: elevation-0 (보더만)

4.6 원칙

  • 한 카드 = 한 객체
  • 카드 안에 카드 X
  • 전체가 클릭 영역

5. List Item

5.1 Anatomy

(Leading) + Content + (Trailing)

5.2 Variants (6)

  • With Icon — 마이페이지 메뉴
  • With Avatar — 매장/사람
  • With Thumbnail — 메뉴/주문 내역
  • With Toggle — 설정 (on/off)
  • With Meta — 결제, 금액 표시
  • With Checkbox — 옵션 선택

5.3 Specs

  • Padding: 12/16 (y/x)
  • Min-height: 44px (터치 영역)
  • Internal gap: space-md (12px)
  • Divider: 0.5px solid neutral-200 (항목 사이)
  • Icon: 20px, Avatar: 36px, Thumbnail: 56px (radius-sm)

5.4 원칙

  • 전체 행이 터치 영역
  • 첫/마지막 항목 사이는 divider 없음
  • Chevron은 이동 의미 (토글엔 사용 X)

6. Modal / Bottom Sheet

6.1 Variants (3)

  • Bottom Sheet (80%) — 모바일 표준. 아래에서 슬라이드 업
  • Center Modal (15%) — 짧은 확인/경고 다이얼로그
  • Full Screen (5%) — 긴 폼, 복잡한 작업

6.2 Bottom Sheet Sizes (4)

SizeHeight
Small~35%
Medium ⭐~50%
Large~75%
Full~95%

6.3 Anatomy (Bottom Sheet)

Backdrop + Handle bar + Header + Content + Footer

6.4 Specs

  • Backdrop: rgba(0, 0, 0, 0.5)
  • Container bg: white
  • Border radius (Bottom Sheet): radius-xl 24px (상단만)
  • Border radius (Center Modal): radius-lg 16px (사방)
  • Elevation: elevation-1
  • Padding: space-xl (24px)
  • Handle bar: 36×4 neutral-300

6.5 원칙

  • 모바일은 Bottom Sheet 우선
  • 닫는 방법 2가지 이상 (Backdrop tap + X + swipe down)
  • 중첩 X (Modal 위에 Modal X)
  • Destructive 액션: neutral-800 배경 + 흰 텍스트

7. Toast / Snackbar

7.1 무채색 통일

모든 Toast가 동일한 검정 배경 + 흰 텍스트. 의미는 아이콘으로만 구분.

의미아이콘
Successti-circle-check
Errorti-circle-x
Warningti-alert-triangle
Infoti-info-circle

7.2 Variants (3)

  • Simple — 아이콘 + 메시지
  • With Action — Yellow 액션 버튼 (되돌리기 등)
  • With Close — X 버튼 (사용자가 닫아야)

7.3 Duration (4)

DurationTime용도
Short2초단순 확인
Medium ⭐4초일반 알림
Long6초액션 가능
Persistent에러, 시스템

7.4 Specs

  • Background: neutral-800 #333333
  • Text: neutral-50 #FAFAFA
  • Action color: yellow-500 #FFDE36
  • Padding: 12/16
  • Radius: radius-md (12px)
  • Elevation: elevation-2
  • Animation: slide 200ms ease-out

7.5 원칙

  • 메시지 한 줄, 짧게
  • 한 화면에 Toast 1개
  • 에러는 Persistent
  • Modal 대체로 사용 X

8. Header (App Bar)

8.1 Anatomy

Leading + Title + Trailing

8.2 Variants (5)

  • Default — 일반 페이지 (Back + Title + Action)
  • Home — 메인 (Logo + Search + Bell) · LaundryGothic OK
  • Search — 검색바 내장
  • Large — 큰 제목 (heading-lg) · iOS 스타일
  • Transparent — 이미지 위에 떠있음 (매장 상세)

8.3 Specs

  • Height: 56px (+ safe-area-top)
  • Background: white
  • Border bottom: 0.5px solid neutral-200
  • Padding: 0/16
  • Title: heading-sm (18px SemiBold), 중앙 정렬
  • Icon: 22-24px, button: 44×44

8.4 원칙

  • 제목 중앙 정렬 (한국 앱 표준)
  • Trailing 액션 최대 2개
  • Back 위치 절대 변경 X
  • 긴 제목은 말줄임

9. Tab Bar (Bottom Navigation)

9.1 YumYum 구성 (4 tabs)

홈 / 주문내역 / 즐겨찾기 / 마이냠냠

9.2 활성/비활성

StateIconLabel
ActiveFilled · neutral-800SemiBold 600 · neutral-800
InactiveOutline · neutral-400Medium 500 · neutral-500

9.3 Specs

  • Container height: 56px + safe-area-bottom
  • Background: white
  • Border top: 0.5px solid neutral-200
  • Tab padding: 6/0 (y/x), flex: 1
  • Icon: 22-24px
  • Label: label-sm (11-12px Medium)
  • Icon-Label gap: space-xs (4px)

9.4 변형

  • With Badge — 카운트 (검정 원) 또는 점 (노랑)

9.5 원칙

  • 3~5개 탭
  • 아이콘 + 라벨 함께
  • 활성 시 filled 아이콘
  • 위치 절대 변경 X
  • Safe area 침범 X

10. Restaurant Card (Specialized)

10.1 구성

  • Media (140-160px, 매장 이미지)
  • Top-left badge (긴급 알림, Strong variant)
  • Top-right action (즐겨찾기, 반투명 흰 원)
  • Content: 매장명 + Brand badge → 평점/픽업시간/거리 → 카테고리 태그

10.2 사용 토큰

  • Card 컴포넌트 (Vertical layout) 베이스
  • Brand badge: yellow-500 (베스트, 추천 등)
  • Strong badge: neutral-800 (긴급)
  • 평점 아이콘: yellow-500 star-filled
  • 숫자: tabular-nums

11. Menu Item Card (Specialized)

11.1 Layout (2)

  • Horizontal — 이미지 옆 + 콘텐츠 (리스트)
  • Vertical — 이미지 위 + 콘텐츠 (그리드)

11.2 구성

  • 메뉴 이미지
  • (옵션) 강조 뱃지 (HOT, NEW)
  • 메뉴명 (label, 14px Medium)
  • 설명 (caption, 12px Regular)
  • 가격 (강조) (label-lg or heading-md, 600 SemiBold, tabular-nums)

11.3 원칙

가격이 시각적 주인공. 다른 요소보다 weight ↑


12. Price Display (Specialized)

12.1 Variants (3)

  • 기본heading-md SemiBold + tabular-nums
  • 할인 가격 — 원가(line-through, neutral-400) + 할인율 + 현재가
  • 빅 넘버display-sm 또는 display (Hero, 빅 절약 금액)

12.2 필수 규칙

css
font-variant-numeric: tabular-nums;

숫자 폭이 균일해야 정렬이 맞음 — 앱의 신뢰감과 직결

12.3 단위 처리

"22,000원"에서 "원"은 살짝 작게 (font-size 0.6배) 가능 — 숫자 강조


13. Quantity Stepper (Specialized)

13.1 Specs

  • Container: height 36px, radius-sm (8px), 0.5px neutral-300 border
  • Button: 36×36 (터치 영역)
  • Icon: 18px (minus, plus)
  • Number: label (14-15px Medium), tabular-nums, width 40px center

13.2 States

  • Default: 양쪽 버튼 클릭 가능
  • Minimum (보통 1): minus 버튼 disabled (neutral-300)
  • Maximum: plus 버튼 disabled

13.3 사용처

  • 메뉴 옵션 (수량 선택)
  • 장바구니 (수량 변경)
  • 옵션 추가 (개수 조절)

14. Order Summary (Specialized)

14.1 구조

결제 정보 (heading-sm)
─────────────────────────
상품 금액                22,000원
─────────────────────────
옵션 추가                +1,000원
─────────────────────────
쿠폰 할인                -3,000원
─────────────────────────
총 결제 금액           20,000원  (강조!)

14.2 디테일

  • 항목 사이: 0.5px neutral-200 divider
  • 항목 텍스트: body-sm (14px Regular, neutral-700)
  • 항목 금액: body-sm (tabular-nums!)
  • 합계 라벨: label (14px Medium, neutral-800)
  • 합계 금액: heading-md (20px Bold, tabular-nums) ← 강조

14.3 원칙

  • 다른 항목은 차분, 합계만 굵게
  • 모든 숫자 tabular-nums (정렬!)
  • +/- 부호로 가/감 명시

15. 컴포넌트 조합 매트릭스

컴포넌트Color 토큰Typo 토큰Spacing 토큰Radius
Button (M)yellow-500/600/700 + neutral-800label10/16radius-sm
Input (M)neutral-300/800 + yellow-100 ringbody-sm10/12radius-sm
Badgeneutral-100/700label-sm (11)3/8radius-xs
Tagneutral-100/700label-sm (12)4/10radius-full
Cardwhite + neutral-200heading-sm + body-smspace-lg padding, space-md gapradius-md
List Itemwhite + neutral-200label or body-sm12/16 padding
Bottom Sheetwhite + dimheading-smspace-xlradius-xl (상단)
Toastneutral-800 + neutral-50body-sm12/16radius-md
Headerwhite + neutral-200heading-sm0/16
Tab Barwhite + neutral-200label-sm6/0

16. 다음 단계

13개 핵심 컴포넌트가 완성됨. 이제 디자인 시스템 v2가 실제 화면 디자인에 사용 가능한 단계.

남은 후속 작업:

  • [ ] Stratis UI Icons — Stratis UI Icons 사이즈/색상 가이드 (16 / 20 / 24)
  • [ ] Motion — 애니메이션 duration, easing (transition, slide, fade)
  • [ ] Grid System — 모바일 4-column 그리드 (필요 시)
  • [ ] Empty/Loading/Error States — 빈 상태, 로딩, 에러 화면 가이드
  • [ ] Accessibility Guidelines — 접근성 체크리스트

17. 디자인 시스템 v2 — 전체 산출물

📁 디자인 시스템/
├── 🎨 YumYum 컬러 시스템 v2.md
├── ✍️ YumYum 타이포그래피 시스템 v2.md
├── 📐 YumYum 스페이싱 시스템 v2.md
├── ☁️ YumYum 엘리베이션 시스템 v2.md
└── 🧩 YumYum 컴포넌트 시스템 v2.md   ← 이 문서

이 문서는 살아있는 문서입니다. 컴포넌트는 사용하면서 발견되는 새로운 케이스에 맞춰 업데이트해주세요.

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