Expand description
Case 3 — vivid color taming and role split.
A neon brand is fine as a small accent but painful as a large surface and hostile to text contrast. Above a chroma threshold the engine produces two siblings: the original (for small touches) and a tamed surface (for large fills). Hue never moves — only chroma and lightness adjust.
Structs§
- Vivid
Split - Output of
split_vivid_roles.
Constants§
- VIVID_
CHROMA_ THRESHOLD - Chroma above this (in OKLCH) is “too vivid for large surfaces”. 0.16 sits comfortably below electric primaries (red ≈ 0.25, lime ≈ 0.24, cyan ≈ 0.18) while leaving room for healthy brand teals (~0.13–0.14) to pass through untamed.
Functions§
- split_
vivid_ roles - Split a brand into accent (small) and surface (large) roles.