- From: Brad Kemper <brkemper@comcast.net>
- Date: Fri, 9 May 2008 10:02:01 -0700
- To: Eli Morris-Heft <dai@doublefishstudios.com>
- Cc: Alan Gresley <alan@css-class.com>, "www-style@w3.org list" <www-style@w3.org>
On May 9, 2008, at 7:58 AM, Eli Morris-Heft wrote: > > 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. I agree. What I originally proposed was using a minus sign on the blur value to indicate that it was an inner shadow instead of outer. The reason I thought that would be good is because it would use existing value types, would not change how box-shadow and text shadow are used with outer shadows, and would be simple to parse (in theory). But it is possible that implementors (or others) might prefer a separate keyword ("inner" | "outer") in addition to the slots for horizontal offset, vertical offset, and blur. That was Eli's idea, Alan. I'm OK with that too. It would be easy to understand and easily parsed . I still like the elegance and brevity of my separate idea of just adding a minus sign to indicate that the shadow is on the negative space instead of the positive. I think "negative space" is a concept most designers are familiar with. And that whole range of negative numbers is just going to waste on blur anyway, which is the whole reason I would use the minus sign there (the offsets already allow negative number measurements). > 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. I agree with all that. I would also add a desire for an optional "spread" value, which would thicken the shadow without making it more blurry. The term "spread" is used in Photoshop, and it is similar to drawing a same-color stroke of the specified thickness around the shadow prior to blurring it. It is very useful, especially for shadows on small elements (or text) where you want to see a little more of the shadow without offsetting it more or blurring the heck out of it.
Received on Friday, 9 May 2008 17:02:41 UTC