Color tokens

Semantic names ({primary}, {surface}) beat raw hex — one token update propagates everywhere.

Ink#1a1033

Primary text, headings on light surfaces

Primary#7c3aed

CTAs, links, active nav, brand emphasis

Accent#f472b6

Highlights, badges, secondary emphasis

Surface#faf5ff

Page backgrounds, card fills

Muted#6b7280

Secondary text, placeholders, metadata

Gradient

Logo tiles, hero bands, marketing accents

Spacing scale

space-1
4px — Icon gaps, tight inline spacing
space-2
8px — Button padding-y, chip gaps
space-3
12px — Input padding, list item gaps
space-4
16px — Card padding, section gutters
space-6
24px — Stack gaps between form fields
space-8
32px — Section separation

❌ Without tokens: #7C3AED, #7c3aed, purple-600 — three names, same intent, drift guaranteed.

✅ With tokens: always colors.primary — designers and engineers align.