§02 · color & status · design.md §3

Hue in this system means one thing: what we know, and how well.

Nothing is colored because it looked nice. The deck already committed to a cool, near-black ground with a cream-free paper, an ochre accent, and a teal accent. What follows formalizes it and assigns hue to epistemic status rather than to decoration.

as_of 2026-08-10

Ground and paper

Cool, never cream — cream signals archive; Downstream is about a record still being written.

--ink #0B1220
--ink-2 #121B30
--ink-3 #1B2743
--void #070C16
--paper #F4F6FB
--paper-2 #FFFFFF
--rule #D9E1F0

Text tokens

Ratios measured against --paper #F4F6FB and --ink #0B1220. Everything labeled for body copy clears WCAG AA at any size.

TokenHexOnRatioUseSample
--text#0B1220paper17.3:1Headlines, table keys, anything primary.Aa
--text-body#4A5872paper6.6:1Body copy. Use this, not --slate, at 14px and below.Aa
--slate#5C6B87paper5.0:1Secondary copy at 15px+.Aa
--quiet#6E7E9Cpaper3.8:1Non-text only — hairline labels, icon strokes, disabled. Never body copy.Aa
--text-d#93A3C0ink7.4:1Body copy on dark.Aa
--quiet-d#67769Aink3.1:1Non-text only on dark.Aa

Status — the semantic core

Five states, drawn from ImplementationStatus in the scorecard spec and the chip.obs / chip.pend pattern in the deck.

StatusMeaningChip (on paper)Chip (on ink)Shape
OBSERVED Happened, and we can cite the document. Met, final rule issued, resolved. OBSERVED OBSERVED ● filled dot
PENDING Not yet due, or due and still open. The unpriced middle of the chain. PENDING PENDING ○ hollow dot
MISSED Deadline passed with no qualifying action. Vacated, remanded, lapsed. MISSED MISSED ✕ cross
SILENT No observable action of any kind. Not a gap — a finding. SILENT SILENT – dash
STRUCK Removed, stripped, failed — and therefore a candidate to resurface. STRUCK STRUCK ◇ hollow diamond

Rule 1 — color is never the only channel

Every status carries the mono token, the shape glyph, or both. Ochre and oxide converge under protanopia. A screenshot of a Downstream table should be readable as data in grayscale:

OBSERVED PENDING MISSED

Rule 2 — #D9962B is a marking color, not text on light

It clears 2.3:1 against paper — well under AA. Use #8A5B0E for ochre text on paper.

Wrong: #D9962B text on paper

Right: #8A5B0E text on paper

Rule 3 — contingent_unfunded gets no sixth hue

It renders as Pending with a 45° hatch — pending, but blocked upstream. A texture on pending, not a new color:

PENDING · UNFUNDED

What has no color

Layer 1 facts render achromatic — ink, slate, rule. Layer 2 forecasts may carry status color. A card that has picked up a hue is a card that has picked up a model claim, and someone should notice.

Layer 1 — fact

§ 71101(a)(2) requires a rule within 180 days of enactment.

No hue. Achromatic on purpose.

Layer 2 — forecast

P(final rule issued by day 180) — PENDING

Carries status hue. This is a model claim, and it looks like one.

Reserved

  • Ochre is also the interface accent — eyebrows, active nav, focus rings, numerals in circles. It is the color of attention, which is consistent with it also being the color of unresolved. Don't add a second accent.
  • No gradients on data. Gradient is permitted in exactly one place: atmospheric orb shapes on dark cover surfaces, at ≤6% luminance separation. Never behind a number.
  • No red-green pairing for good/bad. Teal/ochre is the pair, and it means known/unknown rather than good/bad. Downstream does not grade policy outcomes as good or bad; it grades whether they happened.