The Vivliostyle uses a two-layer architecture, with some of its functionality implemented purely in javascript, and some being delegated all or in part to the browser engine on top of which Vivliostyle is running. In the following list Supported in all browsers
indicates that features implemented in Javascript that will work regardless of the browser engine. Other features’ availability and behavior do vary based on what is supported by the underlying browser engine.
Properties where Allowed prefixes
is indicated may be used with any of the listed prefixes, or preferably without a prefix, regardless of the underlying browser engine. If Vivliostyle needs to invoke the browser engine, it will internally convert to the appropriate syntax.
inherit
initial and unset are not supported.em, ex, ch, rem, vw, vh, vmin, vmax, vi, vb, cm, mm, q, in, pc, pt, px.
attr()
content property.target-counter() and target-counters()
content property.calc() function
min() and max() functions can be used inside calc() function.calc() is not calculated correctly.env() function
env(pub-title) and env(doc-title) that are not yet defined in the css-env draft spec but useful for making page header.
env(pub-title): publication title = EPUB, Web publication, or primary entry page HTML title.env(doc-title): document title = HTML title, which may be chapter or section title in a publication composed of multiple HTML documents*
E
E F
E > F
E + F
E[foo], E[foo="bar"], E[foo~="bar"], E[foo|="bar"]
E.foo
E#foo
:first-child pseudo-class
E:link
E:lang(c)
:first-line pseudo-element
*). [Issue]:first-letter pseudo-element
*), or with non-ascii characters. [Issue]:before and :after pseudo-elements
ns|E, *|E
ns|*, *|*
[att^=val], [att$=val], [att*=val]
[ns|att], [|att], [ns|att=val], [|att=val], [ns|att~=val], [|att~=val], [ns|att|=val], [|att|=val], [ns|att^=val], [|att^=val], [ns|att$=val], [|att$=val], [ns|att*=val], [|att*=val]
:enabled, :disabled, :checked, :indeterminate
:root pseudo-class
:nth-child() pseudo-class
:nth-last-child() pseudo-class
:nth-of-type() pseudo-class
:nth-last-of-type() pseudo-class
:first-child pseudo-class
:last-child pseudo-class
:first-of-type pseudo-class
:last-of-type pseudo-class
:only-child pseudo-class
:only-of-type pseudo-class
:empty pseudo-class
:not() pseudo-class
::first-line pseudo-element
*). [Issue]::first-letter pseudo-element
*), or with non-ascii characters. [Issue]::before and ::after pseudo-elements
E ~ F
:nth-fragment() pseudo-element
|E|*[*|att], [*|att=val], [*|att~=val], [*|att|=val]:targetfont-stretch, unicode-range and font-feature-settings descriptors are currently ignored.print media (as well as all).
vivliostyle is enabled in addition to print media.(min-|max-)width
(min-|max-)height
(min-|max-)device-width
(min-|max-)device-height
(min-|max-)color
@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]flex, inline-flex, ruby, ruby-base, ruby-text, ruby-base-container and ruby-text-container values.block-start, block-end, inline-start, inline-end, left, right, top, bottom and none values.@page rules. [Issue]isolate, isolate-override, plaintext) in CSS Writing Modes 3@page rule without page selectors@page rule without page selectorsJIS-B5 and JIS-B4 values in the current editor’s draft.@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]@page rules is not compliant to the spec. [Issue]<resolution> value is supported.img, input[type=image] and video (applied to poster images) elements and before/after pseudoelements. Other images such as background images, list images or border images are not supported.auto | loose | normal | strict;word-wrap must be treated as if it were a shorthand of overflow-wrap, Vivliostyle treat them for now as different properties and might result in an incorrect cascading behavior when inconsistent values are specified for both of the properties.text-align property is a shorthand in CSS Text 3, Vivliostyle treats text-align for now as an independent property (defined in CSS 2.1) rather than a shorthand.inter-ideograph value as well as values defined in the current editor’s draft is supported since we use it in UA stylesheet to emulate text-justify: auto behavior defined in the spec on IE.word-wrap must be treated as if it were a shorthand of overflow-wrap, Vivliostyle treat them for now as different properties and might result in an incorrect cascading behavior when inconsistent values are specified for both of the properties.text-decoration property is a shorthand in CSS Text Decoration 3, Vivliostyle treats text-decoration for now as an independent property defined in CSS Level 2.1.avoid-page, avoid-column and avoid-region values are treated as if they were avoid. [Issue]column-span is effective only when specified on a page float.column-span is effective only when specified on a page float. When auto value is specified, either a single column or all columns are spanned depending on the min-content inline size of the page float.isolate, isolate-override, plaintext) in CSS Writing Modes 3flex, inline-flex, ruby, ruby-base, ruby-text, ruby-base-container and ruby-text-container values.avoid-page, avoid-column and avoid-region values are treated as if they were avoid. [Issue]box-decoration-break: clone is specified.flex, inline-flex, ruby, ruby-base, ruby-text, ruby-base-container and ruby-text-container values.none, left, right, top, bottom, both, all, same values.all is specified on a block-level box (not a page float), the block-start edge of the box gets pushed down so that the edge comes after any block-start/block-end page float of which anchors are before the box in the document order.clear value is specified on a page float, it is placed so that it comes after any of preceding page floats.same value means the same direction as one which the page float is floated to.float: snap-block would be placed at the block-start end but a clear value on it forbidden such placement, the float is instead placed at the block-end side (unless the clear value also forbidden such placement).block-start, block-end, inline-start, inline-end, snap-block, left, right, top, bottom and none values.auto, line values.Note: This spec is not on a W3C standards track. Future version of Vivliostyle may drop support for this spec.
Note: This spec proposal is not submitted to CSS Working Group yet.