Reference
Design Tokens
Every visual decision lives in one of these tokens. Change a value here and the whole UI updates.
Colors
Canvas & Surfaces
--color-canvas
--color-canvas-subtle
--color-surface
--color-surface-raised
--color-surface-overlay
Text
--color-heading
--color-foreground
--color-foreground-muted
--color-foreground-faint
Borders
--color-border-subtle
--color-border
--color-border-strong
Accent
--color-accent-subtle
--color-accent
--color-accent-hover
--color-on-accent
Success
--color-success-subtle
--color-success
--color-on-success
Warning
--color-warning-subtle
--color-warning
--color-on-warning
Error
--color-error-subtle
--color-error
--color-on-error
Info
--color-info-subtle
--color-info
--color-on-info
Border radius
rounded-interactive
inputs, buttons
rounded-card
cards, panels
rounded-overlay
modals, dropdowns
rounded-badge
badges, pills, tags
Shadows
shadow-interactive
buttons, inputs on hover
shadow-card
cards, raised surfaces
shadow-overlay
dialogs, tooltips
Typography
--text-display
700 · clamp(2.5–4rem) · display
The quick brown fox
--text-title-lg
700 · clamp(1.75–2.5rem) · display
Section heading
--text-title-md
600 · clamp(1.25–1.75rem) · display
Card or panel title
--text-title-sm
600 · 1.125rem · primary
Subsection or sidebar title
--text-body-lg
400 · 1.125rem / 1.75 · primary
Lead paragraph or intro text that needs a little more presence.
--text-body
400 · 1rem / 1.65 · primary
Default body text used for paragraphs and general content throughout the page.
--text-body-sm
400 · 0.875rem / 1.6 · primary
Smaller body text for inputs, secondary descriptions, or dense UI.
--text-label
500 · 0.875rem / 1.25 · primary
Form labels, button text, nav items
--text-caption
400 · 0.75rem / 1.4 · primary
Hints, counters, timestamps, image captions
--text-code
400 · 0.875rem / 1.6 · mono
const token = 'var(--text-code)'
Spacing
Section padding — block
· Vertical top/bottom padding on <section> and <article> elements. Use py-(--section-padding-block-*).
--section-padding-block-xs
1.5rem · 24px
Tight / hero sub-sections
--section-padding-block-sm
3rem · 48px
Compact sections
--section-padding-block-md
5rem · 80px
Standard section
--section-padding-block-lg
7rem · 112px
Generous section
--section-padding-block-xl
10rem · 160px
Hero / landing page
Section padding — inline
· Horizontal left/right padding on sections. Use px-(--section-padding-inline-*).
--section-padding-inline-xs
1rem · 16px
Mobile edge-to-edge
--section-padding-inline-sm
1.5rem · 24px
Small viewports
--section-padding-inline-md
2rem · 32px
Tablet / mid-size
--section-padding-inline-lg
4rem · 64px
Desktop gutter
--section-padding-inline-xl
6rem · 96px
Wide / max-width content
Section gap — block
· Vertical gap between elements inside a section. Use gap-(--section-gap-block-*) or space-y-(--section-gap-block-*).
--section-gap-block-xs
1.5rem · 24px
Tight / hero sub-sections
--section-gap-block-sm
3rem · 48px
Compact sections
--section-gap-block-md
5rem · 80px
Standard section
--section-gap-block-lg
7rem · 112px
Generous section
--section-gap-block-xl
10rem · 160px
Hero / landing page
Interactive spacing
Padding and gap values for buttons, links, and other interactive elements.
--interactive-padding-block
0.75rem · 12px
Vertical (top/bottom) padding inside buttons and interactive elements
--interactive-padding-inline
1.5rem · 24px
Horizontal (left/right) padding inside buttons and interactive elements
--interactive-gap-inline
0.5rem · 8px
Horizontal gap between buttons placed side by side in a row