
Jul 22, 2026Color
Building a palette that survives dark mode
Anchoring every hue to a lightness scale before picking chroma kept contrast ratios intact across both themes without a single manual override.
Most dark modes break because the palette was designed as a set of colours rather than a set of relationships. Invert the background and every hand-tuned hue has to be tuned again.
We rebuilt ours in a perceptual colour space, fixing lightness steps first and only then choosing chroma and hue. Every token became a position on a ladder instead of a hex value someone liked.
The result: one theme file, two sets of lightness values, and contrast ratios that passed on the first audit. No override list, no screenshot review marathon.


