How the scale is built
Most scale generators interpolate lightness in HSL. That works until you look at the ends: the hue drifts and saturation collapses, so the 50 and the 950 stop looking like they belong to the color you typed.
Atomic Colors composites instead. Each step is your base color laid over white or black at a decreasing opacity — the same thing a design tool does when you drop the opacity on a layer.
The ramp, literally
There is no curve fitting and no color model conversion in this part. The default ramp is eleven steps, and each one is a single alpha composite — this is the real output for a blue, straight from the engine:
Alpha compositing moves the color in a straight line toward white or black in RGB space, so the whole ramp stays in one hue family. And because 500 is returned unmodified, the color you typed is always in the scale — which sounds obvious until you check other generators and find it isn’t.
The ramp is configurable. If 8% is too light for your 50, or the midtones bunch up for a color as dark as navy, you can move each stop and the export follows.
What compositing costs
Compositing toward pure white and pure black is predictable, but it is not perceptually uniform. Two colors with the same nominal opacity will not read as equally light if one is yellow and the other is blue — yellow carries far more luminance to begin with.
The trade is deliberate: you get a ramp that never leaves the hue family and always contains your exact input, in exchange for steps that are not perfectly even in perceived lightness. If your system needs uniform perceptual steps more than it needs the original hex, a LCH-based generator is the better fit.
Then the semantic colors
The scale is the easy half. The harder problem is proposing success, warning, error, info, discovery and neutral colors that work next to your brand color and stay apart for people who do not see color the way you do.
Those are not picked from a fixed list. They are derived from your base, anchored to the hue family each meaning belongs to, and then ranked by how far apart they stay under simulated color blindness. A candidate that looks fine in trichromatic vision but collides under deuteranopia is rejected outright.
The threshold is a CIEDE2000 distance of 11, measured against every color already reserved — including yours. If you want the reasoning behind that number and the rest of the engine, the methodology page goes through it.