One colour, eleven steps — and a count of how many are real

    Harmonies — each one is a hue rotation, and it says which

    The ramp as CSS custom properties

    Why not HSL

    Almost every ramp generator works in HSL, and HSL's L is not lightness. hsl(60 100% 50%) and hsl(240 100% 50%)both claim fifty per cent and differ by about a factor of twelve in how bright they look. A palette built that way has a yellow 500 and a blue 500 that are not the same weight, which is why the buttons in that palette never quite match. In OKLCh the lightness axis is perceptual, so step 500 of the yellow and step 500 of the blue really do agree.

    69 scales, already built

    One per colour in the core set — the curated colour nearest each of seven lightnesses in each hue family, selected by the rule printed on /about and by nothing else. 69 of the 69 keep all ten steps distinguishable.