frameworksastro
scenarioSeed picker recolors a subtree
Every part inside the scope follows the picked seed in both modes; text stays readable on every surface; the diagnostics list what the generator had to clamp.
- Seed
- oklch(0.62 0.17 300)
- Kind
- chromatic
- Clamped (light)
- text.contrast.bold
- Clamped (dark)
- text.contrast.bold
This week: chapters 4–6. Bring one passage you would cut and one you would read aloud.
62%
RA
Rosa picks the next title.
scenarioContrast pairs for the seed
Every text token of the picked seed, on the weakest surface step it sits on (contrast text on the accent fill), in both modes — nothing may fall below AA; a clamped token shows as AA only.
scenarioOne seed per tenant, rendered on the server
Each card wears its tenant's color with no script; the near-gray seed becomes a tinted neutral, the yellow one keeps readable text, and the invalid seed falls back to neutral.
#b45309
#0f766e
#db2777
#1d4ed8
#78716c
#facc15
not-a-color
scenarioNo scope: dynamic renders as neutral
Without a toneStyle()/applyTone() ancestor, tone="dynamic" matches tone="neutral" exactly.