The risk in this brief is named in the brief: personalisation that becomes a collection of unrelated websites. So the answer is a hard boundary rather than taste. A theme may change exactly six declared tokens. Everything else is the constant.
All three theme pages are rendered by one file, theme.js, from the
same block sequence in the same order. Only the words and the six tokens differ — which is why
the check below is possible at all: the rendered class sequence of each state is asserted
identical across all three themes, and so are the lane and composer geometries.
A theme may change
--accent / --accent-ink / --accent-wash — one warm hue family--display — heading and quote face only. Body is always Figtree.--rhythm — a single multiplier on block gaps--quote — rule · slab · soft--cite — inline+footer · inline · footer--r-block — block corner radiusA theme may not change
Why six and not "use judgement". Every one of the six is a token a developer can diff. "Restrained" as an instruction survives one sprint; a list of six survives the fourth expert who wants their lane to feel special.
Every accent is a pair — the accent carries rules and fills, the ink carries text
| Theme | Accent (fills, rules) | Accent-ink (any text) | Display | Rhythm · quote · cite · radius |
|---|---|---|---|---|
| Editorial | #C2593A3.97:1 — fills only |
#9E43255.78:1 — AA body |
Fraunces | 1.00 · rule · inline+footer · 16px |
| Playbook | #8A6A2F4.54:1 |
#6F54236.39:1 — AA body |
Figtree | 0.92 · slab · inline · 12px |
| Coach | #6E7F5B3.91:1 — fills only |
#57684A5.45:1 — AA body |
Fraunces | 1.14 · soft · footer · 22px |
All three hues sit in the shipped warm room on #F7F3EB. That is the second
guarantee against three-unrelated-websites, and it is why none of them is a blue or a violet —
a cool accent on this paper reads as a different product, not a different expert.
Type scale, unchanged across themes. Body 15.5 / mobile 15 · headings 15.5 · quote 18 (coach 19) · captions 12.5 · source pills 12.5 · chips 12.5. Two families only, both already shipped: Fraunces for display, Figtree for everything else. Playbook uses Figtree for headings too — that is the one place a theme drops the serif, and it is what makes it read as businesslike without importing a third face.
Same markup on every theme · what varies is listed per row
| Block | Class | What a theme may vary |
|---|---|---|
| Paragraph | .txt p | Nothing. Body copy is identical on all three. |
| Heading | .b-h | Face and case — playbook renders it as a small uppercase label. |
| List | .b-l | Marker only — dash, or a numbered chip on playbook. Grid stays 22px. |
| Quote | .b-q | Rule · slab · soft. Attribution line is mandatory and never themed away. |
| Image | .b-img | Radius only. 16:9, caption and approval source are fixed. |
| Video | .b-vid | Radius only. 132px thumb desktop, stacked on mobile, on every theme. |
| Citation | .cite · .msg-src | Density. A theme may move a citation; it may never remove one. |
| Action | .b-act | Wash colour only. Copy, price position and CTA behaviour are fixed. |
This is the part that makes it authentic rather than decorative, and it comes from the 2026-05-28 expert response material audit rather than from taste. That audit found citation behaviour varies enormously across the published roster: source visibility ranged from 3/7 to 6/7 related answers, and library depth from 1 material and 17 chunks at one end to 10 materials and 511 chunks at the other.
So the expert does not pick a skin from a menu. The theme follows what they actually have, which is exactly what the brief asks for — personality from materials rather than arbitrary CSS. An expert with no clear classification gets Editorial, because it is the house default and needs no new brand surface.
-ink one, and all three clear 4.5:1
on both #F7F3EB and #FFFFFF. The raw accents are 3.9–4.5:1 and are
restricted to rules, fills and markers — the shipped system already works this way, which is
why --terra-ink exists alongside --terra.<figure> + <figcaption>, so the
attribution is associated rather than merely adjacent.role="img" and a real
aria-label describing the diagram's content — not "diagram".--accent-ink at 2px with 3px offset, on every theme.One finding in the existing system, not introduced here. Shipped
--muted:#7A7167 is 4.33:1 on paper and is used at 12.5–13px for source pills
and the lane subtitle — below AA for body text. #736A60 is 4.79:1 and is the
smallest change that clears it; these mocks use it. One token, visually near-identical, and it
fixes every small-text instance at once.
Two failure modes, and both are real rather than hypothetical — the audit found published experts with as little as one material and thirteen chunks.
Editorial insight, and it is not a close call. Four reasons, in order of weight.
The condition I would attach. Editorial is the most demanding of the material, so it will hit the fallback most visibly on thin experts. Ship state 5 with it. If the fallback is deferred, a sparse expert in the most citation-forward theme is the worst possible first impression — a premium editorial lane with nothing in it.