Theme & Design Tokens

The editor's visual system and how to restyle it.

The variables every surface in the editor is built from.

app/globals.css is the single source of truth for colour, spacing, sizing, type and motion. Components reference them through var(--…), either inline or through the primitives layer.

FamilyTokensNotes
Surfaces--bg-app, --bg-sunken, --bg-panel, --bg-raised, --bg-overlayNeutral graphite, barely cool. Steps are deliberately small — separation comes from hairline borders, not contrast jumps.
Lines--line, --line-strongHairlines do the structural work.
Ink--ink, --ink-dim, --ink-mute, --ink-invertThree levels of foreground plus an inverted one.
Accent--accent, --accent-hover, --accent-press, --accent-weakSelection, focus, active tab.
Status--onair, --preview, --armed, --danger, each with a -weak variantRed on air, green preview, amber armed.
Radius--r-xs, --r-sm, --r-md, --r-pill3–5 px; nothing is round except pills.
Space--sp-1 … --sp-82, 4, 6, 8, 12, 16, 20, 24 px.
Heights--h-sm, --h, --h-lg20, 26, 30 px control heights.
Type--font-ui, --font-mono, --fs-11 … --fs-14System UI stack; 11–14 px.
Motion--dur (120 ms), --easeOne duration, one curve.
Elevation--shadow-popOne soft shadow, for floating layers only. Panels get none.