Re: CIE color definitions in CSS3 color module

Alexis Shaw:
> 
> A CIE XYZ color definition.

This will certainly not make it into level 3 of the Color module, but I guess you would be fine with level 4, too.

We only have HSL, not HSB/HSV or HSI and neither chroma-based HLC or HVC, so why should there be more than one kind of CIE color definitions? 
(Actually, I think CSS Color should define a syntax for every common system there is, but make only certain ones mandatory.)

  hsi(<hue>, <saturation>, <intensity>)
  hsv(<hue>, <saturation>, <brightness>)
  hlc(<hue>, <lightness>, <chroma>)
  hvc(<hue>, <brightness>, <chroma>)

As far as I understand color spaces and definitions,
- RGB is how screens build up colors (or close to it),
- CMYK is how printers build up colors (or close to it),
- HS* are compromises between how screens and people handle colors,
- CIE *** describe what colors people can see.

Is there a point to be made in favor of luma (or luminance) based YUV/YIQ or xvYCC/YCbCr …?

  ycc(<luma>, <blue chroma>, <red chroma>)

> xyz(x, y, z)
> where x, y and z are the floating point values of the CIE 1931 XYZ color space

Are x, y, z normalized to a certain interval, like [0, 1], [0, 100] or [0, 255]?
If this was not done usually, would it be okay for CSS to do so?

> xyy(x, y, Y)
> where x, y, and Y are the floating point values of the CIE 1931 xyY color space.

How does Y differ from z? If it’s a simple transformation, why would you need two separate ways?
Are x, y, Y normalized to a certain interval, like [0, 1], [0, 100] or [0, 255]?
If this was not done usually, would it be okay for CSS to do so?

> luv(L*, u*, v*, white_point)
> where L, u, v are the floating point values in the CIELUV colorspace.
> lab(L*, a* , b*, white_point)
> where L*, a*, b* are the floating point values in the CIELAB colorspace

  luv(<lighntess>, <u*>, <v*>)

  lab(<L*>, <a*>, <b*>)
= lab(<lightness>, <red-green>, <yellow-blue>) 

     negative positive
  a*  green     red
  b*   blue    yellow

What would be mnemonic names for ‘a*’ and ‘b*’, ‘u*’ and ‘v*’? 
Are L*, a*, b*, u*, v* normalized to a certain interval, like [0, 1], [0, 100] or [0, 255]? (<lightness> is a percentage as far as I know, but could exceed 100%.)
If this was not done usually, would it be okay for CSS to do so?

What about LCH?

  lch(<lightness>, <chroma>, <hue>)

Is it important to have the whitepoint specified by the author or could CSS safely select one? Could it at least be optional. I’d suggest a default of ‘D50’ (whatever that means, but according to Wikipedia Photoshop and ICC use this one).

<whitepoint>
> One of the CIE standard illuminates
> A, B, C, D50, D55, D65, D75, F1-12,

Is that ‘F1’ through ‘F12’ or ‘F1-12’?

> the following common illuminants
> UL_3000, TL80, A_T8

Are the underscores important? (Authors tend to not get them right.) 

> the following black body format.
> xxxxxK

Do the 5 ‘x’ stand for anything, like random digits from 0 through 9?

> or a custom white point defined by an @whitepoint rule.

What properties / descriptors would this have? 
Can you describe your standard and common illuminants with this (also ‘xxxxxK’)?

Received on Saturday, 11 September 2010 11:49:36 UTC