Colors
Stable색에 역할을 부여해 일관되고 명확한 경험을 만듭니다.
Overview
참고 저장소의 site 토큰 이름과 값을 기준으로 합니다. Gray, Blue, Red, Green, Orange 원시 팔레트에 텍스트·배경·경계·아이콘·브랜드 역할을 연결합니다.
Primitive values.
Semantic meaning.
Semantic meaning.
Primitive palette
원본 Primitive 팔레트 전체입니다. 스와치와 표시 값은 실제 CSS 변수를 사용합니다.
gray
gray-0
…gray-50
…gray-100
…gray-200
…gray-300
…gray-400
…gray-500
…gray-600
…gray-700
…gray-800
…gray-900
…blue
blue-50
…blue-400
…blue-500
…blue-600
…blue-logo
…red
red-50
…red-400
…red-500
…red-600
…green
green-50
…green-500
…orange
orange-50
…orange-500
…Semantic colors
색의 원시 값과 역할 이름을 분리합니다. 예를 들어 text/point는 Red 500, text/link는 Blue 500입니다.
| Token | 정의 / 매핑 | 현재 값 |
|---|---|---|
--site-text-primary | var(--site-gray-900) | … |
--site-text-body | var(--site-gray-800) | … |
--site-text-secondary | var(--site-gray-700) | … |
--site-text-tertiary | var(--site-gray-600) | … |
--site-text-muted | var(--site-gray-500) | … |
--site-text-disabled | var(--site-gray-400) | … |
--site-text-point | var(--site-red-500) | … |
--site-text-link | var(--site-blue-500) | … |
--site-text-on-image | var(--site-gray-0) | … |
--site-text-on-image-sub | var(--site-gray-200) | … |
--site-text-on-solid | var(--site-gray-0) | … |
--site-text-on-disabled | var(--site-gray-500) | … |
--site-text-success | var(--site-green-500) | … |
--site-text-warning | var(--site-orange-500) | … |
--site-text-error | var(--site-red-500) | … |
--site-bg-base | var(--site-gray-0) | … |
--site-bg-surface-light | var(--site-gray-50) | … |
--site-bg-main | var(--site-gray-100) | … |
--site-bg-promo | var(--site-blue-500) | … |
--site-bg-disabled | var(--site-gray-300) | … |
--site-bg-success-tint | var(--site-green-50) | … |
--site-bg-warning-tint | var(--site-orange-50) | … |
--site-bg-error-tint | var(--site-red-50) | … |
--site-bg-info-tint | var(--site-blue-50) | … |
--site-line-light | var(--site-gray-200) | … |
--site-line-strong | var(--site-gray-300) | … |
--site-line-heading | var(--site-gray-900) | … |
--site-line-on-image | var(--site-gray-0) | … |
--site-line-point | var(--site-red-500) | … |
--site-line-focus | var(--site-gray-900) | … |
--site-line-hover | var(--site-gray-400) | … |
--site-line-default | var(--site-gray-300) | … |
--site-line-error | var(--site-red-500) | … |
--site-line-checked | var(--site-gray-900) | … |
--site-line-accent | var(--site-blue-500) | … |
--site-icon-strong-color | var(--site-gray-900) | … |
--site-icon-default-color | var(--site-gray-600) | … |
--site-icon-muted-color | var(--site-gray-400) | … |
--site-icon-on-solid-color | var(--site-gray-0) | … |
--site-icon-point-color | var(--site-red-500) | … |
--site-brand-logo | var(--site-blue-logo) | … |
--site-overlay-scrim | rgb(33 33 33 / 60%) | … |
Token hierarchy
PRIMITIVE
--site-gray-0…SEMANTIC
--site-text-on-solid단색 배경 위 텍스트COMPONENT
--site-button-solid-default-textSolid 레이블TSX / CSS
/* Primitive */
--site-gray-0: #ffffff;
/* Semantic */
--site-text-on-solid: var(--site-gray-0);
/* Component */
--site-button-solid-default-text: var(--site-text-on-solid);원본의 매핑을 보존합니다. 일부 Component 토큰은 Primitive를 직접 참조하며, Semantic의 레이아웃·효과 값 중에는 원시 수치도 있습니다. 계층을 맞추기 위해 이 매핑을 임의로 바꾸지 않습니다.
전체 Primitive 명세 · 110개
| Token | 정의 / 매핑 | 현재 값 |
|---|---|---|
--site-font-sans | var(--font-pretendard), system-ui, sans-serif | … |
--site-size-40 | 40px | … |
--site-size-36 | 36px | … |
--site-size-32 | 32px | … |
--site-size-30 | 30px | … |
--site-size-28 | 28px | … |
--site-size-26 | 26px | … |
--site-size-24 | 24px | … |
--site-size-22 | 22px | … |
--site-size-20 | 20px | … |
--site-size-18 | 18px | … |
--site-size-17 | 17px | … |
--site-size-16 | 16px | … |
--site-size-15 | 15px | … |
--site-size-14 | 14px | … |
--site-size-13 | 13px | … |
--site-size-12 | 12px | … |
--site-size-11 | 11px | … |
--site-fw-700 | 700 | … |
--site-fw-600 | 600 | … |
--site-fw-500 | 500 | … |
--site-fw-400 | 400 | … |
--site-lh-130 | 1.3 | … |
--site-lh-150 | 1.5 | … |
--site-gray-0 | #ffffff | … |
--site-gray-50 | #fafafa | … |
--site-gray-100 | #f5f5f5 | … |
--site-gray-200 | #eeeeee | … |
--site-gray-300 | #e0e0e0 | … |
--site-gray-400 | #bdbdbd | … |
--site-gray-500 | #9e9e9e | … |
--site-gray-600 | #757575 | … |
--site-gray-700 | #616161 | … |
--site-gray-800 | #424242 | … |
--site-gray-900 | #212121 | … |
--site-blue-50 | #e3f2fd | … |
--site-blue-400 | #33a9ed | … |
--site-blue-500 | #0094e9 | … |
--site-blue-600 | #0087d4 | … |
--site-blue-logo | #4093df | … |
--site-red-50 | #ffebee | … |
--site-red-400 | #f86363 | … |
--site-red-500 | #f43c3c | … |
--site-red-600 | #de3737 | … |
--site-green-50 | #e8f5e9 | … |
--site-green-500 | #4caf50 | … |
--site-orange-50 | #fff8e1 | … |
--site-orange-500 | #f9a825 | … |
--site-space-0 | 0px | … |
--site-space-2 | 2px | … |
--site-space-4 | 4px | … |
--site-space-8 | 8px | … |
--site-space-12 | 12px | … |
--site-space-14 | 14px | … |
--site-space-16 | 16px | … |
--site-space-18 | 18px | … |
--site-space-20 | 20px | … |
--site-space-24 | 24px | … |
--site-space-28 | 28px | … |
--site-space-32 | 32px | … |
--site-space-40 | 40px | … |
--site-space-50 | 50px | … |
--site-space-60 | 60px | … |
--site-space-80 | 80px | … |
--site-height-24 | 24px | … |
--site-height-28 | 28px | … |
--site-height-32 | 32px | … |
--site-height-36 | 36px | … |
--site-height-40 | 40px | … |
--site-height-44 | 44px | … |
--site-height-48 | 48px | … |
--site-height-52 | 52px | … |
--site-height-56 | 56px | … |
--site-radius-0 | 0px | … |
--site-radius-2 | 2px | … |
--site-radius-4 | 4px | … |
--site-radius-6 | 6px | … |
--site-radius-8 | 8px | … |
--site-radius-10 | 10px | … |
--site-radius-16 | 16px | … |
--site-radius-full | 999px | … |
--site-border-1 | 1px | … |
--site-border-2 | 2px | … |
--site-border-3 | 3px | … |
--site-icon-12 | 12px | … |
--site-icon-14 | 14px | … |
--site-icon-18 | 18px | … |
--site-icon-24 | 24px | … |
--site-icon-36 | 36px | … |
--site-icon-48 | 48px | … |
--site-stroke-1 | 1 | … |
--site-stroke-1-25 | 1.25 | … |
--site-stroke-1-5 | 1.5 | … |
--site-stroke-2 | 2 | … |
--site-touch-32 | 32px | … |
--site-touch-44 | 44px | … |
--site-touch-48 | 48px | … |
--site-opacity-40 | 0.4 | … |
--site-opacity-60 | 0.6 | … |
--site-opacity-80 | 0.8 | … |
--site-container-1280 | 1280px | … |
--site-grid-columns-12 | 12 | … |
--site-grid-columns-8 | 8 | … |
--site-grid-columns-4 | 4 | … |
--site-breakpoint-360 | 360px | … |
--site-breakpoint-767 | 767px | … |
--site-breakpoint-768 | 768px | … |
--site-breakpoint-1024 | 1024px | … |
--site-breakpoint-1280 | 1280px | … |
--site-breakpoint-1920 | 1920px | … |
전체 Semantic 명세 · 153개 (효과·레이아웃 포함)
| Token | Mobile | Tablet ≥768 | Desktop ≥1280 | 현재 값 |
|---|---|---|---|---|
--site-tit-display-hero | 30px | 36px | 40px | … |
--site-tit-main-page | 26px | 30px | 32px | … |
--site-tit-page-title | 22px | 26px | 28px | … |
--site-tit-section-title | 18px | 22px | 24px | … |
--site-tit-component-header | 15px | 17px | 18px | … |
--site-tit-banner | 26px | 28px | 28px | … |
--site-tit-promo-bar | 18px | 20px | 20px | … |
--site-tit-card-title | 15px | 16px | 16px | … |
--site-tit-deal-card | 18px | 24px | 24px | … |
--site-txt-body-main | 13px | 14px | 14px | … |
--site-txt-body-sub | 12px | 13px | 13px | … |
--site-txt-caption | 11px | 12px | 12px | … |
--site-txt-desc | 14px | 14px | 14px | … |
--site-txt-banner-sub | 14px | 14px | 14px | … |
--site-nav-menu | 14px | 16px | 16px | … |
--site-nav-tab-label | 11px | 11px | 11px | … |
--site-nav-util | 16px | 16px | 16px | … |
--site-nav-mega-cat | 14px | 14px | 14px | … |
--site-nav-mega-group | 16px | 16px | 16px | … |
--site-nav-mega-item | 14px | 14px | 14px | … |
--site-nav-breadcrumb | 13px | 13px | 13px | … |
--site-price-main | 18px | 18px | 18px | … |
--site-price-original | 14px | 14px | 14px | … |
--site-price-convert | 13px | 13px | 13px | … |
--site-badge-tag | 13px | 13px | 13px | … |
--site-card-compact-title | 14px | 14px | 14px | … |
--site-tab-item | 14px | 14px | 14px | … |
--site-form-label | 13px | 13px | 13px | … |
--site-sp-3xs | 2px | 2px | 2px | … |
--site-sp-2xs | 4px | 4px | 4px | … |
--site-sp-xs | 8px | 8px | 8px | … |
--site-sp-sm | 12px | 14px | 16px | … |
--site-sp-md | 16px | 18px | 20px | … |
--site-sp-lg | 24px | 24px | 24px | … |
--site-sp-xl | 28px | 32px | 32px | … |
--site-sp-2xl | 32px | 40px | 40px | … |
--site-sp-3xl | 40px | 50px | 60px | … |
--site-sp-4xl | 80px | 80px | 80px | … |
--site-gap-xxs | 2px | 2px | 2px | … |
--site-gap-xs | 4px | 4px | 4px | … |
--site-gap-sm | 8px | 8px | 8px | … |
--site-gap-md | 12px | 12px | 12px | … |
--site-gap-lg | 14px | 14px | 16px | … |
--site-gap-xl | 16px | 20px | 24px | … |
--site-gap-xxl | 24px | 28px | 32px | … |
--site-gap-3xl | 40px | 40px | 40px | … |
--site-gap-4xl | 60px | 60px | 60px | … |
--site-gap-5xl | 80px | 80px | 80px | … |
--site-breakpoint-min | 360px | 768px | 1280px | … |
--site-breakpoint-max | 767px | 1024px | 1920px | … |
--site-container-max | 360px | 768px | 1280px | … |
--site-margin-container | 16px | 24px | 0px | … |
--site-grid-card-4col | 302px | 302px | 302px | … |
--site-grid-card-3col | 227px | 227px | 227px | … |
--site-grid-card-1col | 328px | 328px | 328px | … |
--site-grid-card-2col | 156px | 156px | 156px | … |
--site-grid-desktop | 12 | 12 | 12 | … |
--site-grid-tablet | 8 | 8 | 8 | … |
--site-grid-mobile | 4 | 4 | 4 | … |
--site-text-primary | #212121 | #212121 | #212121 | … |
--site-text-body | #424242 | #424242 | #424242 | … |
--site-text-secondary | #616161 | #616161 | #616161 | … |
--site-text-tertiary | #757575 | #757575 | #757575 | … |
--site-text-muted | #9e9e9e | #9e9e9e | #9e9e9e | … |
--site-text-disabled | #bdbdbd | #bdbdbd | #bdbdbd | … |
--site-text-point | #f43c3c | #f43c3c | #f43c3c | … |
--site-text-link | #0094e9 | #0094e9 | #0094e9 | … |
--site-text-on-image | #ffffff | #ffffff | #ffffff | … |
--site-text-on-image-sub | #eeeeee | #eeeeee | #eeeeee | … |
--site-text-on-solid | #ffffff | #ffffff | #ffffff | … |
--site-text-on-disabled | #9e9e9e | #9e9e9e | #9e9e9e | … |
--site-text-success | #4caf50 | #4caf50 | #4caf50 | … |
--site-text-warning | #f9a825 | #f9a825 | #f9a825 | … |
--site-text-error | #f43c3c | #f43c3c | #f43c3c | … |
--site-bg-base | #ffffff | #ffffff | #ffffff | … |
--site-bg-surface-light | #fafafa | #fafafa | #fafafa | … |
--site-bg-main | #f5f5f5 | #f5f5f5 | #f5f5f5 | … |
--site-bg-promo | #0094e9 | #0094e9 | #0094e9 | … |
--site-bg-disabled | #e0e0e0 | #e0e0e0 | #e0e0e0 | … |
--site-bg-success-tint | #e8f5e9 | #e8f5e9 | #e8f5e9 | … |
--site-bg-warning-tint | #fff8e1 | #fff8e1 | #fff8e1 | … |
--site-bg-error-tint | #ffebee | #ffebee | #ffebee | … |
--site-bg-info-tint | #e3f2fd | #e3f2fd | #e3f2fd | … |
--site-line-light | #eeeeee | #eeeeee | #eeeeee | … |
--site-line-strong | #e0e0e0 | #e0e0e0 | #e0e0e0 | … |
--site-line-heading | #212121 | #212121 | #212121 | … |
--site-line-on-image | #ffffff | #ffffff | #ffffff | … |
--site-line-point | #f43c3c | #f43c3c | #f43c3c | … |
--site-line-focus | #212121 | #212121 | #212121 | … |
--site-line-hover | #bdbdbd | #bdbdbd | #bdbdbd | … |
--site-line-default | #e0e0e0 | #e0e0e0 | #e0e0e0 | … |
--site-line-error | #f43c3c | #f43c3c | #f43c3c | … |
--site-line-checked | #212121 | #212121 | #212121 | … |
--site-line-accent | #0094e9 | #0094e9 | #0094e9 | … |
--site-icon-strong-color | #212121 | #212121 | #212121 | … |
--site-icon-default-color | #757575 | #757575 | #757575 | … |
--site-icon-muted-color | #bdbdbd | #bdbdbd | #bdbdbd | … |
--site-icon-on-solid-color | #ffffff | #ffffff | #ffffff | … |
--site-icon-point-color | #f43c3c | #f43c3c | #f43c3c | … |
--site-icon-3xs-size | 12px | 12px | 12px | … |
--site-icon-3xs-stroke | 1 | 1 | 1 | … |
--site-icon-2xs-size | 14px | 14px | 14px | … |
--site-icon-2xs-stroke | 1.25 | 1.25 | 1.25 | … |
--site-icon-xs-size | 18px | 18px | 18px | … |
--site-icon-xs-stroke | 1.25 | 1.25 | 1.25 | … |
--site-icon-sm-size | 24px | 24px | 24px | … |
--site-icon-sm-stroke | 1.5 | 1.5 | 1.5 | … |
--site-icon-md-size | 36px | 36px | 36px | … |
--site-icon-md-stroke | 2 | 2 | 2 | … |
--site-icon-lg-size | 48px | 48px | 48px | … |
--site-icon-lg-stroke | 2 | 2 | 2 | … |
--site-icon-3xs-svg-stroke | 26.667px | 26.667px | 26.667px | … |
--site-icon-2xs-svg-stroke | 28.571px | 28.571px | 28.571px | … |
--site-icon-xs-svg-stroke | 22.222px | 22.222px | 22.222px | … |
--site-icon-sm-svg-stroke | 20px | 20px | 20px | … |
--site-icon-md-svg-stroke | 17.778px | 17.778px | 17.778px | … |
--site-icon-lg-svg-stroke | 13.333px | 13.333px | 13.333px | … |
--site-brand-logo | #4093df | #4093df | #4093df | … |
--site-overlay-scrim | rgb(33 33 33 / 60%) | rgb(33 33 33 / 60%) | rgb(33 33 33 / 60%) | … |
--site-font-base | --font-pretendard, system-ui, sans-serif | --font-pretendard, system-ui, sans-serif | --font-pretendard, system-ui, sans-serif | … |
--site-fw-heading | 700 | 700 | 700 | … |
--site-fw-strong | 600 | 600 | 600 | … |
--site-fw-title | 500 | 500 | 500 | … |
--site-fw-body | 400 | 400 | 400 | … |
--site-lh-tight | 1.3 | 1.3 | 1.3 | … |
--site-lh-base | 1.5 | 1.5 | 1.5 | … |
--site-media-play-button | 80px | 80px | 80px | … |
--site-control-box | 20px | 20px | 20px | … |
--site-control-mark | 12px | 12px | 12px | … |
--site-radius-square | 0px | 0px | 0px | … |
--site-radius-badge | 2px | 2px | 2px | … |
--site-radius-button | 4px | 4px | 4px | … |
--site-radius-input | 4px | 4px | 4px | … |
--site-radius-card | 8px | 8px | 8px | … |
--site-radius-modal | 16px | 16px | 16px | … |
--site-radius-chip | 999px | 999px | 999px | … |
--site-radius-avatar | 999px | 999px | 999px | … |
--site-touch-compact | 32px | 32px | 32px | … |
--site-touch-min | 44px | 44px | 44px | … |
--site-touch-comfortable | 48px | 48px | 48px | … |
--site-border-default | 1px | 1px | 1px | … |
--site-border-divider | 1px | 1px | 1px | … |
--site-border-focus | 1px | 1px | 1px | … |
--site-border-tab-active | 2px | 2px | 2px | … |
--site-opacity-disabled | 0.4 | 0.4 | 0.4 | … |
--site-opacity-dim | 0.6 | 0.6 | 0.6 | … |
--color-primary | #212121 | #212121 | #212121 | … |
--site-shadow-header | 0 1px 0 0 rgb(0 0 0 / 6%) | 0 1px 0 0 rgb(0 0 0 / 6%) | 0 1px 0 0 rgb(0 0 0 / 6%) | … |
--shadow-sm | 0 1px 2px 0 rgb(0 0 0 / 6%) | 0 1px 2px 0 rgb(0 0 0 / 6%) | 0 1px 2px 0 rgb(0 0 0 / 6%) | … |
--shadow-md | 0 4px 12px 0 rgb(0 0 0 / 8%) | 0 4px 12px 0 rgb(0 0 0 / 8%) | 0 4px 12px 0 rgb(0 0 0 / 8%) | … |
--shadow-lg | 0 8px 24px 0 rgb(0 0 0 / 12%) | 0 8px 24px 0 rgb(0 0 0 / 12%) | 0 8px 24px 0 rgb(0 0 0 / 12%) | … |
--site-shadow-quick-menu | 0 0 50px 0 rgb(0 0 0 / 10%) | 0 0 8px 0 rgb(0 0 0 / 6%) | 0 0 8px 0 rgb(0 0 0 / 6%) | … |
--site-scrim-banner-bottom | linear-gradient( to bottom, rgb(33 33 33 / 0%) 30%, rgb(33 33 33 / 80%) 100% ) | linear-gradient( to bottom, rgb(33 33 33 / 0%) 30%, rgb(33 33 33 / 80%) 100% ) | linear-gradient( to bottom, rgb(33 33 33 / 0%) 30%, rgb(33 33 33 / 80%) 100% ) | … |
Guidelines
- 화면에서는 의미에 맞는 Semantic 이름을 우선 사용합니다.
- 원본 팔레트를 임의로 어둡게 보정하지 않습니다. text/link·point·상태 색상의 작은 텍스트 사용은 배경과의 대비를 별도로 확인합니다.
- 색상 외에 레이블과 아이콘으로 오류·선택 상태를 함께 전달합니다.
- 문서 UI와 실제 Button 모두 같은 site 토큰을 참조합니다.