Intent to Ship: New multicol implementation
Advance the RegionBasedColumns runtime flag from "experimental" to
"stable", and then delete the old implementation shortly after.
This will replace the current multicol implementation with the new one
(the new implementation is often referred to as "region-based
multicol", but that's probably a confusing name these days, as there's
no support for CSS regions in Blink at the moment). The new
implementation has an improved column balancing algorithm (the old
implementation tends to cause too tall columns), and it also works
better together with compositing. One new CSS property is also added:
column-fill. This property lets the author decide whether to balance
the columns or not. Implementation-wise it's also way less intrusive,
in that it doesn't require large chunks of code in LayoutBlock /
LayoutBlockFlow / DeprecatedPaintLayer, including the need for block
continuations, etc. So once the new implementation is shipping, we can
go ahead and delete the old code that bogs down such central parts of
Note that the scope has shrunk since the original intent-to-implement
post: Support for nested-multicol will be dealt with later, and
treated as a simple bugfix. This also means that we cannot do printing
until this is fixed, since that depends on support for nested
fragmentation contexts. We can unprefix when all this is in. No
noteworthy improvements will be made to the various 'break' properties
either, such as introducing support for the more modern 'break-after',
'break-before' and 'break-inside' properties.
Link to “Intent to Implement” blink-dev discussion
Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
This feature only exposes straight-forward CSS properties as far as
DevTools is concerned.
In the original intent-to-implement post, the plan was to unprefix the
multicol properties, and I raised compatibility concerns in that
regard. However, we shouldn't really unprefix before we have improved
the implementation further, most notably add support for nested
multicol, so that we can also paginate and print multicol. So there's
hardly any compatibility risk left, except that we now implement
column-fill, so that all multicol containers will be balanced unless
otherwise specified (with the old implementation we only balance if
height is auto). And there's always the risk of bugs or bug fixes, of
OWP launch tracking bug?
Link to entry on the feature dashboard
---- Morten Stenshorne, developer, Opera Software ASA ----