Two surface colours: paper (#FFFFFF) and ink (#1C1B17). No greys. Plus a five-colour extended palette for diagrams — two cool registers (navy, ocean, teal) and two warm (sand, dusk). Never use all five at once. The brand lives in structure and type, not colour variety.
#FFFFFF
rgb(255, 255, 255)
paper
--color-xco-paper
Default page background. Never pure white.
#1C1B17
rgb(28, 27, 23)
ink
--color-xco-ink
Body text, structural lines. Never #000.
#1C1B17
rgb(28, 27, 23)
ink-muted
--color-xco-ink-muted
Alias for ink. No greys in the system.
#000064
rgb(0, 0, 100)
navy
--color-xco-navy
Blueprint dark ground. Deep structural register.
#005096
rgb(0, 80, 150)
ocean
--color-xco-ocean
Structural blue — nav accent, systemic diagram elements.
#0082aa
rgb(0, 130, 170)
teal
--color-xco-teal
Open register — frontier, coastal, lighter blue.
#ffa064
rgb(255, 160, 100)
sand
--color-xco-sand
Warm field register — terrestrial, amber light.
#ff5a00
rgb(255, 90, 0)
dusk
--color-xco-dusk
Warm convergence — orange-ember, the meeting point.
Dusk is the one earned warm accent. It should never exceed ~5% of any surface. When it does, it stops signalling emphasis and starts signalling anxiety.
✓ ~5% — emphasis, not decoration
5% dusk — the active axis on the Frontier dimension
✗ 40% — no longer emphasis, now just noise
too much — dusk becomes wallpaper
A dark-mode variant exists (paper ↔ ink swap) but is not the primary register. Paper + ink is the default. Dark mode applies to: terminal output, code blocks, embedded media. It is never the hero surface.
[wip] dark mode variant not yet designed