ライアーノーズさん、情報ありがとうございます。
少し補足させていただきます。
# EPUB Adaptive Layoutについて
ライアーノーズさんのサンプルで使用されている @-epubx-page-master などの指定は、
EPUBの仕様を策定しているIDPFが作成したEPUB Adaptive Layoutという仕様で定義されています。
EPUB Adaptive Layout
http://www.idpf.org/epub/pgt/
Vivliostyle.jsは、このEPUB Adaptive LayoutのJavaScript実装(Peter Sorotokinによる・
http://sorotokin.com/adaptive-layout/ )を
ベースにして実装しているため、EPUB Adaptive Layoutの機能がそのまま使えるようになっています。
一方、IDPFにはこの仕様の標準化を今後進める予定はなく、将来W3Cで高度なページレイアウトのCSS仕様が標準化されれば、
それをEPUBに採用する方針のようです。
W3CのCSS仕様のうち、ページレイアウトに関連するものには以下があります。
CSS Paged Media Module Level 3
https://drafts.csswg.org/css-page/
CSS Generated Content for Paged Media Module
https://drafts.csswg.org/css-gcpm/
CSS Page Floats (VivliostyleのJohannes Wilmがエディターを担当)
https://drafts.csswg.org/css-page-floats/
Vivliostyleでは、これらのCSS仕様で定義される機能を実装していく予定です。
たとえば、 @page ルールによるページサイズ・マージンなどの指定や、 page-margin boxes を使ったヘッダー・フッターの配置は
CSS Paged Media で定義されているものです。
また、近いうちにCSS Page Floatsで定義される float: top/bottom 等も実装予定です。
現状のVivliostyle.jsがサポートしている機能の一覧など、まだ整備できていないのですが、
以下のChange Logファイルに各バージョンの更新履歴を記載していますので、参考にしていただければと思います。
https://github.com/vivliostyle/vivliostyle.js/blob/master/CHANGELOG.md
# サンプルコードについて
- @-epubx-partition content-area ルール内に -epubx-flow-from: body; を記載する必要がありますのでご注意ください。
(bodyフローが流れ込むpartitionがないと、本文を配置する領域がなく、本文が表示されません)
- CSS Paged Mediaで、組み込みのページカウンターとして'page'という名前のカウンターが定義されています。
counter-reset, counter-increment を使ってカウンターを定義されていますが、同名カウンターがすでに組み込みで定義されているため、
これらの定義は実は不要です。(あっても動作に変わりはありません)