API reference

css_parser.cpp · CSS properties

Browse entries grouped by interface file. Expand an entry for declarations, usage and version boundaries.

Read the related guide →

Entries retain declarations and sources. Runtime verification is recorded per entry; internal source candidates are not a promise of SDK delivery.

src/css/css_parser.cpp
@charset
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature. @charset is also not implemented as a CSS decoding directive.

css_parser.cpp
@charset ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@container
Partial3.61.7C++ / C / Go / Rust

Limited numeric width/height/min/max conditions. Unit suffixes are stripped to obtain the number; units such as em are not converted. Does not implement style(), scroll-state, range syntax or full and/or/not logic. Traverses all ancestors with the matching name until one matches, rather than implementing the full nearest-eligible-container model. Requires an existing layoutBox.

css_parser.cpp
@container [name] (min-width:400px) { ... }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:256

Report an issue with this entry →
@counter-style
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@counter-style ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@document
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@document ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@font-feature-values
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@font-feature-values ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@font-palette-values
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@font-palette-values ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@import
Partial3.61.7C++ / C / Go / Rust

Recursively expands local files, rebases relative URLs, guards against cycles and excessive depth, filters supports conditions and wraps media conditions. Remote URLs are not loaded. The parser has no layer/layer() semantics; leftover text must not be treated as support. The href accepts a direct string or url("local.css"). The import parser does not consume the unquoted Url token from url(local.css), so that form is unreliable.

css_parser.cpp
@import "local.css" supports(display:flex) screen and (min-width:600px);

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:2213

Report an issue with this entry →
@import layer()/layer
Unsupported3.61.7C++ / C / Go / Rust

There is no CSSImportRule layer data or layer assignment. The layer() text is collected into media and usually fails to match as an unknown media type.

css_parser.cpp
@import "theme.css" layer(theme);

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:2243

Report an issue with this entry →
@keyframes
supported3.61.7C++ / C / Go / Rust

Supports from/to, multiple percentage offsets and duplicate keyframes. !important declarations in keyframes are ignored. Actual animatable properties are further limited by the animation implementation.

css_parser.cpp
@keyframes name { from { ... } 50%,100% { ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:932

Report an issue with this entry →
@layer
Partial3.61.7C++ / C / Go / Rust

Supports named and anonymous layers, predeclaration lists, first-seen order across stylesheets, priority for normal unlayered declarations, and reversed layer order for important declarations. Maps names to a single global integer. Nested layers have no parent-name concatenation or hierarchy tree, so full sublayer cascading is not guaranteed.

css_parser.cpp
@layer base, theme; @layer base { ... }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:195

Report an issue with this entry →
@namespace
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@namespace ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@page
conditional3.61.7C++ / C / Go / Rust

Used for PDF pagination; parses 16 margin-box types. The PDF path determines the actual size, margin, named-page, page-pseudo-class, and margin-content capabilities. These rules do not affect on-screen element styles.

css_parser.cpp
@page [name][:first|:left|:right|:blank] { size:A4; margin:20mm; @top-center { content:counter(page) } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:784

Report an issue with this entry →
@page @bottom-center
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @bottom-center { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:762

Report an issue with this entry →
@page @bottom-left
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @bottom-left { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:763

Report an issue with this entry →
@page @bottom-left-corner
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. Corner width comes from the left/right margin and height from the top/bottom margin; both must be positive. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @bottom-left-corner { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:764

Report an issue with this entry →
@page @bottom-right
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @bottom-right { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:761

Report an issue with this entry →
@page @bottom-right-corner
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. Corner width comes from the left/right margin and height from the top/bottom margin; both must be positive. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @bottom-right-corner { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:760

Report an issue with this entry →
@page @left-bottom
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @left-bottom { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:765

Report an issue with this entry →
@page @left-middle
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @left-middle { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:766

Report an issue with this entry →
@page @left-top
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @left-top { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:767

Report an issue with this entry →
@page @right-bottom
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @right-bottom { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:759

Report an issue with this entry →
@page @right-middle
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @right-middle { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:758

Report an issue with this entry →
@page @right-top
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @right-top { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:757

Report an issue with this entry →
@page @top-center
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @top-center { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:754

Report an issue with this entry →
@page @top-left
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @top-left { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:753

Report an issue with this entry →
@page @top-left-corner
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. Corner width comes from the left/right margin and height from the top/bottom margin; both must be positive. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @top-left-corner { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:752

Report an issue with this entry →
@page @top-right
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. The margin on that page edge must be positive. Each edge has up to three slots. Without explicit sizes, space is divided equally among occupied slots. With explicit sizes, start/center/end slots are anchored and auto slots share the remainder equally. Excess explicit sizes are scaled down proportionally. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @top-right { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:755

Report an issue with this entry →
@page @top-right-corner
Partial3.61.7C++ / C / Go / Rust

Actually painted in PDF. Corner width comes from the left/right margin and height from the top/bottom margin; both must be positive. Painting uses the single @page rule selected for that page. A content declaration is required; a background or border alone cannot activate a box without content. See the corresponding entries for shared font, alignment, decoration, and counter limitations.

css_parser.cpp
@page { @top-right-corner { content: <string/counter(page)/counter(pages)>; ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:756

Report an issue with this entry →
@page 选择与级联
Partial3.61.7C++ / C / Go / Rust

PDF page-margin content matches each page by name/first/left/right/blank. RTL swaps left and right pages; blank uses the actual FragmentStore::isBlank signal. A simple weighted score, with later rules winning ties, selects one complete CSSPageRule. Declarations from multiple rules are not merged. Headers in generic rules are not automatically added to more specific rules. The parser decodes only the first part of a comma-separated selector list and skips unknown pseudo-classes. Global geometry instead uses the first generic/named rule without pseudo-classes. This is separate from per-page decoration selection.

css_parser.cpp
@page [<name>]? [:first|:left|:right|:blank]* { ... }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:826

Report an issue with this entry →
@position-try
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@position-try ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@property
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@property ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@scope
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@scope ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@starting-style
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@starting-style ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
@supports
Partial3.61.7C++ / C / Go / Rust

Supports parentheses, not/and/or, declarations and selector(). Mixing and/or at the same level requires parentheses. Results query limited declaration syntax and named capabilities; they do not guarantee layout or painting. Properties outside the limited grammar also depend on acceptance by setProperty.

css_parser.cpp
@supports (display:flex) and (color:red) { ... }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:2081

Report an issue with this entry →
@view-transition
Unsupported3.61.7C++ / C / Go / Rust

parseAtRule has no corresponding branch. It skips the entire statement/block and continues with subsequent rules; this does not implement the feature.

css_parser.cpp
@view-transition ...

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:373

Report an issue with this entry →
厂商前缀 @keyframes
supported3.61.7C++ / C / Go / Rust

All use the same keyframes parser; this does not imply support for other vendor-prefixed properties.

css_parser.cpp
@-webkit-keyframes / @-moz-keyframes / @-o-keyframes / @-ms-keyframes

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:367

Report an issue with this entry →
命名空间选择器
Unsupported3.61.7C++ / C / Go / Rust

No namespace bindings or matcher have been established. Unknown tokens are skipped and may incorrectly reduce to an ordinary selector; this cannot be treated as support.

css_parser.cpp
svg|rect, *|attr, [ns|attr]

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1496

Report an issue with this entry →
属性选择器 s 标记
Partial3.61.7C++ / C / Go / Rust

The parser skips s as an unrecognized suffix. This is equivalent for attributes that are case-sensitive by default, but cannot force HTML attributes such as type and dir, which are case-insensitive by default, to become case-sensitive.

css_parser.cpp
[attr="value" s]

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1482

Report an issue with this entry →
无命名空间属性选择器
supported3.61.7C++ / C / Go / Rust

An explicit empty namespace prefix works; this does not imply support for arbitrary namespaces.

css_parser.cpp
[|attr]

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1433

Report an issue with this entry →
自定义属性 --name
supported3.61.7C++ / C / Go / Rust

Custom names are case-sensitive, preserve tokens, inherit and participate in the cascade. @property typed registration and non-inheriting declarations are unsupported. An empty declaration defines an empty token sequence.

css_parser.cpp
--gap:16px; --theme:dark;

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1163

Report an issue with this entry →
calc 常量
Partial3.61.7C++ / C / Go / Rust

pi/e are f32 approximations; infinity saturates at 1e8, and NaN becomes 0 directly. Does not provide full IEEE/CSS special-number propagation.

css_parser.cpp
pi / e / infinity / -infinity / NaN

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1814

Report an issue with this entry →
calc()
supported3.61.7C++ / C / Go / Rust

Supports nested math, parentheses, arithmetic operator precedence and numeric type validation. Limited by each property's accepted types and the depth budget.

css_parser.cpp
calc(...)

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1880

Report an issue with this entry →
clamp()
supported3.61.7C++ / C / Go / Rust

Supports nested math, parentheses, arithmetic operator precedence and numeric type validation. Limited by each property's accepted types and the depth budget.

css_parser.cpp
clamp(...)

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1896

Report an issue with this entry →
CSS nesting / &
Partial3.61.7C++ / C / Go / Rust

Expands explicit & as :is(parent-selector-list); supports implicit descendants and relative combinators. Nested @media/@supports/@layer rules are available. Does not expand when all parent rules are pseudo-elements. Declaration segments are merged, with limited modeling of interleaved source order; full CSS Nesting conformance is not claimed.

css_parser.cpp
.card { color:red; &:hover { color:blue } > .item { ... } }

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:445

Report an issue with this entry →
CSS2 单冒号伪元素
supported3.61.7C++ / C / Go / Rust

The four legacy names are recognized as pseudo-elements rather than pseudo-classes.

css_parser.cpp
:before / :after / :first-line / :first-letter

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1294

Report an issue with this entry →
max()
supported3.61.7C++ / C / Go / Rust

Supports nested math, parentheses, arithmetic operator precedence and numeric type validation. Limited by each property's accepted types and the depth budget.

css_parser.cpp
max(...)

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1891

Report an issue with this entry →
min()
supported3.61.7C++ / C / Go / Rust

Supports nested math, parentheses, arithmetic operator precedence and numeric type validation. Limited by each property's accepted types and the depth budget.

css_parser.cpp
min(...)

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1886

Report an issue with this entry →
mod()
supported3.61.7C++ / C / Go / Rust

Supports nested math, parentheses, arithmetic operator precedence and numeric type validation. Limited by each property's accepted types and the depth budget.

css_parser.cpp
mod(...)

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1902

Report an issue with this entry →
rem()
supported3.61.7C++ / C / Go / Rust

Supports nested math, parentheses, arithmetic operator precedence and numeric type validation. Limited by each property's accepted types and the depth budget.

css_parser.cpp
rem(...)

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1902

Report an issue with this entry →
round()
supported3.61.7C++ / C / Go / Rust

Supports nested math, parentheses, arithmetic operator precedence and numeric type validation. Limited by each property's accepted types and the depth budget. Rounding strategies nearest/up/down/to-zero are supported; omitted step defaults to 1.

css_parser.cpp
round(...)

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1902

Report an issue with this entry →
s / ms
supported3.61.7C++ / C / Go / Rust

Used for transition/animation times. Negative delay is available; the limited validator rejects negative duration.

css_parser.cpp
250ms / 0.25s

Historical audit version: 3.59.0 · 2026-11-01 Asia/Shanghai (UTC+08:00)

Verification scope

Imported static source audit from 2026-11-01 / 3.59.0. References are available; this is not a fresh runtime verification of this release.

src/css/css_parser.cpp:1577

Report an issue with this entry →
Browse this reference type →