당근 제품을 위한 통합 디자인 언어
동네의 거래와 이야기를 가볍게 연결하는 화면.
SEED 는 색을 팔레트가 아니라 역할로 부르고, 브랜드 주황은 꼭 필요한 곳에만 쓴다. 아래는 그 토큰과 컴포넌트를 이 카탈로그가 재현한 화면이다.
지금 확인하면 계속 이웃 목록을 볼 수 있어요.
이웃
SEED 컴포넌트를 앱 표면의 우선순위대로 배치했다.
Action Button, List, Top Navigation, Bottom Sheet, Text Field, Manner Temp에 더해 상태, 입력, 로딩, 결과, 오버레이 컴포넌트를 앱 표면의 우선순위에 맞춰 배치했다. Brand 컬러는 꼭 필요한 곳에만 사용한다.
Top Navigation root / standard
Action Button hierarchy
List Item prefix / title / detail / suffix
Bottom Sheet floating layer
거래 방법을 선택해 주세요
현재 화면 맥락은 유지하면서 필요한 액션만 하단 레이어에 모읍니다.
Text Field enabled / error
Manner Temp trust signal
1단계는 중립 회색, 6단계가 브랜드 주황, 10단계가 적색이다.
Status & Notification badge / banner / snackbar
Selection Controls tabs / switch / input
Loading & Result skeleton / progress / empty
검색어를 바꾸거나 동네 범위를 넓혀보세요.
Community Surface avatar / reaction / image frame
당근이웃
36.8°C
Manner Temp Badge
Overlay Patterns alert dialog / menu sheet / help bubble
토큰을 적용하면 표면이 이렇게 정해진다.
아래 값은 모두 이 항목의 design.md 에서 그대로 읽어 렌더한 것이다. 색은 팔레트가 아니라 역할 이름으로 부르고, 테마 전환은 역할이 아니라 그 역할이 가리키는 팔레트 단계가 뒤집히며 일어난다.
Color roles bg / fg / stroke
Type scale size / line-height
Spacing 4px 배수 사다리
Radius 2 – 24px + full
Elevation shadow s1 – s3
다크에서는 같은 단계의 알파가 크게 올라간다 — 어두운 배경에서 같은 농도로는 층이 보이지 않기 때문이다.
Motion 0.2초 경계
마이크로 모션은 0.2초 이하, 매크로 모션은 0.2초 초과로 나뉜다.
Gradient magic 계열
입체감과 AI 기능 표현에 쓰는 별도 축이다.
구현 메모는 토큰 이름과 컴포넌트 위계를 함께 남긴다.
프리뷰의 목적은 장식이 아니라 실제 화면에서 반복될 수 있는 컴포넌트 조합을 보여주는 것이다.
ActionButton props="size / layout / variant / state / width / hierarchy" cta="bg.brand-solid + fg.neutral-inverted + rounded.full" fullWidth="flexGrow — 공식 API 에 fill 속성은 없다" brand="꼭 필요한 곳에만"
ListItem anatomy="prefix / title / detail / suffix" background="컴포넌트 자체에는 지정돼 있지 않다" grouping="List Header 로 묶는다" nesting="중첩 표면은 concentric radius"
BottomSheet anatomy="backdrop / container / header / close / footer" handle="노출 여부를 속성으로 고른다" limits="최대 너비 · 최대 높이 · snap point · 키보드 대응이 규정된다" context="현재 맥락을 유지한 채 추가 정보나 액션 목록을 제공"
Color fg="fg.neutral / fg.neutral-muted" bg="bg.layer-default / bg.layer-floating" brand="꼭 필요한 곳에만"