Skip to content

YumYum 디자인 시스템 — 컬러 토큰 v3.1

냠냠픽업 디자인 시스템 컬러 가이드 작성일: 2026-05-13 최종 갱신: 2026-05-18 v3.1 — Figma single source of truth(node 6972:8016) 정렬: Neutrals 200/600/700을 Figma 값(#EDEDED/#777777/#464646)으로 복귀. Notification/Alert HEX도 Figma neutral 값에 맞춰 갱신. 버전: v3.1 (cool gray v3 시리즈 + Figma sync) 진실의 원천: Figma YumYum-v1 / Design System (node 6972:8016)


1. 디자인 원칙

1.1 핵심 컨셉

  • 밝고 친근, 활기찬 식음료 픽업 서비스
  • Brand Yellow 하나로 강력하게 (멀티 컬러 브랜드 X)
  • 베이스는 심플하게, 이벤트는 풍성하게

1.2 컬러 사용 비율

  • Brand Yellow: 60% (주요 액션, 강조)
  • Neutrals: 30% (텍스트, 배경, 보더)
  • Secondary (Event): 10% (배너, 카테고리, 프로모션)

1.3 컬러 계층 (Tier)

Tier용도사용 빈도포함 토큰
Tier 1 — Base일상 화면 (주문, 결제, 메뉴)95%Brand Yellow + Neutrals + Notification
Tier 2 — Event이벤트, 프로모션, 시즌 캠페인5%Secondary Brand Colors

2. Tier 1 — Base Tokens

2.1 Brand Yellow (Primary)

브랜드 정체성의 핵심. 모든 주요 액션(CTA), 로고, 강조 영역에 사용. 기준 컬러: #FFDE36 — 디자이너 원안. 11단계 스케일은 이 값을 중심으로 균등 분포.

TokenHEX용도
yellow-50#FFFCE5페이지 배경 강조, 토스트 옅은 배경
yellow-100#FFF6B0알림 배경, 카드 hover 배경
yellow-200#FFEC80보더, 구분선 (옅은 강조)
yellow-300#FFE55Cdisabled 버튼, 보조 강조
yellow-400#FFE140호버 시 살짝 밝아지는 표현
yellow-500#FFDE36메인 브랜드 컬러 (CTA, 로고, 강조)
yellow-600#F2CC0F버튼 active(pressed) 상태
yellow-700#C8A607Banner pressed, 진한 강조
yellow-800#8E7505노란 배경 위 텍스트, 아이콘
yellow-900#5C4D03매우 진한 강조 텍스트
yellow-950#3A3001최강 강조 (거의 안 씀)
yellow-login#FFF4C9로그인 화면 배경 전용 (Figma Yellow/Login, yellow-50과 yellow-100 사이 톤)
yellow-banner#FFCC1F홈 배너 배경 전용 (Figma 5837:16428, yellow-500과 yellow-600 사이 톤)

📌 이전 기준값(#FFCC33)에서 #FFDE36으로 변경 (2026-05-14). 디자이너 원안 존중 + 더 임팩트 있는 CTA.

2.1.1 노란 CTA Interaction States ⭐ (2026-05-18 시스템화)

Brand 노란 버튼/CTA의 상태별 표준 — Tailwind filter(brightness/opacity) 절대 금지, yellow scale stop 한 단계씩 진하게 이동.

컴포넌트 기본색defaulthoveractivedisabled
yellow-500 (메인 CTA — 확인 버튼, 온보딩, access)yellow-500 #FFDE36yellow-banner #FFCC1Fyellow-600 #F2CC0Fyellow-100 + opacity-50
yellow-banner (홈 배너 등 정적 강조)yellow-banner #FFCC1Fyellow-600 #F2CC0Fyellow-700 #C8A607(해당 없음)

규칙

  • 각 상태는 정확히 한 단계씩 진해짐 (yellow-500 → banner → 600 → 700)
  • transition-colors 사용 (filter transition 금지)
  • 채도(saturation)는 그대로, 명도만 한 톤씩 내려가므로 brand 정체성 유지

Why: brightness-95 같은 filter는 RGB 전체를 어둡게 갉아먹어서 노란색이 탁한 카키처럼 보임. 같은 yellow scale 안에서 stop만 이동하면 brand 채도 유지 + 명확한 인터랙션 피드백.

2.2 Neutrals (Cool Gray · v3)

텍스트, 배경, 보더의 80%를 차지하는 핵심 토큰. 순수 중성 그레이(R=G=B) — 코니가 작업한 Bottom Tab Bar 색상 5개를 anchor로 잡고 균등 보간.

📌 2026-05-16 v3 변경: 기존 warm gray (R값 높음) → cool gray (R=G=B). 이유: 탭바 디자인이 cool gray로 진행되었고, Brand Yellow와의 대비도 더 잘 살아남.

TokenHEX용도
neutral-50#FAFAFA앱 전체 배경 (가장 연한 톤)
neutral-100#F7F7F7카드 배경, 입력창 배경, 호버 영역, 탭바 배경
neutral-200#EDEDED구분선, 보더, 비활성 배경, 탭바 보더, 카드 보더 (Figma Variables Neutral/200)
neutral-300#D4D4D4기본 보더, 입력창 테두리
neutral-400#B8B8B8placeholder, 비활성 텍스트
neutral-500#999999secondary 텍스트, 부가 설명, 탭바 비활성
neutral-600#777777caption, 보조 텍스트 (전체보기/별점/거리/시간 등) (Figma Variables Neutral/600)
neutral-700#464646본문 텍스트 (body), Badge 텍스트 (Figma Variables Neutral/700)
neutral-800#333333제목 (heading), 탭바 활성
neutral-900#222222강한 강조, 큰 제목, 탭바 활성 진한 톤
neutral-950#0A0A0A가장 진한 검정 (거의 안 씀)

⭐ = 코니가 작업한 Bottom Tab Bar에서 실제로 사용된 색상 (5개 anchor)

2.3 Notification (무채색 Semantic)

success/error/warning/info를 색이 아닌 아이콘 모양으로 구분. Neutrals 토큰을 재활용.

기본 알림 (Soft)

TokenHEX매핑
notification-bg#F7F7F7= neutral-100
notification-text#464646= neutral-700
notification-icon#333333= neutral-800
notification-border#EDEDED= neutral-200 (선택)

강한 알림 (High-emphasis)

정말 중요한 에러나 시스템 알림에만 사용.

TokenHEX매핑
alert-bg#333333= neutral-800
alert-text#FAFAFA= neutral-50
alert-icon#FAFAFA= neutral-50

의미별 아이콘 매핑 (Stratis UI Icons)

의미아이콘클래스명
Success✓ 체크 원ti-circle-check
Error× 엑스 원ti-circle-x
Warning△ 삼각 경고ti-alert-triangle
Infoi 인포 원ti-info-circle

2.4 Dim & Overlay (오버레이)

화면 위에 덮는 반투명 레이어. 모달 백드롭, 드로어 오버레이, 비활성 상태, 매장 카드 영업종료 표시 등에 사용.

Dark Dim (다크 오버레이 — 가장 빈번)

neutral-950 (#0A0A0A) 기반. 순수 중성 그레이라 깔끔하고 차분한 그림자 느낌.

TokenRGBA용도
dim-strongrgba(10, 10, 10, 0.7)풀스크린 모달 (집중도 ↑), 콘텐츠 숨김
dim-mediumrgba(10, 10, 10, 0.5)표준 모달 백드롭, 드로어
dim-softrgba(10, 10, 10, 0.3)옅은 dim, 툴팁 백드롭

Image Dim (이미지 위 오버레이 — 매장 카드 등)

매장 영업안함, 준비중, 임시휴무 등 이미지 위에 안내 텍스트를 올릴 때.

TokenRGBA용도
dim-imagergba(10, 10, 10, 0.55)영업안함, 임시휴무 매장 카드 (전체 dim)
dim-image-bottomlinear-gradient(transparent → rgba(13,12,10,0.7))카드 하단 텍스트 가독성 (그라데이션)
dim-image-softrgba(10, 10, 10, 0.35)약한 강조 (인기 매장 표시 등)

사용 예시 (매장 카드):

[음식 사진]
└─ 위에 dim-image 오버레이
   └─ 중앙에 흰 텍스트 "오늘 오후 03:00 오픈"

White Dim (라이트 오버레이)

흰 배경 위에 추가 dim이 필요할 때 (로딩, 셔터 효과 등).

TokenRGBA용도
dim-white-strongrgba(255, 255, 255, 0.85)강한 화이트 오버레이 (로딩 마스크)
dim-white-mediumrgba(255, 255, 255, 0.6)중간 셔터, 부분 가림
dim-white-softrgba(255, 255, 255, 0.3)가벼운 마스크

Opacity Tokens (요소 자체 투명도)

요소 전체에 투명도 적용 (배경 dim과 별개).

TokenValue용도
opacity-disabled0.4비활성화된 버튼, 입력창, 메뉴 항목
opacity-pressed0.85버튼 눌렀을 때 (active 피드백)
opacity-hover0.92호버 시 미세 변화
opacity-loading0.6로딩 중 흐려짐
opacity-skeleton0.08스켈레톤 베이스

Image Overlay 텍스트 가이드

dim 이미지 위 안내 텍스트 작성 시:

요소토큰 / 값
텍스트 색#FFFFFF (흰색)
폰트 weight600 (SemiBold) 이상
폰트 사이즈14-16px (카드 크기 대비)
배경 dimdim-image (rgba(13,12,10,0.55))
위치카드 중앙 정렬
추가 그림자 (선택)text-shadow: 0 1px 2px rgba(0,0,0,0.3)

상태별 권장 텍스트:

  • 영업안함 → "오늘 오후 03:00 오픈" (오픈 시각 명시)
  • 준비중 → "영업 준비중" (간결)
  • 임시휴무 → "임시 영업 중지" (정중)
  • 일시정지 → "잠시 후 다시 와주세요"

⚠️ dim 위 텍스트는 반드시 대비비 4.5:1 이상. dim 강도를 더 높이거나 (rgba 0.65) text-shadow 추가로 보완.


3. Tier 2 — Event Tokens (Secondary Brand Colors)

⚠️ 일상 화면에는 등장하지 않음. 이벤트, 프로모션, 시즌 캠페인, 배너에만 사용.

3.1 Pink — 이벤트, 프로모션, 혜택

신규 가입, 쿠폰, 사랑/혜택 관련 캠페인, 발렌타인 시즌

TokenHEX비고
pink-50#FDE7EF
pink-200#F8BBD0
pink-500#E97DA5
pink-800#8C3A5B
pink-onboarding#FF91C7온보딩 슬라이드 배경 전용 (Figma Onboarding_pink-). 일반 Pink 시리즈보다 hot pink

3.2 Green — 신선식품, 건강, 친환경

신선 식재료, 친환경 캠페인, 헬시 메뉴, 봄 시즌

TokenHEX비고
green-50#DCEDD6
green-200#A3D2A3
green-500#4A9B5A
green-800#2A5A33
green-onboarding#419A49온보딩 3 슬라이드 배경 전용 (Figma 5839:17013). 사장님+고객 듀오 슬라이드 — 일반 green-500과 다른 anchor

3.3 Brown — 카페, 디저트, 베이커리

카페·디저트 카테고리, 베이커리, 가을 시즌

TokenHEX비고
brown-50#F4E6D4
brown-200#D9B286
brown-500#B6764A
brown-800#6B4326
brown-onboarding#C48257온보딩 2 슬라이드 배경 전용 (Figma 5839:16943). 쿠모/도시락 슬라이드 — 일반 brown-500과 다른 anchor

3.4-1 Orange — 알림 액센트 (재방문, 마지막 로그인 등)

TokenHEX비고
orange-main#FF8500알림 토스트 배경 (Figma main_orange) — 부드러운 정보 알림 전용

3.4 Blue — 음료, 시원함, 쿨 메뉴

음료 카테고리, 여름 시즌, 쿨 메뉴, 시원함

TokenHEX
blue-50#DCEAEE
blue-200#A5CDD9
blue-500#5BA8C0
blue-800#2D5566

4. 사용 가이드라인

4.1 Tier 2 사용 원칙

  1. 한 화면에 Secondary 1~2개만 — 4개 다 쓰면 다시 알록달록해짐
  2. 주요 액션은 항상 Brand Yellow — 주문/결제 버튼은 Secondary로 바꾸지 말 것
  3. 배너, 카테고리 라벨, 일러스트에만 — 본문 텍스트 색으로 사용 금지
  4. 이벤트 종료 후 Tier 1으로 복귀 — 시즌별 운영

4.2 접근성 (WCAG 2.1 AA 기준)

텍스트 대비비 권장

  • 본문 텍스트: neutral-700 (#464646) on neutral-50 (#FAFAFA) → 9.1:1 ✅ AAA
  • 제목 텍스트: neutral-800 (#333333) on neutral-50 → 12.6:1 ✅ AAA
  • Brand Yellow 위 텍스트: 반드시 검정 계열 사용 (neutral-800 이상)
    • ❌ Yellow #FFDE36 + 흰색 텍스트 → 1.6:1 (불가)
    • ✅ Yellow #FFDE36 + 검정 #333333 → 12.4:1 / #222222 → 14.8:1
  • Secondary 500 위 텍스트: 흰색 사용 가능 (대비비 4.5 이상 검증됨)

색약/색맹 고려

  • Semantic 의미 전달은 반드시 아이콘과 함께 사용
  • 색만으로 의미 전달 금지 (예: 빨간 글씨로만 "에러" 표시 X)

4.3 다크모드 확장 (추후)

현재는 라이트모드 우선 설계. 다크모드 추가 시:

  • neutral-50neutral-900 같은 식으로 매핑
  • Brand Yellow는 다크모드에서도 동일 (#FFDE36)
  • 채도가 살짝 높은 노랑이라 어두운 배경에서도 잘 보임

5. CSS Variables 구현 예시

css
:root {
  /* Tier 1 — Brand Yellow (#FFDE36 기준, 디자이너 원안) */
  --color-yellow-50: #FFFCE5;
  --color-yellow-100: #FFF6B0;
  --color-yellow-200: #FFEC80;
  --color-yellow-300: #FFE55C;
  --color-yellow-400: #FFE140;
  --color-yellow-500: #FFDE36;
  --color-yellow-600: #F2CC0F;
  --color-yellow-700: #C8A607;
  --color-yellow-800: #8E7505;
  --color-yellow-900: #5C4D03;
  --color-yellow-950: #3A3001;

  /* Tier 1 — Neutrals (Cool Gray, R=G=B · v3) */
  --color-neutral-50: #FAFAFA;
  --color-neutral-100: #F7F7F7;  /* ⭐ 탭바 배경 anchor */
  --color-neutral-200: #EDEDED;  /* ⭐ 탭바 보더 anchor (Figma Variables Neutral/200) */
  --color-neutral-300: #D4D4D4;
  --color-neutral-400: #B8B8B8;
  --color-neutral-500: #999999;  /* ⭐ 탭바 비활성 anchor */
  --color-neutral-600: #777777;  /* Figma Variables Neutral/600 */
  --color-neutral-700: #464646;  /* Figma Variables Neutral/700 */
  --color-neutral-800: #333333;  /* ⭐ 탭바 활성 anchor */
  --color-neutral-900: #222222;  /* ⭐ 탭바 활성 진한 anchor */
  --color-neutral-950: #0A0A0A;

  /* Tier 1 — Semantic Aliases */
  --color-brand: var(--color-yellow-500);
  --color-brand-hover: var(--color-yellow-600);
  --color-brand-pressed: var(--color-yellow-700);

  --color-bg-page: var(--color-neutral-50);
  --color-bg-card: #FFFFFF;
  --color-bg-subtle: var(--color-neutral-100);

  --color-text-primary: var(--color-neutral-800);
  --color-text-body: var(--color-neutral-700);
  --color-text-secondary: var(--color-neutral-500);
  --color-text-placeholder: var(--color-neutral-400);

  --color-border-default: var(--color-neutral-300);
  --color-border-subtle: var(--color-neutral-200);

  /* Tier 1 — Notification */
  --color-notification-bg: var(--color-neutral-100);
  --color-notification-text: var(--color-neutral-700);
  --color-notification-icon: var(--color-neutral-800);
  --color-notification-border: var(--color-neutral-200);

  --color-alert-bg: var(--color-neutral-800);
  --color-alert-text: var(--color-neutral-50);
  --color-alert-icon: var(--color-neutral-50);

  /* Tier 1 — Dim & Overlay */
  --dim-strong:        rgba(10, 10, 10, 0.7);   /* 풀스크린 모달 */
  --dim-medium:        rgba(10, 10, 10, 0.5);   /* 표준 모달, 드로어 */
  --dim-soft:          rgba(10, 10, 10, 0.3);   /* 옅은 dim */
  --dim-image:         rgba(10, 10, 10, 0.55);  /* 영업안함 매장 카드 */
  --dim-image-soft:    rgba(10, 10, 10, 0.35);  /* 약한 강조 */
  --dim-white-strong:  rgba(255, 255, 255, 0.85); /* 로딩 마스크 */
  --dim-white-medium:  rgba(255, 255, 255, 0.6);
  --dim-white-soft:    rgba(255, 255, 255, 0.3);

  /* Opacity tokens */
  --opacity-disabled:  0.4;
  --opacity-pressed:   0.85;
  --opacity-hover:     0.92;
  --opacity-loading:   0.6;
  --opacity-skeleton:  0.08;

  /* Tier 2 — Pink */
  --color-pink-50: #FDE7EF;
  --color-pink-200: #F8BBD0;
  --color-pink-500: #E97DA5;
  --color-pink-800: #8C3A5B;

  /* Tier 2 — Green */
  --color-green-50: #DCEDD6;
  --color-green-200: #A3D2A3;
  --color-green-500: #4A9B5A;
  --color-green-800: #2A5A33;

  /* Tier 2 — Brown */
  --color-brown-50: #F4E6D4;
  --color-brown-200: #D9B286;
  --color-brown-500: #B6764A;
  --color-brown-800: #6B4326;

  /* Tier 2 — Blue */
  --color-blue-50: #DCEAEE;
  --color-blue-200: #A5CDD9;
  --color-blue-500: #5BA8C0;
  --color-blue-800: #2D5566;
}

6. Figma 변수 적용 방법

6.1 컬렉션 구조 권장

Yumyum/
├── 01-Primitives/        (원시 값. 직접 사용 X)
│   ├── Yellow/ (50~950)
│   ├── Neutral/ (50~950)
│   ├── Pink/ (50, 200, 500, 800)
│   ├── Green/ (50, 200, 500, 800)
│   ├── Brown/ (50, 200, 500, 800)
│   └── Blue/ (50, 200, 500, 800)

└── 02-Semantic/          (실제 사용. Primitives 참조)
    ├── brand/
    ├── bg/
    ├── text/
    ├── border/
    ├── notification/
    └── alert/

6.2 권장 Figma 플러그인

  • Tokens Studio — JSON으로 토큰 일괄 import/export 가능
  • Figma Variables — 기본 변수 기능 (단순한 경우 충분)

7. 기존 vs 신규 비교 요약

항목기존v2 (신규)
Brand ColorYellow + Orange + Black + Light Yellow (4개)Yellow 하나
Yellow Scale7단계, 어두운 톤 없음, 명도 순서 깨짐11단계, 균등 분포
Neutrals13단계, 중복 많음, 차가운 회색11단계, 균등, warm gray
Semantic7개 (의미 충돌, warning 없음)2개 알림 + 아이콘 매핑
Secondary6개 (톤 제각각, 용도 불명)4개, 톤 일관, 카테고리 매핑
사용 가이드없음Tier 1/2 명시, 비율 정의
접근성검증 안 됨WCAG AA 검증

8. 다음 단계 (After Color)

이 컬러 시스템이 자리잡으면, 다음 디자인 시스템 요소도 같은 방식으로 정리:

  • [ ] Typography — 한글 폰트(LaundryGothic), 영문 폰트, 크기 스케일
  • [ ] 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% 음식 픽업 서비스