// Tokens

Tokens

The --talos-* custom properties that define the system.

Every design decision is a --talos-* custom property in tokens.css. Override any on :root (or any scope) to retheme — components read the tokens, never hard-coded values, so one override cascades everywhere.

The HSL-channel pattern

Colors are stored as bare HSL channels (H S% L%), not finished colors. You compose them into a color — with optional opacity — at the use site:

/* The token holds only the channels: */
--talos-foreground-hsl: 0 0% 100%;        /* white */

/* Compose, opaque: */
color: hsl(var(--talos-foreground-hsl));
/* Compose, with alpha: */
border-color: hsl(var(--talos-foreground-hsl) / 0.2);

For convenience each channel token also has a resolved opaque companion (--talos-foreground, --talos-accent, …) you can use directly when you don’t need alpha.

Palette (monochrome)

TokenValueRole
--talos-background-hsl0 0% 0%page void
--talos-foreground-hsl0 0% 100%primary text
--talos-muted-hsl0 0% 10%raised surfaces
--talos-muted-foreground-hsl0 0% 60%labels, secondary text
--talos-border-hsl0 0% 20%dividers, edges
--talos-accent-hsl140 90% 60%the one accent — status pulse, live state

Status channels

TokenValueUsed by
--talos-success-hsl140 90% 60%passes, online
--talos-warning-hsl38 92% 60%caution, warn thresholds
--talos-danger-hsl0 80% 62%errors, crit thresholds
--talos-info-hsl205 90% 62%informational

The instruments (<talos-gauge> et al.) snap through success → warning → danger as values cross their warn / crit marks.

Surfaces & text roles

TokenValue
--talos-surface-0--talos-surface-40 0% 0%4%7%10%14% (elevation ladder)
--talos-text-primaryhsl(0 0% 100% / 0.92)
--talos-text-secondaryhsl(0 0% 100% / 0.62)
--talos-text-tertiaryhsl(0 0% 100% / 0.4)
--talos-text-disabledhsl(0 0% 100% / 0.28)

Type

TokenValue
--talos-font-display"Oxanium", "Eurostile", "Bank Gothic", system-ui, sans-serif
--talos-tracking-hud0.18em
--talos-tracking-hud-tight0.08em

Chamfer

TokenValueCuts
--talos-chamfer14pxpanels (top-right + bottom-left)
--talos-chamfer-btn10pxbuttons (bottom-right)
--talos-chamfer-flag8pxpills / flags (top-right)

Motion

Easing and duration tokens are consumed via var() — they are the whole value, e.g. transition: color var(--talos-dur-fast) var(--talos-ease-out), not bare numbers.

TokenValue
--talos-ease-glasscubic-bezier(0.22, 0.68, 0, 1.2) (gentle overshoot)
--talos-ease-liquidcubic-bezier(0.34, 1.4, 0.64, 1) (stronger settle)
--talos-ease-outcubic-bezier(0, 0, 0.2, 1) (deceleration only)
--talos-dur-fast180ms
--talos-dur-mid360ms
--talos-dur-slow600ms

Retheme

The highest-leverage overrides, in order:

  1. --talos-accent-hsl — the single accent; match it to your brand.
  2. --talos-background-hsl / --talos-foreground-hsl — invert for light mode.
  3. --talos-chamfer / --talos-chamfer-btn — soften or sharpen the cuts.
  4. --talos-dur-* — speed motion up or down globally.
  5. --talos-tracking-hud / --talos-font-display — change the typographic voice.

Shift just the accent to a cool blue — every gauge, dot and live edge follows:

:root {
  --talos-accent-hsl: 205 90% 60%;
}

A fuller retheme — light mode with a sharper chamfer and snappier motion:

:root {
  --talos-background-hsl: 0 0% 100%;
  --talos-foreground-hsl: 0 0% 0%;
  --talos-muted-hsl: 0 0% 92%;
  --talos-muted-foreground-hsl: 0 0% 40%;
  --talos-border-hsl: 0 0% 80%;

  --talos-accent-hsl: 280 80% 50%;

  --talos-chamfer: 8px;
  --talos-chamfer-btn: 6px;

  --talos-dur-fast: 120ms;
  --talos-dur-mid: 240ms;
}

Full rationale and the complete token list live in the package DESIGN.md.