Why do the monochromatic swatches ignore my base color's lightness?
The monochromatic row is deliberately a fixed ramp at 20, 35, 50, 65, and 80 percent lightness, holding your hue and saturation. This gives a predictable, evenly spaced scale that works as a UI colour ladder no matter how dark or light your input was. If you want a ramp anchored to your exact base, look at the shades and tints row, which inserts your own lightness value into the scale.
The triadic colors look wrong next to each other. Is that expected?
It is a known limitation of HSL. Rotating the hue by 120 degrees keeps the numeric saturation and lightness identical but not the perceived brightness, so a yellow and its triadic partners can look badly mismatched. Treat the output as a starting point and hand-tune lightness, or use a perceptual space such as OKLCH for production palettes.
How do I get all the hex codes out at once?
Each palette row has a Copy row button that puts the whole set on your clipboard as comma-separated hex values, and clicking any individual swatch copies that one hex on its own. There is no CSS or JSON export, so you paste the values into your own variables.
What does the label text color on each swatch tell me?
Nothing about accessibility. The tool picks white or near-black label text using a YIQ brightness estimate with a threshold of 140, purely so the hex code stays readable on the swatch. It is not a WCAG contrast check and should not be read as one.
Can I feed it a grey or a near-black base?
You can, but hue rotation is meaningless when saturation is near zero, so complementary, analogous, and triadic will all come back looking like the same grey. Only the monochromatic and shades and tints rows produce a useful result from a desaturated base.