HSL Dreams and Messy Realities

Here I've plotted sRGB again, but this time using an attempt at representing them in terms of hue, chroma, and lightness. Note how it is not a cylinder, as you saw previously with the slices. This is the fundamental reality that makes working with color hard.

Any color space can only pick one of these:

  1. Clear bounds for each dimension that represent all of the colors we can see or display.
  2. Mapping to hue, color, and saturation in a straightforward way.
  3. Distances between points reflect distances between colors.

Any attempt to force this shape into a neat cylinder or cone, like HSV and HSL do, will distort the meaning of at least one of hue, saturation, and lightness. HSV thinks that dark purple and white are the same lightness. HSL thinks that bright yellow and dark blue have the same brightness. Both are subtly wrong in other ways due to their simplicity. Furthermore, how we distinguish colors is quite complicated, so trying to make Euclidean distances between colors reflect their actual distances (say, to make an evenly-spaced gradient) generallly means distorting the meaning of chroma or hue.

HSL Dreams and Messy Realities

Here I've plotted sRGB again, but this time using an attempt at representing them in terms of hue, chroma, and lightness. Note how it is not a cylinder, as you saw previously with the slices. This is the fundamental reality that makes working with color hard.

Any color space can only pick one of these:

  1. Clear bounds for each dimension that represent all of the colors we can see or display.
  2. Mapping to hue, color, and saturation in a straightforward way.
  3. Distances between points reflect distances between colors.

Any attempt to force this shape into a neat cylinder or cone, like HSV and HSL do, will distort the meaning of at least one of hue, saturation, and lightness. HSV thinks that dark purple and white are the same lightness. HSL thinks that bright yellow and dark blue have the same brightness. Both are subtly wrong in other ways due to their simplicity. Furthermore, how we distinguish colors is quite complicated, so trying to make Euclidean distances between colors reflect their actual distances (say, to make an evenly-spaced gradient) generallly means distorting the meaning of chroma or hue.