A client sends a screenshot and says "use this blue". You pick the pixel, get #4A6FA5, and now you need a word for it. Is that steel blue? Slate blue? Denim?
It sounds like a lookup problem. It is not. Hex codes describe 16.7 million possible colors, and human languages have names for maybe a few hundred of them. Every colour-naming tool is really answering a harder question: which named color does this look most like?
And "most like" turns out to be the tricky part — because the obvious way to measure it gives answers that are demonstrably wrong to the human eye. This guide explains what actually happens, with numbers you can check yourself.
Most Colors Have No Official Name
There is no authority that names colors. What exists instead is a handful of overlapping lists:
- CSS named colors — 148 names browsers understand natively, such as
tomato,rebeccapurple, andpapayawhip. This is the closest thing to a standard, and it is tiny. - Design and paint systems — proprietary catalogues with their own naming, usually licensed rather than public.
- Common usage — words like teal, maroon, or beige that everyone uses and nobody defines precisely.
So when a tool tells you #4A6FA5 is "Steel Blue", it is not reading a label off the color. It is comparing your color against a list and reporting the nearest entry. The whole result depends on how "nearest" is measured.
The Obvious Method — and Why It Fails
The intuitive approach is to treat a color as a point in 3D space with red, green, and blue as the axes, then measure straight-line distance:
distance = √( (R₁-R₂)² + (G₁-G₂)² + (B₁-B₂)² )It is simple, fast, and wrong. The problem is that RGB is not perceptually uniform — equal steps in the numbers do not produce equal steps in what you see.
Here is the clearest demonstration. Both of these pairs sit at an RGB distance of exactly 30:
| Pair | RGB distance | Perceptual difference (ΔE) | Can you see it? |
|---|---|---|---|
#FFFF00 vs #FFE100two yellows |
30 | 8.44 | Obviously different |
#0000FF vs #1E00FFtwo blues |
30 | 0.62 | Invisible |
Identical distance by the RGB formula. In reality one pair is clearly two different yellows, and the other is a single blue shown twice — the difference sits below what the human eye can detect at all.
This is why a naive matcher confidently returns the wrong name. It is measuring in a space that does not match how you see.
How Perceptual Matching Works
The fix is to stop measuring in RGB. Perceptual matching converts every color into CIELAB, a color space designed so that equal distances correspond to equal perceived differences.
The conversion runs in three steps:
sRGB → linear RGB → XYZ → LAB- Linearise — screen values carry a gamma curve baked in; it has to be removed first.
- To XYZ — a device-independent space based on measurements of how human vision actually responds.
- To LAB — three axes:
Lfor lightness,afor green–red,bfor blue–yellow.
Once both colors are in LAB, the difference between them is measured with a formula called Delta E. The current standard is CIEDE2000, which adds corrections for the places CIELAB is still slightly uneven — particularly deep blues and low-saturation colors.
Delta E has been revised repeatedly since 1976 precisely because getting this right is hard. The 2000 version is the one to look for.
What a Delta E Number Means
Delta E is useful because the numbers map to real perception rather than being an arbitrary score:
| ΔE 2000 | What it means |
|---|---|
| 0 | Identical colors |
| Under 1 | Not perceptible to the human eye |
| 1 – 2 | Noticeable only to a trained observer looking closely |
| 2 – 10 | Visible at a glance |
| Over 10 | Clearly two different colors |
That threshold of 1 is the reason the blue pair above is a non-event. At ΔE 0.62, no human can tell those two blues apart — so any tool reporting them as meaningfully different colors is reporting noise.
Hue and Intensity Fill the Gaps
Even perfect matching runs into the same wall: your color probably has no name. If the nearest entry sits at ΔE 12, calling it "Steel Blue" is misleading.
This is where a second description helps, built from HSL rather than a lookup:
- Hue — the position on the color wheel, in degrees. It answers "which family?" — red, orange, cyan, magenta — independently of how light or vivid the color is.
- Saturation and lightness — together these give intensity: pale, pastel, moderate, vibrant. A near-grey has almost no saturation, so no hue word would be honest.
So a good result gives you two things: the nearest named color and a plain description of what the color actually is. When the match is weak, the description is the part you can trust.
Finding the Name of Your Color
- Open the Color Name Finder.
- Enter your color as HEX or RGB — or upload an image and pick the pixel directly, which saves converting a screenshot by hand.
- Read the closest match together with its similarity score. A high score means the name is accurate; a low one means it is only the nearest available word.
- Check the hue and intensity description underneath. On an unusual color this is the more reliable answer.
- Scan the alternatives. A second or third name sometimes communicates the color better to another person, even at a slightly lower score.
Everything runs in your browser — the color values and any image you load never leave your machine.