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
SitePen, Inc.
http://www.sitepen.com/
310.315.7301

Received on Thursday, 30 May 2002 07:44:15 UTC