-
» Zakim excuses himself; his presence no longer seems to be needed
-
Rossen
trackbot, start meeting
-
» trackbot is preparing a teleconference.
-
RRSAgent
-
trackbot
RRSAgent, make logs world
-
RRSAgent
I have made the request, trackbot
-
trackbot
Meeting: CSS-SVG Task Force Teleconference
-
trackbot
Date: 26 February 2019
-
Rossen
present+
-
dbaron
Topic: transforms
-
smfr
present+
-
dbaron
Present+
-
AmeliaBR
present+
-
AmeliaBR
scribenick: AmeliaBR
-
smfr
-
smfr
-
AmeliaBR
smfr: This is the 12-page explainer we're reviewing. (link above)
-
AmeliaBR
... do we need basic explainer, or can we jump into the issues?
-
AmeliaBR
(consensus: jump in)
-
AmeliaBR
smfr: Issue 1, overflow as a grouping property
-
AmeliaBR
... Spec currently says that overflow causes a flattening, which limits many things like parallax effects.
-
AmeliaBR
... It's related to causing containing block. Transform style flows through dom tree. Maybe it would be better to flow through the containing block layout tree, so then a transform wouldn't need to force containing.
-
smfr
-
AmeliaBR
chrishtr: That doesn't sound right. Overflow:hidden should clip all descendents that can be contained within it, so the two go together. Transforms may not be same as abs pos, but it acts similar for painting.
-
AmeliaBR
... Compare A and B in Simon's example (Codepen link above)
-
AmeliaBR
smfr: top one, overflow isn't clipping B; bottom one it is
-
AmeliaBR
chrishtr: Isn't that because of the position: absolute?
-
AmeliaBR
smfr: Oh, that my break my demo...
-
AmeliaBR
smfr: So, unless we want to change the behavior of transform things, we need to change something.
-
AmeliaBR
chrishtr: But the issue is that if overflow is grouping, that implies flattening, which implies a stacking context, but overflow doesn't create a stacking context.
-
AmeliaBR
smfr: But unless you do flattening, I don't think you can clip. The elements are into 3D space.
-
AmeliaBR
AmeliaBR: Could you possibly partially flatten sections after dividing elements by stacking layer? It's a bit of a mess, but there's no sane way to mix 3D z-ordering and z-index.
-
AmeliaBR
mattwoodrow: Also, as I comment there, how do you decide what is the scrolling region without first flattening?
-
AmeliaBR
... it's particularly problematic with `preserve-3d`, since the used style still gets forced to flat.
-
AmeliaBR
chrishtr: So we'd need to make overflow: hidden/scroll part of the transform-style, in that it is always the end boundary. It changes to flat *and* forces a stacking context.
-
AmeliaBR
TabAtkins: So only in that combination, would it all happen.
-
AmeliaBR
mattwoodrow: It's still pretty confusing in the `transform-style` three-value syntax
-
AmeliaBR
chrishtr: So, what does `auto` mean?
-
AmeliaBR
Amelia: flatten under various conditions, e.g. stacking context or overflow hidden, but pass through 3D context if it is not complicated. `preserve-3d` says pass through even if the current element has transforms, which would usually trigger flattening.
-
AmeliaBR
chrishtr: So, can we do what Matt said?
-
dbaron
dbaron: we're discussing what triggers flattening
-
AmeliaBR
chrishtr: we can assume every element for now, then focus on developer ergonomics
-
AmeliaBR
Sorry, scribing failure. I was offline without realizing it.
-
smfr
-
TabAtkins
smfr: So you're saying that when "cube" is rendering into its ancestor, you flatten. In WK we flatten when rendering the children.
-
TabAtkins
smfr: But that results in the same rendering at the end.
-
TabAtkins
AmeliaBR: Would the behavior differ if there was a second cube?
-
TabAtkins
smfr: WK will depth-sort these all together in that case.
-
TabAtkins
dbaron: ARe you sure you're reading this correctly?
-
TabAtkins
dbaron: Two sibling cubes both with preserve-3d
-
TabAtkins
mattwoordrow: Right, their *parent* doesn't ahve p-3d, so the cubes themselves establish 3d rendering contexts.
-
TabAtkins
TabAtkins: So is *anyone's* current behavior actually described in a spec?
-
TabAtkins
smfr: No. Current WK behavior is the result of someone bolting CG 3d support into the web, and me trying to write up a model into a spec.
-
TabAtkins
mattwoodrow: Right. I think there's a lot of confusion here. I think Firefox's behavior is simple to understand, and it mostly works for web content.
-
TabAtkins
TabAtkins: So Firefox does what the spec originally was written to say - the highest element with p-3d establishes a 3d scene; descendants have to say p-3d to stay in that scene
-
TabAtkins
chrishtr: Simon, sounds like Gecko's model is osmething we might bea ble to adopt, assuming compat works?
-
TabAtkins
smfr: It's different from the conceptual model we had before...
-
TabAtkins
smfr: If we ignore the property values right now, but describe things in terms of establishing 3d and participating in 3d, do we still have a clear model of clipping and 3d contexts?
-
TabAtkins
chrishtr: So what about the following model:
-
TabAtkins
chrishtr: Adjacent things with p-3d are in the same 3d scene. p-3d always establishes a stacking context, so you can't mix z-ordering and 3d transforming.
-
TabAtkins
chrishtr: Any of the grouping properties in the ED spec, when combined with a specified style of p-3d, will cause a used value of flat.
-
TabAtkins
chrishtr: After the flattening, apply the property's effect (clipping, etc)
-
TabAtkins
smfr: Sounds like ED + this explainer?
-
TabAtkins
AmeliaBR: Sounds like would be most helpful to have this written down by people.
-
TabAtkins
Rossen: Going back to adjacent p-3d elements... What about when they're intertwined with non-p-3d elements?
-
TabAtkins
smfr: So if we have a non-3d sibling between the cubes, the non-3d renders into the 2d plane of the parent...
-
TabAtkins
AmeliaBR: Under Gecko's model, is it useful to have perspective on non p-3d elements?
-
TabAtkins
TabAtkins: No, it won't do anything.
-
TabAtkins
mattwoodrow: We might have a different model here too - perspective on an element with a 3d transform by itself, will cause the perspective to happen
-
TabAtkins
dbaron: If you think about the process as oing leaves-up, perspective is the only things that happens *after* scrolling but *before* scroller-caused flattening.
-
TabAtkins
smfr: So part of the reason I went from ED to WD format is I coudln't get ED format to have a consistent model.
-
TabAtkins
smfr: But maybe it does require putting p-3d on all ancestors, tho I fear the webcompat implications of that.
-
TabAtkins
TabAtkins: Apparently it works for Firefox.
-
TabAtkins
AmeliaBR: Spamming p-3d across the tree until it works is a common authoring style in my experience.
-
TabAtkins
mattwoodrow: I can put together an explainer for Gecko in the next week or two.
-
TabAtkins
smfr: One of the diffs in our bheavior is if you have an element with a simple 3d transform, does it start intersecting with the plane it's in? Safari does that, maybe unexpected.
-
TabAtkins
TabAtkins: Yeah, unexpected to me without p-3d; I thought it would transform and flatten when painting into the parent.
-
TabAtkins
AmeliaBR: Focus on logical model first, then what properties and what value to control that.
-
TabAtkins
smfr: Reftest strategy: clippath to only show a chunk of the interior, or exterior, so you avoid antialiasing on edges
-
TabAtkins
Topic: backface-visiblity
-
TabAtkins
smfr: Simple case, element is flipped over. With b-f: off, the element disappears.
-
TabAtkins
smfr: If there's an element inside of it with the b-f, does it stop rendering?
-
TabAtkins
dbaron: Is the outer flattened?
-
TabAtkins
dbaron: Speaking directly from ideas, if the outer element flattens, the child's b-f won't matter when you flip the parent.
-
TabAtkins
mattwoodrow: Almost. Actual imp is that b-f creates a pseudo-stacking context
-
TabAtkins
mattwoodrow: [missed explanation ;_;]
-
TabAtkins
mattwoodrow: Spec says the prop applies ot the element and not its descendants
-
TabAtkins
mattwoodrow: Case: 3d rendering root with 2 children
-
TabAtkins
mattwoodrow: Back face is flipped around, so it's 3d and a stackign context. Front face doesn't have anything, so it's not a stacking context.
-
TabAtkins
mattwoodrow: So when you flip around the parent, the "front" face doesn't have its backfaces hidden.
-
TabAtkins
mattwoodrow: It looks like WK doesn't flatten positioned descendants of a b-f:no element.
-
TabAtkins
mattwoodrow: I would prefer to say b-f:hidden creates a stacking context.
-
TabAtkins
mattwoodrow: I dont' think some children popping out and not getting hidden is a desirable thing.
-
dbaron
s/b-f:/backface-visibility:/
-
TabAtkins
smfr: b-f is a cargocult property pages sometimes do to trigger compositing
-
TabAtkins
smfr: Another option is to say only works if it has a transform, or participates in a 3d rendering context.
-
TabAtkins
mattwoodrow: Harder to explain.
-
TabAtkins
smfr: When we see b-v:hidden we do a compositing thing. We look at preserve-3d on the stacking context.
-
TabAtkins
smfr: So it's really if it's doing 3d rendering. It does nothing if it's not participating in 3d.
-
TabAtkins
smfr: I'd prefer b-v triggering *new* side effects, but I'd be willing to have it causing less side effects.
-
TabAtkins
mattwoodrow: Will a stackign context break things?
-
TabAtkins
smfr: Right now we only do it when it's in 3d.
-
TabAtkins
mattwoodrow: I think we can specify that.
-
TabAtkins
smfr: I think the spec is also wrong... talkinga bout computing the amtrix relative to the nearest 3d rendering context.
-
TabAtkins
smfr: People really want it relative to the view/window
-
TabAtkins
AmeliaBR: If there's flattening somewhere it's relative to that, otherwise it'll be relative to the view, basically.
-
TabAtkins
AmeliaBR: Can we take this explainer and turn it into GH issues so people can comment?
-
TabAtkins
smfr: We could. Not sure this is a great distillation of the issues.
-
TabAtkins
smfr: We should def clean up existing issues, and make sure any new issues from this are raised.
-
TabAtkins
AmeliaBR: I'm thinking of some people that do experiementation with 3d and know the bugs...
-
TabAtkins
smfr: We should get them into the WG.
-
TabAtkins
smfr: I'll sign up to clean up the GH issues.
-
TabAtkins
AmeliaBR: Let me know when you do and I'll set Ana Tudor on it.
-
TabAtkins
Rossen: So what about b-v issue?
-
TabAtkins
smfr: We decided we wanted b-v to apply to things in a 3d rendering context.
-
» dbaron RRSAgent, pointer?
-
-
AmeliaBR
-
TabAtkins
smfr: Something in the explainer... [draws]
-
TabAtkins
smfr: Mixing stacking context and 3d transforms.
-
TabAtkins
<div stacking> <div 3d /> <div stacking> <div 3d /> <div 3d /> </div> </div>
-
TabAtkins
smfr: So all the 3d divs have different z transforms.
-
TabAtkins
dbaron: Isn't isolate a grouping property? It would flatten, so the latter two don't z-sort with the first.
-
TabAtkins
dbaron: Also, after writing up happens, maybe useful to schedule a special telcon, maybe longer than an hour, to go thru all this before the next f2f
-
TabAtkins
Rossen: Agree.
-
TabAtkins
[discussion about editting]
-
TabAtkins
RESOLVED: Move Dean and Tess to former editor, add Matt as current.
-
Rossen
trackbot, end meeting
-
» trackbot is ending a teleconference.
-
trackbot
Zakim, list attendees
-
Zakim
As of this point the attendees have been Rossen, smfr, dbaron, AmeliaBR
-
trackbot
RRSAgent, please draft minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/02/26-fx-minutes.html trackbot
-
trackbot
RRSAgent, bye
-
RRSAgent
I see no action items