Re: [csswg-drafts] [css-contain-1] contain:size shouldn't fragment as monolithic (#5648)

The CSS Working Group just discussed `[css-contain-1] contain:size shouldn't fragment as monolithic`, and agreed to the following:

* `RESOLVED: Not make any changes to css-contain-1, possibly relax the monolithic requirement in later levels`

<details><summary>The full IRC log of that discussion</summary>
&lt;fantasai> subtopic: [css-contain-1] contain:size shouldn't fragment as monolithic<br>
&lt;fantasai> https://github.com/w3c/csswg-drafts/issues/5648<br>
&lt;fantasai> github: https://github.com/w3c/csswg-drafts/issues/5648<br>
&lt;astearns> github: https://github.com/w3c/csswg-drafts/issues/5648<br>
&lt;heycam> florian: CSS Contain has several types of containment<br>
&lt;heycam> ... all these are establishing changes to how CSS normally behaves, to reason about inside/outside the element, breaking dependencies<br>
&lt;heycam> ... what's going on inside an element doesn't affect the outside<br>
&lt;heycam> ... we have size containment, the goal being when the inside changes, the size of the element doesn't<br>
&lt;heycam> ... and in particular within that, we want to deal with size changes in the case the element is fragmenting<br>
&lt;heycam> ... for that we have a double goal. 1. regardless fo how the element fragments, its total size shouldn't change. but nore than that, the size of the fragments shouldn't change either<br>
&lt;heycam> ... the spec says applying size containment causes the element to be monolithic<br>
&lt;heycam> ... fantasai opened an issue to say it doesn't need to be<br>
&lt;heycam> ... she correctly poitns out size containment causes the element to be fixed size<br>
&lt;heycam> ... so the total size of the element won't vary, regarldess of the breaking point<br>
&lt;heycam> ... but making it fixed size does not guarantee the fragment sizes won't change<br>
&lt;heycam> ... so I think we need something more than merely making the element fixed size<br>
&lt;heycam> ... I agree making the element monolithic is slightly overkill, in the sense that it will guarantee that not only the total size of the box and all fragmnets won't change, but it also means the content of the element will not be fragmented and will be sliced<br>
&lt;heycam> ... which isn't actually necessary in this case<br>
&lt;heycam> ... as long as we guarnatee fragment sizes to not change, we can still allow fragmentation<br>
&lt;heycam> ... fixed size fragments but content fragments is not a thing we have currently<br>
&lt;heycam> ... preference is to stick with the existing spec requirement that all size contained elements become monolithic, because it fulfills the requirement and is what is implemented<br>
&lt;heycam> ... in some later level possibly relax this to not be monolithic as long as you fulfil these specific constraints<br>
&lt;heycam> ... could do that without trouble, any implementation compliant today would be compliant in the future<br>
&lt;heycam> ... but this is the last open issue on css-contain-1<br>
&lt;heycam> ... not sure it's so interesting to change the spec to allow behavior nobody has at this point<br>
&lt;florian> http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=10671<br>
&lt;heycam> fantasai: that seems very weird to me<br>
&lt;heycam> ... don't think it's supposed to do that<br>
&lt;heycam> florian: it's interoperable<br>
&lt;heycam> fantasai: it should be drawing the box all the way to the bottom of the page, and not leaving a gap when it fragments<br>
&lt;heycam> florian: the total size does stay fixed, btu the size of the fragments doesn't<br>
&lt;heycam> fantasai: drawing the box sides all the way down to the end of the page or column, rather than ending at the fragmentation point, then the size of the fragments would not change based on the fragmentation position<br>
&lt;heycam> iank_: all of the fragmentation engines for most cases, when you fragment, you'll typically consume the remaining fragmentainer space<br>
&lt;heycam> fantasai: that's what I was epxecting to happen<br>
&lt;heycam> florian: Safari, Chrome, and Firefox all do this<br>
&lt;heycam> ... three line element fragment, just tall enough to contain the three lines, but the fragmentainer containing the element is 2.5 lines high. so the first fragment will be 2 lines, the third fragment will be 1 line. so there's a 0.5 line gap at the end of the first one<br>
&lt;heycam> ... whether that's the case or not depends on the content of the element<br>
&lt;heycam> ... maybe this is an interoperable spec violation, but I'm not convinced it's a spec violation<br>
&lt;astearns> The fragment heights stay the same in blink, but adjust in gecko<br>
&lt;heycam> fantasai: that's super weird. I wonder what's causing this to happen<br>
&lt;bradk> Wouldn’t box-decoration-break: clone cause the fragments to grow?<br>
&lt;heycam> fantasai: I could undersatnd if engines were like "oh for web compat reasons we can't conusme the extra space", but even when it's auto, it's not consuming down to the fragmentainer<br>
&lt;heycam> florian: because here we're not in a monolithic case, it doesn't want to have one full line of content [...]<br>
&lt;heycam> fantasai: the fact it's not working for auto is disturbing<br>
&lt;heycam> florian: that's the current behavior, and doesn't work for contain:size<br>
&lt;heycam> ... I propose sticking with monolithic for level 1, then maybe relaxing in a later level<br>
&lt;heycam> fantasai: rather defer the issue<br>
&lt;heycam> florian: would you object to the monolithic beahvior being allowed?<br>
&lt;heycam> fantasai: no, I think it's fine to allow that<br>
&lt;heycam> florian: all implementations behave this way, and you're agreeing it should be allowed. is it worth blocking the spec to make a change that's not testable and not invalidate any implementation?<br>
&lt;heycam> fantasai: I said I don't mind deferring<br>
&lt;heycam> RESOLVED: Not make any changes to css-contain-1, possibly relax the monolithic requirement in later levels<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/5648#issuecomment-1240034875 using your GitHub account


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

Received on Thursday, 8 September 2022 00:02:59 UTC