Hex is a storage format, not a perception.
Two colors can look almost the same in their hex codes yet clearly differ to your eye — or look far apart in the file and turn out identical to look at. The reason is that hex just stores the raw numbers; it doesn’t know anything about seeing. So Quanta Color works in spaces designed to track how vision actually behaves. Here’s what that buys you: CIELAB and the Oklab family are spaced so equal steps in the numbers look equally different to the eye; CIECAM-style models — which account for the fact that the same color can look different depending on what surrounds it — are included too; and JzAzBz and ICtCp are built for very bright, high-range images. When it asks “how different are these two colors,” it uses the measuring sticks color scientists actually trust — not a plain ruler laid across the wrong kind of map.
The real question was never “what numbers are in the file.” It’s “what will a person actually see” — and that turns out to be something you can measure.Don’t take the color. Measure it.
Each of these is verbatim output from the real CLI — quanta-color 1.0.1, run live.
$ quanta-color info ff6030 Color: #ff6030 sRGB: (1.0000, 0.3765, 0.1882) XYZ: (0.4596, 0.2985, 0.0614) Lab (D65): (61.52, 58.31, 56.98) Oklab: (0.6128, 0.8175, 0.0611) Oklch: (0.6128, 0.8198, 4.3) Luminance: 0.2984 Dominant wavelength: 775 nm Contrast vs white: 3.01:1 vs black: 6.97:1
One color in, and you get back every way of describing what the eye does with it — how light it looks, how vivid, what hue, how bright, even which single wavelength of light it leans toward, and how readable it would be as text on a page. All from one command.
Captured live from quanta-color info · it walks the color through several of those spaces in turn, anchored to standard daylight as the reference white (the neutral “white” the math is calibrated against). The readability numbers use the very same math the accessibility work elsewhere on this site relies on.
$ quanta-color difference ff0000 00ff00 --metric all Color 1: #ff0000 Color 2: #00ff00 CIE76 170.1404 CIE94 74.8681 CIEDE2000 87.6784 CMC(2:1) 104.2193 HyAB 201.1010
Red against green, measured five different ways at once. There’s no single “how different do these look” number everyone agrees on — it depends on which method you trust — so the honest thing is to lay them all on the table.
Five accepted ways of measuring color difference — CIE76, CIE94, CIEDE2000, CMC, and HyAB. Each was developed by color scientists to better match how people actually see. The gap between their answers is exactly the point: report just one number and you quietly hide the fact that the experts don’t fully agree.
$ quanta-color harmony ff6030 --scheme triadic Base: #ff6030 Scheme: triadic 1. #ff6030 (1.000, 0.376, 0.188) 2. #588a00 (0.349, 0.543, 0.000) 3. #fe51ff (0.999, 0.320, 1.000)
Three colors spaced evenly around the color wheel — but spaced in a way that tracks how the eye sees, so they look evenly apart to you, not just evenly apart on paper.
There’s more: convert a color between any two of the 15+ spaces, spectrum to build a color from a light’s warmth or coolness (its color temperature), icc to write that small profile a display uses to show color faithfully, and a clickable window — just run quanta-color with nothing after it.
15+ spaces, 12 tone-mappers, the metrics by name.
Spaces: sRGB, Linear RGB, XYZ, xyY, CIELAB, LCH, Oklab, Oklch, JzAzBz, JzCzhz, ICtCp, HSV, Display P3, BT.2020, Adobe RGB, ACEScg. HDR tone mapping with twelve operators — ACES (Narkowicz + Hill), AgX (neutral / punchy / golden), Reinhard, Hable/Uncharted 2, Lottes, Uchimura/Gran Turismo, PBR Neutral (Khronos glTF), BT.2390 EETF, BT.2446 Method A, and a custom knee. Difference by CIE76, CIE94, CIEDE2000, CMC, HyAB; chromatic adaptation, color-blindness simulation, gamut mapping, color naming, 3D-LUT I/O.
Color is where this whole habit started, for me: trust what you can measure, not the swatch — and be ready to show the number when someone asks.
Shipped: quanta-color 1.0.1, free to use under the MIT license, installable from PyPI, and it runs on Python 3.10 or newer. Its tests cover the color spaces, light adjustment, difference, the range of colors a device can show (its gamut), harmony, naming colors, color-blindness simulation, and reading and writing color lookup tables. And here’s the limit I want to name before you bump into it: this is a workbench and a toolkit for working with color, not a calibrated instrument for measuring a physical screen. For the display side of things, pair it with calibrate-pro.
Install it. Then ask it what you’re really seeing.
Python 3.10 or newer.
$ pip install quanta-color $ quanta-color info ff6030 # every space for one color $ quanta-color convert ff6030 --to oklab $ quanta-color difference ff0000 00ff00 --metric all $ quanta-color # or launch the GUI