- From: Christoph Päper <christoph.paeper@crissov.de>
- Date: Sat, 11 Sep 2010 00:15:56 +0200
- To: "www-style@w3.org list" <www-style@w3.org>
Brian Manthos:
> If you add a "non-functional" syntax to RGB, and don't add it to HSL that suggests that HSL isn't worthy of spending the time to provide a tight non-functional syntax so that it has parity with RGB.
The hash notation, “non-functional” as you call it, is a relict, invented by programmers for computers, not for people. It is very opaque as to which color it may yield. Adding the alpha channel is just a matter of consistency.
Since HSL, unlike RGB and CMYK, is not about how devices think about colors, but more about how people do, you shouldn’t want, if any, a more computeresque notation for it, but a more humane one. Some have been discussed here as long ago as 2002, e.g. <http://lists.w3.org/Archives/Public/www-style/2002May/0201.html> or CNS.
<color> := [ saturation || lightness || transparency ]? hue
modifier := ‘extra’ | ‘semi’
saturation := [ modifier ‘-’ ]? [ ‘dull’ | ‘bright’] | [ duller | brighter ]
lightness := [ modifier ‘-’ ]? [ ‘dark’ | ‘light’] | [ darker | lighter ]
transparency := [ ‘semi-’ ]? [ ‘opaque’ | ‘transparent’ ]
hue := prime | general | special
prime := ‘red’ | ‘yellow’ | ‘green’ | ‘cyan’ | ‘blue’ | ‘magenta’
| ‘black’ | ‘white’
general := ‘navy’ | ‘lime’ | ‘teal’ | ‘aqua’ | ‘maroon’ | ‘purple’
| ‘fuchsia’ | ‘olive’ | ‘gray’ | ‘silver’
special := ‘pink’ | ‘brown’ | ‘tan’ | ‘orange’ | ‘yellow-green’
| ‘green-cyan’ | ‘cyan-blue’ | ‘blue-magenta’ | ‘magenta-red’ …
CNS <http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1674223>
(Influenced by ISCC-NBS, but not using shorthands ‘brilliant’, ‘pale’, ‘deep’ for S/L combinations and some hue names, leveraging restrictions.)
<color> := chromatic | achromatic
chromatic := lightness saturation hue | [saturation]? [lightness]? hue
saturation := ‘grayish’ | ‘moderate’ | ‘strong’ | _‘vivid’_
lightness := ‘very dark’ | ‘dark’ | _‘medium’_ | ‘light’ | ‘very light’
hue := generic | halfway | quarterway
= [ primary ‘-’ ]? primary | secondary primary
generic := primary
halfway := primary ‘-’ primary # only adjacent, order irrelevant
quarterway := secondary primary # only adjacent
primary := ‘red’ | [‘orange’ | ‘brown’] | ‘yellow’ | ‘green’
| ‘blue’ | ‘purple’
secondary := ‘reddish’ | [‘orangish’ | ‘brownish’] | ‘yellowish’
| ‘greenish’ | ‘bluish’
achromatic := ‘black’ | [ lightness ]? ‘gray’ | ‘white’
<http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1420399> is similar but makes some changes:
lightness |= ‘blackish’ | ‘whitish’
saturation |= ‘medium’
primary |= ‘pink’ | ‘beige’ | ‘olive’
secondary |= ‘purplish’ | ‘pinkish’
achromatic := [ lightness ]? [ secondary ]? a-primary
a-primary := ‘black’ | ‘gray’ | ‘white’
> So with the CSS4 change, RGB is now two steps ahead of HSL -- it has rgb(), rgba(), #rrggbb, and #rrggbbaa whereas HSL only has hsl() and hsla().
Actually rgb() counts as two, because it supports 8bit integers and percentages.
Received on Friday, 10 September 2010 22:16:32 UTC