- From: Simon Fraser <smfr@me.com>
- Date: Fri, 24 Oct 2014 16:02:47 -0700
- To: Matt Rakow <marakow@microsoft.com>
- Cc: Aryeh Gregor <ayg@aryeh.name>, "www-style@w3.org" <www-style@w3.org>
On Feb 26, 2014, at 5:53 PM, Matt Rakow <marakow@microsoft.com> wrote:
>
> Ah, good point, I hadn't thought of that. It does seem like there's value in requiring the developer to explicitly mark the root of a 3d scene.
>
> Perhaps the better approach would be to make transform-style inherit? This would still help facilitate that mainstream use case (continuing to build out a 3d scene). Also, it would require the developer to explicitly mark the root of a nested flattened scene as "flat", which also seems nice for its explicitness.
>
> This would change the example from my previous mail to:
>
> <div class="three-d-root">
> <div class="transformed-element">
> <div class="transformed-element">
> <div class="transformed-element">
> <div class="scene-flattener">
> <div class="three-d-root">
> <div class="transformed-element">
> <div class="transformed-element">
> <div class="transformed-element">
>
> .three-d-root { transform-style: preserve-3d; }
> .scene-flattener { transform-style: flat; }
>
> What do you think?
Matt asked me this again in private email, so bringing up this old thread to answer his question in public.
I think it would be bad for transform-style to inherit, because that would lead to unwanted flattening chains. Consider:
.scene-root {
transform-style: flat;
perspective: 500px;
}
.transformed {
transform: rotateX(45deg);
}
<div class=“scene-root”>
<div class=“container">
<div class=“transformed>
…
If transform-style inherits, then <div class=“container”> gets transform-style:flat, so the transform on the leaf is not affected by the perspective. Making this work would require that the author explicitly makes .container have “transform-style: preserve-3d”. I think there’s plenty of content out there that works in WebKit and has intermediate elements with no explicit transform-style, so pref the non-inherited auto/flat/preserve-3d behavior described in <https://docs.google.com/document/d/1mNF7Z67WnnV05RqXa37PmfvRbgAZwj7-h-7Y_uQ_UPE>.
Simon
Received on Friday, 24 October 2014 23:03:18 UTC