Re: [css3-background] box-shadow syntax

I apologize in advance for the length here. I'm feeling verbose today. ^^

Alan Gresley wrote:
>> box-shadow: none | <shadow> [inner | outer] [, <shadow> [inner | outer]]*
>> where <shadow> is: [<length> <length> <length>? || <color>]
> 
> Ok, the default could be.
> 
> 4px
> 
> and optional keywords (in brackets)
> 
> 4px(even) -  no graduation.
> 4px(inner)
> 4px(electric)
> 4px(ghostly)
> 4px(foggy)
> 4px(cloudy)

Whoa, there. If I may be so bold, I think this is the *wrong* way to approach 
this. This is an entirely new sort of format to be using for values of CSS 
properties, and I'm not sure it buys us anything over just using keywords. Plus, 
there're already kinds of values that use parentheses, and they generally 
indicate functions, and don't have names that change: rgba(), url(), hsla(), 
etc. Making UAs parse for these when you could have 4px(), -3px(), 1em(), 
0.5in(), 18cm(), etc., is a nightmare.

Setting aside that "inner" wouldn't control the same kind of thing "cloudy" 
might, and that I don't know how I'd draw an "electric" shadow, I think that (a) 
UAs would have a heck of a time trying to figure out what to do with this, (b) 
it would make UA implementations vastly different and unpredictable, and (c) as 
a developer, I happen to think this is a pretty confusing syntax.

Having two lengths for positioning, a possible length indicating the extent of 
the blur on the shadow (which, keep in mind, doesn't extend the shadow any; it 
just makes the outer edges and portions more blurry), a possible color, and an 
indication as to whether it's an outer or inner shadow is perfectly fine for 
here, I think.

Eli Morris-Heft
dai@doublefishstudios.com

Received on Friday, 9 May 2008 14:59:17 UTC