Each swatch shows its light and dark value on that theme's surface. Text colours carry their contrast onsurface (on its own ground for on-accent and tooltip text).
- Ground:
page behind everything; canvas for recessed working areas (chat canvas, card wells); surface for cards, inputs and menus; inset for wells inside a surface (code, table headers).
- Text:
ink for primary text and icons; ink-2 for secondary text (≥5.2:1 on every ground); ink-3 only for placeholders, disabled labels and decoration — it is 2.7:1 and never the only carrier of meaning.
- Interaction: hover rows and quiet buttons with
hover; pressed and ghost fills with hover-2; filled fields and pill buttons on field.
- Accent:
accent for focus outlines, selection, progress and the accent button; accent-ink for accent-coloured text and links; accent-tint for selected rows and chips. Text on an accent fill uses on-accent.
- Status:
green/green-tint success, orange/orange-tint warning, red/red-tint danger. On tints, set the label in ink or 13px-medium status colour.
- Tooltips and chart overlays are dark in both themes:
tooltip-bg with tooltip-fg and tooltip-muted.
- Charts use
series-1 (blue, in step with the accent) through series-4, in that order; never pick chart colours by hand.
- Primary actions are
ink filled with canvas text . Use the accent button for at most one call to action per screen.
- Theme: set
data-theme="dark" on <html>; every token has a tuned dark value — never invert or hard-code colours.
In code, every token is a Tailwind utility from src/styles/theme.css: bg-surface, text-ink-2, border-line, bg-accent-tint, fill-series-1, rounded-control, shadow-card, h-control-md, duration-fast, ease-standard. Tailwind's own colour palette is switched off, so only token colours exist.