Re: X11 Colors (was Last call comments on CSS3 module: color)

Chris Lilley wrote:

Well there are objections to the bad design of HSL as well, of course.
I proposed a greatly superior solution, CNS, in 1996 [1] which was
perceptually even - changing lightness would change lightness
regardless of hue; changing hue would not alter lightness, the color
steps were evenly perceptually spaced, and scores very well in
scientifically conducted usability studies (much better than HSL for
example). None of these things is true of X11 or of HSL.

However, although most posters to www-style were in favour of it, it
never got to consensus, largely due to a poorly-informed critique by
David Perrell[2] who thought it was a subset of HSB (later retracted
[3] but mud sticks), the lack of online resources (it was fully
described, but in a print journal), and a general programmer aversion
to color theory, and general indifference to color reproducibility in
CSS implementors. It was just too high a bar, too early. Eventually I
stopped suggesting it. Instead we went for tying the RGB colors to a
real international standard for what they meant, rather than "device
RGB" and leaving it to authoring tools to provide color pickers,
lists, or whatever they wanted as a user interface.

CNS is very cool... I had never read about it before, and would love to 
read the original journal article.  My guess is that it wasn't received 
more favorably because the math wasn't obvious from a thirty-second glance.

In my opinion, CSS color should allow arbitrary color schemes through 
some sort of custom color mechanism.

CSS2 has the following:
color: keyword; (inherit, transparent, systemColors, etc.)
color: namedColor;
color: #ff0;
color: #ffff00;
color: rgb(255,255,0);
color: rgb(100%,100%,0%);

CSS3 proposes additing:
color: x11NamedColor;
color: attr(X,color);
color: rgba(255,255,0,1);
color: hsl(%,%,%);
color: hsla(%,%,%,#);

If we are adding color-profiles, why not consider adding 
color-name-profiles, such as:
color: profile(profileName,colorValues,profileURI)

with the profileURL optional, containing a translation table to sRGB, or 
a set of functions (one for each of several commonly used programming 
languages).

Thus, all could be expressed as:

color: profile(keyword,inherit);
color: profile(html4,blue,url());
color: profile(rgbHex,#ff0);
color: profile(rgbHex,#ffff00);
color: profile(rgb,255,255,0);
color: profile(rgb,100%,100%,0%);
color: profile(x11,orange,url());
color: profile(rgba,100%,100%,0%,1,url());
color: profile(hsl,100%,100%,0%,1,url());
color: profile(hsla,100%,100%,0%,1,url());
color: profile(cns,orange,very dark,vivid,url());
color: profile(crayola,electric lime,url());
color: profile(com.dylanschiemann.www.customColorNames,Lincoln Log,url());

Some of these are of course ridiculously longer than using the shorter 
syntax.

Browsers could be required to be able to convert colors using a lookup 
table for named colors, or read the method for that browsers language of 
choice to do rgb conversions.

I would think this should be optional, but would be very useful for 
using a standard css syntax for authoring programs.  For example, a 
Dreamweaver like program could offer custom color palettes from a 
company such as Crayola, create a color picker which would store the 
colors in this new css syntax, and then offer an rgb export conversion 
if most browsers did not support this optional color name profile.

-Dylan

[1] http://lists.w3.org/Archives/Public/www-style/1996Feb/0006.html
     http://lists.w3.org/Archives/Public/www-style/1996Feb/0020.html
[2] http://lists.w3.org/Archives/Public/www-style/1996Feb/0016.html
     http://lists.w3.org/Archives/Public/www-style/1996Feb/0019.html
[3] http://lists.w3.org/Archives/Public/www-style/1996Feb/0022.html
[4] http://lists.w3.org/Archives/Public/www-style/1996Apr/0029.html
[5] http://lists.w3.org/Archives/Public/www-style/1996Jul/0166.html

-- 
--
Dylan Schiemann
http://www.sitepen.com/
http://www.dylanschiemann.com/

Received on Wednesday, 29 May 2002 18:38:28 UTC