Last call comments on CSS3 module: color

Congratulations on an excellent specification. Many of the new facilities
will be extremely useful.

With one exception.

The X11 colour names are an abomination that should have been stifled at
birth, and adding them to CSS is a blemish on the otherwise excellent design
of CSS.

To say that the X11 colour set and their names have been 'designed' is an
insult to the word "design". It is just a mess.

Let me just describe some of the problems:

* The set of colours described is very non-uniform. Look at
http://www.cwi.nl/~steven/css/x11huegraph.html as an example to see how the
hues are distributed: a vast over-representation of reds just to start off
with.

* The names are just randomly put together. Some colours have a dark version
(like red and darkred) but not all; 17 colours have 'dark' versions,
but only 13 have 'light' versions. There's a mediumblue, but not
mediumred; there are 15 varieties of 'blue' but only 6 of 'red'; there
are cultural references built in ('dodgerblue'???). So I can neither
construct the colour I want, nor know what a colour name refers to
(gainsboro? papayawhip?)

* On top of that, the naming scheme is inconsistent:

darkgray is lighter than gray!
lightpink is darker than pink!

(OK, I'll stop using exclamation marks now)

It is gray and darkgray, but lightgrEy

brown is not very brown; actually a dark red

What do you expect the difference is between seagreen and
mediumseagreen is? (seagreen is darker)

What do you expect the difference is between aquamarine and
mediumaquamarine (aquamarine is lighter)

There's a mediumvioletred and palevioletred, but no violetred
There's lightgoldenrodyellow but no goldenrodyellow, just goldenrod
There's darkolivegreen but no olivegreen, just olive
There's palevioletred but no violetred.

Well, I could go on, but I'll stop here. You get the picture. There is no
possible reason that the X11 names should be added to CSS.

There are two possible solutions:

1) Take the standard 6x6x6 internet non-dithering color cube that is
implemented everywhere, and agree on names for each of the colors there.

But:
"The browser-safe palette was developed by programmers with no design sense,
I assure you. That's because a designer would have never picked these
colors. Mostly, the palette contains far less light and dark colors than I
wish it did, and is heavy on highly saturated colors and low on muted,
tinted or toned colors."
- Lynda Weinman
http://www.lynda.com/hex.html

2) Take a consistent naming scheme that properly addresses all dimensions of
the color space, and map this naming scheme algorithmically to appropriate
colours. For instance:

    <color>::= [<saturation> || <lightness> || <transparency>]? <hue>
    <lightness>::= [very|slightly]? [dark|light]
    <saturation>::= [very|slightly]? weak
    <transparency>::= [very|slightly]? transparent
    <hue>::= <prime> | <mix> | <special>
    <prime>::= red | yellow | green | cyan | blue | magenta
    <mix>::= orange | yellow-green | green-cyan | cyan-blue | blue-magenta |
magenta-red (add red-yellow if you want)
    <special>::= pink | brown | aqua | teal | grey | gray | black | white |
purple | silver | turquoise | violet | <possible others>

Examples:
    red
    light red
    very light blue
    weak dark green / dark weak green
    slightly dark magenta-red
    transparent cyan

See http://www.cwi.nl/~steven/css/colour-lang.html for a quick try at a
mapping, which still needs tweaking.

Best wishes,

Steven Pemberton

Received on Wednesday, 22 May 2002 08:45:44 UTC