The big shift: a custom theme route alongside the 16-theme catalog.
Catalog stays the default. Custom fires only when the brief signals
creative or unique intent (named brand colour, multi-attribute vibe
the catalog can't carry, explicit ask). Vanilla briefs route to
catalog silently — no visible behaviour change.
Custom builds an OKLCH palette + free-font pairing tuned to the
brief, inline at :root, with the same 38 slop-test gates firing as
catalog runs. The freedom is the combination, not the rules.
- New `skill/references/custom-theme.md` — protocol with sections
A-G: trigger signals, palette construction, font pairing,
axis computation, stamp format, log.json shape, three worked
examples (Coffeebox, Loop, Mossroot).
- New `site/_tests/custom/` — three rendered worked examples
matching custom-theme.md § G.
- `SKILL.md` — Step 1 trigger detection, Step 2.6 dispatch, sample
preview block for custom, version 0.6.0 → 0.7.0.
- `study.md` — theme-canon references → theme-catalog (font canon
references intentionally left unchanged).
- Landing footer — drop competitor links (impeccable, kami,
frontend-design); keep GitHub + a quick description. Footer
Influences column removed; stats refreshed (16 themes, 38 gates).
- Site banner v0.2 → v0.7. README adds a current-version line.
- Dense colophon JS — drop influences block, refresh stats and
build date.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>