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]
:target
font-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.