Skip to content
Reference

Design tokens

Tokens, not utilities. All CSS custom properties used by Atelier UI — colors, spacing, radius, typography, shadows, and motion. Import once via tokens.css; dark and light mode update automatically.

Colors

Swatches reflect the current theme. Toggle dark/light mode to see both.

Primary — Conciso deep teal
--ui-color-primary
Brand primary action
#006470 #34d8d8
--ui-color-primary-hover
Hover state
#004e58 #5ee5e5
--ui-color-primary-active
Active / pressed state
#003a42 #87efef
--ui-color-primary-light
Tinted background
rgba(0,100,112,0.08) rgba(52,216,216,0.15)
Semantic
--ui-color-danger
Destructive actions, errors
#b91c1c #f87171
--ui-color-success
Confirmations, success
#15803d #4ade80
--ui-color-warning
Cautions, warnings
#b45309 #fbbf24
--ui-color-info
Informational
#0369a1 #38bdf8
--ui-color-secondary
Secondary actions
#475569 #94a3b8
Surface — clean white + cool slate
--ui-color-surface
Page / base background
#ffffff #0a1116
--ui-color-surface-raised
Cards, elevated surfaces
#f8fafc #131c24
--ui-color-surface-sunken
Inset, recessed areas (code blocks)
#f1f5f9 #060c10
Border
--ui-color-border
Decorative border (card on raised)
#e2e8f0 #1e293b
--ui-color-border-hover
Hovered decorative border
#cbd5e1 #334155
--ui-color-border-strong
Functional border ≥3:1 (inputs, outline buttons)
#64748b #64748b
Text
--ui-color-text
Primary text
#0f172a #f1f5f9
--ui-color-text-muted
Secondary / muted text
#475569 #94a3b8
--ui-color-text-on-primary
Text on primary background
#ffffff #0a1116

Spacing

The same scale drives padding, gap, and margin. Pick the smallest token that gives the surface room to breathe — bigger numbers belong at higher levels of layout (sections, hero blocks).

--ui-spacing-1
0.25rem
4px
Icon insets, hairline gaps
--ui-spacing-2
0.5rem
8px
Tight inline gaps, badge inset
--ui-spacing-3
0.75rem
12px
Chip padding, button content gap
--ui-spacing-4
1rem
16px
Default body gap, form-field spacing
--ui-spacing-5
1.25rem
20px
Compact section spacing
--ui-spacing-6
1.5rem
24px
Card padding, dialog inset
--ui-spacing-8
2rem
32px
Block-level section gap
--ui-spacing-10
2.5rem
40px
Page-level vertical rhythm
--ui-spacing-12
3rem
48px
Hero / major section break
--ui-spacing-16
4rem
64px
Full-bleed section separation

Border radius

Radius scales with surface importance. md is the project default; reach for lg when the surface lifts above the page (cards, dialogs).

sm
0.375rem
Inputs, kbd glyphs, small chips
md
0.5rem
Default — buttons, badges, cards
lg
0.75rem
Elevated cards, dialogs, panels
xl
1rem
Hero / showcase surfaces
full
9999px
Pills, avatars, circular icons

Typography scale

Body copy starts at md. Step down to sm / xs for secondary text and labels; up to lg+ for headings. Pair every step change with a heading-level shift in markup.

Aa --ui-font-size-xs 0.75rem 12px Labels, captions, eyebrows
Aa --ui-font-size-sm 0.875rem 14px Secondary text, table cells
Aa --ui-font-size-md 1rem 16px Default body copy
Aa --ui-font-size-lg 1.125rem 18px Emphasized body, sub-heading
Aa --ui-font-size-xl 1.25rem 20px Card titles, section heads
Aa --ui-font-size-2xl 1.5rem 24px Page heads, hero titles

Shadows

Shadows encode elevation. Larger token = higher layer in the stacking order. Keep the difference between hovered and resting states one step apart so movement reads as deliberate.

xs
shadow-xs
Inputs at rest, subtle inset hint
sm
shadow-sm
Cards at rest
md
shadow-md
Hovered cards, dropdowns
lg
shadow-lg
Dialogs, drawers
xl
shadow-xl
Tooltips, floating menus

Motion

Durations match perceived weight: tiny things move fast, surfaces move slowly. Easing curves carry intent — ease-out for entrances, ease-spring for affirmative actions, ease-in-out for everything else.

TokenValueUse
--ui-duration-fast 150ms Micro-interactions — hover, focus, press
--ui-duration-normal 200ms Standard UI transitions — toggle, expand
--ui-duration-slow 300ms Dialog / drawer enter and exit
--ui-ease-outcubic-bezier(0.16, 1, 0.3, 1)Element entering view (toast, dropdown)
--ui-ease-in-outcubic-bezier(0.45, 0, 0.55, 1)Symmetric transitions (toggle, accordion)
--ui-ease-springcubic-bezier(0.34, 1.56, 0.64, 1)Confirmations, success cues

Import once in your global styles

@import '@atelier-ui/react/styles/tokens.css';