- From: Christoph Päper <christoph.paeper@crissov.de>
- Date: Fri, 14 Mar 2014 11:29:19 +0100
- To: www-style list <www-style@w3.org>
Alex Sexton <alexsexton@gmail.com>: > Sorry for the short delay in responding to this, Is this really a reply to a thread from May 2002? <http://lists.w3.org/Archives/Public/www-style/2002May/0131.html> > # R3 > > Lots of colors that never made it into the CSS version of the colors were > added on October 27, 1988 in X11R3. Namely, 101 versions of gray. > > gray0 0,0,0 > gray1 3,3,3 > gray2 5,5,5 > .... > gray99 252,252,252 > gray100 255,255,255 > > (increments at a 3, 2 interval all the way to 255) > > Naturally these were all duplicated as 'grey'. At this point in time they > had to change 'white' from 252,252,252 to 255,255,255 because > 'gray100' was "more white" than 'white'. Now gray100 and white were the > same. This reminded me of an idea I had a while ago: turn color names into pseudo functions, e.g. ‘gray’: ‘gray0’ = gray(0%) /* = ‘black’ */ … ‘gray50’ = gray(50%) … ‘gray’ = gray() /* = ‘gray(50%)’ in CSS, but ‘gray75’ in X11 */ … ‘gray75’ = gray(75%) /* = ‘silver’ = ‘silver()’ */ … ‘gray100’ = gray(100%) /* = ‘white’ */ I think this notation has been suggested before as a shortcut for repeated triplets in RGB functions or as an alias to also proposed single-value RGB function or as the lightness in otherwise zeroed HSL (and HSV) values. ‘gray(<percent>)’ = ‘rgb(<percent>, <percent>, <percent>)’ = ‘rgb(<percent>)’ = ‘hsl(0, 0%, <percent>)’ I would generalize the latter for all absolute color names of CSS2 (either level 2.0 or 2.1): <color-name-extended> := <level2-color-name> [ ‘(’ [<lightness>]? ‘)’ ]? ^= hsl( hue(<level2-color-name>), saturation(<level2-color-name>), <lightness> ) Let’s not stop there. We could put basically anything inside those parentheses and it would work nicely even within shorthand properties. This includes CNS keywords! <color-name-extended> := <hue> [ ‘(’ <lightness> || <saturation> ‘)’ ]? <hue> := <level2-color-name> [‘-’ <level2-color-name>]? <lightness> := [<absolute>]? <lightness-value> | <lightness-value> <relative> | <percentage> | ‘medium’ <saturation> := [<absolute>]? <saturation-value> | <saturation-value> <relative> | <percentage> | ‘medium’ <lightness-value> := ‘dark’ | ‘light’ <saturation-value> := ‘dull’ | ‘bright’ <absolute> := [ ‘extra’ | ‘semi’ | ‘ultra’ | ‘very’ | ‘hardly’ ] ‘-’ <relative> := [ ‘er’ | ‘est’ | ‘ish’ ]
Received on Friday, 14 March 2014 10:29:50 UTC