Re: Re : [css3-values] nesting calc()

(12/06/20 16:46), François REMY wrote:
> -- HS: attr() is returning a string? Wow, what a misused potential. Never noticed it.
>  
> My concern is that
>  
>     animation: compute (15s - 3s);
>  
> is a valid animation declaration right now (if we suppose the 'calc'
> to be implied). However, if we introduce a 'compute' function, it
> will be a breaking change in the language: the animation declaration
> will not work anymore, because it's going to be read as a call to the
> 'compute' function which may do something completely different than
> the initial purpose.

Oh, I see what you mean. But with the current CSS syntax, introducing
"compute()" wouldn't affect this example because you could not put a
space in between the identifier and the parentheses of a function call
(try "url ()" in general or "attr ()" in "content:" if you don't believe
me). This is a bit different from other major programming languages.

> This will probably lead to one ofthose  two possible consequences: 
> (a) we're going to restrict the scope of new functions to places that are not preceeded by an identifier.
> (b) we're going to modify the meaning of values when we introduce new functions. 

The real concern here is that if we introduce the bar parenthesis syntax
for "calc()", in css4-syntax+ we can't allow space to be put in between
the identifer and the parentheses of a function, like "content: attr
(name);", "background: url (example.png)" and whatnot. But given that
nobody really requested something like "url ()", I don't think we should
worry about this.


> Both of them are a concern for me. But maybe there's a trick I didn't notice that makes my concern invalid.
> 
>  
> ----- Mail original -----
> De : Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>
> À : François REMY <fremycompany_pub@yahoo.fr>
> Cc : fantasai <fantasai.lists@inkedblade.net>; www-style@w3.org
> Envoyé le : Mercredi 20 juin 2012 9h58
> Objet : Re: [css3-values] nesting calc()
> 
> (12/06/20 15:45), François REMY wrote:
>> I'm not an expert in CSS syntax but it seems to be a dangerous idea. Is
>> there a way in CSS to distinguish a function from an identifier followed
>> by parenthized expression? Example:
>>
>>     animation: attr(anim);
>>
>> and:
>>
>>     animation: myAnim (15s - 3s);
>>
>> ?
> 
> Probably no, but I am not exactly sure what your concern is.
> 
> Are you saying that people would be tempted to do
> 
>   margin: auto(100% - 1em);
> 
> and get wrong? If that's the case, why wouldn't people get wrong by thinking
> 
>   margin: auto1em;
> 
> would work? Is is the parenthesis notation that allures the authors to
> drop the whitespace in the middle?
> 
> (In your example, "animation: attr(anim);" isn't valid because
> "attr(anim)" is a <string>.)
> 
> 
> Cheers,
> Kenny
> 
> 

Received on Wednesday, 20 June 2012 09:02:01 UTC