Open
Description
https://bottosson.github.io/posts/oklab/
Here's a list of the design choices behind oklab:
- Should be an opponent color space, similar to for example CIELAB.
- Should predict lightness, chroma and hue well. LL, CC and hh should be perceived as orthogonal, so one can be altered without affecting the other two. This is useful for things like turning an image black and white and increasing colorfulness without introducing hue shifts etc.
- Blending two colors should result in even transitions. The transition colors should appear to be in between the blended colors (e.g. passing through a warmer color than either original color is not good).
- Should assume a D65 whitepoint. This is what common color spaces like sRGB, rec2020 and Display P3 uses.
- Should behave well numerically. The model should be easy to compute, numerically stable and differentiable.
- Should assume normal well lit viewing conditions. The complexity of supporting different viewing conditions is not practical in most applications. Other models could be used in conjunction if this is needed in some case.
- If the scale/exposure of colors are changed, the perceptual coordinates should just be scaled by a factor. More complex models that depend on absolute luminance should be avoided since the viewing conditions can not be accurately controlled and incorrect behavior would be confusing.