Skip to main content

Module vivid

Module vivid 

Source
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§

VividSplit
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.