Skip to content

그림자

진행 중 (Shadow tokens — work in progress)

  • 그림자 recipe 5단계(--ds-shadow-xs/sm/md/lg/xl)를 box-shadow로 직접 적용합니다.
  • 칩 전용(--ds-shadow-chip-*), 투명 표면용 drop-shadow(--ds-drop-shadow-popover/modal)는 별도 토큰.
  • Figma Variables엔 그림자 recipe가 전파되지 않습니다 (--ds-shadow-color만 변수화). box-shadow는 Figma 변수로 1:1 매핑이 어렵습니다.
  • 자세한 진행 현황은 목표 & 로드맵 참고.
규칙 (강제) · 코딩 에이전트용 — 사람은 접힌 채로 두어도 됩니다

그림자(elevation) 강제 규칙. 상세·값·미리보기는 아래 본문.

  • 인라인 box-shadow 금지. box-shadow: 0 4px 6px rgba(...) 처럼 직접 쓰지 말고 DS 토큰을 쓸 것 — box-shadow: var(--ds-shadow-md).
  • elevation 5단계--ds-shadow-xs(미세 단차: input·작은 칩) · --ds-shadow-sm(카드 rest) · --ds-shadow-md(hover·dropdown) · --ds-shadow-lg(popover·메뉴) · --ds-shadow-xl(모달·최상위 표면).
  • 둥근/투명 표면은 box-shadow가 아니라 filter — popover·모달 컨테이너처럼 사각 박스가 아닌 표면은 filter: var(--ds-drop-shadow-popover) / var(--ds-drop-shadow-modal).
  • 칩 전용: --ds-shadow-chip-rest / --ds-shadow-chip-hover.
  • 그림자 색 단일 기준은 --ds-shadow-color(rgb(7 7 7 / 6%)).
  • 시맨틱 토큰은 아직 없음(--ds-shadow-card/overlay 미정의) — 임의로 만들지 말고 xs~xl 중 용도에 맞게 선택.

단일 출처

packages/static/styles/design-system.css

모든 그림자 토큰은 위 파일의 한 블록(Shadow recipes)에서 관리합니다.

1. Elevation recipe (--ds-shadow-*)

Tailwind 스케일에 맞춘 5단계 + 프로젝트 고유값. 인라인 box-shadow: 0 4px 6px rgba(...) 금지 — 아래 토큰을 사용하세요.

Token용도미리보기
--ds-shadow-xs0 1px 2px rgba(0,0,0,0.1)미세 단차 (input·작은 칩)
--ds-shadow-sm0 1px 2px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.1)카드 rest
--ds-shadow-md0 4px 6px -1px rgba(0,0,0,0.1)hover·dropdown
--ds-shadow-lg0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)popover·메뉴
--ds-shadow-xl0 18px 36px -12px rgba(0,0,0,0.28)모달·최상위 표면

2. 칩 전용 (--ds-shadow-chip-*)

작은 칩/태그의 1px border-shadow.

Token용도
--ds-shadow-chip-rest0 1px 0 rgba(15,15,15,0.02)칩 기본
--ds-shadow-chip-hover0 1px 2px rgba(15,15,15,0.06)칩 hover

3. 투명 표면용 drop-shadow (--ds-drop-shadow-*)

box-shadow는 사각형 박스에만 적용되므로, 둥근/투명 표면(popover·모달 컨테이너)에는 filter: var(--ds-drop-shadow-*)를 사용합니다.

Token
--ds-drop-shadow-popoverdrop-shadow(0 2px 2px rgba(7,7,7,0.06)) drop-shadow(0 0 2px rgba(7,7,7,0.06))
--ds-drop-shadow-modaldrop-shadow(0 0 1px rgba(7,7,7,0.06)) drop-shadow(0 4px 4px rgba(7,7,7,0.06)) drop-shadow(0 4px 8px rgba(7,7,7,0.06))

보조 토큰 --ds-shadow-color: rgb(7 7 7 / 6%) — 그림자 색의 단일 기준값(Figma shadow-color 변수로 전파).

사용 우선순위

  1. DS 그림자 토큰box-shadow: var(--ds-shadow-md) / 투명 표면은 filter: var(--ds-drop-shadow-popover)
  2. 하드코딩 금지box-shadow: 0 4px 6px rgba(0,0,0,0.1)사용하지 마세요 (디자인 토큰 규칙 위반)

Tailwind utility 매핑

NotificationBell 등에서 쓰던 shadow-xlshadow-popover로 토큰화하는 등, 앱별로 Tailwind 그림자 utility를 DS 토큰으로 교체하는 작업이 진행 중입니다.

검토 필요 사항

  • 🟡 Tailwind utility ↔ DS 토큰 매핑 미완: spacing·opacity처럼 @theme에서 --shadow-*를 DS 토큰으로 직접 연결하면 shadow-md utility가 자동으로 DS 그림자를 참조하게 됨. 현재는 일부만 수동 교체.
  • 🟡 시맨틱 레벨 정의: --ds-shadow-card, --ds-shadow-overlay 같은 의미 기반 토큰이 없어 컴포넌트마다 xs/sm/md를 직접 선택.
  • 🟢 Figma 전파: box-shadow recipe는 Figma 변수 모델과 맞지 않아 미전파 — --ds-shadow-color만 변수화. 현 상태 유지가 합리적.

목표 & 로드맵

항목현재목표
Elevation recipe (5단계)✅ 정의 완료유지
칩/ drop-shadow 토큰✅ 정의 완료유지
Tailwind shadow-* ↔ DS 토큰 매핑🟡 일부 수동@theme 매핑으로 자동화
시맨틱 그림자 토큰🔴 미정의--ds-shadow-card/overlay 등 정의
컴포넌트별 elevation 가이드🔴 미작성카드/드롭다운/모달별 권장 단계표

변경 이력

날짜내용
2026-06-18그림자 문서 신규 작성 — --ds-shadow-xs~xl recipe + 칩/ drop-shadow 토큰표·미리보기, Figma 비전파 사유 명시