Re: unitless angles (and times and frequencies) [css3-2d-transforms][css3-3d-transforms][css3-images]

2009/11/4 Simon Fraser <smfr@me.com>:
> On Nov 4, 2009, at 10:18 AM, L. David Baron wrote:
>
>> Both CSS 2.0 and css3-values are clear that '0' (without units) is
>> acceptable as a <length>, but not as an <angle>, <frequency>, or
>> <time>.
>>
>> It turns out that:
>>
>> * unambiguous parsing of the new gradient syntax proposal depends
>>  on this (in particular, that '0' is not an angle)
>>
>> * css3-2d-transforms has a number of examples of using '0' as an
>>  angle, e.g., 'rotate(0)'
>>
>> I think 'rotate(0)' is currently implemented in Mozilla, and I'm
>> guessing that, given the examples in the transforms spec, it's also
>> implemented in WebKit.
>>
>>
>> We either need to:
>> * decide that CSS 2.0 and css3-values are correct, change the
>>  transforms examples, and possibly break some existing uses of
>>  transforms,
>> * make a special exception for angles in transform functions, or
>> * fix the gradients spec in some way.
>>
>> My current inclination may actually be to make an exception for
>> transform functions.
>
> Unitless 0 for angles in transforms is very common. I'd prefer we don't
> break that.

Are you sure?
Angles can be used only in rotate / skew.
rotate(0), rotateX(0), rotateY(0), rotateZ(0), rotate3d(x,y,z,0),
skewX(0) and skewY(0) are all identity transforms, so I guess they're
not used much
the only difference is in skew(0,y) or skew(x,0), which could be
replaced by appropriate skewX / skewY

IHMO, allowing unit-less angles in transforms and only in transforms
would introduce additional complexity on implementers without any
clear advantage to authors, that would use 0rad or 0deg anyway, for
consistency with the rest of CSS

> I'm close to proposing a slightly modified syntax for gradients, but I fear
> it will have the same ambiguity about a parameter being a length vs.
> an angle if unitless.
>
> Simon
>
>
>

Giovanni

Received on Thursday, 5 November 2009 13:43:23 UTC