Simple Rust implementation of the Oklab color space conversion routines based on the reference implementation in the blog post.
Mixing of colors in the Oklab color space is meant to give more pleasing gradients.
rust
use oklab::*;
let Oklab {l, a, b} = srgb_to_oklab(RGB {r, g, b});
let rgb = oklab_to_srgb(Oklab {l, a, b});
Oklab components are floats. l
is in range 0 to 1, and a
/b
are small numbers that can be negative.