Comparison

Lab vs OKLab

Same shape: a lightness axis and two opponent axes. Forty-four years apart, and fitted to different data.

Short answer. Build new work in OKLab — it fixes CIELAB’s blue-region hue shift, which is the failure you will actually hit when interpolating — and keep CIELAB where ΔE and existing colour-management tooling require it.

CIELAB, standardised in 1976, was the first widely-adopted attempt at a space where numeric distance approximates perceived difference. It succeeded well enough to become the foundation of colour difference work across print, textiles and manufacturing, and every ΔE formula in common use is defined over it.

Its known weakness is hue uniformity in the blue region. Interpolate from blue toward white in CIELAB and the path bends through purple — not subtly, and not because of anything you did. The Abney effect is visible in the space itself. L* also tracks perceived lightness less closely than later models manage.

OKLab, published in 2020, keeps the shape and refits it. It converts to LMS cone responses, applies a cube root, then a matrix — a structure closer to the visual system than CIELAB's piecewise transfer function. The practical result is that interpolation stays on a sensible path, which is why CSS chose oklab as the recommended interpolation space rather than lab.

CIELAB vs OKLab, side by side

DimensionCIELABOKLab
Published1976 (CIE)2020 (Björn Ottosson)
Lightness rangeL* 0–100L 0–1
Hue uniformityPoor in blue; visible purple shiftSubstantially better across the wheel
Interpolating to whiteDrifts purple from blueStays on hue
ΔE formulasΔE76, ΔE94, ΔE2000 all defined on itNo standardised ΔE; Euclidean distance works well
Industry toolingUniversal in print and manufacturingMostly web and design tooling
CSSlab() and lch()oklab() and oklch(), the recommended default
Best used forColour difference, print workflowsGenerating ramps, gradients, interface color

Where this comparison is unfair

CIELAB is not obsolete. If you are computing ΔE against a tolerance, working with ICC profiles, or exchanging measurements with anyone in print or manufacturing, CIELAB is the language and OKLab is not. Substituting it would mean your numbers stop meaning what everyone else's mean.

OKLab is also not perfect — it is a better fit, not a solved problem. It is fitted primarily to sRGB-range data, and very saturated wide-gamut colors are where its uniformity is least tested.

Frequently asked questions

What is the difference between Lab and OKLab?

Both are perceptual opponent-axis spaces with the same overall structure. OKLab is a 2020 refit with markedly better hue uniformity — most visibly, interpolating from blue toward white does not drift purple the way it does in CIELAB.

Which should I use for gradients?

OKLab. It is why CSS added linear-gradient(in oklab, …), and it removes both the muddy midpoint of gamma-encoded sRGB and the purple drift of CIELAB in one move.

Does OKLab have a delta E?

Not a standardised one. Because the space is closer to uniform, plain Euclidean distance in OKLab is a reasonable difference measure, but if you need a number others will recognise — a print tolerance, a QA threshold — use ΔE2000 over CIELAB.

Is OKLCH the same as OKLab?

Same space, different coordinates. OKLab uses two opponent axes, a and b; OKLCH reads the same point in polar form as chroma and hue. Use OKLCH when you want to adjust hue or colourfulness independently, OKLab when you are interpolating or doing arithmetic.

Try it yourself

Definitions

Further reading

Other comparisons