- From: Dirk Schulze <dschulze@adobe.com>
- Date: Thu, 8 Feb 2018 08:37:45 +0000
- To: Dael Jackson <daelcss@gmail.com>
- CC: "www-style@w3.org" <www-style@w3.org>
- Message-ID: <25633921-6AAF-49C3-9510-2F269A4F44A9@adobe.com>
Hi all, Couldn’t attend the meeting because of the time. I would like to note that there might be a potential mixup for users. The `rotate()` function for CSS Transforms on SVG elements has the following syntax[1]: rotate()<https://drafts.csswg.org/css-transforms/#funcdef-transform-rotate> = rotate( <angle><https://drafts.csswg.org/css-values-3/#angle-value> [,<https://drafts.csswg.org/css-values-4/#comb-comma> <length><https://drafts.csswg.org/css-values-3/#length-value>,<https://drafts.csswg.org/css-values-4/#comb-comma> <length><https://drafts.csswg.org/css-values-3/#length-value>]?<https://drafts.csswg.org/css-values-4/#mult-opt> ) The confusion could come from the same name of the `rotate` property and the `rotate()` function. Especially since <length> values on SVG presentation attributes may be unitless. At least the length values are comma separated from the angle. Greetings, Dirk [1] https://drafts.csswg.org/css-transforms/#rotate-three-function On 8. Feb 2018, at 03:26, Dael Jackson <daelcss@gmail.com<mailto:daelcss@gmail.com>> wrote: Named rotation axis ------------------- github: https://github.com/w3c/csswg-drafts/issues/2130 ericwilligers: Current spec and suggestions: <ericwilligers> Current spec: rotate: none | <number>{3}? <angle> <ericwilligers> Suggestion by Amelia: rotate: none | [ 2d | x | y | z | <number>{3} ]? && <angle> <ericwilligers> Suggestion by Eric in #1269: none | <angle> && [ axis(<number>{3}) ]? AmeliaBR: For most people the vector notation is more complicated and all the shorthands have rotate-x,y,z. We do have discussion in the issue my suggested keyword of 2d doesn't parse as a keyword which is an issue. AmeliaBR: Reason we have a separate keyword is we need to distinguish between 2d and 3d transforms around z axis which is simple math, but different in impl ericwilligers: The difference could be if you spec the axes. AmeliaBR: Yeah, that was one suggestion. We don't worry about a keyword for 2d and if you don't spec axis it's 2d. <fantasai> +1 to Amelia's suggestion TabAtkins: I hadn't thought about the rotate functions having rotateX,rotateY,rotateZ and I support allowing you to set those instead of remembering the correct set up. <TabAtkins> rotate: <angle> && [ x | y | z | <number>{3} ]? AmeliaBR: Question is if we have those keywords is the unwrapped 3 numbers still acceptable or do people like function notation? fantasai: I'm opposed to function since we haven't used it in similar situations like backgrounds. If we want longhands at some point that makes it more difficult. Syntax as is is fine. I don't know why people would want angle in the middle. TabAtkins: And rotate 3d takes an angle and 3 numbers so it's the same syntax. Rossen: We have a couple of people opposed to functional notation. Rossen: Does that mean we want to go with first proposal? <ericwilligers> rotate: none | <angle> && [ x | y | z | <number>{3} ]? <AmeliaBR> rotate: none | [ x | y | z | <number>{3} ]? && <angle> ericwilligers: You can use x y z, have 3 numbers, or leave them out. And angle before or after axes. TabAtkins: Yeah. I'm not sure why grammar has 3 numbers before, but that was probably an accident. smfr: Are unitless 0s allowed for the angle? ericwilligers: Not allowed. TabAtkins: Right. They're legacy feature you have to opt into and we don't allow in new. AmeliaBR: Final question. Even though we're allowing both to spec in either order, do we want to stick with angle and then axis to match transform? dbaron: I think in rotate 3d the angle is at end. TabAtkins: Oh. I think the order in the grammar matches order serialized so we should have axis first to match rotate 3d. Rossen: Current proposal is match rotate 3d syntax? <AmeliaBR> https://drafts.csswg.org/css-transforms-2/#funcdef-rotate3d TabAtkins: No. We should have the axis come first. AmeliaBR: It's this one rotate: none | [ x | y | z | <number>{3} ]? && <angle> AmeliaBR: ... for the serialization order Rossen: Any objections? * fantasai is confused Rossen: fantasai you're confused. fantasai: We're deciding to not match transform ordering? TabAtkins: The rotate3d() takes axis first. fantasai: Okay, sure. As long as trying to match. <ericwilligers> We can close https://github.com/w3c/csswg-drafts/issues/1269 ericwilligers: I think we can also close this issue ^ RESOLVED: Grammar is rotate: none | [ x | y | z | <number>{3} ]? && <angle>
Received on Thursday, 8 February 2018 08:38:16 UTC