Re: [csswg-drafts] [css-transforms-2][css-overflow-3] overflow: clip and 3d transforms (#6374)

> This is a follow up from #6202, where a discussion of paint containment and 3d transforms uncovered a similar point about `overflow: clip`.
> 
> On the one hand it seemed desirable that `overflow: clip` would, unlike `overflow: visible` and like every other value of `overflow`, be listed among grouping properties and cause flattening of a `preserve-3d` scene. On the other hand, it might not be that simple:
> 
>     * all the other things listed in "grouping properties" are things that create a stacking context, but `overflow:clip doesn't`

`overflow:hidden` is already a grouping property, and doesn't create a stacking context, so adding `clip` seems fine to me.

> Ultimately, I don't think that we absolutely have to make `clip` cause flattening, as we theoretically could clip within the 3d scene, but @smfr has been clear that he'd rather avoid that, and others seemed to agree.

I very much agree, 3d clipping seems like a lot of complexity for little gain.

> So after reading [ยง 3.2. Behavior specific to HTML](https://drafts.fxtf.org/compositing-1/#csscompositingrules_CSS) in compositing-1, I'm less sure that there's even a meaningful difference between stacking context and grouping property, or, if so, what it would be. (And I added another column to [my big test](https://dbaron.org/css/test/2018/stacking-context-z-order), and retitled one of the existing columns.) 

`z-index` creates a stacking context, but isn't a grouping property for `preserve-3d`. `transform` itself sort of is too, but that's part of the spec in question, so less interesting.

>I agree with @smfr that overflow:clip should cause flattening in 3D transforms, and I think I'm also inclined to agree with his preference that it not create a stacking context (although my opinion there is much weaker).

We'd get better performance if the most common clip was a stacking context where we could clip all the descendants as a single group. Ideally it'd be a containing block too, but that might be hard to add.


> Maybe we want to just add it to the list of flattening conditions without describing it as a grouping property?

We already have this confusion with `overflow:hidden`. Maybe we should just call the set flattening conditions rather than grouping properties?


-- 
GitHub Notification of comment by mattwoodrow
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6374#issuecomment-862855310 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 17 June 2021 02:00:23 UTC