The design is measured, not asserted
Answers Epistemology · Semantics
Every colour the site reads is measured on the surface it is read on and held to a ratio the design declares; every colour token is either measured by a pair or declared decorative with the reason it need not be; every band's colour clears the same floor as chip text; no retired colour returns; and every type size is a step on the declared scale, none below its floor.
What goes wrong without it
A design written down drifts the first time a token is edited, because prose does not recompute. Contrast that is asserted rather than measured is a claim about a reader nobody tested, and the two that failed here were each within a tenth of the ratio they claimed. Measuring the built stylesheet rather than the source is what makes the claim one about what shipped.
What proves it — 1
Each is a gate the build runs: a check inside a ring, a whole ring, or an eval beside them. A build stops at the first that refuses.
- ring:7the design ring
The built stylesheet keeps the design system: every colour role clears the contrast the design declares on the surface it is read on, every colour token is measured by a pair or declared decorative with a reason, every band's colour clears its floor as chip text on the surfaces it sits on, no retired colour returns, and no type is set below the floor.
Derived from — 1
Where this model stands
site/design/contrast.json declares the pairs and the least ratio each must hold, the tokens that are decorative and why, the surfaces a band's colour is read on, the retired colours, and the type scale with the role of each step.
The design ring reads the values out of the built stylesheet, resolves each token through its references, and computes the WCAG 2 ratio: 24 pairs, 8 decorative tokens, 7 band colours on 3 surfaces, and every type size against the scale.
Body text holds 7:1 and edges 3:1, which are the enhanced and non-text thresholds of WCAG 2.2 rather than its minimum.
design/contrast.json `card` names the stylesheet token each part of the share card is drawn in, the renderer resolves them from the stylesheet at build time, and the design ring refuses a card token the stylesheet does not declare. The card used to keep seven colours as hex, and its secondary ink was one the stylesheet had moved on from.
What it does not claim
The dark scheme is not measured, because there is not yet one; when it ships, every pair is measured in both schemes rather than in the light one alone.
Target size is not measured. A control's hit area is a rendered fact, not a stylesheet one, so it needs a renderer in the gate rather than a parser.
RUL-036