Feature
Real-time contrast gate
Wedges dim on the wheel when they would fail the active role's WCAG target, so an unusable combination is unreachable by design.
Learn more →Specimen No. 04 · v2 · Complete
Contrast-gated palette studio. Pick a role from the panel; wedges on the wheel that would fail
the role's WCAG contrast rule dim out so you can't design an unusable combination. Day and night
palettes are edited independently via the mode toggle. Save drafts, download the exported
.css, or add custom-alias tokens for downstream use.
Choose a role, then pick a wedge.
Neutrals
Ten curated web fonts, deliberately sidestepping the AI-default look. Each selection loads
lazily from /fonts/ — the sample updates as soon as the browser has the file.
Featured
Ten curated web fonts, deliberately chosen to avoid the AI-default look. Sans, serif,
variable and static — each font loads lazily from /fonts/ the moment
you pick it from the dropdown.
The quick brown fox jumps over the lazy dog. Typography carries meaning as much as colour does — line-height and tracking shape reading rhythm; size scale drives visual hierarchy; weight distinguishes voice.
Muted supporting text · caption
Name your palette, save it as a draft, download the exported .css or load a
previously saved theme. Custom-alias tokens are named colours that appear in the export
only — they don't affect the wheel or sample.
Anonymous: “Save & download” delivers the .css but nothing persists.
Sign in to save drafts.
Named colour tokens for downstream use (e.g. --brand-primary). Appear in
the exported CSS but not on the wheel or the type sample.
No custom aliases yet.
Sample UI painted with the current palette and typography. The toggle here previews day or night independently — editing mode stays where it is.
Case study
Contrast-gated palette, deliberate typography, and unified notification grammar. This preview repaints instantly as you edit — nothing here is decorative.
Feature
Wedges dim on the wheel when they would fail the active role's WCAG target, so an unusable combination is unreachable by design.
Learn more →Reading rhythm depends as much on line-height and tracking as it does on typeface. Body prose stays comfortable to 68 characters wide.
Muted supporting text · 12:22 · 27 July 2026
The orchestrator generates a .css file you paste into a different
project. It never modifies this site's theme — the tool is a workshop, not a
control panel.
/fonts/.
.css file; Export CSS opens a copy-to-clipboard modal.
Custom aliases appear in the export only.
Storage key: lr_themes_v2_<user_id>. Nothing here calls out to a
network — all saves and exports are local to your browser.
Copy this into your project's stylesheet. Tokens are declared on :root
(day mode) and [data-theme="dark"] (night mode).