====== CSS Region Templates ====== //This is a collection of ideas spawned from discussions at TPAC2011. Not very organized yet. This may evolve into zero or more new spec modules. May overlap with existing modules too.// //Related: [[Page View]]//\\ //Related: [[Fragments, Columns, Regions, Pages]]// ===== Goals ===== * Define a declarative way to generate regions or pages based on (a) amount of content in paged presentation and (b) some description of page design * Make it easy to produce a simple paginated view without script * Provide a way to generate pages with different layout, based on document design and available content * Have appropriate extensiblity to enable custom design and custom logic for page generation ===== Ideas ===== ==== 1. Element-per-region ==== Peter's template design [1] relies on region functionality where a region consumes exactly one element from flow. This is close to what would have happen if there was a forced break after each element, but region auto sizing doesn't work that way now. This calls for a special kind of region, and it will work better than manipulating with forced breaks. How about this: **region-type**: page | column | box | slot | frame | auto (initial: auto) Region types have this meaning: * **page** - paginate the flow ("region-overflow:break"); "break-*:page" treats region as a page * **column** - same as page, but "break-*:column" moves to next region and content can be balanced (TBD how to tell which columns are on same page) * **box** - consuming one element at a time from the flow. No pagination, layout works as if the element from flow was the only child of the region * **slot** - same as 'box' but the element from flow replaces the region. Useful for incompatible containers (e.g. region is
and element is