<commit_before># Features supported by Vivliostyle<%= $version %>

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 <quote>Supported in all browsers</quote> 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. Vivliostyle Formatter uses Chromium 47.0.2526.80's engine.

Properties where <quote>Allowed prefixes</quote> 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.

## Values

- [Supported CSS-wide keywords](https://www.w3.org/TR/css-values/#common-keywords): `inherit`
  - Supported in all browsers
  - `initial` and `unset` are *not* supported.
- [Supported length units](https://www.w3.org/TR/css-values/#lengths): `em`, `ex`, `ch`, `rem`, `cm`, `mm`, `q`, `in`, `pc`, `pt`, `px`.
  - Supported in all browsers
- Supported color values
  - Support depends on browser capabilities
  - [Basic color keywords](https://www.w3.org/TR/css3-color/#html4)
  - [RGB color values](https://www.w3.org/TR/css3-color/#rgb-color), [RGBA color values](https://www.w3.org/TR/css3-color/#rgba-color)
  - [‘transparent’ color keyword](https://www.w3.org/TR/css3-color/#transparent)
  - [HSL color values](https://www.w3.org/TR/css3-color/#hsl-color), [HSLA color values](https://www.w3.org/TR/css3-color/#hsla-color)
  - [Extended color keywords](https://www.w3.org/TR/css3-color/#svg-color)
  - [‘currentColor’ color keyword](https://www.w3.org/TR/css3-color/#currentcolor)

## Selectors

### [CSS 2](https://www.w3.org/TR/CSS2/)

- [Universal selector `*`](https://www.w3.org/TR/CSS2/selector.html#universal-selector)
  - Supported in all browsers
- [Type selectors `E`](https://www.w3.org/TR/CSS2/selector.html#type-selectors)
  - Supported in all browsers
- [Descendant selectors `E F`](https://www.w3.org/TR/CSS2/selector.html#descendant-selectors)
  - Supported in all browsers
- [Child selectors `E > F`](https://www.w3.org/TR/CSS2/selector.html#child-selectors)
  - Supported in all browsers
- [Adjacent sibling selectors `E + F`](https://www.w3.org/TR/CSS2/selector.html#adjacent-selectors)
  - Supported in all browsers
- [Attribute selectors `E[foo]`, `E[foo="bar"]`, `E[foo~="bar"]`, `E[foo|="bar"]`](https://www.w3.org/TR/CSS2/selector.html#attribute-selectors)
  - Supported in all browsers
- [Class selectors `E.foo`](https://www.w3.org/TR/CSS2/selector.html#class-html)
  - Supported in all browsers
- [ID selectors `E#foo`](https://www.w3.org/TR/CSS2/selector.html#id-selectors)
  - Supported in all browsers
- [`:first-child` pseudo-class](https://www.w3.org/TR/CSS2/selector.html#first-child)
  - Supported in all browsers
- [Link pseudo-class `E:link`](https://www.w3.org/TR/CSS2/selector.html#link-pseudo-classes)
  - Supported in all browsers
- [Language pseudo-class `E:lang(c)`](https://www.w3.org/TR/CSS2/selector.html#lang)
  - Supported in all browsers
- [`:first-line` pseudo-element](https://www.w3.org/TR/CSS2/selector.html#first-line-pseudo)
  - Supported in all browsers
  - Note: there is a bug when used alone or with the universal selector(`*`). [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/133)
- [`:first-letter` pseudo-element](https://www.w3.org/TR/CSS2/selector.html#first-letter)
  - Supported in all browsers
  - Note: there is a bug when used alone, with the universal selector(`*`), or with non-ascii characters. [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/34)
- [`:before` and `:after` pseudo-elements](https://www.w3.org/TR/CSS2/selector.html#before-and-after)
  - Supported in all browsers

#### Not supported selectors

- [Link pseudo-class `E:visited`](https://www.w3.org/TR/CSS2/selector.html#link-pseudo-classes)
- [Dynamic pseudo-classes `E:active`, `E:hover`, `E:focus`](https://www.w3.org/TR/CSS2/selector.html#dynamic-pseudo-classes)

### [Selectors 3](https://www.w3.org/TR/css3-selectors/)

- [Type selectors with namespaces `ns|E`, `*|E`](https://www.w3.org/TR/css3-selectors/#typenmsp)
  - Supported in all browsers
- [Universal selector with namespaces `ns|*`, `*|*`](https://www.w3.org/TR/css3-selectors/#univnmsp)
  - Supported in all browsers
- [Attribute selectors with namespaces `[ns|att]`, `[|att]`, `[ns|att=val]`, `[|att=val]`, `[ns|att~=val]`, `[|att~=val]`, `[ns|att|=val]`, `[|att|=val]`](https://www.w3.org/TR/css3-selectors/#attrnmsp)
  - Supported in all browsers
- [`:root` pseudo-class](https://www.w3.org/TR/css3-selectors/#root-pseudo)
  - Supported in all browsers
- [`:nth-child()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-child-pseudo)
  - Supported in all browsers
  - Note: only a single integer or "even"/"odd" arguments are accepted for now. [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/163)
- [`:first-child` pseudo-class](https://www.w3.org/TR/css3-selectors/#first-child-pseudo)
- [`::first-line` pseudo-element](https://www.w3.org/TR/css3-selectors/#first-line)
  - Supported in all browsers
  - Note: there is a bug when used alone or with the universal selector(`*`). [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/133)
- [`::first-letter` pseudo-element](https://www.w3.org/TR/css3-selectors/#first-letter)
  - Supported in all browsers
  - Note: there is a bug when used alone, with the universal selector(`*`), or with non-ascii characters. [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/34)
- [`::before` and `::after` pseudo-elements](https://www.w3.org/TR/css3-selectors/#gen-content)
  - Supported in all browsers
- [General sibling combinator `E ~ F`](https://www.w3.org/TR/css3-selectors/#general-sibling-combinators)
  - Supported in all browsers

#### Not supported selectors

- [Type selectors without namespaces `|E`](https://www.w3.org/TR/css3-selectors/#typenmsp)
- [Universal selector without namespaces `|*`](https://www.w3.org/TR/css3-selectors/#univnmsp)
- [Substring matching attribute selectors `[att^=val]`, `[att$=val]`, `[att*=val]`](https://www.w3.org/TR/css3-selectors/#attribute-substrings)
- [Attribute selectors with universal namespace `[*|att]`, `[*|att=val]`, `[*|att~=val]`, `[*|att|=val]`](https://www.w3.org/TR/css3-selectors/#attrnmsp)
- [Target pseudo-class `:target`](https://www.w3.org/TR/css3-selectors/#target-pseudo)
- [The UI element states pseudo-classes `:enabled`, `:disabled`, `:checked`, `:indeterminate`](https://www.w3.org/TR/css3-selectors/#UIstates)
- [`:nth-last-child()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-last-child-pseudo)
- [`:nth-of-type()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-of-type-pseudo)
- [`:nth-last-of-type()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-last-of-type-pseudo)
- [`:last-child` pseudo-class](https://www.w3.org/TR/css3-selectors/#last-child-pseudo)
- [`:first-of-type` pseudo-class](https://www.w3.org/TR/css3-selectors/#first-of-type-pseudo)
- [`:last-of-type` pseudo-class](https://www.w3.org/TR/css3-selectors/#last-of-type-pseudo)<commit_msg>Update Supported Features<commit_after># Features supported by Vivliostyle<%= $version %>

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 <quote>Supported in all browsers</quote> 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. Vivliostyle Formatter uses Chromium 47.0.2526.80's engine.

Properties where <quote>Allowed prefixes</quote> 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.

## Values

- [Supported CSS-wide keywords](https://www.w3.org/TR/css-values/#common-keywords): `inherit`
  - Supported in all browsers
  - `initial` and `unset` are *not* supported.
- [Supported length units](https://www.w3.org/TR/css-values/#lengths): `em`, `ex`, `ch`, `rem`, `cm`, `mm`, `q`, `in`, `pc`, `pt`, `px`.
  - Supported in all browsers
- Supported color values
  - Support depends on browser capabilities
  - [Basic color keywords](https://www.w3.org/TR/css3-color/#html4)
  - [RGB color values](https://www.w3.org/TR/css3-color/#rgb-color), [RGBA color values](https://www.w3.org/TR/css3-color/#rgba-color)
  - [‘transparent’ color keyword](https://www.w3.org/TR/css3-color/#transparent)
  - [HSL color values](https://www.w3.org/TR/css3-color/#hsl-color), [HSLA color values](https://www.w3.org/TR/css3-color/#hsla-color)
  - [Extended color keywords](https://www.w3.org/TR/css3-color/#svg-color)
  - [‘currentColor’ color keyword](https://www.w3.org/TR/css3-color/#currentcolor)

## Selectors

### [CSS 2](https://www.w3.org/TR/CSS2/)

- [Universal selector `*`](https://www.w3.org/TR/CSS2/selector.html#universal-selector)
  - Supported in all browsers
- [Type selectors `E`](https://www.w3.org/TR/CSS2/selector.html#type-selectors)
  - Supported in all browsers
- [Descendant selectors `E F`](https://www.w3.org/TR/CSS2/selector.html#descendant-selectors)
  - Supported in all browsers
- [Child selectors `E > F`](https://www.w3.org/TR/CSS2/selector.html#child-selectors)
  - Supported in all browsers
- [Adjacent sibling selectors `E + F`](https://www.w3.org/TR/CSS2/selector.html#adjacent-selectors)
  - Supported in all browsers
- [Attribute selectors `E[foo]`, `E[foo="bar"]`, `E[foo~="bar"]`, `E[foo|="bar"]`](https://www.w3.org/TR/CSS2/selector.html#attribute-selectors)
  - Supported in all browsers
- [Class selectors `E.foo`](https://www.w3.org/TR/CSS2/selector.html#class-html)
  - Supported in all browsers
- [ID selectors `E#foo`](https://www.w3.org/TR/CSS2/selector.html#id-selectors)
  - Supported in all browsers
- [`:first-child` pseudo-class](https://www.w3.org/TR/CSS2/selector.html#first-child)
  - Supported in all browsers
- [Link pseudo-class `E:link`](https://www.w3.org/TR/CSS2/selector.html#link-pseudo-classes)
  - Supported in all browsers
- [Language pseudo-class `E:lang(c)`](https://www.w3.org/TR/CSS2/selector.html#lang)
  - Supported in all browsers
- [`:first-line` pseudo-element](https://www.w3.org/TR/CSS2/selector.html#first-line-pseudo)
  - Supported in all browsers
  - Note: there is a bug when used alone or with the universal selector(`*`). [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/133)
- [`:first-letter` pseudo-element](https://www.w3.org/TR/CSS2/selector.html#first-letter)
  - Supported in all browsers
  - Note: there is a bug when used alone, with the universal selector(`*`), or with non-ascii characters. [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/34)
- [`:before` and `:after` pseudo-elements](https://www.w3.org/TR/CSS2/selector.html#before-and-after)
  - Supported in all browsers

#### Not supported selectors

- [Link pseudo-class `E:visited`](https://www.w3.org/TR/CSS2/selector.html#link-pseudo-classes)
- [Dynamic pseudo-classes `E:active`, `E:hover`, `E:focus`](https://www.w3.org/TR/CSS2/selector.html#dynamic-pseudo-classes)

### [Selectors 3](https://www.w3.org/TR/css3-selectors/)

- [Type selectors with namespaces `ns|E`, `*|E`](https://www.w3.org/TR/css3-selectors/#typenmsp)
  - Supported in all browsers
- [Universal selector with namespaces `ns|*`, `*|*`](https://www.w3.org/TR/css3-selectors/#univnmsp)
  - Supported in all browsers
- [Substring matching attribute selectors `[att^=val]`, `[att$=val]`, `[att*=val]`](https://www.w3.org/TR/css3-selectors/#attribute-substrings)
  - Supported in all browsers
- [Attribute selectors with namespaces `[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]`](https://www.w3.org/TR/css3-selectors/#attrnmsp)
  - Supported in all browsers
- [`:root` pseudo-class](https://www.w3.org/TR/css3-selectors/#root-pseudo)
  - Supported in all browsers
- [`:nth-child()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-child-pseudo)
  - Supported in all browsers
  - Note: only a single integer or "even"/"odd" arguments are accepted for now. [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/163)
- [`:first-child` pseudo-class](https://www.w3.org/TR/css3-selectors/#first-child-pseudo)
- [`::first-line` pseudo-element](https://www.w3.org/TR/css3-selectors/#first-line)
  - Supported in all browsers
  - Note: there is a bug when used alone or with the universal selector(`*`). [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/133)
- [`::first-letter` pseudo-element](https://www.w3.org/TR/css3-selectors/#first-letter)
  - Supported in all browsers
  - Note: there is a bug when used alone, with the universal selector(`*`), or with non-ascii characters. [[Issue]](https://github.com/vivliostyle/vivliostyle.js/issues/34)
- [`::before` and `::after` pseudo-elements](https://www.w3.org/TR/css3-selectors/#gen-content)
  - Supported in all browsers
- [General sibling combinator `E ~ F`](https://www.w3.org/TR/css3-selectors/#general-sibling-combinators)
  - Supported in all browsers

#### Not supported selectors

- [Type selectors without namespaces `|E`](https://www.w3.org/TR/css3-selectors/#typenmsp)
- [Universal selector without namespaces `|*`](https://www.w3.org/TR/css3-selectors/#univnmsp)
- [Attribute selectors with universal namespace `[*|att]`, `[*|att=val]`, `[*|att~=val]`, `[*|att|=val]`](https://www.w3.org/TR/css3-selectors/#attrnmsp)
- [Target pseudo-class `:target`](https://www.w3.org/TR/css3-selectors/#target-pseudo)
- [The UI element states pseudo-classes `:enabled`, `:disabled`, `:checked`, `:indeterminate`](https://www.w3.org/TR/css3-selectors/#UIstates)
- [`:nth-last-child()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-last-child-pseudo)
- [`:nth-of-type()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-of-type-pseudo)
- [`:nth-last-of-type()` pseudo-class](https://www.w3.org/TR/css3-selectors/#nth-last-of-type-pseudo)
- [`:last-child` pseudo-class](https://www.w3.org/TR/css3-selectors/#last-child-pseudo)
- [`:first-of-type` pseudo-class](https://www.w3.org/TR/css3-selectors/#first-of-type-pseudo)
- [`:last-of-type` pseudo-class](https://www.w3.org/TR/css3-selectors/#last-of-type-pseudo)
{'fraction_non_alphanumeric': 0.18905705866595232, 'fraction_numerical': 0.01647468523975355, 'mean_word_length': 4.561638733705773, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 15, 'https://': 110, 'lorem ipsum': 0, 'www.': 100, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1519674', 'n_tokens_mistral': 5474, 'n_tokens_neox': 5305, 'n_words': 1047}