- From: Brian Manthos <brianman@microsoft.com>
- Date: Tue, 1 Nov 2011 00:50:20 +0000
- To: Brian Manthos <brianman@microsoft.com>, Simon Fraser <smfr@me.com>, Jennifer Yu <Jennifer.Yu@microsoft.com>
- CC: "www-style@w3.org" <www-style@w3.org>
- Message-ID: <9710FCC2E88860489239BE0308AC5D170440DF2D@TK5EX14MBXC264.redmond.corp.microsoft.>
Quick addendum:
I think I like "in" and "out" better here. They define a direction rather than an endpoint. "Offset from front" suggests a distance from positive infinity in the direction of the user which is a little odd, which is not how I was intending to use the keyword below.
Also the inclusion of percentage doesn't make much sense in light of the above.
As such...
Option C (Revised)
CSS4 (Consider)
<transform-origin-3d> = <transform-origin-2d> [ center | [ in | out ] <length> ]?
CSS3 (Simplified)
<transform-origin-3d> = <transform-origin-2d> [ out <length> ]?
I've included "center" in the Consider grammar because it allows for "center center center" and "right bottom center" which I think are useful.
Hopefully Simon finds this useful to get unblocked.
-Brian
From: Brian Manthos [mailto:brianman@microsoft.com]
Sent: Monday, October 31, 2011 5:38 PM
To: Simon Fraser; Jennifer Yu
Cc: www-style@w3.org
Subject: RE: 2d vs 3d transform-origin
I'm a little fuzzy on the expected user experience here, but I think simplifying is probably your best bet.
Some options...
Option A
Add a fixed string or character (such as 'z') before the z parameter.
<transform-origin-3d> = <transform-origin-2d> [z <length>]?
Option B
Restrict the 3 dimensional grammar to exclude ambiguity by disallowing the problematic 4 parameter cases. In my grammar below, I also require {x,y,z} ordering for simplicity.
<transform-origin-3d> =
<transform-origin-2d>
|
<transform-origin-3d-3>
|
<transform-origin-3d-4>
|
<transform-origin-3d-5>
/* x-param y-param z-param */
<transform-origin-3d-3> =
[ <percentage> | <length> | left | center | right ] [ <percentage> | <length> | top | center | bottom ] <length>
/* center yanchor yoffset zoffset */
/* xanchor xoffset center zoffset */
<transform-origin-3d-4> =
center [ [ top | bottom ] [ <percentage> | <length> ] ] <length>
|
[ [ left | right ] [ <percentage> | <length> ] ] center <length>
/* xanchor xoffset yanchor yoffset zoffset */
<transform-origin-3d-5> =
[ left | right ] [ <percentage> | <length> ] [ top | bottom ] [ <percentage> | <length> ] <length>
As I looked back at Option B, specifically the <transform-origin-3d-5> something struck me - Z needs anchor keywords.
Perhaps the Z anchor should use { in, center, out } or { back, center, front }. That leads to...
Option C
CSS4 (Consider)
<transform-origin-3d> = <transform-origin-2d> [ center | [ back | front ] [<percentage> | <length>]? ]?
CSS3 (Simplified)
<transform-origin-3d> = <transform-origin-2d> [ front [<percentage> | <length>]? ]?
In short, the CSS3 recommendation is to use the same approach as Option A but use a future-looking keyword.
From: Simon Fraser [mailto:smfr@me.com]
Sent: Monday, October 31, 2011 4:09 PM
To: Jennifer Yu
Cc: www-style@w3.org
Subject: Re: 2d vs 3d transform-origin
On Oct 31, 2011, at 2:30 PM, Jennifer Yu wrote:
Hi guys,
It looks like the ED version of the 2D Transforms spec was updated in March 2010 to align transform-origin with background-position. This is great, except that the 3D Transforms ED had no accommodating update and now clashes with the 2D Transforms spec. For instance, is 'transform-origin: left bottom 20px' specifying a 2D (left, bottom 20px) or 3D (left, bottom, 20px) transform origin?
Good point. I filed <http://www.w3.org/Bugs/Public/show_bug.cgi?id=14647>
I'm not sure how to resolve this, other than invent a new syntax for transform-origin, or to break out transform-origin-z into a separate property.
Simon
Received on Tuesday, 1 November 2011 00:57:55 UTC