- From: Christoph Päper <christoph.paeper@crissov.de>
- Date: Fri, 14 Mar 2014 17:55:25 +0100
- To: www-style list <www-style@w3.org>
Simon Sapin <simon.sapin@exyr.org>:
> On 14/03/2014 10:29, Christoph Päper wrote:
>> 
>> 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> ‘)’ ]?
> Level 4 of the Color module has some proposals along these lines:
Oh, it has been updated since I last had a look at it. Basically, I was proposing
  [ <named-color> | <named-hue> ] ‘(’ <color-adjuster>* ‘)’
for which the draft has this instead:
  ‘color(’ [ <color> | <hue> ] <color-adjuster>* ‘)’
The adjusters are more powerful than what I had in mind, but the syntax is also more “coder style”.
They would – in my humble opinion – better be implemented by altering the existing color pseudo functions, e.g.:
  rgb := ‘rgb(’ <component> [‘,’ <component> ‘,’ <component>]? [‘,’ <alpha>]? ‘)’
  hsl := ‘hsl(’ <hue> [‘,’ <component> ‘,’ <component>]? [‘,’ <alpha>]? ‘)’
  <component> := [<color-ref>]? [‘+’ | ‘-’]? 
                 [ <number> | <percentage> | <color-ref> ]
               | <color-ref> [‘*’]? <percentage>
  <hue>       := [<color-ref> | <named-hue>]? [‘+’ | ‘-’]? 
                 [ <number> | <angle> | <named-hue> | <color-ref> ]
               | <color-ref> [‘*’]? <percentage>
  <color-ref> := ‘default’ | _‘inherit’_ | ‘current’ | <named-color> | <system-color>
Flexible number of parameters:
* rgb(<gray=red=green=blue>)
* rgb(<gray=red=green=blue>, <alpha>)
* rgb(<red>, <green>, <blue>)
* rgb(<red>, <green>, <blue>, <alpha>)
* hsl(<hue @100% @50%>)
* hsl(<hue @100% @50%>, <alpha>)
* hsl(<hue>, <saturation>, <lightness>)
* hsl(<hue>, <saturation>, <lightness>, <alpha>)
The <color-ref> keywords would automatically use the same component from the referenced color as the color calculation:
  rgb(red, green, blue) == rgb(100%,  50%, 100%)
  rgb(red, lime, blue)  == rgb(100%, 100%, 100%)
  rgb(blue, green, red) == rgb(  0%,  50%,   0%)
I’m not sure about ‘tint()’, ‘shade()’, ‘blend[a]()’ and ‘contrast()’, though.
Received on Friday, 14 March 2014 16:55:54 UTC