I assumed naming a color was a solved problem.
CSS has 148 named colors. Build a tool that takes a camera frame, averages the center pixels, and finds the nearest named color by RGB distance. Ship it. Done.
I pointed my phone at the sky to test it. The tool returned “Cornflower Blue.” Which is accurate. I still had no idea if Cornflower Blue was what I was looking at.
That’s the color picker I put up at ricoordonio.com/tools/color-picker/ earlier this spring. It samples a 20x20 pixel center patch from your camera feed every 200 milliseconds and names what it finds. The naming source is the CSS-148 set, the full list of browser-recognized named colors from “Aliceblue” to “Yellowgreen.” I picked CSS-148 over the XKCD color survey and paint-deck alternatives because it’s small, well-defined, and has no licensing complications. Nearest match by RGB Euclidean distance. The result comes back title-cased and updates in real time.
The problem is that CSS-148 was built for stylesheet authors who can picture “Papaya Whip” on a hex chart. The people I was building this for stand in paint aisles or point phones at fabric swatches or just want to know what color their kitchen walls actually are.
So I added a second mode.
Simple mode produces 12 everyday names instead of 148 precise ones: Red, Orange, Yellow, Green, Cyan, Blue, Purple, Pink, Brown, Black, Gray, White. The classification runs in HSL space. Brown isn’t a hue. It’s what you call dark desaturated orange or yellow. That’s it. Pink isn’t a hue either, it’s light red or red-magenta with high lightness. Human color vocabulary maps onto HSL naturally once you stop trying to match CSS names and just describe how people actually talk. The rules aren’t complicated because the vocabulary isn’t complicated.
The toggle lives in a pill in the info card. Detailed is the default because the full CSS name feels more specific when you first open it. Simple is the mode I use. If I’m scanning something to figure out what color it is, I want an answer I can say out loud.
And you know what, I didn’t see the tension clearly until after the first version shipped. Right and useful are different axes. The detailed answer is always technically correct. The simple answer is vaguer. But vagueness and usefulness are not the same thing. The person standing at the paint display at 9 PM doesn’t want to know they’re holding “Lemon Chiffon.” They want to know if it reads as cream or white at a glance. Those are different questions, and only one of them was asked.
If you catch yourself shipping an answer that requires a decoder ring, you haven’t finished building the tool yet.