How to read it
Set your stops and pick an interpolation space. The diagnosis up top states what it found in plain language; the four small charts and the data table back it up. Switch between OKLCH, OKLAB and sRGB to see how the same stops behave — then jump to the gradient generator to build the CSS.
Why it’s perceptual
Chroma and lightness come from OKLCH, and step size is ΔE2000 in Lab — never raw sRGB distance — so the curves reflect how a gradient actually looks, not just how its numbers move. Banding is measured as true 8-bit posterization, because that is what produces the visible stripes.
Frequently asked questions
What do the four curves show?
For each point along the gradient: lightness (L*) and chroma (C*) from OKLCH, the hue angle, and the per-step ΔE2000 (perceptual distance between consecutive samples). A flat, smooth set of curves means an even gradient; dips, spikes, and reversals point at the specific failure.
What is the gray “dead zone”?
When an interpolation passes through low chroma, the mid-gradient colors desaturate toward gray. The classic case is Blue→Yellow in sRGB, whose midpoint is literally #808080 gray. The chroma curve makes this visible: it dips below the dashed threshold. OKLCH/OKLAB usually keep chroma up — though watch hue sweeps, which can make ΔE steps uneven instead.
How does it detect banding?
By measuring real 8-bit posterization, not just ΔE. It samples the gradient at 256 steps, quantizes each to an 8-bit hex, and reports how many distinct colors result and the longest run of identical consecutive samples. Few distinct colors with long flat runs means visible bands on an 8-bit display — something a flat ΔE curve alone does not guarantee against.
Is the ΔE 2000 number an exact banding threshold?
No. ΔE2000 measures perceptual step size, and even steps make for a smooth gradient — but the often-cited “2.3 just-noticeable-difference” figure comes from older CIE76 work and is a rough rule of thumb, not a validated ΔE2000 threshold. Treat the ΔE curve as showing evenness; rely on the distinct-color and flat-run counts for actual banding risk.
Is my gradient sent anywhere?
No. Everything is computed in your browser. The stops and interpolation space are encoded in the URL so you can share an analysis, but nothing is uploaded.
Related tools
References
This tool’s color math is grounded in the following standards and primary sources.
- CSS Color Module Level 4 — W3C Candidate Recommendation
- A perceptual color space for image processing (OKLab / OKLCH) — Björn Ottosson, 2020
- The CIEDE2000 color-difference formula — Sharma, Wu & Dalal (2005), Color Research & Application
- Color.js — Lea Verou & Chris Lilley (MIT)
Spotted an error? Let us know — reader corrections are the best review this site gets.