OKLCH in CSS: Why We Moved From RGB and HSL

rw-book-cover

Metadata

Highlights


The extremely short version oklch() is a new way to define CSS colors. In oklch(L C H) or oklch(L C H / a) each item corresponds as follows: • L is perceived lightness (0%-100%). “Perceived” means that it has predicted contrast, unlike L in hsl(). • C is chroma, from gray to the most saturated color. • H is the hue angle (0-360). • a is opacity (0-1 or 0-100%). a:hover { background: oklch(45% 0.26 264); /* blue / color: oklch(100% 0 0); / white / color: oklch(0% 0 0 / 50%); / black with 50% opacity */ } (View Highlight)


OKLCH has an another interesting feature: device independence; OKLCH wasn’t just created for current monitors with sRGB colors. (View Highlight)


If you don’t have a build tool, we recommend using Vite or compiling your CSS with the lightningcss CLI. (View Highlight)

OKLCH in CSS: Why We Moved From RGB and HSL

rw-book-cover

Metadata

Highlights


The extremely short version oklch() is a new way to define CSS colors. In oklch(L C H) or oklch(L C H / a) each item corresponds as follows: • L is perceived lightness (0%-100%). “Perceived” means that it has predicted contrast, unlike L in hsl(). • C is chroma, from gray to the most saturated color. • H is the hue angle (0-360). • a is opacity (0-1 or 0-100%). a:hover { background: oklch(45% 0.26 264); /* blue / color: oklch(100% 0 0); / white / color: oklch(0% 0 0 / 50%); / black with 50% opacity */ } (View Highlight)review


It may sound complex, but some seeing some examples can help illustrate: :root { —error: oklch(60% 0.16 30); } .message.is-error { /* The same color but with different opacity / background: oklch(from var(—error) l c h / 60%); / 10% darker / border-color: oklch(from var(—error) calc(l - 10%) c h) } .message.is-success { / Another hue (green) with the same lightness and saturation */ background: oklch(from var(—error) l c 140); } (View Highlight)review


OKLCH has an another interesting feature: device independence; OKLCH wasn’t just created for current monitors with sRGB colors. (View Highlight)review


If you don’t have a build tool, we recommend using Vite or compiling your CSS with the lightningcss CLI. (View Highlight)review