W3C home > Mailing lists > Public > www-style@w3.org > August 2009

Re: [CSS3] Some thoughts about functions, notation and gradient().

From: Andrew Fedoniouk <news@terrainformatica.com>
Date: Wed, 19 Aug 2009 09:19:19 -0700
Message-ID: <4A8C2607.6010705@terrainformatica.com>
To: Brad Kemper <brad.kemper@gmail.com>
CC: www-style <www-style@w3.org>
Brad Kemper wrote:
> 
> On Aug 18, 2009, at 11:28 PM, Andrew Fedoniouk wrote:
> 
>> background-color: linear-gradient(
>>                      start:0% 0%,
>>                      stop: 100% 100%,
>>                      color-stop: 0% white,
>>                      color-stop: 50% red ,
>>                      color-stop: 100% blue );
> 
> I think that is way too verbose.
> 
> 

But human readable and machine parse-able.

Proposed syntaxes I've seen so far in linear-gradient() are
not readable (that is subjective of course) and not
unambiguously parseable.

That use of '/' as a some kind of separator with absolutely non-clear
grammatic nature is very bad.

For example here:

p { font: x-large/110% "New Century Schoolbook", serif }

'/' is an operator combining two atomic values.
Operator precedence in grammar: slash, comma, space.

And here:

background: linear-gradient(top left to bottom left / yellow, blue);

'/' is an operator combining two lists. It assumes
operator precedence as: comma, space, slash.

That means in different contexts this operator has different precedence.
Which is extremely bad as for the human as for the machine.

I believe that having three operators aimed to glue list (space, comma
and the slash ) is just too much to be practically useful.

Side-note: the same conflict we observe in border-radius attribute now.
'/' there makes almost impossible to create context free parser for the CSS.


-- 
Andrew Fedoniouk.

http://terrainformatica.com
Received on Wednesday, 19 August 2009 16:19:52 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:20 GMT