oklch(from #ff0 l c h)
oklch(from #ff0 l c h)
The basics.
This CSS has only converted the hex color from srgb to oklch. Color space conversion.
(l) will be the lightness of that yellow hex as it is in oklch; same for chroma (c) and hue (h).
oklab(from var(--cyan) l a b)
oklab(from var(--cyan) l a b)
Works with custom properties.
Maybe even best with custom properties.
Your var(--brand)
custom property has never been more useful.
hsl(from var(--lime) calc(h - 180) s l)
hsl(from var(--lime) calc(h - 180) s l)
Do math on the pieces with calc()
This finds the color on the opposite side of the wheel by spinning the hue 180deg
You also have access to clamp(), min(), max(), sin(), cos(), etc!
lch(from var(--transparent-yellow) l c h / calc(alpha / 2))
lch(from var(--transparent-yellow) l c h / calc(alpha / 2))
Access an alpha channel value.
Here I cut the opacity in half, relatively adjusting opacity.
lch(from var(--transparent-yellow) l c h / .5)
lch(from var(--transparent-yellow) l c h / .5)
Pass an entirely new value.
I call this an absolute change vs a relative change, where a relative change would have taken into consideration the value of the variable.
Here I don't use the alpha channel at all, I squash it by passing it a brand new value.
hsl(from var(--magenta) h calc(s / 2) l)
hsl(from var(--magenta) h calc(s / 2) l)
Desaturate a color.
Cut the saturation or chroma values in half (depending on your colorspace of choice).
hsl(from var(--magenta) h 20% l)
hsl(from var(--magenta) h 20% l)
Desaturate by just setting a new value.
Particularly effective in oklch and oklab.
oklch(from var(--lime) l .4 h)
oklch(from var(--lime) l .4 h)
Chroma boost
Convert an srgb color to oklch and set a high value for chroma. Very likely will exceed the srgb colors vibrancy and might even change hue if your lucky (I mean not lucky).
oklab(from var(--blue) calc(l + 20) a b)
oklab(from var(--blue) calc(l + 20) a b)
Reliably lighten.
Lighten responsibly in oklab or oklch, working within that great perceptual lightness channel and free from random hue shifts.
oklab(from var(--red) calc(l - 20) a b)
oklab(from var(--red) calc(l - 20) a b)
Reliably darken.
Different color spaces will give different results.
hsl(from var(--yellow) none s l)
hsl(from var(--yellow) none s l)
Remove the hue.
Take the hue away from any color in a color space with an (h) by setting the value to none.
oklch(from var(--cyan) l none h)
oklch(from var(--cyan) l none h)
Go grayscale.
Different color spaces will give different results.
hsl(from var(--orange) calc(h + 180) s l)
hsl(from var(--orange) calc(h + 180) s l)
The complimentary.
Yeah this was demoed earlier, but it didn't get the sweet gripping title.
rgb(from yellow calc(1 - r) calc(1 - g) calc(1 - b))
rgb(from yellow calc(1 - r) calc(1 - g) calc(1 - b))
Invert.
The strategy shown here works for RGB but will need altered for color spaces like LCH and LAB.
rgb(from var(--yellow) alpha b g / r)
rgb(from var(--yellow) alpha b g / r)
Mix & match.
Reuse the channel value anywhere you want.
rgb(from var(--hotpink) g g g)
rgb(from var(--hotpink) g g g)
Repeat.
Reuse the channel value as many times as you want.
color(from var(--yellow) srgb r g b)
color(from var(--yellow) srgb r g b)
Gotcha with color().
The colorspace comes after the "from color" / origin color.