-
Notifications
You must be signed in to change notification settings - Fork 707
[css-transforms-2] definition of Accumulated 3D Transformation Matrix has incorrect loop exit condition #6191
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I agree, we definitely want to include the transform of the establishing element. I think there's been some confusion and changes around this in the past, where sometimes an element with |
I think the intent was that the "Accumulated 3D Transformation Matrix" was the matrix you use when rendering the element into the flattening plane of the "establishing" element. So in that sense it would exclude the transform of the establishing element. |
Sorry for taking so long to cycle back to this... The way "establishing element" is currently defined, though, I think the flattening plane is really in the parent of the establishing element. The parent's |
Like #6238, I think this is a case where the current definition in the spec makes sense with WebKit's model of what constitutes a 3D Rendering Context (which I think extends one element closer to the root than the spec's model), but doesn't make as much sense with the spec's model. (Or maybe that's not the best way to think about WebKit's model, since non- |
This adds a few tests related to the edits in w3c/csswg-drafts#6191 . They appear to pass in Chromium, Gecko, and WebKit. (I don't think they really test what is intended in WebKit, but they do show that the behavior is interoperable.)
I've read it a few times, and I think that the definition of Accumulated 3D Transformation Matrix has the exit condition of the loop (step 4) stated incorrectly. I've read it a bunch of times... but I'd really like some other folks (cc @mattwoodrow @smfr) to double-check this, though!
It currently says:
However, I believe the loop should execute when current element is the element that establishes the 3D rendering context, and then the loop should terminate after that iteration. In other words, I think this should instead say:
I've written a testcase that is interoperable across Chrome, Firefox, and Safari, and that I think matches what I'm proposing.
But, again, I'd really like others to confirm that I'm not misreading/misthinking this somehow!
The text was updated successfully, but these errors were encountered: