ZEROlobby
22/22 strict⌘Kvisitor
skip to main
v · v1
skin
——:——:——zcovenant · audit
oklch colour engine· six skins · derived not picked

colour is derived, never picked

an oklch engine generates every shade from a small set of seeds. six canonical skins ship as machine-readable contracts. acid is the brand wordmark; amber is the inheritance signal. neither is decorative.

oklch wheel · live

dial L · C · H · the swatch renders in gamut-clamped sRGB · the WCAG meter measures against the signature ground and figure · the closest brand role lights up. authority is the same @zero/tokens/oklch module the build pipeline uses.

OKLCH wheel · live· dial L · C · H · the swatch renders in gamut-clamped sRGB · WCAG meter is realbrand-signal#edf800
oklch(0.94 0.210 113)#edf800
on ground17.90:1AAA · body
on figure1.31:1fail · review
L · lightness · 0.940
C · chroma · 0.210
H · hue · 113°
presets · canonical roles
bone · paper ramp · hue 78°L 0.320.96 · C 0.0080.045
bone-0#35322ebone-1#5a544bbone-2#81786abone-3#aa9e8bbone-4#d6c6adbone-5#ffefd1
ink · ground ramp · hue 65°L 0.060.30 · C 0.0040.012
ink-0#010100ink-1#050403ink-2#0f0c09ink-3#1a1613ink-4#26211dink-5#322d28
trade receipt
oklch
(0.94 0.210 113)
sRGB
#edf800
on ground
17.90:1 · AAA · body
on figure
1.31:1 · fail · review
closest
brand-signal · acid
authority
@zero/tokens/oklch · single source · build-pipeline parity
01 · skinssix atmospheres · one brand

data-skin flips the entire subtree

every primitive that consumes the role tokens retints when the skin attribute changes. the engine writes the skin; the floor wears it.

skin · click to apply
branddatafigureground
bloomberg
branddatafigureground
ceremony
branddatafigureground
midnight
branddatafigureground
refuse
branddatafigureground
signature
branddatafigureground
specimen
02 · engineoklch · perceptual uniform

three numbers · L · C · H · per role

every role colour is stored as L (lightness 0–1), C (chroma 0–0.4), H (hue 0–360°). the engine derives ramps · ink and bone · from per-skin anchors. nothing is hand-picked.

plate · 02 · signature · roles in oklchmachine-readable
metric
role_colours_oklch
unit
roles
window
static
agg
identity
source
packages/tokens/skins/signature.contract.json
fresh
last commit
roleLCHswatch
brand-signal0.750.12281.2°
data-signal0.780.13575°
warn0.780.13575°
success0.740.130145°
error0.610.13527°
info0.620.085243°
ground0.070.01582.32°
figure0.860.03584.58°
the same eight roles exist in every skin · only L, C, H values change.
03 · contrastAAA on body · AA on indicators

contrast is contractual

every skin satisfies AAA contrast on body roles (figure on ground, ≥7:1) and AA on indicators (brand-signal on ground, ≥4.5:1). the gate ci:skin-harmony blocks any contract that fails.

plate · 03 · contrast matrix · figure vs groundWCAG
metric
contrast_ratio
unit
ratio
window
per-skin · static
agg
identity
source
scripts/check-skin-harmony.mjs
fresh
last commit
skinfigure ÷ groundsignal ÷ groundbodyindicator
bloomberg13.20:110.29:1AAAAA
ceremony14.03:117.62:1AAAAA
midnight13.83:18.18:1AAAAA
refuse12.31:17.54:1AAAAA
signature13.66:19.35:1AAAAA
specimen16.31:116.31:1AAAAA
figure-on-ground must be ≥ 7:1 (AAA body). brand-signal-on-ground must be ≥ 4.5:1 (AA indicator).
04 · acid + amberfirst-class · neither demoted

two signals · two voices

acid is the brand wordmark — drops, signing, focus ring, primary cta. amber is the capital-markets parent body — foundation, cockpit, journal, ticker. both first-class. neither demoted.

rule
on a single fold, accent-law caps simultaneous brand-signal usage at one focal element. amber may peer wherever data is tabular and inheritance from capital markets is meaningful. never use both as a primary cta on the same surface.