- Add support for Compositing and Blending Level 1
- pseudo element or page margin box with
content:url()behave as a replaced element
- Experimental support of CSS Page Floats and
- Fix incorrect page breaking at boundaries of inline-block boxes
- Improve page/column breaking inside tables
- Following issues are resolved:
- Table cell with rowspan disappears after page break
- Table (column) width should not change over page breaks
- Table breaks occur between the colgroup and the first row
- Fix incorrect treatment of percentage value for line-height property
- Support repeating table header/footer across pages
- Fix incorrect widows behavior with footnote call close to the end of the page
2016.10 - 2016-10-25
- Additional author style sheets can be injected with 'styleSheet' property of
- Support Scalable Vector Graphics (SVG) 2 properties.
- Support Scalable Vector Graphics (SVG) 1.1 properties.
- Support CSS Masking 1 properties.
- Support Filter Effects 1 properties.
- Introduce background layout and change event model
- Improve zoom behavior
- Add very simple 'auto spread' page view mode
- Fix bug that pages occasionally disappear when resolving cross references
target="_blank"on links to external URLs
- Fix incorrect page breaks with cross references
- Fix image-resolution behavior when max/min-width/height is specified in length (not percentage)
- Fix image-resolution to take box-sizing into account
- Fix cross reference bug with name attribute
- Avoid error when
inheritvalue is used
- Avoid error when
remunit is used
- Fix rem unit inside
- Fix internally generated IDs on elements to conform to the XML specification
- Characters which can be used in an ID in an XML document is specified at https://www.w3.org/TR/xml/#NT-NameStartChar.
2016.7 - 2016-07-04
- Support string and URL values in
- Support cross references by
- Spec: CSS Image Values and Replaced Content Module Level 3 - Overriding Image Resolutions: the image-resolution property
<resolution>value is supported.
- Only supported for content of
video(applied to poster images) elements and before/after pseudoelements. Other images such as background images, list images or border images are not supported.
- The property is applied to vector images such as SVG, as well as raster images. This behavior is different from what the spec specifies.
counter-incrementspecified in a page master (
@-epubx-page-master) are now effective to page-based counters
- Note that these values, if specified, always override values specified in page contexts.
- Fix a bug that
clearis ignored when
white-spaceproperty is used before the element
- Fix incorrect float positioning
- Fix incorrect float clearance
- Fix incorrect text offset caused by float
- Fix improper rendering of floats with relative width/height
- Fix positioning when a float is specified
position: relativeor a float is inside an positioned element
- Fix positioning when a float has a writing-mode value different from its container
- Fix issue with floats inside an element with an
overflowvalue other than
- Fix issue that a
displayvalue was always set to
blockfor a float, ignoring the original value
- Fix layout when a float is wider than its containing block
- Avoid error when an element with pseudoelements overflows its container
- Fix handling of padding and border of a block fragmented by a page/column break
- Fix layout of floats inside flex containers
- Fix page break bug in vertical text on Firefox (partially)
2016.4 - 2016-04-08
- Support printer marks (
marksproperty) and bleed area (
- Spec: CSS Paged Media Module Level 3 - Crop and Registration Marks: the 'marks' property, Bleed Area: the 'bleed' property
- Only effective when specified within an
@pagerule without page selectors.
- Support outline-offset
- Support font-feature-settings
- Support linear-gradient/radial-gradient
- Support substring matching attribute selectors
- Support UI states selectors (
- Spec: Selectors Level 3 - The UI element states pseudo-classes
- Note that the current implementation can use only initial states of those UI elements. Even if the actual state of the element is toggled by user interaction, the style does not change.
- Support TeX and AsciiMath mathematics
- In a element with
data-math-typeset="true"attribute, you can use TeX or AsciiMath mathematics.
- TeX mathematics are indicated by delimiters
- AsciiMath mathematics are indicated by delimiters
- Lengths in 'rem' specified within page context are now interpreted correctly
- Web fonts are now applied correctly even when specified within page context
- Fix incorrect pagination caused by absolutely positioned element
- Fix pagination problem with flex containers
- Truncate margins at unforced page/column breaks
- box-shadow / text-shadow is now supported
- Propagate and combine multiple break values at a single break point
- Fix problematic handling of prefixed properties
font-sizeis specified to the
2016.1 - 2016-01-20
- Support EPUB loading
Viewerclass loads an unzipped EPUB directory.
- Support some EPUB features
spineelement in OPF
:nth-child()pseudo-class selector (only an integer argument can be used)
- Basic CSS Page Floats support
- Spec: CSS Page Floats
- Only basic float placement without stacking or collision avoidance is supported.
- Improve handling of @font-face rules
- Spec: CSS Fonts Module Level 3 - The @font-face rule
- Add support for
local()as well as
url()to use local fonts.
- Support JIS-B5 and JIS-B4 page sizes
- Accept flexbox properties
- Add default page margin
- Fix zoom problem when viewport is specified by the document
- Fix incorrect layout of HTML which is well-formed as XML
- Fix viewport blinking while loading
- Fix media queries behavior
- Fix calculation of
- Improve MathJax performance
- Fix bug that rules above footnotes disappear
- Allow an EPUB directory URL not followed by a slash
- Change initial values of
- Allow page/column break inside tables
- Fix internal hyperlinks to elements with 'name' attributes
- Allow units spelled in upper case
- Fix handling of forced and avoid break values; update acceptable values for
- Spec: CSS Fragmentation Module Level 3
- Note that the current implementation treats all values of
autoas the same as
avoid. The fine-grained control (distinguishing
avoid-region) will be a future task and tracked with a separate issue.
- Note that though the spec requires to honor multiple
break-aftervalues at a single break point, the current implementation choose one of them and discard the others. The fine-grained control of these break values will be a future task and tracked with a separate issue.
- Element names and attribute names in selectors are now treated in a case-insensitive manner
- Note that this behavior is incorrect for XML documents. This issue will be tracked at https://github.com/vivliostyle/vivliostyle.js/issues/106.
- Fix incorrect positioning of floats and clearance
- Fix attribute selector
- Fix initial value of
- Fix support for
- Avoid page break between ruby base and annotation
- Do not block entire process when stylesheets cannot be fetched or parsed
- Fix problem that pages with viewport specified have incorrect horizontal offset on screen
0.2.0 - 2015-09-16
- [core] Support page background and document canvas background color
- Note: only simple background color is supported.
- [core, viewer] Layout is automatically updated when the window size is changed
- [core] Support page-based counters
- Spec: CSS Paged Media Module Level 3 - Page-based counters
- See the above pull request for a detailed description of its behavior and limitation.
- [core] Support page-margin boxes
- Spec: CSS Paged Media Module Level 3 - Page-Margin boxes
- Note: For now, 'quotes' property specified within the page/margin context is ignored. This issue will be tracked at https://github.com/vivliostyle/vivliostyle.js/issues/43.
- [core] Accept WOFF2 web fonts
- Viewer UI is separated to a new repository vivliostyle-js-viewer.
- [core] Avoid incorrect margin collapse of the page area
- [core] Fix incorrect positioning of floats
- [viewer] Make keyboard shortcuts work on various browsers
- [core] Fix duplicating page when navigate to the last page of each spine
- [core] Fix several problems on web font loading
0.1.1 - 2015-05-06
Minor update with several changes and bug fixes.
- [core] Support :root pseudo-class selector
- [core] Support CSS properties currently implemented by browsers
- See https://github.com/vivliostyle/vivliostyle.js/pull/18 for details.
- [core] Cascade page size specified in @page rules to page masters defined by @-epubx-page-master rules
- When @page rules and @-epubx-page-master rules are both specified, the page size specified by 'size' property in @page rules is applied to the selected page master. This behavior is not defined in the related specs. We added this behavior for a use case in which one wants to print content styled with Adaptive Layout on a paper sheet and wants to specify the sheet size by adding a (user) stylesheet containing @page rules with 'size' property.
- [core] Fixed incorrect page layout when non-zero padding is specified in page context.
- [core] 'page-width', 'page-height' variables (used in -epubx-expr) are now correctly reflect the page size specified by @page rules
- [viewer] Fixed incorrect page size calculation when content with 'auto' page size is viewed in the spread view mode.
0.1.0 - 2015-04-28
Initial alpha release. Following features are added while keeping the original Adaptive Layout features.
- [core] Support @page rule
- [viewer] Support spread view mode
- The spread view can be enabled by adding '&spread=true' to the end of the viewer URL.
- Note: Page size calculation is incorrect when content with 'auto' page size is viewed in the spread view mode. This problem will be fixed in the next release.
- [viewer] Added page navigation buttons