토큰은 "#5B5BF7" 같은 색상 값 자체가 아니라 그 값에 붙인 이름, 예를 들어 `color.accent.default`입니다. 컴포넌트는 값이 아니라 이름을 참조하기 때문에, 토큰의 값 하나만 바꾸면 그 이름을 쓰는 버튼·링크·칩·아바타가 전부 동시에 바뀝니다.
토큰에는 계층이 있습니다. 기본(primitive) 토큰은 `blue-500` 같은 원시 값이고, 의미(semantic) 토큰은 `color.accent`처럼 "무엇에 쓰는가"를 담아 기본 토큰을 가리킵니다. 컴포넌트는 항상 의미 토큰을 참조해야, 나중에 브랜드 컬러가 바뀌어도 컴포넌트 코드는 그대로 둔 채 의미 토큰이 가리키는 기본 토큰만 바꾸면 됩니다.
라이트/다크 모드, 브랜드별 테마도 결국 같은 의미 토큰 이름에 다른 값 집합을 꽂아 넣는 것입니다. W3C Design Tokens Community Group이 도구 간 호환을 위한 공통 JSON 포맷을 정의하고 있습니다.
언제 쓰나
색상·간격을 코드 곳곳에 하드코딩된 값으로 흩어놓지 않고, 다크 모드·리브랜딩·멀티 브랜드를 한 곳에서 바꾸고 싶을 때 도입합니다.