Bellwether

Reference

Design system

Every ratio was computed with tools/a11y/contrast.py against all three grounds. This page is noindex: it documents the template for whoever builds with it.

The hardest divergence in the project so far

The roadmap line for this day is "tour dates, music embeds, merch", which is almost word for word what the singer-songwriter template already is. Two adjacent days with the same brief is the exact clone-pair failure this project keeps documenting. The answer was not a different palette — it was asking what is actually different about a band, which is that a solo artist is one person deciding and a band is four people with a shared bank account and usually nothing in writing.

So the tour section here is six lines and a sentence saying that a full listing is a whole page in its own right. Deliberately refusing to build the good version of a section, because the good version already exists one day earlier, is the only move that actually prevents a re-skin.

Former members stay, and are not emitted

Two people who left are listed with dates and reasons, marked in a word with a glyph before any colour. The structured data does the opposite: only current members are emitted as member, because a departed member published as current is the same class of error as day 113 publishing a sold-out show as an available event. The page is for humans and the markup is for machines, and they are allowed to say different true things.

The accent is not a status

--member-past is its own token. On a page whose most-read section is a list of decisions about money, "left the band" must not share a hue with a heading — and it is not a failure state either, which is why it is a warm brown rather than a red.

Type

Eczar — display

Ubuntu Mono — 2019–2022 · 3 of 4 · equal

Body is Quattrocento. The mono carries years and voting rules, which sit in columns that have to align. None of the three appears in days 1–113.

Tokens

Colour tokens with measured contrast ratios
SwatchTokenValueMeasured
--color-bg #FAF8F5 Warm off-white
--color-bg-alt #EDE9E2 Banding
--color-surface #FFFFFF Cards
--color-text #191720 16.72 / 14.65 / 17.73:1 · AAA
--color-text-muted #6C667A 5.19 / 4.54 / 5.50:1 · AA
--color-border #898299 3.47 / 3.04 / 3.67 — non-text only
--color-accent #6030CF Hue 258 — 7.02 / 6.15 / 7.44:1 · AAA
--member-past #9A581D Left the band — 5.23 / 4.58 / 5.54:1
--color-band #191720 Inverted band
--color-on-band #FAF8F5 16.72:1 on band · AAA
--color-on-band-muted #A6A1B2 7.06:1 on band · AAA
--color-accent-on-band #AF95EC 7.03:1 on band · AAA

The border token clears 3:1 against all three grounds, which is what WCAG 1.4.11 asks of a non-text boundary. It is never used for text.