[css-overflow][css-break][css-page][houdini] The road to pagination

We all read books. Many of us read books on screens, books that have been
rendered by browser engines. Almost every ebook reader paginates, because
it makes reading long-form content easier. Every ebook reader paginates
badly, because it's hard. It has been a major sticking point for the
Readium project.

Pages aren't just for books. Many types of layout are essentially sequences
of boxes, from slide shows to automotive displays.

CSS has been circling around this idea for two decades. Specs exist for
many of the pieces we need. But what's missing? How do we fill in the gaps?
How does Houdini fit in?

We have lots of information on requirements. The digital publishing
interest group has put together lists of requirements for pagination[1][2].
The W3C has also published many requirements documents describing book
layout and pagination, such as JLreq[3] or Latinreq[4]).

We have implementation experience, from PDF formatters like Prince and
AntennaHouse, from Presto [5], and from various polyfills for pagination
(some based on Regions or Multicol, others using more brutal methods). We
also have spec and implementation experience from XSL-FO.

We have lots of CSS specs. The fragmentation spec does a lot of the heavy
lifting. Overflow covers pagination, but contains the immortal issue:
"write this section." We have a page spec, which seems to be more used than

Unfortunately, we don't seem to know what a page is. Can we figure this out
as part of CSS Display[7], or is it part of the mythical Box Tree API? How
much other work can we do without defining the full box tree? Will existing
work on page floats, page templates, and generated content need to be
reworked? How can we support page transitions?

Finally, is there a minimal set of features/APIs that would make it easier
to p(r)ollyfill pagination, and allow us to gain even more real-life

I'm hoping that we can discuss a way forward in Paris. Many of us are eager
to help. The codex will rise again!


[1] https://www.w3.org/dpub/IG/wiki/Pagination_Requirements
[2] https://www.w3.org/dpub/IG/wiki/Functional_Requirements_for_Pagination
[3] http://www.w3.org/TR/jlreq/
[4] http://w3c.github.io/dpub-pagination/
[5] http://www.opera.com/docs/specs/presto2.10/paged-overflow/
[6] https://drafts.csswg.org/css-display/

Received on Thursday, 20 August 2015 00:42:18 UTC