22:16:48 RRSAgent has joined #fx 22:16:48 logging to https://www.w3.org/2019/02/26-fx-irc 22:16:50 RRSAgent, make logs world 22:16:50 Zakim has joined #fx 22:16:52 Meeting: CSS-SVG Task Force Teleconference 22:16:52 Date: 26 February 2019 22:16:59 present+ 22:17:01 Topic: transforms 22:17:03 present+ 22:17:03 Present+ 22:17:20 present+ 22:17:25 scribenick: AmeliaBR 22:17:33 https://docs.google.com/document/d/1FIQW9qVPbZxn0pifFOXWWK0-7fXrjlSeYeZN7wHmIHo/edit#heading=h.zcumbwxv8iww 22:17:51 chrishtr has joined #fx 22:18:06 https://docs.google.com/document/d/1FIQW9qVPbZxn0pifFOXWWK0-7fXrjlSeYeZN7wHmIHo/edit#heading=h.zcumbwxv8iww 22:18:11 mattwoodrow has joined #fx 22:18:22 smfr: This is the 12-page explainer we're reviewing. (link above) 22:18:53 ... do we need basic explainer, or can we jump into the issues? 22:18:59 (consensus: jump in) 22:19:33 smfr: Issue 1, overflow as a grouping property 22:20:07 ... Spec currently says that overflow causes a flattening, which limits many things like parallax effects. 22:21:00 ... 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. 22:22:17 TabAtkins has joined #fx 22:23:01 https://codepen.io/smfr/pen/ZPYjZq 22:23:35 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. 22:23:57 ... Compare A and B in Simon's example (Codepen link above) 22:24:17 smfr: top one, overflow isn't clipping B; bottom one it is 22:25:06 chrishtr: Isn't that because of the position: absolute? 22:25:06 smfr: Oh, that my break my demo... 22:26:43 smfr: So, unless we want to change the behavior of transform things, we need to change something. 22:27:24 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. 22:28:01 smfr: But unless you do flattening, I don't think you can clip. The elements are into 3D space. 22:30:02 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. 22:30:43 mattwoodrow: Also, as I comment there, how do you decide what is the scrolling region without first flattening? 22:32:15 ... it's particularly problematic with `preserve-3d`, since the used style still gets forced to flat. 22:33:14 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. 22:33:50 TabAtkins: So only in that combination, would it all happen. 22:35:36 mattwoodrow: It's still pretty confusing in the `transform-style` three-value syntax 22:36:03 chrishtr: So, what does `auto` mean? 22:37:04 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. 22:38:19 chrishtr: So, can we do what Matt said? 22:43:03 dbaron: we're discussing what triggers flattening 22:44:06 chrishtr: we can assume every element for now, then focus on developer ergonomics 22:44:32 Sorry, scribing failure. I was offline without realizing it. 22:46:28 https://webkit.org/blog-files/3d-transforms/morphing-cubes.html 22:48:10 smfr: So you're saying that when "cube" is rendering into its ancestor, you flatten. In WK we flatten when rendering the children. 22:48:46 smfr: But that results in the same rendering at the end. 22:49:18 AmeliaBR: Would the behavior differ if there was a second cube? 22:49:29 smfr: WK will depth-sort these all together in that case. 22:50:42 dbaron: ARe you sure you're reading this correctly? 22:51:04 dbaron: Two sibling cubes both with preserve-3d 22:51:39 mattwoordrow: Right, their *parent* doesn't ahve p-3d, so the cubes themselves establish 3d rendering contexts. 22:52:14 TabAtkins: So is *anyone's* current behavior actually described in a spec? 22:52:59 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. 22:53:21 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. 22:55:54 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 22:56:32 chrishtr: Simon, sounds like Gecko's model is osmething we might bea ble to adopt, assuming compat works? 22:56:47 smfr: It's different from the conceptual model we had before... 22:57:34 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? 22:57:42 chrishtr: So what about the following model: 22:58:24 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. 22:58:56 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. 22:59:07 chrishtr: After the flattening, apply the property's effect (clipping, etc) 22:59:13 smfr: Sounds like ED + this explainer? 22:59:36 AmeliaBR: Sounds like would be most helpful to have this written down by people. 23:01:26 Rossen: Going back to adjacent p-3d elements... What about when they're intertwined with non-p-3d elements? 23:02:25 smfr: So if we have a non-3d sibling between the cubes, the non-3d renders into the 2d plane of the parent... 23:03:44 AmeliaBR: Under Gecko's model, is it useful to have perspective on non p-3d elements? 23:03:49 TabAtkins: No, it won't do anything. 23:04:52 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 23:05:32 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. 23:06:22 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. 23:06:43 smfr: But maybe it does require putting p-3d on all ancestors, tho I fear the webcompat implications of that. 23:07:02 TabAtkins: Apparently it works for Firefox. 23:07:22 AmeliaBR: Spamming p-3d across the tree until it works is a common authoring style in my experience. 23:07:37 mattwoodrow: I can put together an explainer for Gecko in the next week or two. 23:08:24 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. 23:08:49 TabAtkins: Yeah, unexpected to me without p-3d; I thought it would transform and flatten when painting into the parent. 23:09:03 AmeliaBR: Focus on logical model first, then what properties and what value to control that. 23:10:39 smfr: Reftest strategy: clippath to only show a chunk of the interior, or exterior, so you avoid antialiasing on edges 23:11:17 Topic: backface-visiblity 23:11:28 smfr: Simple case, element is flipped over. With b-f: off, the element disappears. 23:12:23 smfr: If there's an element inside of it with the b-f, does it stop rendering? 23:12:30 dbaron: Is the outer flattened? 23:13:04 dbaron: Speaking directly from ideas, if the outer element flattens, the child's b-f won't matter when you flip the parent. 23:13:19 mattwoodrow: Almost. Actual imp is that b-f creates a pseudo-stacking context 23:14:07 mattwoodrow: [missed explanation ;_;] 23:14:25 mattwoodrow: Spec says the prop applies ot the element and not its descendants 23:15:09 mattwoodrow: Case: 3d rendering root with 2 children 23:15:30 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. 23:15:52 mattwoodrow: So when you flip around the parent, the "front" face doesn't have its backfaces hidden. 23:16:32 mattwoodrow: It looks like WK doesn't flatten positioned descendants of a b-f:no element. 23:16:43 mattwoodrow: I would prefer to say b-f:hidden creates a stacking context. 23:16:58 mattwoodrow: I dont' think some children popping out and not getting hidden is a desirable thing. 23:17:09 s/b-f:/backface-visibility:/ 23:17:15 smfr: b-f is a cargocult property pages sometimes do to trigger compositing 23:17:30 smfr: Another option is to say only works if it has a transform, or participates in a 3d rendering context. 23:17:36 mattwoodrow: Harder to explain. 23:18:17 smfr: When we see b-v:hidden we do a compositing thing. We look at preserve-3d on the stacking context. 23:18:36 smfr: So it's really if it's doing 3d rendering. It does nothing if it's not participating in 3d. 23:19:29 smfr: I'd prefer b-v triggering *new* side effects, but I'd be willing to have it causing less side effects. 23:19:36 mattwoodrow: Will a stackign context break things? 23:19:42 smfr: Right now we only do it when it's in 3d. 23:19:48 mattwoodrow: I think we can specify that. 23:20:20 smfr: I think the spec is also wrong... talkinga bout computing the amtrix relative to the nearest 3d rendering context. 23:20:58 smfr: People really want it relative to the view/window 23:21:28 AmeliaBR: If there's flattening somewhere it's relative to that, otherwise it'll be relative to the view, basically. 23:21:49 AmeliaBR: Can we take this explainer and turn it into GH issues so people can comment? 23:21:56 smfr: We could. Not sure this is a great distillation of the issues. 23:22:07 smfr: We should def clean up existing issues, and make sure any new issues from this are raised. 23:22:24 AmeliaBR: I'm thinking of some people that do experiementation with 3d and know the bugs... 23:22:28 smfr: We should get them into the WG. 23:22:34 smfr: I'll sign up to clean up the GH issues. 23:22:42 AmeliaBR: Let me know when you do and I'll set Ana Tudor on it. 23:22:57 Rossen: So what about b-v issue? 23:23:37 smfr: We decided we wanted b-v to apply to things in a 3d rendering context. 23:25:02 Explainer (again): https://docs.google.com/document/d/1FIQW9qVPbZxn0pifFOXWWK0-7fXrjlSeYeZN7wHmIHo/edit# 23:26:35 smfr: Something in the explainer... [draws] 23:26:35 smfr: Mixing stacking context and 3d transforms. 23:27:27
23:28:18 smfr: So all the 3d divs have different z transforms. 23:28:58 dbaron: Isn't isolate a grouping property? It would flatten, so the latter two don't z-sort with the first. 23:29:28 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 23:29:35 Rossen: Agree. 23:31:56 [discussion about editting] 23:32:12 RESOLVED: Move Dean and Tess to former editor, add Matt as current. 23:51:47 trackbot, end meeting 23:51:47 Zakim, list attendees 23:51:47 As of this point the attendees have been Rossen, smfr, dbaron, AmeliaBR 23:51:55 RRSAgent, please draft minutes 23:51:55 I have made the request to generate https://www.w3.org/2019/02/26-fx-minutes.html trackbot 23:51:56 RRSAgent, bye 23:51:56 I see no action items