APCA Contrast Checker
Score a colour pair with APCA, the contrast model behind WCAG 3.
Pick colours in OKLCH, the space modern CSS is built on.
The oklch() value appears here
The OKLCH Color Picker builds colours in the space modern CSS has settled on, where equal lightness genuinely looks equally bright at every hue, and draws the sRGB gamut boundary live as you move the chroma slider.
OKLCH is the notation modern CSS work is converging on, and once you have built a palette in it the reason is obvious: lightness behaves. Set L to 60% and every hue at that lightness genuinely looks equally bright, which is simply not true in HSL, where yellow at 50% lightness blinds you and blue at 50% is nearly black.
That property is what makes a design system possible. A scale from 50 to 950 built by moving lightness in OKLCH produces shades that match across every hue in the palette, so a red-600 and a blue-600 carry the same visual weight — which is exactly what Tailwind v4 moved to OKLCH for.
The picker shows the sRGB gamut boundary as you move, because the practical difficulty with OKLCH is that most of the space is not displayable. The maximum chroma for your current lightness and hue is drawn live, so you can see how much saturation is available before the colour has to be mapped back in.
L 60% looks equally bright at every hue, which is what lets a red-600 and a blue-600 carry the same weight.
The chroma slider marks where sRGB runs out for your current lightness and hue, so the limit is visible rather than discovered.
The same space the framework moved its whole palette to, so values here drop straight into a modern config.
A fallback declaration for browsers from before 2023, emitted alongside the oklch() value.
Paste an existing HEX code to see its OKLCH components and adjust from there.
The three sliders are the colour. The preview updates as you move.
The chroma slider marks where sRGB runs out for your current lightness and hue.
The oklch() value, with a HEX fallback for older browsers.
Paste an existing colour to see its OKLCH components and work from there.
Because HSL lightness is a geometric position, not a perceptual one. OKLCH was built so that equal lightness values look equally bright at every hue, which is the property you need to build a consistent palette.
sRGB colours run from 0 for grey to about 0.37 at the most saturated. Most interface colours sit between 0.05 and 0.25. Anything above about 0.32 will be out of gamut at most hues.
Yes. Every current browser supports it, and Tailwind v4 ships its whole palette in OKLCH. Provide a HEX fallback if you still support browsers from before 2023.
Because the sRGB gamut is a very irregular shape. Yellows and greens reach much higher chroma than blues and purples at the same lightness, so moving the hue can push you outside what the screen can show.
What people who use the OKLCH Color Picker think of it. Reviews come from visitors and are posted as written.
No ratings yet
Yours would be the first.
0 reviews
Newest first
No reviews yet
Be the first to rate the OKLCH Color Picker. It takes half a minute and no account.
Write the first reviewScore a colour pair with APCA, the contrast model behind WCAG 3.
Check whether a colour code is valid, and fix it if not.
Convert HEX colour codes to RGB and HSL, and back again.
Put a gradient on a border — and keep the rounded corners.
Pick any colour and copy it as HEX, RGB, HSL or CSS.
All 148 CSS colour names, searchable and sortable.
Convert a HEX colour to the integer forms Android, Java and Unity want.
Build a whole palette from one hue, and nothing else.