W3C home > Mailing lists > Public > public-fx@w3.org > July to September 2016

[css-transforms] CSS3D issue with opacity in Chrome 53

From: /#!/JoePea <trusktr@gmail.com>
Date: Tue, 27 Sep 2016 00:42:46 -0700
Message-ID: <CAKU1PAVHATHSfK=NziFGCYxVUTUNf3FbW9WQy+hmTJ0TNvyS9Q@mail.gmail.com>
To: public-fx@w3.org, Rik Cabanier <cabanier@gmail.com>, "Tab Atkins Jr." <jackalmage@gmail.com>
Rik said

> > The fix is straightforward - setting opacity should only affect opacity.
> >

> Can you tell us how that would work?
> Keep in mind that if you apply opacity to a group (=multiple elements), the
> rendering of that group is defined here:
> https://www.w3.org/TR/compositing-1/#groups

 I don't know how to word it in the spec, but I think the middle-ground
solution is for opacity (and other blending properties) to apply only onto
the plane in the plane where it is applied (3D or not). If transform-style
is preserve-3d, then opacity would apply only to the target plane, but not
to any children who are popped out as separate planes within the 3D
context. If transform-style is flat, then the 3D children *are* part of the
target plane where opacity is applied, and in that case opacity is applied
to children.

Lastly, the value of transform-style should not be automatically set when
opacity is set, but rather the user's chosen value can influence the type
of opacity.

There could additionally be some additional property that, while
transform-style is preserve-3d, opacity can propagate to children, but that
can also be easily implemented in user-space *without having to modify the
underlying DOM structure. *However, this incurs the extra penalties from
number-to-string-to-number conversion when passing child opacities in via
the style attributes on children.

Received on Tuesday, 27 September 2016 07:43:56 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:49:57 UTC