OKLCH Studio

Accessible colour palettes (WCAG 2.2 + APCA verified)

These are concrete, ready-to-copy palettes for specific uses: an industry, a type of product, a kind of chart or a particular need such as low vision. The companion guide explains how to build a palette; this collection gives you finished ones, each with a light and a dark theme.

Every palette is generated by a program, not drawn by hand. Each page starts from a hue and chroma intent chosen for its use case, then the generator solves lightness in OKLCH, holding hue and chroma, until every declared pair meets its target. Hex values are the sRGB result after gamut mapping, and the OKLCH values shown are those of the final hex.

Each pair is verified with the same code as the contrast checker: the WCAG 2.x ratio decides pass or fail, and APCA Lc is shown beside it with its tier. Chart palettes are also tested for series contrast and for colour-blind separation with simulated protanopia, deuteranopia and tritanopia. If a target is ever missed, the build fails, so a failing palette cannot ship.

How to build an accessible palette →WCAG 2.2 vs APCA →Contrast checker →shadcn/ui themes in OKLCH →Tailwind AA data report →

Industries

Product & UI

Data visualisation

Special needs

FAQ

What does verified mean here?
Every colour pair a page lists was computed from its final hex value with the WCAG 2.x contrast formula, and the pass or fail decision uses the raw ratio. A build step fails if any pair misses its target. Verification covers colour contrast only, not a full accessibility audit.
Which WCAG level do the palettes meet?
All text pairs meet AA at 4.5:1 or better, and many target AAA at 7:1 for body text. Borders, focus rings and chart series meet the 3:1 of WCAG 1.4.11 Non-text Contrast. Each page states the target of every pair.
Are the colour-blind checks a guarantee?
No. They are simulations using the Machado et al. (2009) model, applied at full severity, and a minimum perceptual difference in OKLab is required between colours. They are a strong screening signal. WCAG 1.4.1 still asks you to pair colour with labels, icons or patterns.
Can I change a colour and keep it accessible?
Yes. Paste the pair into the contrast checker. If it fails, the Fix button moves OKLCH lightness while keeping hue and chroma until it passes, which is the same method the generator uses.
Do the palettes work with Tailwind and shadcn/ui?
Each page exports CSS custom properties, a Tailwind CSS v4 @theme block, shadcn/ui variables and design-token JSON, all generated from the verified values. See the shadcn/ui themes for comparison.

← OKLCH Studio