Trying to port CSS2's "Elaborate Description of Stacking Contexts" into a new spec (because it needs serious updating with top layers, compositing, etc details that all exist now) and PHEW it just randomly toggles between elements, boxes, and fragments with WILD abandon
1
8
(Elements are, well, elements. Boxes are created by elements according to 'display' and other properties; they form a box tree which *mostly* reproduces the element tree. Fragments are what you get when boxes are split across lines, columns, etc. See drafts.csswg.org/css-display…)
1
anyway i'm doing my best to just do a direct translation with only light reformatting changes for now, but i'm gonna have to dig in deep to get this actually well-defined now
3
1
I vaguely recall @davidbaron saying that he thought it was wrong in some respects, too.
1
yeah after i'm done here and have @fantasai give it a quick eye i'm gonna want some detailed review by people who've actually gotten into a painting algo's guts, to see where I'm doing things wrong or wonky
1
1
It needs some serious extension points for other specs to hook into.
1
Opinion on how much it needs "extensions" vs just baking things in? Notable changes right now are making use of (conceptual) temp canvases so you can filter/clip/composite, and recognizing multiple top layers beyond the base document layer.
1
I think at least these two things need to be extension points: (a) always creates a stacking context, like 'opacity' (b) always creates containing block for all descendants, like 'transform' (though this is a little outside painting order, but probably should be nearby)

Apr 15, 2022 · 7:06 PM UTC

1