Cairn

Color

A warm neutral base carries the UI. One signature accent, main, the only chromatic colour reached for, used as a fill with ink on top. Every other hue is locked to a use case: acid and blue for data-viz, plus the message states (success, info, warning, error) as their own family, kept apart from the accent. Hue never carries meaning outside messages.

neutral

UI base, surfaces, ink, borders, the ink primary action.

0
50
100
200
300
400
500
600
700
800
900
950

main

Signature accent, the one chromatic colour used across the UI (fill + ink on top). Brand accent only, not the error signal.

50
100
200
300
400
500
600
700
800
900

acid

Use-case only, data-viz. Not a UI accent.

50
100
200
300
400
500
600
700
800
900

blue

Use-case only, data-viz + the info message state. Functional, never identity.

50
100
200
300
400
500
600
700
800
900
sys.color.primary
sys.color.on-primary
sys.color.primary-container
sys.color.on-primary-container
sys.color.accent
sys.color.accent-subtle
sys.color.accent-blue
sys.color.surface
sys.color.surface-subtle
sys.color.surface-muted
sys.color.on-surface
sys.color.on-surface-variant
sys.color.outline
sys.color.outline-strong
sys.color.link
sys.color.focus

Status colors, the one place hue carries meaning. Container background + accessible text, never relying on color alone.

Success
Changes saved successfully.
Info
A new version is available.
Warning
This action cannot be undone.
Error
Something went wrong. Try again.