-
Notifications
You must be signed in to change notification settings - Fork 756
Description
Consider atan2(10em, 13vh). Should that work? Per spec, it should because the two units are <length>s, and the spec says:
The atan2(A, B) function contains two comma-separated calculations, A and B. A and B can resolve to any
<number>,<dimension>, or<percentage>, but must have the same type, or else the function is invalid.
If we allow different units, we can't resolve atan() at parse-time (because it starts depending on resolving those <length>s to pixels). That introduces a new set of property dependencies which didn't exist before. For example, we'd need to define how ex/etc units resolve on font-weight, since font-weight can affect the primary font, and with this you could do font-weight: atan2(2ex, 10px).
My implementation in Firefox doesn't allow mixed relative units in atan2() (because I misread the spec). This is also problematic for Chromium implementation-wise (even without all these new dependency shenanigans).
Unless this is extremely useful, it might be worth restricting relative lengths to enforce same-unit-ness.
cc: @tabatkins @DevSDK @dbaron