OKLCH Color Picker
Pick a color in perceptually-uniform OKLCH, generate a Tailwind v4 palette, and export it. 100% local - runs entirely in your browser.
Values
Contrast (this color as text)
Tonal palette
Tailwind steps · same hueExport
@theme {
--color-brand-50: oklch(97.0% 0.123 296.0);
--color-brand-100: oklch(94.0% 0.128 296.0);
--color-brand-200: oklch(88.0% 0.138 296.0);
--color-brand-300: oklch(80.0% 0.151 296.0);
--color-brand-400: oklch(70.0% 0.167 296.0);
--color-brand-500: oklch(62.0% 0.180 296.0);
--color-brand-600: oklch(54.0% 0.167 296.0);
--color-brand-700: oklch(46.0% 0.154 296.0);
--color-brand-800: oklch(38.0% 0.141 296.0);
--color-brand-900: oklch(30.0% 0.128 296.0);
--color-brand-950: oklch(22.0% 0.115 296.0);
}About
OKLCH is a perceptually-uniform color space built on three intuitive axes - Lightness, Chroma, and Hue. Unlike HSL or RGB, an equal step in OKLCH lightness looks equally different to the human eye, which is exactly why Tailwind CSS v4 moved its default palette to native oklch() values.
Drag the L, C and H sliders to dial in a color and watch the live preview, hex and RGB readouts update instantly, flagging whether it fits inside the sRGB or wider Display-P3 gamut. From any base color it generates a full tonal scale across the Tailwind steps (50-950), ready to export as CSS variables or a Tailwind v4 @theme block, alongside WCAG 2.1 and APCA contrast readouts.
Everything runs 100% in your browser - no upload, no account, no tracking.
Named colors in OKLCH
See any named color as OKLCH, HEX and RGB, with a ready Tailwind v4 palette.
Frequently Asked Questions
About the OKLCH Color Picker.
OKLCH is a perceptually uniform color space defined by Lightness, Chroma, and Hue. Unlike HSL or RGB, equal numeric changes in OKLCH lightness look equally different to the human eye, and changing the hue does not unexpectedly shift perceived brightness. This makes it ideal for building consistent tonal palettes and accessible color systems.
No. This OKLCH color picker runs entirely in your browser. All conversions, gamut checks, palette generation, and exports happen locally in JavaScript - nothing is uploaded, logged, or transmitted anywhere.
A gamut is the range of colors a display can actually show. OKLCH can describe colors that are more saturated than a screen can render. When a color is out of the sRGB gamut, most standard monitors cannot display it exactly; Display-P3 is a wider gamut available on many modern screens. The tool flags when your color exceeds each gamut so you know it will be clamped on those displays.
Tailwind v4 uses native CSS color tokens, so you can paste the generated @theme block straight into your CSS. Each step becomes a --color-<name>-<step> token (e.g. --color-brand-500) that Tailwind exposes as utilities like bg-brand-500 and text-brand-700. The tool outputs the values as oklch() so they stay perceptually uniform.
The palette keeps your base hue fixed and sweeps lightness across the standard Tailwind steps (50–950). Chroma is gently reduced toward the lightest and darkest ends so the ramp stays natural and in-gamut, instead of getting muddy or clipping. The result is an even, accessible scale built around your chosen color.
They estimate how readable text would be in your color against black and white. WCAG 2.1 gives the classic contrast ratio (AA needs 4.5:1 for normal text) and is still the standard you comply with today. APCA is a newer, perceptually-tuned method that was explored for WCAG 3 but removed from the working draft in 2023, so WCAG 3 has not settled on a contrast algorithm yet - treat APCA as a helpful preview, not an official requirement. Use both to check whether a palette step works as a text or background color before shipping it.
Yes. The current color is encoded in the page URL, so copying the link preserves your exact L, C, and H values. Anyone who opens it lands on the same color and generated palette - no account or save step required.
From the blog
APCA vs. WCAG: Navigating Color Contrast and Accessibility in 2026
Understand the mathematical differences between WCAG 2.2 and APCA contrast algorithms, and how to stay legally compliant while building beautiful UI.
Read →tutorialMigrating to Tailwind v4: How to Configure Custom OKLCH Color Themes
Learn how to move from Tailwind v3 to v4, replace tailwind.config.js with the new @theme directive, and build modern OKLCH color palettes.
Read →colorThe Science of Wide-Gamut Web Colors and Gamut Mapping
Discover why legacy HEX colors limit your design to sRGB, how modern Display-P3 screens work, and what browser chroma reduction means for your UI.
Read →