Re: Exposing Fundamental Primitives (was: [css-regions] Named Flows, Elements and Box Generation)

On 10/28/13 5:29 PM, "L. David Baron" <dbaron@dbaron.org> wrote:

>On Monday 2013-10-28 17:02 -0700, Tab Atkins Jr. wrote:
>> On Mon, Oct 28, 2013 at 4:56 PM, L. David Baron <dbaron@dbaron.org>
>>wrote:
>> > On Monday 2013-10-28 19:46 -0400, Brian Kardell wrote:
>> >> Apologies for delayed response to this thread, feel like i helped
>>instigate
>> >> some of this discussion via other channels and then didn't show up to
>> >> participate when it came up.
>> >>
>> >> Numerous WG members are of the opinion that we need to, as the
>>Extensible
>> >> Web Manifesto says, prioritize explaining the magic and exposing the
>> >> fundamental primitives in the system.  I won't rehash the rationale
>>for
>> >> this, but encourage you to read it for yourself and the plenty of
>>articles
>> >> written about it.  I will note though that it explicitly states
>>explains
>> >> how this helps us develop better high level apis - that we
>>definitely want
>> >> them.
>> >
>> > Regions don't seem anywhere close to a fundamental primitive --
>> > frankly, they're higher-level and more complex than most of the
>> > other formatting concepts exposed by CSS.  Things like
>> > http://dev.w3.org/csswg/css-regions/#regions-visual-formatting-details
>> > involve substantial complexity (implicitly running algorithms in
>> > other parts of CSS in multiple passes, because of the way flowing
>> > into regions can violate the ordering assumptions of other layout
>> > systems).
>> 
>> One can disagree about what level you have to go to in order to reach
>> "fundamental", but that's not relevant here.
>> 
>> Regions, or at least something very similar to them, are clearly the
>> primitive underlying Multicol and some of the more exotic Page
>> features.
>
>I don't think so -- these other features all describe their layout
>model in a way allows implementations to do layout in a specific
>order without such a multi-pass model.  And I'm not convinced that
>the complex multi-pass model is regions actually allows describing
>things like the intrinsic sizing of multicol.

The intrinsic sizing of multicol would be another sizing constraint, but
we'd have to see whether it would be possible or even a good idea to try
something like that at the spec level. I do know that the multicol
implementation in WebKit and Blink is being rewritten to depend upon the
regions code, and according to David Hyatt that's been a marked
improvement.

As Tab says, named flows and region chains are just one level of
abstraction that will be useful to expose. The work we've done on region
chains showed the need for the CSS Fragmentation spec, which is another
layer that has been very useful to define. And while named flows do poke
at ordering assumptions, CSS Regions is not the only specification that
gives reordering capabilities. It may turn out that a codebase that has
dealt with named flow ordering complications may find it easier to deal
with Flexbox or Grid reordering.


In any case, I think named flow reordering is for many cases preferable to
scripted DOM manipulation or playing around with HTML structure on the
server side just for presentational purposes.

Thanks,

Alan

Received on Tuesday, 29 October 2013 00:36:31 UTC