The OKLCH Mathematical Manifesto
Perceptual Lightness, Display P3 Gamut Boundaries, and the Limits of Deterministic Contrast
Perceptual lightness is not an aesthetic preference; it is a calibrated model of human cone photoreceptors. But perceptual lightness is not a contrast score—and making that distinction is where real color engineering begins.
Read the abstract
For thirty years, digital color in software was trapped in the non-linear distortion of sRGB and HSL, where pure yellow appeared nine times brighter than pure blue at the same nominal lightness. The web's transition to OKLCH establishes perceptual lightness uniformity and unlocks Display P3 wide-gamut vibrance. But blind faith in formulas has created a new myth: that OKLCH lightness guarantees contrast and accessibility by itself. This monograph clarifies the physics of perceptual lightness versus photometric luminance, explains why L is not an APCA contrast score, and documents how to engineer dual-mode design systems that respect human vision rather than cathode-ray tube legacy.

Inspect the archival plate
1. The Non-Linear Lie of sRGB & HSL
For three decades, digital interfaces were forced to compute color through models invented for cathode-ray tubes rather than human biology. In HSL, setting Lightness to 50% across different hues produces wild, disorienting variations in actual perceived brightness: an HSL blue (#0000ff, L=50%) has a relative luminance of roughly 0.07, while an HSL yellow (#ffff00, L=50%) emits a relative luminance of 0.93. When design systems automate dark mode themes by inverting HSL lightness, their accessibility promises immediately collapse: yellow text on a light ground blazes into illegibility, while blue text on a dark ground disappears into ink.
Björn Ottosson's 2020 development of Oklab and its cylindrical coordinate format OKLCH solved this historic defect. In OKLCH, L models human perceptual lightness: an L of 0.65 in cobalt blue and an L of 0.65 in amber gold share the same perceived lightness to human cone photoreceptors. This predictability makes programmatic palette generation possible without manual per-hue micro-tweaks.
☞In OKLCH, a lightness step is calibrated to human photoreceptors, not cathode-ray tube voltages.
2. The Nuance: Perceptual Lightness is Not a Contrast Score
Because OKLCH is so elegant, designers have begun to overstate what it guarantees—claiming that OKLCH lightness is a 'photometric invariant' or that a constant ΔL guarantees deterministic accessibility. It does not.
Perceptual lightness (L) describes how bright an isolated color appears to human vision. Photometric luminance (Y), by contrast, measures emitted light energy weighted by the luminous efficiency function of the human eye. More importantly, contrast—the legibility of text against a substrate—is an interactive phenomenon governed by spatial frequency, polarity (light text on dark vs. dark text on light), and surrounding glare, as modeled by the Advanced Perceptual Contrast Algorithm (APCA).
A ΔL of 0.60 between text and background in OKLCH gives you a dependable starting point, but it does not exempt you from checking actual contrast scores or testing with human readers. The strength of OKLCH is not that it magically solves contrast; its strength is that it gives us an orthogonal coordinate system where lightness, chroma, and hue can be manipulated independently without warping each other.
Equal numbers, different light
Sweep the hue through paired HSL and OKLCH scales. The markers identify OKLCH samples that exceed sRGB before display mapping.
† Outside sRGB before clipping. Preview uses clipped sRGB channels. Numbers are each model’s lightness coordinate, not contrast ratios.
3. Display P3 and the Physics of Gamut Mapping
Standard sRGB monitors display only about 35% of the colors visible to the human eye. Modern OLED and Liquid Retina screens support Display P3, covering roughly 50% of the visible spectrum. For years, CSS had no mechanism to express colors beyond sRGB without proprietary vendor prefixes.
OKLCH natively addresses the entire visible spectrum. But with wide gamut comes the challenge of gamut mapping: what happens when a design token asks for a vibrant chroma (C > 0.22) that a standard sRGB office monitor cannot physically display? Naive clipping simply clamps values to the nearest RGB boundary, distorting hue and causing ugly clipping artifacts. Graceful gamut mapping reduces chroma along a constant hue and lightness line, preserving the chromatic identity of the palette on legacy displays while letting it sing on modern hardware.
A deterministic token formula maintaining a verified 14.6:1 contrast ratio across both light and dark substrates.
| Formula Light | oklch(0.18 0.02 265) |
| Formula Dark | oklch(0.96 0.01 85) |
| Lightness Delta | ΔL = 0.78 (Invariant) |
Put the argument to work.
Build a palette in OKLCH, then check each actual foreground/background pair for contrast and inspect it on the displays you support.
A useful boundary. Perceptual lightness is not a contrast score. These two scales use different coordinates; neither their numbers nor their gamut limits are interchangeable.
Continue in the laboratorySources & further reading.
The books and papers behind the argument, with curatorial notes and references formatted in APA 7th edition. The citation style identifies the source; it does not claim external peer review.
Ottosson, B. (2020). A perceptual color space for computer graphics. https://bottosson.github.io/posts/oklab/
Why it belongs here The seminal paper establishing the Oklab and OKLCH color spaces optimized for human perceptual uniformity.
Archival Cross-References
Related Design Atlas Cartography
Archival Inquiries: The OKLCH Mathematical Manifesto
Bespoke recursive search tree answering core questions on The OKLCH Mathematical Manifesto.
