What do Color Pickers Mean?
Follow up from yesterday's dev meeting:
Pickers are Direct
Regarding color pickers while in Color Managed mode. @marcjeanmougin's understanding is that the color picker tabs (RGB, OKLab, CMYK, etc) represent the actual numbers which should be saved into the svg. Ideally in some future version of Inkscape, selecting the HSV tab would save a fill: hsv(h, s, v)
value into the svg.
And when it comes to icc profiles, each icc profile should have it's own tab. If you were using a single CMYK profile, you would only be allowed to color pick in CMYK, not in any other space.
Another example: if we had Adobe sRGB and Regular sRGB as two profiles attached to the same document, we should have two RGB tabs, one for each RGB profile.
Pickers are Indirect
My design instincts say that this is not what a lot of users are going to expect.
They will see color pickers are human modes of picking and expect the computer to translate whatever they pick into the chosen color space. Usually sRGB, but also if you have a CMYK profile, converting from RGB to a CMYK value. This translation is convenient, but it is lying to the user as we save values to the svg which are different from those entered into the user interface.
This is important for print since choosing a color in RGB space, could be represented by multiple values in CMYK and which one is the best one depends on how the color is being used.
The example of a gradient which goes from one hue to another. It would be better if the user chose CMYK colors directly so they could control which inks go up and down at each stop. If you choose in RGB, then the inks being used could vary wildly.
Although it's also true that letter users use the RGB color picker in a CMYK document is just a form of letting the user have the control over what they are doing. Even if it's bad.
Possible Designs
Hide
We could hide all the color pickers that don't match the profile's color space signature. This would mean CMYK users can only pick in cmyk.
Show
We could show all the pickers and convert the values. This would mean values may not be stored as the user entered them.
Warnings
We could let the user pick any, but show a warning in that tab that the color will be approximated.