Axon 911 Frontend Docs
    Loading navigation…
U
User
Switch to light mode
  1. Foundations
  2. Colors

Colors

Semantic color tokens from @prepared911/ui. Light on :where(:root), dark under data-theme.

Color in @prepared911/ui is a set of semantic custom properties shipped in @prepared911/ui/styles.css. Light values are declared on :where(:root). Dark values are declared under [data-theme='dark']. Components use these names. They do not use a public 12-step ramp.
Surfaces and text
Background--color-bg-default
Surface--color-bg-surface
Raised--color-bg-raised
Overlay--color-bg-overlay
Foreground--color-fg-default
Subtle--color-fg-subtle
Muted--color-fg-muted
Border--color-border-default
Accent
Accent--color-accent-default
Accent hover--color-accent-hover
Accent text--color-accent-fg
Link--color-fg-link
Status
Destructive, warning, success, and informative each expose background, border, foreground, and solid slots. The names follow --color-status-<intent>-<slot>.
Destructive bg--color-status-destructive-bg
Destructive text--color-status-destructive-fg
Warning bg--color-status-warning-bg
Warning text--color-status-warning-fg
Success bg--color-status-success-bg
Success text--color-status-success-fg
Informative bg--color-status-informative-bg
Informative text--color-status-informative-fg
Interaction
Hover and pressed washes are --color-state-hover and --color-state-pressed. They compose over the control's own fill. Disabled text is --color-fg-disabled. Disabled surfaces use --color-state-disabled.
State washes
State washes signal block-level status (for example a live or ringing call card). They are diagonal gradients, not control hover fills.
TokenRole
--gradient-wash-accent, --gradient-wash-destructive, --gradient-wash-informativeComposite linear-gradient paints (135deg in oklab)
--gradient-wash-<id>-rtlMirrored angle (225deg) for right-to-left layout
--color-wash-accent, --color-wash-destructive, --color-wash-informativeStrong stops; each has a -clear twin at 0% alpha for the fade
--color-wash-baseLayer under the wash: transparent on the page in Dark, bg-transient in Light
--color-fg-on-wash-default, --color-fg-on-wash-subtle, --color-fg-on-wash-mutedText and icons on a wash; alias the light-on-dark ladder per appearance
In product UI, blocks apply these through Box's gradient={GradientPaint.*} prop, which mounts only the generated paint_wash_<id> recipe. That class stacks the gradient over --color-wash-base, re-points every descendant's ordinary fg-* and icon-* tokens to the fg-on-wash-* aliases, mirrors under :dir(rtl), and drops the decoration under prefers-contrast: more and forced-colors: active. Pair a wash with a label or icon; do not rely on color alone. A border on a Light wash uses border-transient; washes do not remap border tokens.
Usage
  • Use a semantic --color-* token. Do not read a ramp step.
  • Pair a status background with the same intent's foreground.
  • Data series use --color-palette-<name>-solid, -bg, -border, and -fg. Those marks are not status colors.
  • Always-dark chrome sets data-theme="dark" on the region. It does not use a separate brand class.
Previous
CI/CD & deployment / Deployment
Next
Typography
On this page
Surfaces and text
Accent
Status
Interaction
State washes
Usage