Re: [css-transforms] CSS3D breaks with opacity flattening

On Tue, Sep 20, 2016 at 10:46 PM, Matt Woodrow <mwoodrow@mozilla.com> wrote:

>
> On 20/09/16 11:10 PM, Rik Cabanier wrote:
>
>
> What other options? The one that Safari has implemented?
> That one relies on their render tree which is unspecified.
>
> Right, but that's what the authors in this thread seem to want. My
> suggestion gives rendering very close to the Safari/old-Chrome/Firefox
> behaviour (which is looking to be important for web-compat), but doesn't
> break opacity grouping.
>
>
> As Tab said, there are few case where you'd actually want the "screaming skull"
> effect.
> If you DO want it, it's easy to apply opacity using a selector.
>
>
> If you want the "screaming skull" effect, then you can use a selector. If
> you don't (but you don't want flattening either), then this seems like the
> only option.
>
>
>
> Can you state what is under defined in the spec? The document's been in
> limbo for so many years and it would be great if some progress could be
> made.
>
> It's getting better, I don't have specific examples from the ED except
> that no UA actually implements what it says. Previously, opacity wasn't
> mentioned at all which is how we got to this discussion, and depth
> sorting/splitting wasn't specified.
>
>
> What makes opacity so special? (Or are you proposing that other effects
> also inherit this behavior?)
> "naturally" is also ambivalent. I find the current Chrome behavior more
> natural.
>
> Opacity is special because it doesn't really matter if you apply it before
> or after the transform. Filter might also fall into this category, but most
> of the others (mix-blend, clipping) seem like their position in the
> preserve-3d really matter.
>

I don't see why that is. clipping and blending can be done pre/post
transform.

I guess natural is a poor choice of words. I was thinking of the use case
> where you take a set of elements to form an 'object' (say a 3d cube), apply
> opacity to that (true, group opacity) and then position it within the outer
> scene (say a whole set of cubes that rotate in a carousel). As far as I can
> tell, there's no way to achieve this effect with the current spec and my
> suggestion makes it possible.
>

Yes, that is a current issue in the spec. Once you're in a 3d context, you
can't introduce group opacity and not expect it to flatten.
Simon Fraser made a proposal 2 years ago to fix this:
https://logs.csswg.org/irc.w3.org/css/2014-01-28/#e237881/
https://lists.w3.org/Archives/Public/www-style/2014Feb/0053.html

His proposal was to redefine the values of transform-style so it's not
ambiguous. Unfortunately, since the prefix was dropped, we likely have to
introduce a new name if we go down that path :-\

Received on Wednesday, 21 September 2016 00:58:22 UTC