Deriving a lighter background, a darker text color, or a translucent border from one brand color used to belong to preprocessors (Sass's `mix()`, `lighten()`) or a JS color math library — plain CSS had no "blend this color with that one at 70/30" operation.
`color-mix(in oklch, var(--accent) 70%, white)` names a color space and a ratio and lets the browser do the blending. Picking the interpolation space matters — `in oklch` or `in oklab` shift perceived lightness evenly, avoiding the muddy midtones sRGB mixing produces. Paired with custom properties, one design token can derive every hover/disabled tone.
Check caniuse/MDN baseline for support. Without it, precomputed static color values (from a preprocessor or JS) plugged straight into the custom property are the fallback.
When to use
Deriving several tonal variants — hover, disabled, tinted background — from a single brand color.