Fifteen styles — ten flat and five gradient — and the contrast tests each has to clear, including bg-on-accent for the CTA block.
Theme { bg, fg, accent, muted, displayFont?, bodyFont?, bgGradient? }Fifteen styles: ten flat, five gradient.
| id | Name | bg | fg | accent | muted | Faces |
|---|---|---|---|---|---|---|
| dark | Dark | #101215 | #f2f4f7 | #ffffff | #8b93a1 | sans |
| light | Light | #ffffff | #101215 | #101215 | #6b7280 | sans |
| ink | Ink | #12161c | #f4f6f8 | #d9a521 | #8b96a5 | sans |
| paper | Paper | #f7f4ed | #1a1a18 | #c2410c | #6b665c | serif |
| cobalt | Cobalt | #12285a | #ffffff | #7ec8ff | #9fb2d9 | sans |
| bloom | Bloom | #fdf2f8 | #2b1220 | #db2777 | #7a556a | sans |
| forest | Forest | #0f2419 | #eef7f0 | #5fd08a | #8aa896 | sans |
| terminal | Terminal | #0a0a0a | #e6e6e6 | #4ade80 | #7d7d7d | mono |
| noir | Noir | #0c0c0d | #fafafa | #ef4444 | #8a8a8f | sans |
| sand | Sand | #efe7da | #2a2118 | #9a6b3f | #7c6f5f | serif/sans |
Gradient styles: Dusk indigo→magenta, Ember deep red→burnt amber, Deep sea navy→teal, Halo (radial) lit centre on near-black, Dawn cream→rose.
Per style: fg/bg ≥ 4.5:1, muted/bg ≥ 3:1, accent/bg ≥ 3:1, and bg-on-accent ≥ 3:1 — because the CTA block prints theme.bg text on theme.accent.
Gradient styles are additionally checked against every stop, not just the first: contrast against theme.bg only checks one end of a ramp that text sits across the whole of. That test caught two real failures during development.