blob: 1298bb5af4a20363620abbe7e9f83eae25b1664f [file] [log] [blame]
{
"instructions": [
"CSS Properties",
"",
"Some properties are used internally, but are not part of CSS. They are used to get",
"HTML4 compatibility in the rendering engine.",
"",
"Microsoft extensions are documented here:",
"http://msdn.microsoft.com/workshop/author/css/reference/attributes.asp",
"",
"1. Possible Keys",
"",
"Keys that control CSS behavior:",
"",
"* inherited:",
"Whether the property is inherited.",
"",
"* animation-type:",
"Indicates what type of animation this CSS property supports. The possible",
"values are 'discrete', 'by computed value', 'repeatable list', 'see prose',",
"'not animatable', 'not animatable (needs triage)', 'not animatable (legacy)',",
"and 'not animatable (internal)'. This comes from the 'Animation Type' field",
"of property's definition.",
"",
"* initial:",
"Indicates the initial value for the property. This comes from the 'Initial'",
"field of property's definition.",
"",
"Keys that control code generation:",
"",
"* computed-style-initial:",
"Overrides the method name on Style::ComputedStyle to get the initial value for",
"the property. By default, \"initial\" + PropertyId is used (e.g.",
"initialBorderCollapse()).",
"",
"* computed-style-getter:",
"Overrides the method name on Style::ComputedStyle to get the current value for",
"the property. By default, the PropertyId with first letter lowercased",
"is used (e.g. borderCollapse()).",
"",
"* computed-style-setter:",
"Overrides the method name on Style::ComputedStyle to set the current value for",
"the property. By default, \"set\" + PropertyId is used (e.g.",
"setBorderCollapse()).",
"",
"* computed-style-name-for-methods:",
"Overrides the getter / setter / initial method names on Style::ComputedStyle.",
"For example, '\"computed-style-name-for-methods\": \"OverflowWrap\"' will use",
"\"overflowWrap() / setOverflowWrap() / initialOverflowWrap()\".",
"",
"* style-builder-custom:",
"A string that is \"All\", \"Initial\", \"Inherit\", or \"Value\" or some combination",
"of the latter three separated by '|' (e.g. \"Inherit|Value\"). These options",
"are described as follows:",
"",
"All - the CSS property requires special handling to set its initial value,",
"inherit value, and its value. Prefer this option over listing the individual",
"options.",
"",
"Initial - the CSS property requires special handling to set its initial value.",
"",
"Inherit - the CSS property requires special handling to set its inherit value.",
"",
"Value - the CSS property requires special handling to set its value, and a",
"regular converter helper cannot be used.",
"",
"The custom code for the property should be located in css/StyleBuilderCustom.h",
"and named applyValue[CSSPropertyName]().",
"",
"* visited-link-color-support:",
"Indicates that this CSS property is a color property with a",
"\"setVisitedLinkXXX()\" setter on Style::ComputedStyle to be called when",
"StyleResolver::applyPropertyToVisitedLinkStyle() return true.",
"The regular setter on Style::ComputedStyle will only be called if",
"StyleResolver::applyPropertyToRegularStyle() returns true.",
"",
"* color-property:",
"Indicates that this CSS property is color-related (populates",
"CSSProperty::isColorProperty().",
"",
"* fast-path-inherited:",
"Indicates that this CSS property can use the fast-path inheritance mechanism.",
"This generates code that disables the mechanism if the property is explicitly mutated.",
"",
"* disables-native-appearance",
"Indicates that this CSS property, when declared in the Author Origin,",
"will disable the native appearance of devolvable widgets.",
"",
"* logical-property-group:",
"Indicates that this CSS property belongs to a logical property group",
"(https://drafts.csswg.org/css-logical/#logical-property-group)",
"This is used for both logical properties that depend on writing-mode",
"and/or text-direction (for which CSSProperty::isDirectionAwareProperty()",
"returns true), and also for their physical counterparts.",
"If set, the value must be an object with these properties:",
" - name: a string identifying the logical property group. All logical",
" and physical properties in the same group should have the same name.",
" Examples: \"border-radius\", \"margin\", \"min-size\".",
" - resolver: a string with the mapping that will be used to convert to",
" the equivalent physical or logical property within the same group.",
" Also identifies the mapping logic of the group",
" (https://drafts.csswg.org/css-logical-1/#mapping-logic).",
" Examples: \"top-left\", \"block-start\", \"horizontal\".",
"",
"* coordinated-value-list-property:",
"Indicates that this CSS property is a CoordinatedValueList property. It must have",
"corresponding methods on the CoordinatedValueList value type's class.",
"",
"* font-property:",
"Indicates that this CSS property is font-related. It must have corresponding",
"methods on the FontDescription class.",
"",
"* separator:",
"Indicates separator for list-valued CSS property (populates",
"CSSProperty::listPropertySeparator().",
"",
"* skip-style-builder:",
"Ignore this property in the StyleBuilder.",
"",
"* longhands:",
"Indicated the array longhand property names associated with this shorthand",
"property. Shorthand properties should not use the StyleBuilder. An",
"ASSERT_NOT_REACHED() will be generated for this property in the StyleBuilder.",
"property1, property2, ... are the longhands for this shorthand property. A",
"corresponding \"StylePropertyShorthand propertyIdShorthand()\" function will be",
"generated in StylePropertyShorthandFunctions.h header.",
"",
"* top-priority:",
"Whether the property needs to be applied before high-priority properties",
"in CSS cascading order. Please justify usage with a comment in a corresponding",
"top-priority-reason field.",
"",
"* high-priority:",
"Whether the property needs to be applied before non-high-priority properties",
"in CSS cascading order. High priority properties must not accept <length>",
"values. All font-properties must be high-priority.",
"",
"* medium-priority:",
"Whether the property needs to be applied before non-medium-priority properties",
"in CSS cascading order.",
"",
"* sink-priority:",
"Whether the property needs to be applied at the end of its priority bucket",
"in CSS cascading order.",
"",
"* aliases:",
"An array of the alternative names for this property. Aliases are folded at",
"parse time and don't have their own CSSPropertyID.",
"",
"* cascade-alias:",
"An alternative name for this property that gets its own CSSPropertyID.",
"This allows parsing and compute style code to handle differences in allowed values.",
"In terms of cascade they behave like the same property.",
"Must also set skip-style-builder.",
"",
"* enable-if:",
"Indicates that code should only be generated for this property/value if the",
"specified macro define is enabled. Prefix the macro define with '!' to",
"generate code when the macro define is not enabled.",
"",
"* settings-flag:",
"The name of the flag on Settings (e.g. \"CSSOMViewSmoothScrolling\")",
"that conditionally enables the property.",
"",
"* parser-function-allows-number-or-integer-input:",
"Indicates that the properties allows <number> or <integer> as input. We'd",
"normally rely on the grammar to detect this but it is not available when using",
"custom parsing",
"",
"* parser-function:",
"Indicates that the property requires a custom parser and that the parser function",
"will be named whatever string is provided as the value.",
"",
"* parser-grammar:",
"An array of terms that define the grammar for the property.",
"",
"* parser-grammar-comment:",
"A comment specific to the `parser-grammar` value.",
"",
"* accepts-quirky-color:",
"Indicates the property is listed as support quirky colors in quirks mode",
"in https://drafts.csswg.org/css-color-4/#quirky-color.",
"",
"* accepts-quirky-length:",
"Indicates the property is listed as support quirky lengths in quirks mode",
"in https://drafts.csswg.org/css-values-4/#deprecated-quirky-length.",
"",
"* accepts-quirky-angle:",
"Indicates the property requires support for unitless angles. Only used for",
"two properties, glyph-orientation-horizontal and glyph-orientation-vertical,",
"though nothing in any standard requires this.",
"",
"2. Lesser known capabilities of this file format",
"",
"Conditional CSS keyword value:",
"",
"Typically the value of key \"values\" is an array of strings that represent the",
"CSS keyword values that are recognized by a CSS property. This array may also",
"contain objects of the form:",
"",
" {",
" \"value\": \"awesome\",",
" \"enable-if\": \"ENABLE_AWESOME_FEATURE\"",
" }",
"",
"The key \"value\" is the name of the conditional keyword and key \"enable-if\"",
"describes the code generation criterion. See the documentation for \"enable-if\"",
"above for more details.",
"",
"Conditional CSS property definition:",
"",
"A CSS property can have more than one definition so long as the key \"enable-if\"",
"differs in each definition. For example, ",
"",
" \"awesome-property\": [",
" {",
" \"inherited\": true,",
" ...,",
" \"codegen-properties\": {",
" ...",
" \"enable-if\": \"ENABLE_AWESOME_FEATURE\"",
" }",
" },",
" {",
" \"inherited\": false,",
" ...,",
" \"codegen-properties\": {",
" ...",
" \"enable-if\": \"!ENABLE_AWESOME_FEATURE\"",
" }",
" },",
" ...",
" ],",
"",
"The first definition in parse order whose \"enable-if\" criterion evaluates",
"to true is chosen for code generation."
],
"properties": {
"accent-color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"settings-flag": "accentColorEnabled",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::AccentColor",
"color-property": true,
"color-property-traits-color-custom": true,
"color-property-traits-visited-link-color-custom": true,
"parser-grammar": "auto | <color>"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#widget-accent"
}
},
"block-step": {
"codegen-properties": {
"longhands": [
"block-step-size",
"block-step-insert",
"block-step-align",
"block-step-round"
],
"settings-flag": "cssRhythmicSizingEnabled",
"parser-function": "consumeBlockStepShorthand",
"parser-grammar-unused": "<'block-step-size'> || <'block-step-insert'> || <'block-step-align'> || <'block-step-round'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-rhythm",
"url": "https://drafts.csswg.org/css-rhythm/#block-step"
},
"status": "in development"
},
"block-step-align": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"center",
"start",
"end"
],
"codegen-properties": {
"settings-flag": "cssRhythmicSizingEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BlockStepAlign",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-rhythm",
"url": "https://drafts.csswg.org/css-rhythm/#block-step-align"
},
"status": "in development"
},
"block-step-insert": {
"animation-type": "discrete",
"initial": "margin-box",
"values": [
"margin-box",
"padding-box",
"content-box"
],
"codegen-properties": {
"settings-flag": "cssRhythmicSizingEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BlockStepInsert",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-rhythm",
"url": "https://drafts.csswg.org/css-rhythm/#block-step-insert"
},
"status": "in development"
},
"block-step-round": {
"animation-type": "discrete",
"initial": "up",
"values": [
"up",
"down",
"nearest"
],
"codegen-properties": {
"settings-flag": "cssRhythmicSizingEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BlockStepRound",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-rhythm",
"url": "https://drafts.csswg.org/css-rhythm/#block-step-round"
},
"status": "in development"
},
"block-step-size": {
"animation-type": "by computed value",
"initial": "none",
"codegen-properties": {
"settings-flag": "cssRhythmicSizingEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BlockStepSize",
"parser-grammar": "none | <length [0,inf]>",
"parser-exported": true
},
"specification": {
"category": "css-rhythm",
"url": "https://drafts.csswg.org/css-rhythm/#block-step-size"
},
"status": "in development"
},
"caret-color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"visited-link-color-support": true,
"color-property": true,
"color-property-traits-color-custom": true,
"color-property-traits-visited-link-color-custom": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CaretColor",
"computed-style-visited-link-storage-path": ["m_inheritedRareData"],
"parser-grammar": "auto | <color>"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#caret-color"
}
},
"color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "Canvastext",
"codegen-properties": {
"accepts-quirky-color": true,
"animation-wrapper": "VisitedAffectedColorWrapper",
"visited-link-color-support": true,
"color-property": true,
"color-property-traits-color-custom": true,
"color-property-traits-visited-link-color-custom": true,
"style-builder-custom": "Value",
"style-extractor-custom": true,
"fast-path-inherited": true,
"computed-style-initial-custom": true,
"computed-style-getter-custom": true,
"computed-style-getter-exported": true,
"computed-style-getter-inline": false,
"computed-style-has-explicitly-set-policy": "all-author-origin",
"computed-style-has-explicitly-set-storage-path": ["m_inheritedFlags"],
"computed-style-has-explicitly-set-storage-container": "struct",
"computed-style-storage-path": ["m_inheritedData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "WebCore::Color",
"computed-style-visited-link-storage-path": ["m_inheritedData"],
"computed-style-visited-dependent-exported": true,
"parser-grammar": "<color>"
},
"specification": {
"category": "css-color",
"url": "https://www.w3.org/TR/css-color-4/#the-color-property"
}
},
"continue": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"discard"
],
"codegen-properties": {
"settings-flag": "cssLineClampEnabled",
"computed-style-name-for-methods": "OverflowContinue",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "OverflowContinue",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-4/#continue"
},
"status": "experimental"
},
"direction": {
"animation-type": "not animatable",
"inherited": true,
"initial": "ltr",
"values": [
"ltr",
"rtl"
],
"codegen-properties": {
"style-extractor-custom": true,
"computed-style-has-explicitly-set-policy": "value-only",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-getter": "computedDirection",
"computed-style-getter-custom": true,
"computed-style-setter-custom": true,
"computed-style-setter-returns-if-changed": true,
"computed-style-storage-container": "struct",
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextDirection",
"high-priority": true,
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-writing-modes",
"url": "https://www.w3.org/TR/css-writing-modes-3/#propdef-direction"
}
},
"display": {
"animation-type": "see prose",
"initial": "inline",
"values": [
"inline",
"block",
"flow",
"flow-root",
"list-item",
"inline-block",
"table",
"inline-table",
"table-row-group",
"table-header-group",
"table-footer-group",
"table-row",
"table-column-group",
"table-column",
"table-cell",
"table-caption",
"flex",
"inline-flex",
"grid",
"inline-grid",
{
"value": "grid-lanes",
"settings-flag": "gridLanesEnabled"
},
{
"value": "inline-grid-lanes",
"settings-flag": "gridLanesEnabled"
},
{
"value": "ruby",
"status": "unimplemented"
},
{
"value": "ruby-text-container",
"status": "unimplemented"
},
{
"value": "ruby-base",
"status": "unimplemented"
},
{
"value": "ruby-text",
"status": "unimplemented"
},
{
"value": "ruby-base-container",
"status": "unimplemented"
},
"contents",
"none",
{
"value": "-webkit-box",
"status": "obsolete",
"url": "https://compat.spec.whatwg.org/#css-keyword-mappings"
},
{
"value": "-webkit-inline-box",
"status": "obsolete",
"url": "https://compat.spec.whatwg.org/#css-keyword-mappings"
},
{
"value": "-webkit-flex",
"status": "obsolete"
},
{
"value": "-webkit-inline-flex",
"status": "obsolete"
},
{
"value": "compact",
"status": "removed",
"url": "https://www.w3.org/TR/REC-CSS2/visuren.html#compact",
"comment": "Removed in https://commits.webkit.org/r253917"
},
{
"value": "run-in",
"status": "removed",
"url": "https://www.w3.org/TR/css-display-3/#valdef-display-run-in",
"comment": "Removed in https://commits.webkit.org/r163560"
}
],
"codegen-properties": {
"animation-wrapper": "NonNormalizedDiscreteWrapper<DisplayType>",
"animation-wrapper-requires-non-normalized-discrete-interpolation": true,
"high-priority": true,
"computed-style-getter-constexpr": true,
"computed-style-setter-custom": true,
"computed-style-storage-name": "effectiveDisplay",
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "DisplayType",
"parser-function": "consumeDisplay",
"parser-grammar-unused": "[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy> | <-webkit-display>",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-display",
"url": "https://drafts.csswg.org/css-display-4/#propdef-display"
}
},
"field-sizing": {
"animation-type": "discrete",
"initial": "fixed",
"values": [
"fixed",
"content"
],
"codegen-properties": {
"parser-grammar": "<<values>>",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FieldSizing",
"settings-flag": "cssFieldSizingEnabled"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#field-sizing"
}
},
"font-family": {
"animation-type": "discrete",
"inherited": true,
"initial": "@initial-font-family",
"initial-comment": "Current spec initial value is 'depends on user agent'",
"values": [
"serif",
"sans-serif",
"cursive",
"fantasy",
"monospace",
"math",
"system-ui",
{
"value": "emoji",
"status": "unimplemented"
},
{
"value": "fangsong",
"status": "unimplemented"
},
{
"value": "ui-serif",
"status": "unimplemented"
},
{
"value": "ui-sans-serif",
"status": "unimplemented"
},
{
"value": "ui-monospace",
"status": "unimplemented"
},
{
"value": "ui-rounded",
"status": "unimplemented"
},
{
"value": "-webkit-body",
"status": "non-standard"
}
],
"codegen-properties": {
"style-extractor-custom": true,
"style-builder-custom": "All",
"high-priority": true,
"skip-computed-style-initial": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-type": "Style::FontFamilies",
"parser-function": "consumeFontFamily",
"parser-grammar-unused": "[ <family-name> | <generic-family> | <-webkit-generic-family> ]#",
"parser-grammar-unused-reason": "Needs support for primitive <family-name>."
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#font-family-prop"
}
},
"font-size": {
"animation-type": "by computed value",
"inherited": true,
"initial": "medium",
"values": [
"x-small",
"xx-small",
"small",
"medium",
"large",
"x-large",
"xx-large",
"xxx-large",
"smaller",
"larger",
{
"value": "math",
"settings-flag": "cssMathDepthEnabled"
},
{
"value": "-webkit-xxx-large",
"status": "non-standard"
},
{
"value": "-webkit-ruby-text",
"status": "non-standard"
}
],
"codegen-properties": {
"accepts-quirky-length": true,
"animation-wrapper": "FontSizeWrapper",
"animation-wrapper-requires-override-parameters": [],
"style-builder-custom": "All",
"style-extractor-custom": true,
"high-priority": true,
"skip-computed-style-initial": true,
"computed-style-getter": "specifiedFontSize",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-type": "float",
"parser-grammar": "<absolute-size> | <relative-size> | <length-percentage [0,inf]> | math@(settings-flag=cssMathDepthEnabled) | <-webkit-absolute-size> | <-webkit-relative-size>",
"parser-exported": true
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#font-size-prop"
}
},
"font-size-adjust": {
"animation-type": "by computed value",
"inherited": true,
"initial": "none",
"values": [
"none",
"ex-height",
"cap-height",
"ch-width",
"ic-width",
"ic-height",
"from-font"
],
"codegen-properties": {
"font-property": true,
"high-priority": true,
"separator": " ",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontSizeAdjust",
"parser-function": "consumeFontSizeAdjust",
"parser-function-allows-number-or-integer-input": true,
"parser-grammar-unused": "none | [ [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,inf]> ] ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals.",
"parser-grammar-comment": "Current spec grammar is 'none | <number [0,inf]>'"
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#font-size-adjust-prop"
}
},
"font-style": {
"animation-type": "by computed value",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"italic",
"oblique"
],
"codegen-properties": {
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontStyle",
"parser-function": "consumeFontStyle",
"parser-grammar-unused": "normal | italic | [ oblique <angle>? ]",
"parser-grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator."
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#font-style-prop"
}
},
"font-weight": {
"animation-type": "by computed value",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"bold",
"bolder",
"lighter"
],
"codegen-properties": {
"font-description-name-for-methods": "Weight",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontWeight",
"parser-grammar": "<font-weight-absolute> | bolder | lighter",
"parser-exported": true
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-weight-prop"
}
},
"font-width": {
"animation-type": "by computed value",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"ultra-condensed",
"extra-condensed",
"condensed",
"semi-condensed",
"semi-expanded",
"expanded",
"extra-expanded",
"ultra-expanded"
],
"codegen-properties": [
{
"enable-if": "ENABLE_VARIATION_FONTS",
"aliases": ["font-stretch"],
"font-description-name-for-methods": "Width",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontWidth",
"parser-grammar": "<font-width-absolute> | <percentage [0,inf]>"
},
{
"enable-if": "!ENABLE_VARIATION_FONTS",
"aliases": ["font-stretch"],
"font-description-name-for-methods": "Width",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontWidth",
"parser-grammar": "<font-width-absolute>"
}
],
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts/#font-width-prop"
}
},
"text-box": {
"animation-type": "discrete",
"initial": "normal",
"codegen-properties": {
"longhands": [
"text-box-trim",
"text-box-edge"
],
"parser-function": "consumeTextBoxShorthand",
"parser-grammar-unused": "normal | [ <'text-box-trim'> || <'text-box-edge'> ]",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-inline",
"url": "https://drafts.csswg.org/css-inline-3/#text-box-shorthand"
}
},
"text-box-edge": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"text",
"ex",
"ideographic",
"ideographic-ink",
"alphabetic",
"cap"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::TextBoxEdge",
"parser-function": "consumeTextBoxEdge",
"parser-grammar-unused": "auto | [ [ text | cap | ex | ideographic | ideographic-ink ] [ text | alphabetic | ideographic | ideographic-ink ]? ]",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-inline",
"url": "https://drafts.csswg.org/css-inline-3/#propdef-text-box-edge"
}
},
"text-box-trim": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"trim-start",
"trim-end",
"trim-both"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextBoxTrim",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-inline",
"url": "https://drafts.csswg.org/css-inline-3/#propdef-text-box-trim"
}
},
"text-rendering": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"optimizeSpeed",
"optimizeLegibility",
"geometricPrecision"
],
"codegen-properties": {
"font-description-name-for-methods": "TextRenderingMode",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextRenderingMode",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#TextRenderingProperty"
}
},
"font-feature-settings": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal"
],
"codegen-properties": {
"font-description-name-for-methods": "FeatureSettings",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontFeatureSettings",
"parser-grammar": "normal | <feature-tag-value>#@(no-single-item-opt)",
"parser-exported": true
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#propdef-font-feature-settings"
}
},
"font-variation-settings": {
"animation-type": "see prose",
"inherited": true,
"initial": "normal",
"values": [
"normal"
],
"codegen-properties": {
"enable-if": "ENABLE_VARIATION_FONTS",
"font-description-name-for-methods": "VariationSettings",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontVariationSettings",
"parser-grammar": "normal | <variation-tag-value>#@(no-single-item-opt)"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-variation-settings-def"
}
},
"font-kerning": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"normal",
"none"
],
"codegen-properties": {
"aliases": [
"-webkit-font-kerning"
],
"font-description-name-for-methods": "Kerning",
"font-property": true,
"high-priority": true,
"style-builder-requires-system-font-shorthand-check": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Kerning",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-kerning-prop"
}
},
"font-palette": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"inherited": true,
"initial": "normal",
"codegen-properties": {
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontPalette",
"parser-grammar": "normal | light | dark | <palette-identifier>"
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts/#font-palette-prop"
}
},
"-webkit-font-smoothing": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none",
"antialiased",
"subpixel-antialiased"
],
"codegen-properties": {
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontSmoothingMode",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"font-variant-ligatures": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"none",
"common-ligatures",
"no-common-ligatures",
"discretionary-ligatures",
"no-discretionary-ligatures",
"historical-ligatures",
"no-historical-ligatures",
"contextual",
"no-contextual"
],
"codegen-properties": {
"font-description-name-for-methods": "VariantLigatures",
"font-property": true,
"high-priority": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontVariantLigatures",
"parser-grammar": "normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]@(no-single-item-opt)"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-variant-ligatures-prop"
}
},
"font-variant-position": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"sub",
"super"
],
"codegen-properties": {
"font-description-name-for-methods": "VariantPosition",
"font-property": true,
"high-priority": true,
"style-builder-requires-system-font-shorthand-check": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontVariantPosition",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-position"
}
},
"font-variant-caps": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"small-caps",
"all-small-caps",
"petite-caps",
"all-petite-caps",
"unicase",
"titling-caps"
],
"codegen-properties": {
"font-description-name-for-methods": "VariantCaps",
"font-property": true,
"high-priority": true,
"style-builder-requires-system-font-shorthand-check": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontVariantCaps",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#font-variant-caps-prop"
}
},
"font-variant-numeric": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"lining-nums",
"oldstyle-nums",
"proportional-nums",
"tabular-nums",
"diagonal-fractions",
"stacked-fractions",
"ordinal",
"slashed-zero"
],
"codegen-properties": {
"font-description-name-for-methods": "VariantNumeric",
"font-property": true,
"high-priority": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontVariantNumeric",
"parser-grammar": "normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]@(no-single-item-opt)"
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#font-variant-numeric-prop"
}
},
"font-variant-alternates": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"codegen-properties": {
"font-description-name-for-methods": "VariantAlternates",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontVariantAlternates",
"parser-grammar": "normal | [ stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) ]@(no-single-item-opt)",
"parser-exported": true
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-variant-alternates-prop"
}
},
"font-variant-east-asian": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"jis78",
"jis83",
"jis90",
"jis04",
"simplified",
"traditional",
"full-width",
"proportional-width",
"ruby"
],
"codegen-properties": {
"font-description-name-for-methods": "VariantEastAsian",
"font-property": true,
"high-priority": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FontVariantEastAsian",
"parser-grammar": "normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]@(no-single-item-opt)",
"parser-exported": true
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-variant-east-asian-prop"
}
},
"font-variant-emoji": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"text",
"emoji",
"unicode"
],
"codegen-properties": {
"settings-flag": "cssFontVariantEmojiEnabled",
"font-description-name-for-methods": "VariantEmoji",
"font-property": true,
"high-priority": true,
"style-builder-requires-system-font-shorthand-check": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontVariantEmoji",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts/#font-variant-emoji-prop"
}
},
"font-synthesis": {
"inherited": true,
"codegen-properties": {
"longhands": [
"font-synthesis-weight",
"font-synthesis-style",
"font-synthesis-small-caps"
],
"parser-function": "consumeFontSynthesisShorthand",
"parser-grammar-unused": "none | [ weight || style || small-caps || position]",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-synthesis"
}
},
"font-synthesis-weight": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontSynthesisLonghandValue",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-synthesis-weight"
}
},
"font-synthesis-style": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontSynthesisLonghandValue",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-synthesis-style"
}
},
"font-synthesis-small-caps": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontSynthesisLonghandValue",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-synthesis-small-caps"
}
},
"font-optical-sizing": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"enable-if": "ENABLE_VARIATION_FONTS",
"font-description-name-for-methods": "OpticalSizing",
"font-property": true,
"high-priority": true,
"style-builder-requires-system-font-shorthand-check": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FontOpticalSizing",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-optical-sizing-def"
}
},
"font": {
"inherited": true,
"codegen-properties": {
"longhands": [
"font-style",
"font-variant-caps",
"font-weight",
"font-width",
"font-size",
"line-height",
"font-family",
"font-size-adjust",
"font-kerning",
"font-variant-alternates",
"font-variant-ligatures",
"font-variant-numeric",
"font-variant-east-asian",
"font-variant-position",
"font-variant-emoji",
"font-feature-settings",
{
"value": "font-optical-sizing",
"enable-if": "ENABLE_VARIATION_FONTS"
},
{
"value": "font-variation-settings",
"enable-if": "ENABLE_VARIATION_FONTS"
}
],
"parser-function": "consumeFontShorthand",
"parser-grammar-unused": "[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | <system-family-name>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#font-prop"
}
},
"font-variant": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"codegen-properties": {
"longhands": [
"font-variant-ligatures",
"font-variant-caps",
"font-variant-alternates",
"font-variant-numeric",
"font-variant-east-asian",
"font-variant-position",
"font-variant-emoji"
],
"parser-function": "consumeFontVariantShorthand",
"parser-grammar-unused": "normal | none | [ [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || [ stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) ] || [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] || [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] || [ sub | super ] || [ text | emoji | unicode ] ]",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant"
}
},
"-webkit-locale": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"font-description-name-for-methods": "SpecifiedLocale",
"font-property": true,
"high-priority": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitLocale",
"parser-grammar": "auto | <string>"
},
"status": "non-standard"
},
"text-orientation": {
"animation-type": "not animatable",
"inherited": true,
"initial": "mixed",
"values": [
"sideways",
"mixed",
"upright"
],
"codegen-properties": {
"style-builder-custom": "Value",
"computed-style-getter": "computedTextOrientation",
"computed-style-getter-custom": true,
"computed-style-setter-custom": true,
"computed-style-setter-returns-if-changed": true,
"computed-style-storage-container": "struct",
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextOrientation",
"high-priority": true,
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-writing-modes",
"url": "https://drafts.csswg.org/css-writing-modes-3/#text-orientation"
}
},
"-webkit-text-orientation": {
"animation-type": "not animatable",
"inherited": true,
"initial": "mixed",
"values": [
"sideways",
{
"value": "sideways-right",
"status": "deprecated"
},
"mixed",
"upright"
],
"codegen-properties": {
"aliases": [
"-epub-text-orientation"
],
"longhands": [
"text-orientation"
],
"shorthand-pattern": "Single",
"parser-function": "consumeWebkitTextOrientationShorthand",
"parser-grammar-unused": "sideways-right@(aliased-to=sideways) | <'text-orientation'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-writing-modes",
"url": "https://www.w3.org/TR/css-writing-modes-3/#text-orientation"
}
},
"-webkit-text-size-adjust": {
"animation-type": "not animatable (needs triage)",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"enable-if": "ENABLE_TEXT_AUTOSIZING",
"settings-flag": "textAutosizingEnabled",
"high-priority": true,
"style-builder-custom": "Value",
"computed-style-name-for-methods": "TextSizeAdjust",
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::TextSizeAdjust",
"parser-grammar": "auto | none | <percentage [0,inf]>"
},
"status": "non-standard",
"specification": {
"non-canonical-url": "https://drafts.csswg.org/css-size-adjust/#adjustment-control"
}
},
"text-spacing-trim": {
"animation-type": "discrete",
"inherited": true,
"initial": "space-all",
"initial-comment": "Current spec initial value is 'normal'",
"values": [
"space-all",
{
"value": "normal",
"status": "unimplemented"
},
{
"value": "space-first",
"status": "unimplemented"
},
{
"value": "trim-start",
"status": "unimplemented"
},
{
"value": "trim-both",
"status": "unimplemented"
},
"trim-all",
"auto"
],
"codegen-properties": {
"settings-flag": "cssTextSpacingTrimEnabled",
"font-property": true,
"high-priority": true,
"sink-priority": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::TextSpacingTrim",
"parser-grammar": "<<values>>",
"parser-grammar-comment": "Current spec grammar is 'space-all | normal | space-first | trim-start | trim-both | trim-all | auto'"
},
"status": "in development",
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#propdef-text-spacing-trim"
}
},
"text-autospace": {
"animation-type": "discrete",
"inherited": true,
"initial": "no-autospace",
"initial-comment": "Current spec initial value is 'normal'",
"values": [
"auto",
"normal",
"no-autospace",
"ideograph-alpha",
"ideograph-numeric"
],
"codegen-properties": {
"font-property": true,
"high-priority": true,
"sink-priority": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_inheritedData", "fontData", "fontCascade"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::TextAutospace",
"parser-grammar": "normal | auto | no-autospace | [ ideograph-alpha || ideograph-numeric ]@(no-single-item-opt)",
"parser-grammar-comment": "Current spec grammar is 'normal | auto | no-autospace | [ [ ideograph-alpha || ideograph-numeric || punctuation ] || [ insert | replace ] ]'"
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#propdef-text-autospace"
}
},
"writing-mode": {
"animation-type": "not animatable",
"inherited": true,
"initial": "horizontal-tb",
"values": [
"horizontal-tb",
"vertical-lr",
"vertical-rl",
{
"value": "sideways-lr",
"settings-flag": "sidewaysWritingModesEnabled"
},
{
"value": "sideways-rl",
"settings-flag": "sidewaysWritingModesEnabled"
},
{
"value": "lr-tb",
"status": "deprecated"
},
{
"value": "rl-tb",
"status": "deprecated"
},
{
"value": "tb-rl",
"status": "deprecated"
},
{
"value": "lr",
"status": "deprecated"
},
{
"value": "rl",
"status": "deprecated"
},
{
"value": "tb",
"status": "deprecated"
},
{
"value": "horizontal-bt",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-writing-mode",
"-epub-writing-mode"
],
"style-builder-custom": "Value",
"style-extractor-custom": true,
"computed-style-has-explicitly-set-policy": "value-only",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-getter": "computedWritingMode",
"computed-style-getter-custom": true,
"computed-style-setter-custom": true,
"computed-style-setter-returns-if-changed": true,
"computed-style-storage-container": "struct",
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-kind": "enum",
"computed-style-type": "StyleWritingMode",
"top-priority": true,
"top-priority-reason": "This is top priority because vi/vb units (depending on writing-mode) may be used by other properties",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-writing-modes",
"url": "https://drafts.csswg.org/css-writing-modes-3/#propdef-writing-mode"
}
},
"-webkit-text-zoom": {
"animation-type": "not animatable",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"reset"
],
"codegen-properties": {
"style-builder-custom": "Value",
"high-priority": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextZoom",
"parser-grammar": "<<values>>"
},
"status": "non-standard",
"specification": {
"description": "Used to reset the text zoom level.",
"comment": "Used to reset the size of text affected by the zoom property."
}
},
"zoom": {
"animation-type": "not animatable",
"initial": "1",
"values": [
{
"value": "normal",
"status": "non-standard"
}
],
"codegen-properties": {
"style-builder-custom": "All",
"high-priority": true,
"computed-style-initial-constexpr": true,
"computed-style-setter-custom": true,
"computed-style-setter-returns-if-changed": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Zoom",
"parser-grammar": "normal | <percentage [0,inf]> | <number [0,inf]>",
"parser-grammar-comment": "Current spec grammar is '<number [0,inf]> | <percentage [0,inf]>'"
},
"specification": {
"category": "css-viewport",
"url": "https://drafts.csswg.org/css-viewport/#propdef-zoom"
}
},
"ruby-position": {
"animation-type": "discrete",
"inherited": true,
"initial": "over",
"initial-comment": "Current spec initial value is 'alternate'",
"values": [
"over",
"under",
"inter-character",
{
"value": "alternate",
"status": "unimplemented"
}
],
"codegen-properties": {
"top-priority": true,
"top-priority-reason": "This is a top priority property to ensure that its value can be checked when determining a smart default font size', (<https://trac.webkit.org/browser/trunk/Source/WebCore/ChangeLog?rev=172861>).",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "RubyPosition",
"parser-grammar": "<<values>>",
"parser-grammar-comment": "Current spec grammar is '[ alternate || [ over | under ] ] | inter-character'"
},
"specification": {
"category": "css-ruby",
"url": "https://drafts.csswg.org/css-ruby-1/#rubypos"
}
},
"-webkit-ruby-position": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "before",
"values": [
{
"value": "before",
"status": "deprecated"
},
{
"value": "after",
"status": "deprecated"
},
"inter-character"
],
"codegen-properties": {
"cascade-alias": "ruby-position",
"skip-style-builder": true,
"style-extractor-custom": true,
"parser-grammar": "before | after | inter-character@(aliased-to=legacy-inter-character)",
"parser-grammar-comment": "Current spec grammar is '[ alternate || [ over | under ] ] | inter-character'."
},
"specification": {
"category": "css-ruby",
"url": "https://www.w3.org/TR/css-ruby-1/#rubypos"
}
},
"alignment-baseline": {
"animation-type": "discrete",
"initial": "baseline",
"values": [
"baseline",
{
"value": "text-bottom",
"status": "unimplemented"
},
"alphabetic",
"ideographic",
"middle",
"central",
"mathematical",
{
"value": "text-top",
"status": "unimplemented"
},
{
"value": "after-edge",
"status": "deprecated"
},
{
"value": "text-after-edge",
"status": "deprecated",
"comment": "Should alias to 'text-bottom' once it is implemented."
},
{
"value": "hanging",
"status": "deprecated"
},
{
"value": "before-edge",
"status": "deprecated"
},
{
"value": "text-before-edge",
"status": "deprecated",
"comment": "Should alias to 'text-top' once it is implemented."
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "AlignmentBaseline",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-inline",
"url": "https://drafts.csswg.org/css-inline-3/#propdef-alignment-baseline"
}
},
"all": {
"codegen-properties": {
"longhands": [
"all"
],
"skip-style-extractor": true,
"skip-parser": true
},
"specification": {
"category": "css-cascade",
"url": "https://www.w3.org/TR/css-cascade-3/#all-shorthand"
}
},
"animation": {
"codegen-properties": {
"aliases": [
"-webkit-animation"
],
"longhands": [
"animation-duration",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"animation-play-state",
"animation-name",
"animation-timeline",
"animation-range-start",
"animation-range-end"
],
"parser-function": "consumeAnimationShorthand",
"parser-grammar-unused": "<single-animation>#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css3-animations/#animation-shorthand-property",
"keywords": ["animation"],
"description": "Used to animate elements"
}
},
"animation-composition": {
"animation-type": "not animatable",
"initial": "replace",
"values": [
"add",
"accumulate",
"replace"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "CompositeOperation",
"coordinated-value-list-property-item-type": "CompositeOperation",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"parser-grammar": "<single-animation-composition>#"
},
"specification": {
"category": "css-animations",
"url": "https://drafts.csswg.org/css-animations-2/#animation-composition"
}
},
"animation-delay": {
"animation-type": "not animatable",
"initial": "0s",
"codegen-properties": {
"aliases": [
"-webkit-animation-delay"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Delay",
"coordinated-value-list-property-item-type": "Style::SingleAnimationDelay",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<time>#"
},
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css3-animations/#animation-delay-property"
}
},
"animation-direction": {
"animation-type": "not animatable",
"initial": "normal",
"values": [
"normal",
"reverse",
"alternate",
"alternate-reverse"
],
"codegen-properties": {
"aliases": [
"-webkit-animation-direction"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Direction",
"coordinated-value-list-property-item-type": "AnimationDirection",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<single-animation-direction>#"
},
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css3-animations/#animation-direction-property"
}
},
"animation-duration": {
"animation-type": "not animatable",
"initial": "auto",
"codegen-properties": {
"aliases": [
"-webkit-animation-duration"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Duration",
"coordinated-value-list-property-item-type": "Style::SingleAnimationDuration",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"style-extractor-custom": true,
"separator": ",",
"parser-grammar": "<single-animation-duration>#"
},
"specification": {
"category": "css-animations",
"url": "https://drafts.csswg.org/css-animations-2/#animation-duration",
"documentation-url": "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-duration"
}
},
"animation-fill-mode": {
"animation-type": "not animatable",
"initial": "none",
"values": [
"none",
"forwards",
"backwards",
"both"
],
"codegen-properties": {
"aliases": [
"-webkit-animation-fill-mode"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "FillMode",
"coordinated-value-list-property-item-type": "AnimationFillMode",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<single-animation-fill-mode>#"
},
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css3-animations/#animation-fill-mode-property"
}
},
"animation-iteration-count": {
"animation-type": "not animatable",
"initial": "1",
"codegen-properties": {
"aliases": [
"-webkit-animation-iteration-count"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "IterationCount",
"coordinated-value-list-property-item-type": "Style::SingleAnimationIterationCount",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<single-animation-iteration-count>#"
},
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css3-animations/#animation-iteration-count-property"
}
},
"animation-name": {
"animation-type": "not animatable",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"aliases": [
"-webkit-animation-name"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Name",
"coordinated-value-list-property-item-type": "Style::SingleAnimationName",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<single-animation-name>#"
},
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css3-animations/#animation-name-property"
}
},
"animation-play-state": {
"animation-type": "not animatable",
"initial": "running",
"values": [
"running",
"paused"
],
"codegen-properties": {
"aliases": [
"-webkit-animation-play-state"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "PlayState",
"coordinated-value-list-property-item-type": "AnimationPlayState",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<single-animation-play-state>#"
},
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css3-animations/#animation-play-state-property"
}
},
"animation-range": {
"codegen-properties": {
"longhands": [
"animation-range-start",
"animation-range-end"
],
"coordinated-value-list-property": true,
"separator": ",",
"parser-function": "consumeAnimationRangeShorthand",
"parser-grammar-unused": "[ <'animation-range-start'> <'animation-range-end'>? ]#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#animation-range"
}
},
"animation-range-start": {
"animation-type": "not animatable",
"initial": "normal",
"values": [
"normal",
"cover",
"contain",
"entry",
"exit",
"entry-crossing",
"exit-crossing"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "RangeStart",
"coordinated-value-list-property-item-type": "Style::SingleAnimationRangeStart",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<single-animation-range-start>#"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#propdef-animation-range-start"
}
},
"animation-range-end": {
"animation-type": "not animatable",
"initial": "normal",
"values": [
"normal",
"cover",
"contain",
"entry",
"exit",
"entry-crossing",
"exit-crossing"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "RangeEnd",
"coordinated-value-list-property-item-type": "Style::SingleAnimationRangeEnd",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<single-animation-range-end>#"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#propdef-animation-range-end"
}
},
"animation-timeline": {
"animation-type": "not animatable",
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Timeline",
"coordinated-value-list-property-item-type": "Style::SingleAnimationTimeline",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"parser-grammar": "<single-animation-timeline>#"
},
"specification": {
"category": "css-animations",
"url": "https://drafts.csswg.org/css-animations-2/#animation-timeline"
}
},
"animation-timing-function": {
"animation-type": "not animatable",
"initial": "ease",
"values": [
"linear",
"ease",
"ease-in",
"ease-out",
"ease-in-out",
"step-start",
"step-end"
],
"codegen-properties": {
"aliases": [
"-webkit-animation-timing-function"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "TimingFunction",
"coordinated-value-list-property-item-type": "Style::EasingFunction",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "animations"],
"separator": ",",
"parser-grammar": "<easing-function>#"
},
"specification": {
"category": "css-animations",
"url": "https://drafts.csswg.org/css-animations-1/#propdef-animation-timing-function"
}
},
"background": {
"codegen-properties": {
"longhands": [
"background-image",
"background-position-x",
"background-position-y",
"background-size",
"background-repeat",
"background-attachment",
"background-origin",
"background-clip",
"background-color"
],
"parser-function": "consumeBackgroundShorthand",
"parser-grammar-unused": "<bg-layer># , <final-bg-layer>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds/#propdef-background"
}
},
"background-attachment": {
"animation-type": "discrete",
"initial": "scroll",
"values": [
"scroll",
"fixed",
"local"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Attachment",
"coordinated-value-list-property-item-type": "FillAttachment",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"disables-native-appearance": true,
"separator": ",",
"parser-grammar": "<single-background-attachment>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds/#propdef-background-attachment"
}
},
"background-blend-mode": {
"animation-type": "discrete",
"initial": "normal",
"values" : [
"normal",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"hue",
"saturation",
"color",
"luminosity",
{
"value": "plus-darker",
"status": "unimplemented"
},
{
"value": "plus-lighter",
"status": "unimplemented"
}
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "BlendMode",
"coordinated-value-list-property-item-type": "BlendMode",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"separator": ",",
"parser-grammar": "<single-background-blend-mode>#"
},
"specification": {
"category": "css-compositing",
"url": "https://drafts.fxtf.org/compositing-1/#propdef-background-blend-mode"
}
},
"background-clip": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'repeatable list'",
"initial": "border-box",
"values": [
"border-box",
"padding-box",
"content-box",
"border-area",
"text",
{
"value": "-webkit-text",
"status": "non-standard"
}
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Clip",
"coordinated-value-list-property-item-type": "FillBox",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"separator": " ",
"disables-native-appearance": true,
"parser-grammar": "<single-background-clip>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-4/#background-clip"
}
},
"background-color": {
"animation-type": "by computed value",
"initial": "transparent",
"codegen-properties": {
"accepts-quirky-color": true,
"visited-link-color-support": true,
"color-property": true,
"color-property-traits-requires-excludes-visited-link-color": true,
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "visitedLinkColor"],
"computed-style-visited-dependent-applying-color-filter-exported": true,
"parser-grammar": "<color>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds/#propdef-background-color"
}
},
"background-image": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"animation-wrapper": "CoordinatedValueListPropertyStyleTypeWrapper",
"animation-wrapper-comment": "Explicitly set to CoordinatedValueListPropertyStyleTypeWrapper to override 'discrete' animation-type.",
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Image",
"coordinated-value-list-property-item-type": "Style::ImageOrNone",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"disables-native-appearance": true,
"medium-priority": true,
"separator": " ",
"parser-grammar": "<single-background-image>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds/#propdef-background-image"
}
},
"background-origin": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'repeatable list'",
"initial": "padding-box",
"values":[
"border-box",
"padding-box",
"content-box"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Origin",
"coordinated-value-list-property-item-type": "FillBox",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"disables-native-appearance": true,
"separator": " ",
"parser-grammar": "<single-background-origin>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds/#propdef-background-origin"
}
},
"background-position": {
"animation-type": "repeatable list",
"initial": "0% 0%",
"codegen-properties": {
"longhands": [
"background-position-x",
"background-position-y"
],
"accepts-quirky-length": true,
"parser-function": "consumeBackgroundPositionShorthand",
"parser-grammar-unused": "<bg-position>#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds/#propdef-background-position"
}
},
"background-position-x": {
"animation-type": "repeatable list",
"initial": "0%",
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "PositionX",
"coordinated-value-list-property-item-type": "Style::PositionX",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"disables-native-appearance": true,
"parser-grammar": "<single-background-position-x>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-x"
}
},
"background-position-y": {
"animation-type": "repeatable list",
"initial": "0%",
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "PositionY",
"coordinated-value-list-property-item-type": "Style::PositionY",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"disables-native-appearance": true,
"parser-grammar": "<single-background-position-y>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-y"
}
},
"background-repeat": {
"animation-type": "discrete",
"initial": "repeat",
"values": [
"repeat-x",
"repeat-y",
"repeat",
"space",
"round",
"no-repeat"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Repeat",
"coordinated-value-list-property-item-type": "Style::RepeatStyle",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"parser-grammar": "<single-background-repeat>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#background-repeat"
}
},
"background-size": {
"animation-type": "repeatable list",
"initial": "auto",
"values": [
"auto",
"cover",
"contain"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Size",
"coordinated-value-list-property-item-type": "Style::BackgroundSize",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "background"],
"disables-native-appearance": true,
"separator": " ",
"parser-grammar": "<single-background-size>#"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#background-size"
}
},
"baseline-shift": {
"animation-type": "by computed value",
"initial": "baseline",
"values": [
"baseline",
"sub",
"super"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "miscData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGBaselineShift",
"parser-grammar": "baseline | sub | super | <length-percentage>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG11/text.html#BaselineShiftProperty"
}
},
"block-ellipsis": {
"animation-type": "discrete",
"inherited": true,
"initial": "none",
"values": [
"none",
"auto"
],
"codegen-properties": {
"settings-flag": "cssLineClampEnabled",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BlockEllipsis",
"parser-grammar": "none | auto | <string>",
"parser-exported": true
},
"specification": {
"category": "css-inline",
"url": "https://www.w3.org/TR/css-overflow-4/#block-ellipsis"
},
"status": "experimental"
},
"block-size": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-logical-height"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "size",
"resolver": "block"
},
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#dimension-properties"
}
},
"border": {
"codegen-properties": {
"longhands": [
"border-top-width",
"border-right-width",
"border-bottom-width",
"border-left-width",
"border-top-style",
"border-right-style",
"border-bottom-style",
"border-left-style",
"border-top-color",
"border-right-color",
"border-bottom-color",
"border-left-color",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat"
],
"parser-function": "consumeBorderShorthand",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <'border-top-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
}
},
"border-block": {
"codegen-properties": {
"longhands": [
"border-block-start-width",
"border-block-end-width",
"border-block-start-style",
"border-block-end-style",
"border-block-start-color",
"border-block-end-color"
],
"parser-function": "consumeBorderBlockShorthand",
"parser-grammar-unused": "<'border-block-start'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-shorthands"
}
},
"border-block-color": {
"codegen-properties": {
"longhands": [
"border-block-start-color",
"border-block-end-color"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'border-top-color'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-color"
}
},
"border-block-end": {
"codegen-properties": {
"aliases": [
"-webkit-border-after"
],
"longhands": [
"border-block-end-width",
"border-block-end-style",
"border-block-end-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <color>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-shorthands"
}
},
"border-block-end-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"aliases": [
"-webkit-border-after-color"
],
"logical-property-group": {
"name": "border-color",
"resolver": "block-end"
},
"skip-style-builder": true,
"color-property": true,
"disables-native-appearance": true,
"parser-grammar": "<color>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-color"
}
},
"border-block-end-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"aliases": [
"-webkit-border-after-style"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-style",
"resolver": "block-end"
},
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-style"
}
},
"border-block-end-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"aliases": [
"-webkit-border-after-width"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-width",
"resolver": "block-end"
},
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-width"
}
},
"border-block-start": {
"codegen-properties": {
"aliases": [
"-webkit-border-before"
],
"longhands": [
"border-block-start-width",
"border-block-start-style",
"border-block-start-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <color>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-shorthands"
}
},
"border-block-start-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"aliases": [
"-webkit-border-before-color"
],
"logical-property-group": {
"name": "border-color",
"resolver": "block-start"
},
"skip-style-builder": true,
"color-property": true,
"disables-native-appearance": true,
"parser-grammar": "<color>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-color"
}
},
"border-block-start-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"aliases": [
"-webkit-border-before-style"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-style",
"resolver": "block-start"
},
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-style"
}
},
"border-block-start-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"aliases": [
"-webkit-border-before-width"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-width",
"resolver": "block-start"
},
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-width"
}
},
"border-block-style": {
"codegen-properties": {
"longhands": [
"border-block-start-style",
"border-block-end-style"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'border-top-style'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-style"
}
},
"border-block-width": {
"codegen-properties": {
"longhands": [
"border-block-start-width",
"border-block-end-width"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'border-top-width'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-width"
}
},
"border-bottom": {
"codegen-properties": {
"longhands": [
"border-bottom-width",
"border-bottom-style",
"border-bottom-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <'border-top-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
}
},
"border-bottom-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"logical-property-group": {
"name": "border-color",
"resolver": "bottom"
},
"accepts-quirky-color": true,
"visited-link-color-support": true,
"color-property": true,
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.colors()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "visitedLinkColor", "visitedLinkBorderColors"],
"computed-style-visited-link-storage-container": "physical-group",
"parser-grammar": "<color>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-color"
}
},
"border-bottom-left-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-border-bottom-left-radius"
],
"logical-property-group": {
"name": "border-radius",
"resolver": "bottom-left"
},
"disables-native-appearance": true,
"computed-style-has-explicitly-set-policy": "all-border-radius",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.radii"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderRadiusValue",
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-radius"
}
},
"border-bottom-right-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-border-bottom-right-radius"
],
"logical-property-group": {
"name": "border-radius",
"resolver": "bottom-right"
},
"disables-native-appearance": true,
"computed-style-has-explicitly-set-policy": "all-border-radius",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.radii"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderRadiusValue",
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-radius"
}
},
"border-bottom-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-style",
"resolver": "bottom"
},
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.styles()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "enum",
"computed-style-type": "BorderStyle",
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-style"
}
},
"border-bottom-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-width",
"resolver": "bottom"
},
"accepts-quirky-length": true,
"style-builder-custom": "Initial",
"style-extractor-custom": true,
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.widths()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineWidth",
"skip-render-style-getter": true,
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-width"
}
},
"border-collapse": {
"animation-type": "discrete",
"inherited": true,
"initial": "separate",
"values": [
"collapse",
"separate"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "BorderCollapse",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/tables.html#borders"
}
},
"border-color": {
"codegen-properties": {
"longhands": [
"border-top-color",
"border-right-color",
"border-bottom-color",
"border-left-color"
],
"accepts-quirky-color": true,
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'border-top-color'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-color"
}
},
"border-end-end-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "border-radius",
"resolver": "end-end"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-logical-props",
"url": "https://drafts.csswg.org/css-logical-1/#border-radius-properties"
}
},
"border-end-start-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "border-radius",
"resolver": "end-start"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-logical-props",
"url": "https://drafts.csswg.org/css-logical-1/#border-radius-properties"
}
},
"border-image": {
"codegen-properties": {
"longhands": [
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat"
],
"parser-function": "consumeBorderImageShorthand",
"parser-grammar-unused": "<border-image>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-image"
}
},
"border-image-outset": {
"animation-type": "by computed value",
"initial": "0",
"codegen-properties": {
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.borderImage", "borderImage"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderImageOutset",
"parser-grammar": "[ <number [0,inf]> | <length [0,inf]> ]{1,4}@(type=CSSQuadValue no-single-item-opt)",
"parser-exported": true
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-image-outset"
}
},
"border-image-repeat": {
"animation-type": "discrete",
"initial": "stretch",
"values": [
"stretch",
"repeat",
"round",
"space"
],
"codegen-properties": {
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.borderImage", "borderImage"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderImageRepeat",
"parser-grammar": "[ stretch | repeat | round | space ]{1,2}@(type=CSSValuePair default=previous)",
"parser-exported": true
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-image-repeat"
}
},
"border-image-slice": {
"animation-type": "by computed value",
"initial": "100%",
"values": [
"fill"
],
"codegen-properties": {
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.borderImage", "borderImage"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderImageSlice",
"parser-function": "consumeBorderImageSlice",
"parser-function-allows-number-or-integer-input": true,
"parser-grammar-unused": "[ <number [0,inf]> | <percentage [0,inf]> ]{1,4} && fill?",
"parser-grammar-unused-reason": "Needs support for different parsing based on the current shorthand."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-image-slice"
}
},
"border-image-source": {
"animation-type": "by computed value",
"animation-type-comment": "Current spec animation type is 'discrete'",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.borderImage", "borderImage"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderImageSource",
"parser-grammar": "none | <image>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-image-source"
}
},
"border-image-width": {
"animation-type": "by computed value",
"initial": "1",
"values": [
"auto"
],
"codegen-properties": {
"style-extractor-custom": true,
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.borderImage", "borderImage"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderImageWidth",
"parser-function": "consumeBorderImageWidth",
"parser-function-allows-number-or-integer-input": true,
"parser-grammar-unused": "[ <length-percentage [0,inf]> | <number [0,inf]> | auto ]{1,4}",
"parser-grammar-unused-reason": "Needs support for different parsing based on the current shorthand."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-image-width"
}
},
"border-inline": {
"codegen-properties": {
"longhands": [
"border-inline-start-width",
"border-inline-end-width",
"border-inline-start-style",
"border-inline-end-style",
"border-inline-start-color",
"border-inline-end-color"
],
"parser-function": "consumeBorderInlineShorthand",
"parser-grammar-unused": "<'border-block-start'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-shorthands"
}
},
"border-inline-color": {
"codegen-properties": {
"longhands": [
"border-inline-start-color",
"border-inline-end-color"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'border-top-color'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-color"
}
},
"border-inline-end": {
"codegen-properties": {
"aliases": [
"-webkit-border-end"
],
"longhands": [
"border-inline-end-width",
"border-inline-end-style",
"border-inline-end-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <color>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-shorthands"
}
},
"border-inline-end-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"aliases": [
"-webkit-border-end-color"
],
"logical-property-group": {
"name": "border-color",
"resolver": "inline-end"
},
"skip-style-builder": true,
"color-property": true,
"disables-native-appearance": true,
"parser-grammar": "<color>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-color"
}
},
"border-inline-end-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"aliases": [
"-webkit-border-end-style"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-style",
"resolver": "inline-end"
},
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-style"
}
},
"border-inline-end-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"aliases": [
"-webkit-border-end-width"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-width",
"resolver": "inline-end"
},
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-width"
}
},
"border-inline-start": {
"codegen-properties": {
"aliases": [
"-webkit-border-start"
],
"longhands": [
"border-inline-start-width",
"border-inline-start-style",
"border-inline-start-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <color>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-shorthands"
}
},
"border-inline-start-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"aliases": [
"-webkit-border-start-color"
],
"logical-property-group": {
"name": "border-color",
"resolver": "inline-start"
},
"skip-style-builder": true,
"color-property": true,
"disables-native-appearance": true,
"parser-grammar": "<color>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-color"
}
},
"border-inline-start-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"aliases": [
"-webkit-border-start-style"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-style",
"resolver": "inline-start"
},
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-style"
}
},
"border-inline-start-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"aliases": [
"-webkit-border-start-width"
],
"skip-style-builder": true,
"disables-native-appearance": true,
"logical-property-group": {
"name": "border-width",
"resolver": "inline-start"
},
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-width"
}
},
"border-inline-style": {
"codegen-properties": {
"longhands": [
"border-inline-start-style",
"border-inline-end-style"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'border-top-style'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-style"
}
},
"border-inline-width": {
"codegen-properties": {
"longhands": [
"border-inline-start-width",
"border-inline-end-width"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'border-top-width'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#border-width"
}
},
"border-left": {
"codegen-properties": {
"longhands": [
"border-left-width",
"border-left-style",
"border-left-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <'border-top-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
}
},
"border-left-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"logical-property-group": {
"name": "border-color",
"resolver": "left"
},
"accepts-quirky-color": true,
"visited-link-color-support": true,
"color-property": true,
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.colors()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "visitedLinkColor", "visitedLinkBorderColors"],
"computed-style-visited-link-storage-container": "physical-group",
"parser-grammar": "<color>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-color"
}
},
"border-left-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-style",
"resolver": "left"
},
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.styles()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "enum",
"computed-style-type": "BorderStyle",
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-style"
}
},
"border-left-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-width",
"resolver": "left"
},
"accepts-quirky-length": true,
"style-builder-custom": "Initial",
"style-extractor-custom": true,
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.widths()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineWidth",
"skip-render-style-getter": true,
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-width"
}
},
"border-radius": {
"codegen-properties": {
"longhands": [
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius"
],
"parser-function": "consumeBorderRadiusShorthand",
"parser-grammar-unused": "<length-percentage [0,inf]>{1,4} [ / <length-percentage [0,inf]>{1,4} ]?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-radius"
}
},
"border-right": {
"codegen-properties": {
"longhands": [
"border-right-width",
"border-right-style",
"border-right-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <'border-top-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
}
},
"border-right-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"logical-property-group": {
"name": "border-color",
"resolver": "right"
},
"accepts-quirky-color": true,
"visited-link-color-support": true,
"color-property": true,
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.colors()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "visitedLinkColor", "visitedLinkBorderColors"],
"computed-style-visited-link-storage-container": "physical-group",
"parser-grammar": "<color>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-color"
}
},
"border-right-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-style",
"resolver": "right"
},
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.styles()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "enum",
"computed-style-type": "BorderStyle",
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-style"
}
},
"border-right-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-width",
"resolver": "right"
},
"accepts-quirky-length": true,
"style-builder-custom": "Initial",
"style-extractor-custom": true,
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.widths()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineWidth",
"skip-render-style-getter": true,
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-width"
}
},
"border-spacing": {
"animation-type": "discrete",
"inherited": true,
"initial": "0px 0px",
"codegen-properties": {
"longhands": [
"-webkit-border-horizontal-spacing",
"-webkit-border-vertical-spacing"
],
"accepts-quirky-length": true,
"shorthand-pattern": "CoalescingPair",
"parser-function": "consumeBorderSpacingShorthand",
"parser-function-comment": "FIXME: Can probably use shorthand-pattern Values2",
"parser-grammar-unused": "<length [0,inf]>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/tables.html#separated-borders"
}
},
"border-start-end-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "border-radius",
"resolver": "start-end"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-logical-props",
"url": "https://drafts.csswg.org/css-logical-1/#border-radius-properties"
}
},
"border-start-start-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "border-radius",
"resolver": "start-start"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-logical-props",
"url": "https://drafts.csswg.org/css-logical-1/#border-radius-properties"
}
},
"border-style": {
"codegen-properties": {
"longhands": [
"border-top-style",
"border-right-style",
"border-bottom-style",
"border-left-style"
],
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'border-top-style'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-style"
}
},
"border-top": {
"codegen-properties": {
"longhands": [
"border-top-width",
"border-top-style",
"border-top-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'border-top-width'> || <'border-top-style'> || <'border-top-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
}
},
"border-top-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"logical-property-group": {
"name": "border-color",
"resolver": "top"
},
"accepts-quirky-color": true,
"visited-link-color-support": true,
"color-property": true,
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.colors()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "visitedLinkColor", "visitedLinkBorderColors"],
"computed-style-visited-link-storage-container": "physical-group",
"parser-grammar": "<color>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-color"
}
},
"border-top-left-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-border-top-left-radius"
],
"logical-property-group": {
"name": "border-radius",
"resolver": "top-left"
},
"disables-native-appearance": true,
"computed-style-has-explicitly-set-policy": "all-border-radius",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.radii"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderRadiusValue",
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-radius"
}
},
"border-top-right-radius": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-border-top-right-radius"
],
"logical-property-group": {
"name": "border-radius",
"resolver": "top-right"
},
"disables-native-appearance": true,
"computed-style-has-explicitly-set-policy": "all-border-radius",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.radii"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BorderRadiusValue",
"parser-grammar": "<length-percentage [0,inf]>{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-radius"
}
},
"border-top-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-style",
"resolver": "top"
},
"disables-native-appearance": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.styles()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "enum",
"computed-style-type": "BorderStyle",
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-style"
}
},
"border-top-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"logical-property-group": {
"name": "border-width",
"resolver": "top"
},
"accepts-quirky-length": true,
"style-builder-custom": "Initial",
"style-extractor-custom": true,
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.widths()"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineWidth",
"skip-render-style-getter": true,
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-width"
}
},
"border-width": {
"codegen-properties": {
"longhands": [
"border-top-width",
"border-right-width",
"border-bottom-width",
"border-left-width"
],
"accepts-quirky-length": true,
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'border-top-width'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-border-width"
}
},
"bottom": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "inset",
"resolver": "bottom"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "inset"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::InsetEdge",
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-position-3",
"url": "https://drafts.csswg.org/css-position-3/#insets"
}
},
"box-shadow": {
"animation-type": "see prose",
"initial": "none",
"values": [
"none",
"inset"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::BoxShadows",
"parser-function": "consumeBoxShadow",
"parser-grammar-unused": "none | <shadow>#",
"parser-grammar-unused-reason": "Needs support for the strong value representation."
},
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css3-background/#the-box-shadow"
}
},
"box-sizing": {
"animation-type": "discrete",
"initial": "content-box",
"values": [
"border-box",
"content-box"
],
"codegen-properties": {
"aliases": [
"-webkit-box-sizing"
],
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BoxSizing",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#box-sizing"
}
},
"break-after": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"avoid",
"avoid-page",
"page",
"left",
"right",
"recto",
"verso",
"avoid-column",
"column",
{
"value": "avoid-region",
"status": "unimplemented"
},
{
"value": "region",
"status": "unimplemented"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BreakBetween",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-break",
"url": "https://www.w3.org/TR/css-break-3/#break-between"
}
},
"break-before": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"avoid",
"avoid-page",
"page",
"left",
"right",
"recto",
"verso",
"avoid-column",
"column",
{
"value": "avoid-region",
"status": "unimplemented"
},
{
"value": "region",
"status": "unimplemented"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BreakBetween",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-break",
"url": "https://www.w3.org/TR/css-break-3/#break-between"
}
},
"break-inside": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"avoid",
"avoid-page",
"avoid-column",
{
"value": "avoid-region",
"status": "unimplemented"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BreakInside",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-break",
"url": "https://www.w3.org/TR/css-break-3/#break-within"
}
},
"buffered-rendering": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"dynamic",
"static"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "BufferedRendering",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVGTiny12/painting.html#BufferedRenderingProperty"
}
},
"caption-side": {
"animation-type": "discrete",
"inherited": true,
"initial": "top",
"values": [
"top",
"bottom",
{
"value": "inline-start",
"status": "unimplemented",
"url": "https://w3c.github.io/csswg-drafts/css-logical/#caption-side"
},
{
"value": "inline-end",
"status": "unimplemented",
"url": "https://w3c.github.io/csswg-drafts/css-logical/#caption-side"
}
],
"codegen-properties": {
"aliases": [
"-epub-caption-side"
],
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "CaptionSide",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/tables.html#propdef-caption-side"
}
},
"clear": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"left",
"right",
"both",
{
"value": "inline-start",
"url": "https://www.w3.org/TR/css-logical/#float-clear"
},
{
"value": "inline-end",
"url": "https://www.w3.org/TR/css-logical/#float-clear"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Clear",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visuren.html#propdef-clear"
}
},
"clip": {
"animation-type": "see prose",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Clip",
"parser-grammar": "<rect()> | auto"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking/#clip-property",
"obsolete-category": "css-22",
"obsolete-url": "https://www.w3.org/TR/CSS22/visufx.html#propdef-clip"
}
},
"clip-path": {
"animation-type": "see prose",
"initial": "none",
"values": [
"none",
"content-box",
"margin-box",
"stroke-box",
"border-box",
"fill-box",
"view-box",
"padding-box"
],
"codegen-properties": {
"aliases": [
"-webkit-clip-path"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ClipPath",
"parser-function": "consumeClipPath",
"parser-grammar-unused": "<clip-source> | [ <basic-shape> || <geometry-box> ] | none",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form and default values in '||' groups."
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking/#propdef-clip-path"
}
},
"clip-rule": {
"animation-type": "discrete",
"inherited": true,
"initial": "nonzero",
"values": [
"nonzero",
"evenodd"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "WindRule",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking/#propdef-clip-rule",
"obsolete-category": "svg",
"obsolete-url": "https://www.w3.org/TR/SVG11/masking.html#ClipRuleProperty"
}
},
"color-interpolation": {
"animation-type": "discrete",
"inherited": true,
"initial": "sRGB",
"values": [
"auto",
"sRGB",
"linearRGB"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "ColorInterpolation",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#ColorInterpolationProperty"
}
},
"color-interpolation-filters": {
"animation-type": "discrete",
"inherited": true,
"initial": "linearRGB",
"values": [
"auto",
"sRGB",
"linearRGB"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "ColorInterpolation",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#ColorInterpolationFiltersProperty"
}
},
"content": {
"animation-type": "discrete",
"initial": "normal",
"codegen-properties": {
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Content",
"separator": " ",
"parser-function": "consumeContent",
"parser-grammar-unused": "none | normal | [ <image> | open-quote | close-quote | no-open-quote | no-close-quote | attr(<custom-ident>,<declaration-value>?) | counter(<counter-name>, <counter-style>?) | counters(<counter-name>, <string>, <counter-style>?) ]+",
"parser-grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator.",
"parser-grammar-comment": "consumeContent is quite different than current spec"
},
"specification": {
"category": "css-content",
"url": "https://www.w3.org/TR/css-content-3/#content-property"
}
},
"corner-shape": {
"animation-type": "discrete",
"initial": "round",
"codegen-properties": {
"settings-flag": "cssCornerShapeEnabled",
"longhands": [
"corner-top-left-shape",
"corner-top-right-shape",
"corner-bottom-right-shape",
"corner-bottom-left-shape"
],
"disables-native-appearance": true,
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'corner-top-left-shape'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-top-left-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "top-left"
},
"settings-flag": "cssCornerShapeEnabled",
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.cornerShapes"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CornerShapeValue",
"parser-grammar": "<corner-shape-value>"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-top-right-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "top-right"
},
"settings-flag": "cssCornerShapeEnabled",
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.cornerShapes"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CornerShapeValue",
"parser-grammar": "<corner-shape-value>"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-bottom-left-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "bottom-left"
},
"settings-flag": "cssCornerShapeEnabled",
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.cornerShapes"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CornerShapeValue",
"parser-grammar": "<corner-shape-value>"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-bottom-right-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "bottom-right"
},
"settings-flag": "cssCornerShapeEnabled",
"disables-native-appearance": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "border.cornerShapes"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CornerShapeValue",
"parser-grammar": "<corner-shape-value>"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-start-start-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "start-start"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<corner-shape-value>",
"settings-flag": "cssCornerShapeEnabled"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-start-end-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "start-end"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<corner-shape-value>",
"parser-exported": true,
"settings-flag": "cssCornerShapeEnabled"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-end-start-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "end-start"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<corner-shape-value>",
"settings-flag": "cssCornerShapeEnabled"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"corner-end-end-shape": {
"animation-type": "see prose",
"initial": "round",
"codegen-properties": {
"logical-property-group": {
"name": "corner-shape",
"resolver": "end-end"
},
"skip-style-builder": true,
"disables-native-appearance": true,
"parser-grammar": "<corner-shape-value>",
"settings-flag": "cssCornerShapeEnabled"
},
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"counter-increment": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-setter-requires-did-set": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CounterIncrement",
"parser-function": "consumeCounterIncrement",
"parser-grammar-unused": "[ <counter-name> <integer>? ]+ | none",
"parser-grammar-unused-reason": "Needs support for default values on optionals."
},
"specification": {
"category": "css-lists",
"url": "https://drafts.csswg.org/css-lists/#propdef-counter-increment"
}
},
"counter-reset": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-setter-requires-did-set": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CounterReset",
"parser-function": "consumeCounterReset",
"parser-grammar-unused": "[ <counter-name> <integer>? ]+ | none",
"parser-grammar-unused-reason": "Needs support for default values on optionals.",
"parser-grammar-comment": "Current spec grammar is '[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none'"
},
"specification": {
"category": "css-lists",
"url": "https://drafts.csswg.org/css-lists/#propdef-counter-reset"
}
},
"counter-set": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-setter-requires-did-set": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::CounterSet",
"parser-function": "consumeCounterSet",
"parser-grammar-unused": "[ <counter-name> <integer>? ]+ | none",
"parser-grammar-unused-reason": "Needs support for default values on optionals."
},
"specification": {
"category": "css-lists",
"url": "https://drafts.csswg.org/css-lists/#propdef-counter-set"
}
},
"cursor": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"default",
"none",
"context-menu",
"help",
"pointer",
"progress",
"wait",
"cell",
"crosshair",
"text",
"vertical-text",
"alias",
"copy",
"move",
"no-drop",
"not-allowed",
"grab",
"grabbing",
"e-resize",
"n-resize",
"ne-resize",
"nw-resize",
"s-resize",
"se-resize",
"sw-resize",
"w-resize",
"ew-resize",
"ns-resize",
"nesw-resize",
"nwse-resize",
"col-resize",
"row-resize",
"all-scroll",
"zoom-in",
"zoom-out",
{
"value": "-webkit-grab",
"status": "non-standard"
},
{
"value": "-webkit-grabbing",
"status": "non-standard"
},
{
"value": "-webkit-zoom-in",
"status": "non-standard"
},
{
"value": "-webkit-zoom-out",
"status": "non-standard"
}
],
"codegen-properties": {
"computed-style-changed-for-animation-custom": true,
"computed-style-getter-custom": true,
"computed-style-setter-custom": true,
"computed-style-storage-container": "struct",
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-type": "Style::Cursor",
"parser-function": "consumeCursor",
"parser-grammar-unused": "[ [ <url> [ <x> <y> ]? ]#{0,} [ <<values>> ] ]",
"parser-grammar-unused-reason": "Needs support for different parsing based on the current mode."
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#cursor"
}
},
"-webkit-cursor-visibility": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"auto-hide"
],
"codegen-properties": {
"enable-if": "ENABLE_CURSOR_VISIBILITY",
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "CursorVisibility",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"cx": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGCenterCoordinateComponent",
"parser-grammar": "<length-percentage>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/shapes.html"
}
},
"cy": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGCenterCoordinateComponent",
"parser-grammar": "<length-percentage>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/shapes.html"
}
},
"d": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGPathData",
"parser-grammar": "none | <path()>",
"settings-flag": "cssDPropertyEnabled"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/paths.html#TheDProperty"
}
},
"dominant-baseline": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"use-script",
"no-change",
"reset-size",
"ideographic",
"alphabetic",
"hanging",
"mathematical",
"central",
"middle",
"text-before-edge",
"text-after-edge"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "DominantBaseline",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG11/text.html#DominantBaselineProperty"
}
},
"dynamic-range-limit": {
"animation-type": "not animatable",
"animation-type-comment": "FIXME: Specs say it's animatable, but dynamic-range-limit-mix() cannot be implemented yet; see webkit.org/b/293339",
"inherited": true,
"initial": "no-limit",
"values": [
"standard",
"constrained",
"no-limit"
],
"codegen-properties": {
"settings-flag": "supportHDRDisplayEnabled",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::DynamicRangeLimit",
"parser-function": "consumeDynamicRangeLimit",
"parser-grammar-unused": "<<values>> | <dynamic-range-limit-mix()>",
"parser-grammar-unused-reason": "Needs support for the strong value representation and recursive grammars."
},
"specification": {
"category": "css-color",
"url": "https://drafts.csswg.org/css-color-hdr/#the-dynamic-range-limit-property"
}
},
"empty-cells": {
"animation-type": "discrete",
"inherited": true,
"initial": "show",
"values": [
"show",
"hide"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "EmptyCell",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS2/tables.html#empty-cells"
}
},
"fill": {
"animation-type": "by computed value",
"inherited": true,
"initial": "black",
"values": [
"none",
{
"value": "context-fill",
"status": "unimplemented"
},
{
"value": "context-stroke",
"status": "unimplemented"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "fillData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGPaint",
"computed-style-visited-link-storage-path": ["m_svgData", "fillData"],
"color-property": true,
"color-property-traits-color-custom": true,
"color-property-traits-visited-link-color-custom": true,
"visited-link-color-support": true,
"parser-grammar": "none | <color> | [ <url> [ none | <color> ]? ]",
"parser-grammar-comment": "Current spec grammar is 'none | <color> | [ <url> [ none | <color> ]? ] | context-fill | context-stroke'",
"comment": "Also specified (with different grammar) in CSS Fill and Stroke Module Level 3"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#SpecifyingFillPaint"
}
},
"fill-opacity": {
"animation-type": "by computed value",
"inherited": true,
"initial": "1",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_svgData", "fillData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Opacity",
"parser-grammar": "<opacity-value>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/painting.html#FillOpacityProperty"
}
},
"fill-rule": {
"animation-type": "discrete",
"inherited": true,
"initial": "nonzero",
"values": [
"nonzero",
"evenodd"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "WindRule",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/painting.html#FillRuleProperty"
}
},
"float": {
"animation-type": "discrete",
"initial": "none",
"values": [
"left",
"right",
"none",
{
"value": "inline-start",
"url": "https://www.w3.org/TR/css-logical/#float-clear"
},
{
"value": "inline-end",
"url": "https://www.w3.org/TR/css-logical/#float-clear"
}
],
"codegen-properties": {
"computed-style-name-for-methods": "Floating",
"style-extractor-custom": true,
"computed-style-storage-name": "floating",
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Float",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visuren.html#float-position"
}
},
"flood-color": {
"animation-type": "by computed value",
"initial": "black",
"codegen-properties": {
"color-property": true,
"computed-style-storage-path": ["m_svgData", "miscData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"parser-grammar": "<color>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/filters.html#FloodColorProperty"
}
},
"flood-opacity": {
"animation-type": "by computed value",
"initial": "1",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_svgData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Opacity",
"parser-grammar": "<opacity-value>"
},
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#FloodOpacityProperty"
}
},
"glyph-orientation-horizontal": {
"animation-type": "not animatable",
"inherited": true,
"initial": "0deg",
"codegen-properties": {
"accepts-quirky-angle": true,
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::SVGGlyphOrientationHorizontal",
"parser-grammar": "<angle unitless-zero=allowed>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG11/text.html#GlyphOrientationHorizontalProperty"
}
},
"glyph-orientation-vertical": {
"animation-type": "not animatable",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"accepts-quirky-angle": true,
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::SVGGlyphOrientationVertical",
"parser-grammar": "auto | <angle unitless-zero=allowed>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG11/text.html#GlyphOrientationVerticalProperty"
}
},
"hanging-punctuation": {
"animation-type": "discrete",
"inherited": true,
"initial": "none",
"values": [
"none",
"first",
"force-end",
"allow-end",
"last"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::HangingPunctuation",
"parser-grammar": "none | [ first || [ force-end | allow-end ] || last ]@(preserve-order no-single-item-opt)"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#hanging-punctuation"
}
},
"height": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "size",
"resolver": "vertical"
},
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PreferredSize",
"style-extractor-custom": true,
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visudet.html#the-height-property"
}
},
"image-orientation": {
"animation-type": "discrete",
"inherited": true,
"initial": "from-image",
"values": [
"from-image",
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::ImageOrientation",
"parser-grammar": "<<values>>",
"parser-grammar-comment": "Current spec grammar is 'from-image | none | [ <angle> || flip ]'"
},
"specification": {
"category": "css-images",
"url": "https://drafts.csswg.org/css-images-3/#propdef-image-orientation"
}
},
"image-rendering": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
{
"value": "smooth",
"status": "unimplemented"
},
{
"value": "high-quality",
"status": "unimplemented"
},
"pixelated",
"crisp-edges",
{
"value": "optimizeSpeed",
"url": "https://svgwg.org/svg2-draft/painting.html#ImageRenderingProperty"
},
{
"value": "optimizeQuality",
"url": "https://svgwg.org/svg2-draft/painting.html#ImageRenderingProperty"
},
{
"value": "-webkit-crisp-edges",
"status": "non-standard"
},
{
"value": "-webkit-optimize-contrast",
"status": "non-standard"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ImageRendering",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-images",
"url": "https://drafts.csswg.org/css-images-3/#propdef-image-rendering"
}
},
"inline-size": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-logical-width"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "size",
"resolver": "inline"
},
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#dimension-properties"
}
},
"input-security": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"settings-flag": "cssInputSecurityEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "InputSecurity",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#input-security"
}
},
"inset": {
"codegen-properties": {
"longhands": [
"top",
"right",
"bottom",
"left"
],
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'top'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#inset-properties"
}
},
"inset-block": {
"codegen-properties": {
"longhands": [
"inset-block-start",
"inset-block-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'top'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#inset-properties"
}
},
"inset-block-end": {
"initial": "auto",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "inset",
"resolver": "block-end"
},
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#inset-properties"
}
},
"inset-block-start": {
"initial": "auto",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "inset",
"resolver": "block-start"
},
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#inset-properties"
}
},
"inset-inline": {
"codegen-properties": {
"longhands": [
"inset-inline-start",
"inset-inline-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'top'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#inset-properties"
}
},
"inset-inline-end": {
"initial": "auto",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "inset",
"resolver": "inline-end"
},
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#inset-properties"
}
},
"inset-inline-start": {
"initial": "auto",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "inset",
"resolver": "inline-start"
},
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#inset-properties"
}
},
"flow-tolerance": {
"animation-type": "by computed value",
"initial": "normal",
"values": [
"normal",
"infinite"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "grid"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::FlowTolerance",
"parser-grammar": "normal | <length-percentage> | infinite"
},
"specification": {
"category": "css-grid",
"url": "https://drafts.csswg.org/css-grid-3/#placement-tolerance"
}
},
"left": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "inset",
"resolver": "left"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "inset"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::InsetEdge",
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-position-3",
"url": "https://drafts.csswg.org/css-position-3/#insets"
}
},
"letter-spacing": {
"animation-type": "by computed value",
"inherited": true,
"initial": "normal",
"values": [
"normal"
],
"codegen-properties": {
"accepts-quirky-length": true,
"animation-wrapper-requires-getter": "computedLetterSpacing",
"animation-wrapper-requires-setter": "setLetterSpacingFromAnimation",
"style-builder-custom": "All",
"style-extractor-custom": true,
"font-property": true,
"high-priority": true,
"sink-priority": true,
"computed-style-getter": "computedLetterSpacing",
"computed-style-storage-name": "letterSpacing",
"computed-style-storage-path": ["m_inheritedData", "fontData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LetterSpacing",
"parser-grammar": "normal | <length-percentage>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text/#letter-spacing-property"
}
},
"lighting-color": {
"animation-type": "by computed value",
"initial": "white",
"codegen-properties": {
"color-property": true,
"computed-style-storage-path": ["m_svgData", "miscData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"parser-grammar": "<color>"
},
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#LightingColorProperty"
}
},
"line-fit-edge": {
"animation-type": "discrete",
"inherited": true,
"initial": "leading",
"values": [
"leading",
"text",
"ex",
"ideographic",
"ideographic-ink",
"alphabetic",
"cap"
],
"codegen-properties": {
"settings-flag": "cssLineFitEdgeEnabled",
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::LineFitEdge",
"parser-function": "consumeLineFitEdge",
"parser-grammar-unused": "leading | [ [ text | cap | ex | ideographic | ideographic-ink ] [ text | alphabetic | ideographic | ideographic-ink ]? ]",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-inline",
"url": "https://drafts.csswg.org/css-inline-3/#propdef-line-fit-edge"
},
"status": "experimental"
},
"line-height": {
"animation-type": "by computed value",
"inherited": true,
"initial": "normal",
"values": [
"normal"
],
"codegen-properties": [
{
"enable-if": "ENABLE_TEXT_AUTOSIZING",
"animation-wrapper-requires-getter": "specifiedLineHeight",
"style-builder-custom": "All",
"style-extractor-custom": true,
"computed-style-storage-path": ["m_inheritedData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineHeight",
"parser-grammar": "normal | <number [0,inf]> | <length-percentage [0,inf]>",
"parser-exported": true
},
{
"enable-if": "!ENABLE_TEXT_AUTOSIZING",
"style-extractor-custom": true,
"computed-style-storage-path": ["m_inheritedData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineHeight",
"parser-grammar": "normal | <number [0,inf]> | <length-percentage [0,inf]>",
"parser-exported": true
}
],
"specification": {
"category": "css-inline",
"url": "https://www.w3.org/TR/css-inline-3/#line-height-property"
}
},
"list-style": {
"inherited": true,
"codegen-properties": {
"longhands": [
"list-style-position",
"list-style-image",
"list-style-type"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-function": "consumeListStyleShorthand",
"parser-grammar-unused": "<'list-style-position'> || <'list-style-image'> || <'list-style-type'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-lists",
"url": "https://www.w3.org/TR/css-lists-3/#list-style-property"
}
},
"list-style-image": {
"animation-type": "by computed value",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ImageOrNone",
"parser-grammar": "<image> | none"
},
"specification": {
"category": "css-lists",
"url": "https://www.w3.org/TR/css-lists-3/#propdef-list-style-image"
}
},
"list-style-position": {
"animation-type": "discrete",
"inherited": true,
"initial": "outside",
"values": [
"inside",
"outside"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "ListStylePosition",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-lists",
"url": "https://www.w3.org/TR/css-lists-3/#propdef-list-style-position"
}
},
"list-style-type": {
"animation-type": "discrete",
"inherited": true,
"initial": "disc",
"values": [
"disc",
"circle",
"square",
"decimal",
"decimal-leading-zero",
"arabic-indic",
"binary",
"bengali",
"cambodian",
"khmer",
"devanagari",
"gujarati",
"gurmukhi",
"kannada",
"lower-hexadecimal",
"lao",
"malayalam",
"mongolian",
"myanmar",
"octal",
"oriya",
"persian",
"urdu",
"telugu",
"tibetan",
"thai",
"upper-hexadecimal",
"lower-roman",
"upper-roman",
"lower-greek",
"lower-alpha",
"lower-latin",
"upper-alpha",
"upper-latin",
"afar",
"ethiopic-halehame-aa-et",
"ethiopic-halehame-aa-er",
"amharic",
"ethiopic-halehame-am-et",
"amharic-abegede",
"ethiopic-abegede-am-et",
"cjk-earthly-branch",
"cjk-heavenly-stem",
"ethiopic",
"ethiopic-halehame-gez",
"ethiopic-abegede",
"ethiopic-abegede-gez",
"hangul-consonant",
"hangul",
"lower-norwegian",
"oromo",
"ethiopic-halehame-om-et",
"sidama",
"ethiopic-halehame-sid-et",
"somali",
"ethiopic-halehame-so-et",
"tigre",
"ethiopic-halehame-tig",
"tigrinya-er",
"ethiopic-halehame-ti-er",
"tigrinya-er-abegede",
"ethiopic-abegede-ti-er",
"tigrinya-et",
"ethiopic-halehame-ti-et",
"tigrinya-et-abegede",
"ethiopic-abegede-ti-et",
"upper-greek",
"upper-norwegian",
"asterisks",
"footnotes",
"hebrew",
"armenian",
"lower-armenian",
"upper-armenian",
"georgian",
"cjk-ideographic",
"hiragana",
"katakana",
"hiragana-iroha",
"katakana-iroha",
"cjk-decimal",
"tamil",
"disclosure-open",
"disclosure-closed",
"japanese-informal",
"japanese-formal",
"korean-hangul-formal",
"korean-hanja-informal",
"korean-hanja-formal",
"simp-chinese-informal",
"simp-chinese-formal",
"trad-chinese-informal",
"trad-chinese-formal",
"ethiopic-numeric",
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ListStyleType",
"parser-grammar": "<counter-style> | <string> | none",
"parser-exported": true
},
"specification": {
"category": "css-lists",
"url": "https://www.w3.org/TR/css-lists-3/#propdef-list-style-type"
}
},
"margin": {
"codegen-properties": {
"longhands": [
"margin-top",
"margin-right",
"margin-bottom",
"margin-left"
],
"accepts-quirky-length": true,
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'margin-top'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin"
}
},
"margin-block": {
"codegen-properties": {
"longhands": [
"margin-block-start",
"margin-block-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'margin-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#margin-properties"
}
},
"margin-block-end": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto"
],
"codegen-properties": {
"aliases": [
"-webkit-margin-after"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "margin",
"resolver": "block-end"
},
"parser-grammar": "<margin-logical>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#margin-properties"
}
},
"margin-block-start": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-margin-before"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "margin",
"resolver": "block-start"
},
"parser-grammar": "<margin-logical>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#margin-properties"
}
},
"margin-bottom": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "margin",
"resolver": "bottom"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "margin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MarginEdge",
"parser-grammar": "<length-percentage anchor-size=allowed> | auto"
},
"specification": {
"category": "css-box-4",
"url": "https://drafts.csswg.org/css-box-4/#margin-physical"
}
},
"margin-inline": {
"codegen-properties": {
"longhands": [
"margin-inline-start",
"margin-inline-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'margin-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#margin-properties"
}
},
"margin-inline-end": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto"
],
"codegen-properties": {
"aliases": [
"-webkit-margin-end"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "margin",
"resolver": "inline-end"
},
"parser-grammar": "<margin-logical>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#margin-properties"
}
},
"margin-inline-start": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto"
],
"codegen-properties": {
"aliases": [
"-webkit-margin-start"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "margin",
"resolver": "inline-start"
},
"parser-grammar": "<margin-logical>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#margin-properties"
}
},
"margin-left": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "margin",
"resolver": "left"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "margin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MarginEdge",
"parser-grammar": "<length-percentage anchor-size=allowed> | auto"
},
"specification": {
"category": "css-box-4",
"url": "https://drafts.csswg.org/css-box-4/#margin-physical"
}
},
"margin-right": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "margin",
"resolver": "right"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "margin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MarginEdge",
"parser-grammar": "<length-percentage anchor-size=allowed> | auto"
},
"specification": {
"category": "css-box-4",
"url": "https://drafts.csswg.org/css-box-4/#margin-physical"
}
},
"margin-top": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "margin",
"resolver": "top"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "margin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MarginEdge",
"parser-grammar": "<length-percentage anchor-size=allowed> | auto"
},
"specification": {
"category": "css-box-4",
"url": "https://drafts.csswg.org/css-box-4/#margin-physical"
}
},
"margin-trim": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"block",
"inline",
"block-start",
"inline-start",
"block-end",
"inline-end"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::MarginTrim",
"parser-function": "consumeMarginTrim",
"parser-grammar-unused": "none | [ block || inline ] | [ block-start || inline-start || block-end || inline-end ]",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-box-4",
"url": "https://www.w3.org/TR/css-box-4/#margin-trim"
}
},
"marker": {
"inherited": true,
"codegen-properties": {
"longhands": [
"marker-start",
"marker-mid",
"marker-end"
],
"parser-function": "consumeMarkerShorthand",
"parser-grammar-unused": "<'marker-start'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/painting.html#MarkerProperty"
}
},
"marker-end": {
"animation-type": "discrete",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "markerResourceData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGMarkerResource",
"parser-grammar": "none | <marker-ref>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/painting.html#MarkerEndProperty"
}
},
"marker-mid": {
"animation-type": "discrete",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "markerResourceData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGMarkerResource",
"parser-grammar": "none | <marker-ref>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/painting.html#MarkerMidProperty"
}
},
"marker-start": {
"animation-type": "discrete",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "markerResourceData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGMarkerResource",
"parser-grammar": "none | <marker-ref>"
},
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/painting.html#MarkerStartProperty"
}
},
"mask": {
"codegen-properties": {
"longhands": [
"mask-image",
"-webkit-mask-position-x",
"-webkit-mask-position-y",
"mask-size",
"mask-repeat",
"mask-origin",
"mask-clip",
"mask-composite",
"mask-mode",
"mask-border-source",
"mask-border-slice",
"mask-border-width",
"mask-border-outset",
"mask-border-repeat"
],
"parser-function": "consumeMaskShorthand",
"parser-grammar-unused": "<mask-layer>#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask"
}
},
"mask-border": {
"codegen-properties": {
"longhands": [
"mask-border-source",
"mask-border-slice",
"mask-border-width",
"mask-border-outset",
"mask-border-repeat"
],
"parser-function": "consumeMaskBorderShorthand",
"parser-grammar-unused": "<mask-border>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border"
}
},
"mask-border-outset": {
"animation-type": "by computed value",
"initial": "0",
"codegen-properties": {
"aliases": [
"-webkit-mask-box-image-outset"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "maskBorder", "maskBorder"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MaskBorderOutset",
"parser-grammar": "[ <number [0,inf]> | <length [0,inf]> ]{1,4}@(type=CSSQuadValue no-single-item-opt)"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-outset"
}
},
"mask-border-repeat": {
"animation-type": "discrete",
"initial": "stretch",
"values": [
"stretch",
"repeat",
"space",
"round"
],
"codegen-properties": {
"aliases": [
"-webkit-mask-box-image-repeat"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "maskBorder", "maskBorder"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MaskBorderRepeat",
"parser-grammar": "[ stretch | repeat | round | space ]{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-repeat"
}
},
"mask-border-slice": {
"animation-type": "by computed value",
"initial": "0",
"values": [
"fill"
],
"codegen-properties": {
"aliases": [
"-webkit-mask-box-image-slice"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "maskBorder", "maskBorder"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MaskBorderSlice",
"parser-function": "consumeBorderImageSlice",
"parser-grammar-unused": "[ <number [0,inf]> | <percentage [0,inf]> ]{1,4} && fill?",
"parser-grammar-unused-reason": "Needs support for different parsing based on the current shorthand."
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-slice"
}
},
"mask-border-source": {
"animation-type": "by computed value",
"animation-type-comment": "Current spec animation type is 'discrete'",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"aliases": [
"-webkit-mask-box-image-source"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "maskBorder", "maskBorder"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MaskBorderSource",
"parser-grammar": "none | <image>"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-source"
}
},
"mask-border-width": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"aliases": [
"-webkit-mask-box-image-width"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "maskBorder", "maskBorder"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MaskBorderWidth",
"parser-function": "consumeBorderImageWidth",
"parser-grammar-unused": "[ <length-percentage [0,inf]> | <number [0,inf]> | auto ]{1,4}",
"parser-grammar-unused-reason": "Needs support for different parsing based on the current shorthand."
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-width"
}
},
"mask-clip": {
"animation-type": "discrete",
"initial": "border-box",
"values": [
"border-box",
"padding-box",
"content-box",
{
"value": "fill-box",
"status": "unimplemented"
},
{
"value": "stroke-box",
"status": "unimplemented"
},
{
"value": "view-box",
"status": "unimplemented"
},
"no-clip"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Clip",
"coordinated-value-list-property-item-type": "FillBox",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-mask-clip>#"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-clip"
}
},
"mask-composite": {
"animation-type": "discrete",
"initial": "add",
"values": [
"add",
"subtract",
"intersect",
"exclude"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Composite",
"coordinated-value-list-property-item-type": "CompositeOperator",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-mask-composite>#"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-composite"
}
},
"mask-image": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"aliases": [
"-webkit-mask-image"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Image",
"coordinated-value-list-property-item-type": "Style::ImageOrNone",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"medium-priority": true,
"parser-grammar": "<single-mask-image>#"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-image"
}
},
"mask-mode": {
"animation-type": "discrete",
"initial": "match-source",
"values": [
"alpha",
"luminance",
"match-source"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "MaskMode",
"coordinated-value-list-property-item-type": "Style::MaskMode",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-mask-mode>#"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-mode"
}
},
"mask-origin": {
"animation-type": "discrete",
"initial": "border-box",
"values": [
"border-box",
"padding-box",
"content-box",
{
"value": "fill-box",
"status": "unimplemented"
},
{
"value": "stroke-box",
"status": "unimplemented"
},
{
"value": "view-box",
"status": "unimplemented"
},
{
"value": "border",
"status": "non-standard"
},
{
"value": "content",
"status": "non-standard"
},
{
"value": "padding",
"status": "non-standard"
},
{
"value": "-webkit-text",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-mask-origin"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Origin",
"coordinated-value-list-property-item-type": "FillBox",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-mask-origin>#"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-origin"
}
},
"mask-position": {
"codegen-properties": {
"longhands": [
"-webkit-mask-position-x",
"-webkit-mask-position-y"
],
"parser-function": "consumeMaskPositionShorthand",
"parser-grammar-unused": "<position>#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-position"
}
},
"-webkit-mask-position": {
"codegen-properties": {
"longhands": [
"-webkit-mask-position-x",
"-webkit-mask-position-y"
],
"parser-function": "consumeBackgroundPositionShorthand",
"parser-grammar-unused": "<bg-position>#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"status": "non-standard",
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-position"
}
},
"-webkit-mask-position-x": {
"animation-type": "repeatable list",
"initial": "0%",
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "PositionX",
"coordinated-value-list-property-item-type": "Style::PositionX",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-webkit-mask-position-x>#"
},
"status": {
"status": "non-standard",
"comment": "The unprefixed property should be internal-only"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-position"
}
},
"-webkit-mask-position-y": {
"animation-type": "repeatable list",
"initial": "0%",
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "PositionY",
"coordinated-value-list-property-item-type": "Style::PositionY",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-webkit-mask-position-y>#"
},
"status": {
"status": "non-standard",
"comment": "The unprefixed property should be internal-only"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-position"
}
},
"mask-repeat": {
"animation-type": "discrete",
"initial": "repeat",
"values": [
"repeat-x",
"repeat-y",
"repeat",
"space",
"round",
"no-repeat"
],
"codegen-properties": {
"aliases":[
"-webkit-mask-repeat"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Repeat",
"coordinated-value-list-property-item-type": "Style::RepeatStyle",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-mask-repeat>#"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-repeat"
}
},
"mask-size": {
"animation-type": "repeatable list",
"initial": "auto",
"values": [
"auto",
"cover",
"contain"
],
"codegen-properties": {
"aliases":[
"-webkit-mask-size"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Size",
"coordinated-value-list-property-item-type": "Style::BackgroundSize",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "mask"],
"parser-grammar": "<single-mask-size>#"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-size"
}
},
"mask-type": {
"animation-type": "discrete",
"initial": "luminance",
"values": [
"luminance",
"alpha"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "MaskType",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-type"
}
},
"math-depth": {
"animation-type": "by computed value",
"inherited": true,
"initial": "0",
"values": [
"auto-add"
],
"codegen-properties": {
"settings-flag": "cssMathDepthEnabled",
"top-priority": true,
"top-priority-reason": "This is top priority since it affects 'font-size', which is 'high-priority'",
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::MathDepth",
"parser-grammar": "auto-add | add(<integer>) | <integer>"
},
"specification": {
"category": "mathml-core",
"url": "https://w3c.github.io/mathml-core/#propdef-math-depth"
}
},
"math-shift": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"compact"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "MathShift",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "mathml-core",
"url": "https://w3c.github.io/mathml-core/#propdef-math-shift"
}
},
"math-style": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"compact"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "MathStyle",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "mathml-core",
"url": "https://w3c.github.io/mathml-core/#propdef-math-style"
}
},
"max-block-size": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-max-logical-height"
],
"logical-property-group": {
"name": "max-size",
"resolver": "block"
},
"skip-style-builder": true,
"parser-grammar": "<max-width-or-height>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#dimension-properties"
}
},
"max-height": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "max-size",
"resolver": "vertical"
},
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MaximumSize",
"style-extractor-custom": true,
"parser-grammar": "<max-width-or-height>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-max-height"
}
},
"max-inline-size": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-max-logical-width"
],
"logical-property-group": {
"name": "max-size",
"resolver": "inline"
},
"skip-style-builder": true,
"parser-grammar": "<max-width-or-height>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#dimension-properties"
}
},
"max-lines": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"settings-flag": "cssLineClampEnabled",
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::MaximumLines",
"parser-grammar": "none | <integer [1,inf]>",
"parser-exported": true
},
"specification": {
"category": "css-inline",
"url": "https://www.w3.org/TR/css-overflow-4/#max-lines"
},
"status": "experimental"
},
"max-width": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "max-size",
"resolver": "horizontal"
},
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MaximumSize",
"style-extractor-custom": true,
"parser-grammar": "<max-width-or-height>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-max-width"
}
},
"min-block-size": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-min-logical-height"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "min-size",
"resolver": "block"
},
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#dimension-properties"
}
},
"min-height": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "min-size",
"resolver": "vertical"
},
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MinimumSize",
"style-extractor-custom": true,
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-min-height"
}
},
"min-inline-size": {
"animation-type": "by computed value",
"initial": "0px",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-min-logical-width"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "min-size",
"resolver": "inline"
},
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#dimension-properties"
}
},
"min-width": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "min-size",
"resolver": "horizontal"
},
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::MinimumSize",
"style-extractor-custom": true,
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-min-width"
}
},
"object-fit": {
"animation-type": "discrete",
"initial": "fill",
"values": [
"fill",
"contain",
"cover",
"none",
"scale-down"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ObjectFit",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-images",
"url": "https://www.w3.org/TR/css-images-3/#the-object-fit"
}
},
"object-position": {
"animation-type": "by computed value",
"initial": "50% 50%",
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ObjectPosition",
"parser-grammar": "<position>"
},
"specification": {
"category": "css-images",
"url": "https://www.w3.org/TR/css3-images/#object-position"
}
},
"offset-path": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"animation-wrapper-acceleration": "threaded-only",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::OffsetPath",
"parser-function": "consumeOffsetPath",
"parser-grammar-unused": "none | <ray()> | <path()> | <url> | [ <basic-shape> && <coord-box>? ] | <coord-box>",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form and the strong value representation."
},
"specification": {
"category": "css-motion-path",
"url": "https://drafts.fxtf.org/motion-1/#offset-path-property"
}
},
"offset-distance": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"animation-wrapper-acceleration": "threaded-only",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::OffsetDistance",
"parser-grammar": "<length-percentage>"
},
"specification": {
"category": "css-motion-path",
"url": "https://drafts.fxtf.org/motion-1/#offset-distance-property"
}
},
"offset-position": {
"animation-type": "by computed value",
"initial": "normal",
"values": [
"normal",
"auto"
],
"codegen-properties": {
"animation-wrapper-acceleration": "threaded-only",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::OffsetPosition",
"parser-grammar": "normal | auto | <position>"
},
"specification": {
"category": "css-motion-path",
"url": "https://drafts.fxtf.org/motion-1/#offset-position-property"
}
},
"offset-anchor": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"animation-wrapper-acceleration": "threaded-only",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::OffsetAnchor",
"parser-grammar": "auto | <position>"
},
"specification": {
"category": "css-motion-path",
"url": "https://drafts.fxtf.org/motion-1/#offset-anchor-property"
}
},
"offset-rotate": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"reverse"
],
"codegen-properties": {
"animation-wrapper-acceleration": "threaded-only",
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::OffsetRotate",
"parser-grammar": "[ [ auto | reverse ] || <angle> ]@(type=CSSOffsetRotateValue)"
},
"specification": {
"category": "css-motion-path",
"url": "https://drafts.fxtf.org/motion-1/#offset-rotate-property"
}
},
"offset": {
"codegen-properties": {
"longhands": [
"offset-position",
"offset-path",
"offset-distance",
"offset-rotate",
"offset-anchor"
],
"parser-function": "consumeOffsetShorthand",
"parser-grammar-unused": "[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ] [ / <'offset-anchor'> ]?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-motion-path",
"url": "https://drafts.fxtf.org/motion-1/#offset-shorthand"
}
},
"opacity": {
"animation-type": "by computed value",
"initial": "1",
"codegen-properties": {
"aliases": [
"-webkit-opacity"
],
"animation-wrapper-acceleration": "always",
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Opacity",
"parser-grammar": "<opacity-value>"
},
"status": {
"comment": "Honor -webkit-opacity as a synonym for opacity. This was the only syntax that worked in Safari 1.1, and may be in use on some websites and widgets."
},
"specification": {
"category": "css-color",
"url": "https://www.w3.org/TR/css-color-4/#propdef-opacity"
}
},
"orphans": {
"animation-type": "by computed value",
"inherited": true,
"initial": "auto",
"initial-comment": "Current spec initial value is '2'.",
"codegen-properties": {
"style-extractor-custom": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Orphans",
"parser-grammar": "<integer [1,inf]>"
},
"specification": {
"category": "css-break",
"url": "https://drafts.csswg.org/css-break/#propdef-orphans",
"obsolete-category": "css-22",
"obsolete-url": "https://www.w3.org/TR/CSS22/page.html#propdef-orphans"
}
},
"outline": {
"codegen-properties": {
"longhands": [
"outline-width",
"outline-style",
"outline-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'outline-width'> || <'outline-style'> || <'outline-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#propdef-outline"
}
},
"outline-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"initial-comment": "Current spec initial value is 'auto'.",
"codegen-properties": {
"visited-link-color-support": true,
"color-property": true,
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "outline"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "visitedLinkColor"],
"parser-grammar": "-webkit-focus-ring-color | <color>",
"parser-grammar-comment": "Current spec grammar is 'auto | <color> | <image-1D>'"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#propdef-outline-color"
}
},
"outline-offset": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "outline"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Length<>",
"skip-render-style-getter": true,
"parser-grammar": "<length>"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#propdef-outline-offset"
}
},
"outline-style": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "none",
"values": [
"auto",
"none",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "outline"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "OutlineStyle",
"parser-grammar": "auto | <outline-line-style>"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#typedef-outline-line-style"
}
},
"outline-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"style-builder-custom": "Initial",
"computed-style-initial-constexpr": true,
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "backgroundData", "outline"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineWidth",
"skip-render-style-getter": true,
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#propdef-outline-width"
}
},
"overflow": {
"codegen-properties": {
"longhands": [
"overflow-x",
"overflow-y"
],
"shorthand-pattern": "CoalescingPair",
"parser-function": "consumeOverflowShorthand",
"parser-grammar-unused": "<'overflow-block'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow"
}
},
"overflow-anchor": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"none",
"auto"
],
"codegen-properties": {
"settings-flag": "cssScrollAnchoringEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "OverflowAnchor",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-scroll-anchoring",
"url": "https://www.w3.org/TR/css-scroll-anchoring-1/#propdef-overflow-anchor"
},
"status": "in development"
},
"overflow-wrap": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"break-word",
"anywhere"
],
"codegen-properties": {
"aliases": [
"word-wrap"
],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "OverflowWrap",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#overflow-wrap"
}
},
"overflow-x": {
"animation-type": "discrete",
"initial": "visible",
"values": [
"visible",
"hidden",
"clip",
"scroll",
"auto",
{
"value": "overlay",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "overflow",
"resolver": "horizontal"
},
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Overflow",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-x"
}
},
"overflow-y": {
"animation-type": "discrete",
"initial": "visible",
"values": [
"visible",
"hidden",
"clip",
"scroll",
"auto",
{
"value": "overlay",
"status": "non-standard"
},
{
"value": "-webkit-paged-x",
"status": "non-standard"
},
{
"value": "-webkit-paged-y",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "overflow",
"resolver": "vertical"
},
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Overflow",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-y"
}
},
"overflow-inline": {
"animation-type": "discrete",
"initial": "visible",
"values": [
"visible",
"hidden",
"clip",
"scroll",
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "overflow",
"resolver": "inline"
},
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-inline"
}
},
"overflow-block": {
"animation-type": "discrete",
"initial": "visible",
"values": [
"visible",
"hidden",
"clip",
"scroll",
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "overflow",
"resolver": "block"
},
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-block"
}
},
"overscroll-behavior": {
"codegen-properties": {
"longhands": [
"overscroll-behavior-x",
"overscroll-behavior-y"
],
"settings-flag": "overscrollBehaviorEnabled",
"parser-function": "consumeOverscrollBehaviorShorthand",
"parser-function-comment": "FIXME: Can probably use shorthand-pattern Values2",
"parser-grammar-unused": "[ contain | none | auto ]{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"url": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior"
}
},
"overscroll-behavior-x": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'discrete'",
"initial": "auto",
"values": [
"contain",
"none",
"auto"
],
"codegen-properties": {
"settings-flag": "overscrollBehaviorEnabled",
"logical-property-group": {
"name": "overscroll-behavior",
"resolver": "horizontal"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "OverscrollBehavior",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"url": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-x"
}
},
"overscroll-behavior-y": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'discrete'",
"initial": "auto",
"values": [
"contain",
"none",
"auto"
],
"codegen-properties": {
"settings-flag": "overscrollBehaviorEnabled",
"logical-property-group": {
"name": "overscroll-behavior",
"resolver": "vertical"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "OverscrollBehavior",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"url": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-y"
}
},
"overscroll-behavior-inline": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'discrete'",
"initial": "auto",
"values": [
"contain",
"none",
"auto"
],
"codegen-properties": {
"settings-flag": "overscrollBehaviorEnabled",
"skip-style-builder": true,
"logical-property-group": {
"name": "overscroll-behavior",
"resolver": "inline"
},
"parser-grammar": "<<values>>"
},
"specification": {
"url": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-x"
}
},
"overscroll-behavior-block": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'discrete'",
"initial": "auto",
"values": [
"contain",
"none",
"auto"
],
"codegen-properties": {
"settings-flag": "overscrollBehaviorEnabled",
"skip-style-builder": true,
"logical-property-group": {
"name": "overscroll-behavior",
"resolver": "block"
},
"parser-grammar": "<<values>>"
},
"specification": {
"url": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-x"
}
},
"padding": {
"codegen-properties": {
"longhands": [
"padding-top",
"padding-right",
"padding-bottom",
"padding-left"
],
"accepts-quirky-length": true,
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'padding-top'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/box.html#propdef-padding"
}
},
"padding-block": {
"codegen-properties": {
"longhands": [
"padding-block-start",
"padding-block-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'padding-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#padding-properties"
}
},
"padding-block-end": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-padding-after"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "padding",
"resolver": "block-end"
},
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#padding-properties"
}
},
"padding-block-start": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-padding-before"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "padding",
"resolver": "block-start"
},
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#padding-properties"
}
},
"padding-bottom": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "padding",
"resolver": "bottom"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-has-explicitly-set-policy": "all-author-origin",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "padding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PaddingEdge",
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/box.html#propdef-padding-bottom"
}
},
"padding-inline": {
"codegen-properties": {
"longhands": [
"padding-inline-start",
"padding-inline-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'padding-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#padding-properties"
}
},
"padding-inline-end": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-padding-end"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "padding",
"resolver": "inline-end"
},
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#padding-properties"
}
},
"padding-inline-start": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-padding-start"
],
"skip-style-builder": true,
"logical-property-group": {
"name": "padding",
"resolver": "inline-start"
},
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#padding-properties"
}
},
"padding-left": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "padding",
"resolver": "left"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-has-explicitly-set-policy": "all-author-origin",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "padding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PaddingEdge",
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/box.html#propdef-padding-left"
}
},
"padding-right": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "padding",
"resolver": "right"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-has-explicitly-set-policy": "all-author-origin",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "padding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PaddingEdge",
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/box.html#propdef-padding-right"
}
},
"padding-top": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"logical-property-group": {
"name": "padding",
"resolver": "top"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-has-explicitly-set-policy": "all-author-origin",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "surroundData"],
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "padding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PaddingEdge",
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/box.html#propdef-padding-top"
}
},
"page": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'discrete'",
"initial": "0",
"values": [
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"skip-style-extractor": true,
"skip-computed-style": true,
"parser-grammar": "auto | <custom-ident>"
},
"specification": {
"category": "css-page",
"url": "https://www.w3.org/TR/css-page-3/#propdef-page"
}
},
"page-break-after": {
"codegen-properties": {
"longhands": [
"break-after"
],
"parser-function": "consumePageBreakAfterShorthand",
"parser-grammar-unused": "auto | always | avoid | left | right",
"parser-grammar-comment": "FIXME: For these legacy shorthands, we could consider using the aliased-to mechanism to implement the identifier mappings",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/page.html#propdef-page-break-after"
}
},
"page-break-before": {
"codegen-properties": {
"longhands": [
"break-before"
],
"parser-function": "consumePageBreakBeforeShorthand",
"parser-grammar-unused": "auto | always | avoid | left | right",
"parser-grammar-comment": "FIXME: For these legacy shorthands, we could consider using the aliased-to mechanism to implement the identifier mappings",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/page.html#propdef-page-break-before"
}
},
"page-break-inside": {
"codegen-properties": {
"longhands": [
"break-inside"
],
"parser-function": "consumePageBreakInsideShorthand",
"parser-grammar-unused": "avoid | auto",
"parser-grammar-comment": "FIXME: For these legacy shorthands, we could consider using the aliased-to mechanism to implement the identifier mappings",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/page.html#propdef-page-break-inside"
}
},
"paint-order": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"fill",
"stroke",
"markers"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::SVGPaintOrder",
"parser-function": "consumePaintOrder",
"parser-grammar-unused": "normal | [ fill || stroke || markers ]",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"status": "supported",
"specification": {
"category": "css-text-fill-and-stroke",
"obsolete-category": "svg",
"obsolete-url": "https://www.w3.org/TR/SVG2/painting.html#PaintOrderProperty"
}
},
"pointer-events": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"bounding-box",
"visiblePainted",
"visibleFill",
"visibleStroke",
"visible",
"painted",
"fill",
"stroke",
"all",
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "PointerEvents",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/interact.html#PointerEventsProperty"
}
},
"position": {
"animation-type": "discrete",
"initial": "static",
"values": [
"static",
"relative",
"absolute",
"sticky",
"fixed",
{
"value": "-webkit-sticky",
"status": "deprecated"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "PositionType",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-position-3",
"url": "https://www.w3.org/TR/css-position-3/#propdef-position"
}
},
"quotes": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Quotes",
"parser-function": "consumeQuotes",
"parser-grammar-unused": "auto | none | [ <string> <string> ]+",
"parser-grammar-unused-reason": "Needs support for flattening order group into parent list."
},
"specification": {
"category": "css-content",
"url": "https://www.w3.org/TR/css-content-3/#quotes-property",
"obsolete-category": "css-22",
"obsolete-url": "https://www.w3.org/TR/CSS22/generate.html#propdef-quotes"
}
},
"r": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGRadius",
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/geometry.html#R"
}
},
"resize": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"both",
"horizontal",
"vertical",
"block",
"inline",
{
"value": "-internal-textarea-auto",
"status": "internal"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::Resize",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#propdef-resize"
}
},
"right": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "inset",
"resolver": "right"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "inset"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::InsetEdge",
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-position-3",
"url": "https://drafts.csswg.org/css-position-3/#insets"
}
},
"ruby-align": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"inherited": true,
"initial": "space-around",
"values": [
"start",
"center",
"space-between",
"space-around"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "RubyAlign",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-ruby",
"url": "https://www.w3.org/TR/css-ruby-1/#propdef-ruby-align"
}
},
"ruby-overhang": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "RubyOverhang",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-ruby",
"url": "https://www.w3.org/TR/css-ruby-1/#propdef-ruby-overhang"
}
},
"rx": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGRadiusComponent",
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/geometry.html#RX"
}
},
"ry": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGRadiusComponent",
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/geometry.html#RY"
}
},
"shape-rendering": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"optimizeSpeed",
"crispedges",
"geometricPrecision"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "ShapeRendering",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#ShapeRenderingProperty"
}
},
"stop-color": {
"animation-type": "by computed value",
"initial": "black",
"codegen-properties": {
"color-property": true,
"computed-style-storage-path": ["m_svgData", "stopData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"parser-grammar": "<color>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/pservers.html#StopColorProperty"
}
},
"stop-opacity": {
"animation-type": "by computed value",
"initial": "1",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_svgData", "stopData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Opacity",
"parser-grammar": "<opacity-value>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/pservers.html#StopOpacityProperty"
}
},
"stroke": {
"animation-type": "by computed value",
"inherited": true,
"initial": "none",
"values": [
"none",
{
"value": "context-fill",
"status": "unimplemented"
},
{
"value": "context-stroke",
"status": "unimplemented"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "strokeData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGPaint",
"computed-style-visited-link-storage-path": ["m_svgData", "strokeData"],
"color-property": true,
"color-property-traits-color-custom": true,
"color-property-traits-visited-link-color-custom": true,
"visited-link-color-support": true,
"parser-grammar": "none | <color> | [ <url> [ none | <color> ]? ]",
"parser-grammar-comment": "Current spec grammar is 'none | <color> | [ <url> [ none | <color> ]? ] | context-fill | context-stroke'",
"comment": "Also specified (with different grammar) in CSS Fill and Stroke Module Level 3"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#SpecifyingStrokePaint"
}
},
"stroke-dasharray": {
"animation-type": "see prose",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"animation-wrapper-requires-non-additive-or-cumulative-interpolation": true,
"computed-style-name-for-methods": "StrokeDashArray",
"computed-style-storage-path": ["m_svgData", "strokeData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGStrokeDasharray",
"parser-function": "consumeStrokeDasharray",
"parser-function-allows-number-or-integer-input": true,
"parser-grammar-unused": "none | [ [ <length-percentage [0,inf] unitless-zero=forbidden> | <number [0,inf]> ]+ ]#",
"parser-grammar-unused-reason": "Needs support for stacked multipliers.",
"parser-grammar-comment": "Also specified (with different grammar) in CSS Fill and Stroke Module Level 3"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#StrokeDashing"
}
},
"stroke-dashoffset": {
"animation-type": "by computed value",
"inherited": true,
"initial": "0",
"codegen-properties": {
"computed-style-name-for-methods": "StrokeDashOffset",
"computed-style-storage-path": ["m_svgData", "strokeData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGStrokeDashoffset",
"parser-grammar": "<length-percentage> | <number>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#StrokeDashoffsetProperty"
}
},
"stroke-linecap": {
"animation-type": "discrete",
"inherited": true,
"initial": "butt",
"values": [
"butt",
"round",
"square"
],
"codegen-properties": {
"computed-style-name-for-methods": "CapStyle",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "LineCap",
"parser-grammar": "<<values>>"
},
"status": "supported",
"specification": {
"category": "css-text-fill-and-stroke",
"url": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-linecap",
"obsolete-category": "svg",
"obsolete-url": "https://svgwg.org/svg2-draft/painting.html#LineCaps"
}
},
"stroke-linejoin": {
"animation-type": "discrete",
"inherited": true,
"initial": "miter",
"values": [
"miter",
"round",
"bevel"
],
"codegen-properties": {
"computed-style-name-for-methods": "JoinStyle",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "LineJoin",
"parser-grammar": "<<values>>",
"comment": "FIXME: Does not match the specification in either SVG2 or CSS Fill and Stroke Module Level 3"
},
"status": "supported",
"specification": {
"category": "css-text-fill-and-stroke",
"url": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-linejoin",
"obsolete-category": "svg",
"obsolete-url": "https://svgwg.org/svg2-draft/painting.html#StrokeLinejoinProperty"
}
},
"stroke-miterlimit": {
"animation-type": "by computed value",
"inherited": true,
"initial": "4",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-name-for-methods": "StrokeMiterLimit",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::StrokeMiterlimit",
"parser-grammar": "<number [0,inf]>",
"parser-grammar-comment": "Current spec grammar is '<number [1,inf]>'."
},
"status": "supported",
"specification": {
"category": "css-text-fill-and-stroke",
"url": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-miterlimit",
"obsolete-category": "svg",
"obsolete-url": "https://svgwg.org/svg2-draft/painting.html#StrokeMiterlimitProperty"
}
},
"stroke-opacity": {
"animation-type": "by computed value",
"inherited": true,
"initial": "1",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_svgData", "strokeData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Opacity",
"parser-grammar": "<opacity-value>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/painting.html#StrokeOpacityProperty"
}
},
"stroke-color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "transparent",
"codegen-properties": {
"animation-wrapper": "StyleTypeWrapper",
"animation-wrapper-comment": "FIXME: Why doesn't this use VisitedAffectedStyleTypeWrapper?",
"animation-wrapper-requires-override-parameters": ["CSSPropertyID::CSSPropertyStrokeColor", "&ComputedStyle::strokeColor", "&ComputedStyle::setStrokeColor"],
"computed-style-has-explicitly-set-policy": "value-only",
"computed-style-has-explicitly-set-storage-path": ["m_inheritedRareData"],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_inheritedRareData"],
"visited-link-color-support": true,
"color-property": true,
"parser-grammar": "<color>"
},
"status": "supported",
"specification": {
"category": "css-text-fill-and-stroke",
"url": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-color"
}
},
"stroke-width": {
"animation-type": "by computed value",
"inherited": true,
"initial": "1px",
"codegen-properties": {
"computed-style-has-explicitly-set-policy": "value-only",
"computed-style-has-explicitly-set-storage-path": ["m_inheritedRareData"],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::StrokeWidth",
"parser-grammar": "<length-percentage [0,inf]> | <number [0,inf]>"
},
"status": "supported",
"specification": {
"category": "css-text-fill-and-stroke",
"url": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-width",
"obsolete-category": "svg",
"obsolete-url": "https://svgwg.org/svg2-draft/painting.html#StrokeWidthProperty"
}
},
"speak-as": {
"animation-type": "not animatable",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"spell-out",
"digits",
"literal-punctuation",
"no-punctuation",
{
"value": "none",
"status": "non-standard"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::SpeakAs",
"parser-grammar": "none | [ [ normal | spell-out ] || digits || [ literal-punctuation | no-punctuation ] ]@(no-single-item-opt)",
"parser-grammar-comment": "Current spec grammar is 'normal | [ spell-out || digits || [ literal-punctuation | no-punctuation ] ]'."
},
"specification": {
"category": "css-speech",
"url": "https://www.w3.org/TR/css-speech-1/#propdef-speak-as"
}
},
"table-layout": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"fixed"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TableLayoutType",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/tables.html#propdef-table-layout"
}
},
"tab-size": {
"animation-type": "by computed value",
"inherited": true,
"initial": "8",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TabSize",
"parser-grammar": "<number [0,inf]> | <length [0,inf]>"
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-3/#tab-size-property"
}
},
"text-align": {
"animation-type": "discrete",
"inherited": true,
"initial": "start",
"values": [
"start",
"end",
"left",
"right",
"center",
"justify",
"match-parent",
{
"value": "justify-all",
"status": "unimplemented"
},
{
"value": "-webkit-auto",
"status": "non-standard"
},
{
"value": "-webkit-left",
"status": "non-standard"
},
{
"value": "-webkit-right",
"status": "non-standard"
},
{
"value": "-webkit-center",
"status": "non-standard"
},
{
"value": "-webkit-match-parent",
"status": "non-standard"
},
{
"value": "-internal-th-center",
"status": "internal"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::TextAlign",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#text-align"
}
},
"text-align-last": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"start",
"end",
"left",
"right",
"center",
"justify",
"match-parent"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::TextAlignLast",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#text-align-last-property"
}
},
"text-anchor": {
"animation-type": "discrete",
"inherited": true,
"initial": "start",
"values": [
"start",
"middle",
"end"
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "TextAnchor",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/text.html#TextAnchorProperty"
}
},
"text-group-align": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"start",
"end",
"left",
"right",
"center"
],
"codegen-properties": {
"settings-flag": "cssTextGroupAlignEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextGroupAlign",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#text-group-align-property"
},
"status": "in development"
},
"text-indent": {
"animation-type": "by computed value",
"inherited": true,
"initial": "0px",
"values": [
"hanging",
"each-line"
],
"codegen-properties": {
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TextIndent",
"parser-grammar": "<length-percentage> && hanging? && each-line?"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#text-indent-property",
"obsolete-category": "css-22",
"obsolete-url": "https://www.w3.org/TR/CSS22/text.html#propdef-text-indent"
}
},
"text-justify": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none",
"inter-word",
"inter-character",
{
"value": "distribute",
"status": "deprecated",
"comment": "computes to -inter-character",
"url": "https://www.w3.org/TR/css-text-3/#valdef-text-justify-distribute"
}
],
"codegen-properties": {
"settings-flag": "cssTextJustifyEnabled",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextJustify",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#text-justify"
}
},
"text-overflow": {
"animation-type": "discrete",
"initial": "clip",
"values": [
"clip",
"ellipsis"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextOverflow",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#text-overflow"
}
},
"text-shadow": {
"animation-type": "see prose",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TextShadows",
"parser-function": "consumeTextShadow",
"parser-grammar-unused": "none | [ <color>? && <length>{2,3} ]#",
"parser-grammar-unused-reason": "Needs support for the strong value representation.",
"parser-grammar-comment": "FIXME: Current implementation is a bit closer to box-shadow, where the third (and optional) length representing blur radius is non-negative."
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-shadow-property"
}
},
"text-transform": {
"animation-type": "discrete",
"inherited": true,
"initial": "none",
"values": [
"none",
"capitalize",
"uppercase",
"lowercase",
"full-size-kana",
"full-width",
{
"value": "math-auto",
"settings-flag": "cssTextTransformMathAutoEnabled",
"url": "https://w3c.github.io/mathml-core/#math-auto-transform"
}
],
"codegen-properties": {
"aliases": [
"-epub-text-transform"
],
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::TextTransform",
"parser-grammar": "none | [ [ capitalize | uppercase | lowercase ] || full-width || full-size-kana ]@(no-single-item-opt) | math-auto@(settings-flag=cssTextTransformMathAutoEnabled)"
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text/#text-transform-property"
}
},
"text-wrap": {
"inherited": true,
"codegen-properties": {
"longhands": [
"text-wrap-mode",
"text-wrap-style"
],
"parser-function": "consumeTextWrapShorthand",
"parser-grammar-unused": "<'text-wrap-mode'> || <'text-wrap-style'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#text-wrap-shorthand"
}
},
"text-wrap-mode": {
"animation-type": "discrete",
"inherited": true,
"initial": "wrap",
"values": [
"wrap",
"nowrap"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "TextWrapMode",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#text-wrap-mode"
}
},
"text-wrap-style": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"balance",
"stable",
{
"value": "pretty",
"settings-flag": "cssTextWrapPrettyEnabled"
},
{
"value": "avoid-orphans",
"status": "unimplemented"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "TextWrapStyle",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#text-wrap-style"
}
},
"top": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "inset",
"resolver": "top"
},
"accepts-quirky-length": true,
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "surroundData", "inset"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::InsetEdge",
"parser-grammar": "auto | <length-percentage anchor=allowed anchor-size=allowed>"
},
"specification": {
"category": "css-position-3",
"url": "https://drafts.csswg.org/css-position-3/#insets"
}
},
"transition": {
"codegen-properties": {
"aliases": [
"-webkit-transition"
],
"longhands": [
"transition-property",
"transition-duration",
"transition-timing-function",
"transition-delay",
"transition-behavior"
],
"parser-function": "consumeTransitionShorthand",
"parser-shorthand": "transitionShorthandForParsing",
"parser-grammar-unused": "<single-transition>#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-transitions",
"url": "https://www.w3.org/TR/css3-transitions/#transition-shorthand-property"
}
},
"transition-behavior": {
"animation-type": "not animatable",
"initial": "normal",
"values": [
"normal",
"allow-discrete"
],
"codegen-properties": {
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Behavior",
"coordinated-value-list-property-item-type": "TransitionBehavior",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transitions"],
"separator": ",",
"parser-grammar": "<transition-behavior-value>#"
},
"specification": {
"category": "css-transitions",
"url": "https://drafts.csswg.org/css-transitions-2/#transition-behavior-property"
}
},
"transition-delay": {
"animation-type": "not animatable",
"initial": "0s",
"codegen-properties": {
"aliases": [
"-webkit-transition-delay"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Delay",
"coordinated-value-list-property-item-type": "Style::SingleTransitionDelay",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transitions"],
"separator": ",",
"parser-grammar": "<time>#"
},
"specification": {
"category": "css-transitions",
"url": "https://www.w3.org/TR/css3-transitions/#transition-delay"
}
},
"transition-duration": {
"animation-type": "not animatable",
"initial": "0s",
"codegen-properties": {
"aliases": [
"-webkit-transition-duration"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Duration",
"coordinated-value-list-property-item-type": "Style::SingleTransitionDuration",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transitions"],
"separator": ",",
"parser-grammar": "<time [0,inf]>#"
},
"specification": {
"category": "css-transitions",
"url": "https://www.w3.org/TR/css3-transitions/#transition-duration"
}
},
"transition-property": {
"animation-type": "not animatable",
"initial": "all",
"values": [
"none",
"all"
],
"codegen-properties": {
"aliases": [
"-webkit-transition-property"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Property",
"coordinated-value-list-property-item-type": "Style::SingleTransitionProperty",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transitions"],
"parser-grammar": "none | <single-transition-property>#"
},
"specification": {
"category": "css-transitions",
"url": "https://www.w3.org/TR/css3-transitions/#transition-property"
}
},
"transition-timing-function": {
"animation-type": "not animatable",
"initial": "ease",
"values": [
"linear",
"ease",
"ease-in",
"ease-out",
"ease-in-out",
"step-start",
"step-end"
],
"codegen-properties": {
"aliases": [
"-webkit-transition-timing-function"
],
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "TimingFunction",
"coordinated-value-list-property-item-type": "Style::EasingFunction",
"computed-style-storage-container": "opaque",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transitions"],
"parser-grammar": "<easing-function>#"
},
"specification": {
"category": "css-transitions",
"url": "https://www.w3.org/TR/css3-transitions/#transition-timing-function"
}
},
"unicode-bidi": {
"animation-type": "not animatable",
"initial": "normal",
"values": [
"normal",
"embed",
"isolate",
"bidi-override",
"isolate-override",
"plaintext",
{
"value": "-webkit-isolate",
"status": "deprecated"
},
{
"value": "-webkit-isolate-override",
"status": "deprecated"
},
{
"value": "-webkit-plaintext",
"status": "deprecated"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "UnicodeBidi",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-writing-modes",
"url": "https://www.w3.org/TR/css-writing-modes-3/#propdef-unicode-bidi"
}
},
"vector-effect": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"non-scaling-stroke",
{
"value": "non-scaling-size",
"status": "unimplemented"
},
{
"value": "non-rotation",
"status": "unimplemented"
},
{
"value": "fixed-position",
"status": "unimplemented"
}
],
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "VectorEffect",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/coords.html#VectorEffectProperty"
}
},
"vertical-align": {
"animation-type": "by computed value",
"initial": "baseline",
"values": [
"baseline",
"sub",
"super",
"top",
"text-top",
"middle",
"bottom",
"text-bottom",
{
"value": "-webkit-baseline-middle",
"status": "non-standard"
}
],
"codegen-properties": {
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::VerticalAlign",
"parser-grammar": "<<values>> | <length-percentage>",
"parser-grammar-comment": "Current spec has 'vertical-align' specified as a shorthand with grammar '[ first | last] || <<'alignment-baseline'>> || <<'baseline-shift'>>'"
},
"specification": {
"category": "css-inline",
"url": "https://drafts.csswg.org/css-inline/#propdef-vertical-align",
"obsolete-category": "css-22",
"obsolete-url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-vertical-align"
}
},
"visibility": {
"animation-type": "discrete",
"inherited": true,
"initial": "visible",
"values": [
"visible",
"hidden",
"collapse"
],
"codegen-properties": {
"animation-wrapper": "VisibilityWrapper",
"animation-wrapper-requires-override-parameters": [],
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "Visibility",
"parser-grammar": "<<values>>",
"fast-path-inherited": true
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visufx.html#propdef-visibility"
}
},
"white-space": {
"inherited": true,
"codegen-properties": {
"longhands": [
"white-space-collapse",
"text-wrap-mode"
],
"parser-function": "consumeWhiteSpaceShorthand",
"parser-grammar-unused": "normal | pre | pre-wrap | pre-line | [ <'white-space-collapse'> || <'text-wrap-mode'> ]",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#white-space-property"
}
},
"white-space-collapse": {
"animation-type": "discrete",
"inherited": true,
"initial": "collapse",
"values": [
"collapse",
{
"value": "discard",
"status": "unimplemented"
},
"preserve",
"preserve-breaks",
{
"value": "preserve-spaces",
"status": "unimplemented"
},
"break-spaces"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "WhiteSpaceCollapse",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-4/#white-space-collapsing"
}
},
"widows": {
"animation-type": "by computed value",
"inherited": true,
"initial": "auto",
"initial-comment": "Current spec initial value is '2'.",
"codegen-properties": {
"style-extractor-custom": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Widows",
"parser-grammar": "<integer [1,inf]>"
},
"specification": {
"category": "css-break",
"url": "https://drafts.csswg.org/css-break/#propdef-widows",
"obsolete-category": "css-22",
"obsolete-url": "https://www.w3.org/TR/CSS22/page.html#propdef-widows"
}
},
"width": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"logical-property-group": {
"name": "size",
"resolver": "horizontal"
},
"accepts-quirky-length": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PreferredSize",
"style-extractor-custom": true,
"parser-grammar": "<width-or-height>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visudet.html#the-width-property"
}
},
"will-change": {
"animation-type": "not animatable",
"initial": "auto",
"values": [
"auto",
"scroll-position",
"contents"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::WillChange",
"parser-function": "consumeWillChange",
"parser-grammar-unused": "auto | [ scroll-position | contents | <custom-ident excluding=will-change,none,all,auto,scroll-position,contents> ]#",
"parser-grammar-unused-reason": "Needs support for CSS property names in the value of a property."
},
"specification": {
"category": "css-will-change",
"url": "https://www.w3.org/TR/css-will-change/#propdef-will-change"
}
},
"word-break": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"break-all",
"keep-all",
{
"value": "manual",
"status": "unimplemented"
},
{
"value": "auto-phrase",
"settings-flag": "cssWordBreakAutoPhraseEnabled"
},
"break-word"
],
"codegen-properties": {
"aliases": [
"-epub-word-break"
],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "WordBreak",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#word-break"
}
},
"word-spacing": {
"animation-type": "by computed value",
"inherited": true,
"initial": "normal",
"values": [
"normal"
],
"codegen-properties": {
"accepts-quirky-length": true,
"animation-wrapper-requires-getter": "computedWordSpacing",
"animation-wrapper-requires-setter": "setWordSpacingFromAnimation",
"style-builder-custom": "All",
"style-extractor-custom": true,
"font-property": true,
"high-priority": true,
"sink-priority": true,
"computed-style-getter": "computedWordSpacing",
"computed-style-storage-name": "wordSpacing",
"computed-style-storage-path": ["m_inheritedData", "fontData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::WordSpacing",
"parser-grammar": "normal | <length-percentage>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text/#word-spacing-property"
}
},
"x": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGCoordinateComponent",
"parser-grammar": "<length-percentage>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/geometry.html#X"
}
},
"y": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"computed-style-storage-path": ["m_svgData", "layoutData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::SVGCoordinateComponent",
"parser-grammar": "<length-percentage>"
},
"specification": {
"category": "svg",
"url": "https://svgwg.org/svg2-draft/geometry.html#Y"
}
},
"z-index": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"computed-style-changed-for-animation-custom": true,
"computed-style-name-for-methods": "SpecifiedZIndex",
"computed-style-initial-constexpr": true,
"computed-style-getter-custom": true,
"computed-style-setter-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::ZIndex",
"parser-grammar": "auto | <integer>"
},
"specification": {
"category": "css-22",
"url": "https://www.w3.org/TR/CSS22/visuren.html#propdef-z-index"
}
},
"appearance": {
"animation-type": "discrete",
"initial": "none",
"values": [
"checkbox",
"radio",
"push-button",
"square-button",
"button",
"listbox",
"menulist",
"menulist-button",
"meter",
"progress-bar",
"slider-horizontal",
"slider-vertical",
"searchfield",
"textfield",
"textarea",
{
"value": "base",
"settings-flag": "cssAppearanceBaseEnabled"
},
"auto",
"none",
{
"value": "-apple-pay-button",
"status": "non-standard",
"enable-if": "ENABLE_APPLE_PAY"
},
{
"value": "default-button",
"status": "non-standard",
"settings-flag": "useSystemAppearance"
},
{
"value": "attachment",
"status": "non-standard",
"settings-flag": "DeprecatedGlobalSettings::attachmentElementEnabled()",
"enable-if": "ENABLE_ATTACHMENT_ELEMENT"
},
{
"value": "borderless-attachment",
"settings-flag": "DeprecatedGlobalSettings::attachmentElementEnabled()",
"enable-if": "ENABLE_ATTACHMENT_ELEMENT"
}
],
"codegen-properties": {
"aliases": [
"-webkit-appearance"
],
"computed-style-setter-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "StyleAppearance",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-ui",
"url": "https://www.w3.org/TR/css-ui-4/#propdef-appearance"
}
},
"aspect-ratio": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::AspectRatio",
"parser-grammar": "auto || <ratio>"
},
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#aspect-ratio"
}
},
"contain-intrinsic-size": {
"codegen-properties": {
"longhands": [
"contain-intrinsic-width",
"contain-intrinsic-height"
],
"shorthand-pattern": "CoalescingPair",
"parser-function": "consumeContainIntrinsicSizeShorthand",
"parser-function-comment": "FIXME: Can probably use 2Value",
"parser-grammar-unused": "<'contain-intrinsic-width'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
}
},
"contain-intrinsic-height": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "contain-intrinsic-size",
"resolver": "vertical"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ContainIntrinsicSize",
"parser-grammar": "[ auto? [ none | <length [0,inf]> ] ]@(type=CSSValuePair)",
"parser-exported": true
},
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
}
},
"contain-intrinsic-width": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "contain-intrinsic-size",
"resolver": "horizontal"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ContainIntrinsicSize",
"parser-grammar": "[ auto? [ none | <length [0,inf]> ] ]@(type=CSSValuePair)",
"parser-exported": true
},
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
}
},
"contain-intrinsic-block-size": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "contain-intrinsic-size",
"resolver": "block"
},
"parser-grammar": "[ auto? [ none | <length [0,inf]> ] ]@(type=CSSValuePair)"
},
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
}
},
"contain-intrinsic-inline-size": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "contain-intrinsic-size",
"resolver": "inline"
},
"parser-grammar": "[ auto? [ none | <length [0,inf]> ] ]@(type=CSSValuePair)"
},
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
}
},
"contain": {
"animation-type": "not animatable",
"initial": "none",
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::Contain",
"parser-grammar": "none | strict | content | [ [size | inline-size] || layout || style || paint ]@(no-single-item-opt)"
},
"specification": {
"category": "css-contain",
"url": "https://drafts.csswg.org/css-contain-2/#contain-property"
}
},
"container": {
"codegen-properties": {
"longhands": [
"container-name",
"container-type"
],
"parser-function": "consumeContainerShorthand",
"parser-grammar-unused": "<'container-name'> [ / <'container-type'> ]?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-contain",
"url": "https://drafts.csswg.org/css-contain-3/#container-queries"
}
},
"container-name": {
"animation-type": "not animatable",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-name-for-methods": "ContainerNames",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ContainerNames",
"parser-grammar": "none | <single-container-name>+@(no-single-item-opt)"
},
"specification": {
"category": "css-contain",
"url": "https://drafts.csswg.org/css-contain-3/#container-name"
}
},
"container-type": {
"animation-type": "not animatable",
"initial": "normal",
"values": [
"normal",
"size",
"inline-size"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ContainerType",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-contain",
"url": "https://drafts.csswg.org/css-contain-3/#container-queries"
}
},
"content-visibility": {
"animation-type": "see prose",
"initial": "visible",
"values": [
"visible",
"hidden",
"auto"
],
"codegen-properties": {
"animation-wrapper": "NonNormalizedDiscreteWrapper<ContentVisibility>",
"animation-wrapper-requires-non-normalized-discrete-interpolation": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ContentVisibility",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-content-visibility",
"url": "https://www.w3.org/TR/css-contain-2/#content-visibility"
}
},
"backface-visibility": {
"animation-type": "discrete",
"initial": "visible",
"values": [
"visible",
"hidden"
],
"codegen-properties": {
"aliases": [
"-webkit-backface-visibility"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BackfaceVisibility",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#propdef-backface-visibility"
}
},
"-webkit-background-clip": {
"animation-type": "not animatable (legacy)",
"initial": "border-box",
"codegen-properties": {
"cascade-alias": "background-clip",
"skip-style-builder": true,
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Clip",
"coordinated-value-list-property-item-type": "FillBox",
"parser-grammar": "<single-webkit-background-clip>#"
}
},
"-webkit-background-origin": {
"animation-type": "not animatable (legacy)",
"initial": "padding-box",
"codegen-properties": {
"cascade-alias": "background-origin",
"skip-style-builder": true,
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Origin",
"coordinated-value-list-property-item-type": "FillBox",
"parser-grammar": "<single-webkit-background-origin>#"
}
},
"-webkit-background-size": {
"codegen-properties": {
"longhands": [
"background-size"
],
"shorthand-pattern": "Single",
"parser-function": "consumeWebkitBackgroundSizeShorthand",
"parser-grammar-unused": "<single-webkit-background-size>#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"status": {
"comment": "FIXME: Should be a cascade-alias like the other -webkit-background-* properties, rather than a shorthand. Differs from background-size only in the interpretation of a single value: '-webkit-background-size: l;' is equivalent to 'background-size: l l;' whereas 'background-size: l;' is equivalent to 'background-size: l auto;'"
}
},
"-webkit-border-horizontal-spacing": {
"animation-type": "by computed value",
"inherited": true,
"initial": "0px",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitBorderSpacing",
"parser-grammar": "<length [0,inf]>"
},
"status": "non-standard"
},
"-webkit-border-image": {
"codegen-properties": {
"longhands": [
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat"
],
"parser-function": "consumeWebkitBorderImageShorthand",
"parser-grammar-unused": "<-webkit-border-image>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"status": {
"comment": "Differs from border-image in that it always includes the 'fill' keyword in 'border-image-slice', and makes length values in 'border-image-width' override the corresponding 'border-*-width'."
}
},
"-webkit-border-radius": {
"codegen-properties": {
"longhands": [
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius"
],
"parser-function": "consumeWebkitBorderRadiusShorthand",
"parser-grammar-unused": "<length-percentage [0,inf]>{1,4} [ / <length-percentage [0,inf]>{1,4} ]?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"status": {
"comment": "Differs from border-radius only in the interpretation of a value consisting of two lengths: '-webkit-border-radius: l1 l2;' is equivalent to 'border-radius: l1 / l2;'."
}
},
"-webkit-border-vertical-spacing": {
"animation-type": "by computed value",
"inherited": true,
"initial": "0px",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitBorderSpacing",
"parser-grammar": "<length [0,inf]>"
},
"status": "non-standard"
},
"-webkit-box-align": {
"animation-type": "not animatable (legacy)",
"initial": "stretch",
"values": [
"stretch",
"start",
"end",
"center",
"baseline"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "deprecatedFlexibleBox"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BoxAlignment",
"parser-grammar": "<<values>>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-align"
}
},
"-webkit-box-direction": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"reverse"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "BoxDirection",
"parser-grammar": "<<values>>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-direction"
}
},
"-webkit-box-flex": {
"animation-type": "not animatable (legacy)",
"initial": "0",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "deprecatedFlexibleBox"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitBoxFlex",
"parser-grammar": "<number>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-flex"
}
},
"-webkit-box-flex-group": {
"animation-type": "not animatable (legacy)",
"initial": "1",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "deprecatedFlexibleBox"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitBoxFlexGroup",
"parser-grammar": "<integer [0,inf]>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-flex-group"
}
},
"-webkit-box-lines": {
"animation-type": "not animatable (legacy)",
"initial": "single",
"values": [
"single",
"multiple"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "deprecatedFlexibleBox"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BoxLines",
"parser-grammar": "<<values>>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-lines"
}
},
"-webkit-box-ordinal-group": {
"animation-type": "not animatable (legacy)",
"initial": "1",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "deprecatedFlexibleBox"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitBoxOrdinalGroup",
"parser-grammar": "<integer [1,inf]>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-ordinal-group"
}
},
"-webkit-box-orient": {
"animation-type": "not animatable (legacy)",
"initial": "horizontal",
"values": [
"horizontal",
"vertical",
"inline-axis",
"block-axis"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "deprecatedFlexibleBox"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BoxOrient",
"parser-grammar": "<<values>>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-orient"
}
},
"-webkit-box-pack": {
"animation-type": "not animatable (legacy)",
"initial": "start",
"values": [
"start",
"end",
"center",
"justify"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "deprecatedFlexibleBox"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BoxPack",
"parser-grammar": "<<values>>"
},
"status": "obsolete",
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#propdef-box-pack"
}
},
"-webkit-box-reflect": {
"animation-type": "not animatable (legacy)",
"initial": "none",
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::WebkitBoxReflect",
"parser-function": "consumeWebkitBoxReflect",
"parser-grammar-unused": "none | [ [ above | below | left | right ] <length-percentage>? <border-image>? ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals and property references."
},
"status": "non-standard"
},
"-webkit-box-shadow": {
"animation-type": "see prose",
"initial": "none",
"codegen-properties": {
"cascade-alias": "box-shadow",
"skip-style-builder": true,
"parser-function": "consumeWebkitBoxShadow",
"parser-grammar-unused": "none | <shadow>#",
"parser-grammar-unused-reason": "Needs support for the strong value representation.",
"comment": "Implementation does not actually differ from box-shadow as described in status."
},
"status": {
"comment": "Differs from box-shadow in its treatment of blur radii > 8px. Let -webkit-box-shadow blur, radius be w_r and box-shadow blur radius be b_r. For w_r > 8px, b_r = 8 + 4 * sqrt((w_r - 8) / 2)."
}
},
"-webkit-column-axis": {
"animation-type": "not animatable (legacy)",
"initial": "auto",
"values": [
"horizontal",
"vertical",
"auto"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ColumnAxis",
"parser-grammar": "<<values>>"
},
"status": {
"status": "non-standard",
"comment": "Added in https://bugs.webkit.org/show_bug.cgi?id=71028"
}
},
"-webkit-column-break-after": {
"codegen-properties": {
"longhands": [
"break-after"
],
"parser-function": "consumeWebkitColumnBreakAfterShorthand",
"parser-grammar-unused": "auto | always | avoid",
"parser-grammar-comment": "FIXME: For these legacy shorthands, we could consider using the aliased-to mechanism to implement the identifier mappings",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#break-after"
},
"status": {
"status": "non-standard",
"comment": "Use break-after instead."
}
},
"-webkit-column-break-before": {
"codegen-properties": {
"longhands": [
"break-before"
],
"parser-function": "consumeWebkitColumnBreakBeforeShorthand",
"parser-grammar-unused": "auto | always | avoid",
"parser-grammar-comment": "FIXME: For these legacy shorthands, we could consider using the aliased-to mechanism to implement the identifier mappings",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#break-before"
},
"status": {
"status": "non-standard",
"comment": "Use break-before instead."
}
},
"-webkit-column-break-inside": {
"codegen-properties": {
"longhands": [
"break-inside"
],
"parser-function": "consumeWebkitColumnBreakInsideShorthand",
"parser-grammar-unused": "avoid | auto",
"parser-grammar-comment": "FIXME: For these legacy shorthands, we could consider using the aliased-to mechanism to implement the identifier mappings",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#break-inside"
},
"status": {
"status": "non-standard",
"comment": "Use break-inside instead."
}
},
"column-count": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"aliases": [
"-webkit-column-count"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::ColumnCount",
"parser-grammar": "auto | <integer [1,inf]>",
"parser-exported": true
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#column-count"
}
},
"column-fill": {
"animation-type": "discrete",
"initial": "balance",
"values": [
"auto",
"balance"
],
"codegen-properties": {
"aliases": [
"-webkit-column-fill"
],
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ColumnFill",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#column-fill"
}
},
"column-gap": {
"animation-type": "by computed value",
"initial": "normal",
"codegen-properties": {
"aliases": [
"grid-column-gap",
"-webkit-column-gap"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GapGutter",
"parser-grammar": "<gap-gutter>",
"parser-exported": true
},
"specification": {
"category": "css-align",
"url": "https://drafts.csswg.org/css-align/#column-row-gap"
}
},
"row-gap": {
"animation-type": "by computed value",
"initial": "normal",
"codegen-properties": {
"aliases": [
"grid-row-gap"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GapGutter",
"parser-grammar": "<gap-gutter>",
"parser-exported": true
},
"specification": {
"category": "css-align",
"url": "https://drafts.csswg.org/css-align/#column-row-gap"
}
},
"gap": {
"codegen-properties": {
"aliases": [
"grid-gap"
],
"longhands": [
"row-gap",
"column-gap"
],
"shorthand-pattern": "CoalescingPair",
"parser-function": "consumeAlignShorthand",
"parser-grammar-unused": "<'row-gap'> <'column-gap'>?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-align",
"url": "https://drafts.csswg.org/css-align/#gap-shorthand"
}
},
"-webkit-column-progression": {
"animation-type": "not animatable (legacy)",
"initial": "normal",
"values": [
"normal",
"reverse"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ColumnProgression",
"parser-grammar": "<<values>>"
},
"status": {
"status": "non-standard",
"comment": "Added in https://bugs.webkit.org/show_bug.cgi?id=89315"
}
},
"column-rule": {
"codegen-properties": {
"aliases": [
"-webkit-column-rule"
],
"longhands": [
"column-rule-width",
"column-rule-style",
"column-rule-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css-multicol-1/#cr"
}
},
"column-rule-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"aliases": [
"-webkit-column-rule-color"
],
"visited-link-color-support": true,
"color-property": true,
"computed-style-storage-name": "color",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol", "columnRule"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "multiCol"],
"parser-grammar": "<color>"
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#column-rule-color"
}
},
"column-rule-style": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"hidden",
"inset",
"groove",
"outset",
"ridge",
"dotted",
"dashed",
"solid",
"double"
],
"codegen-properties": {
"aliases": [
"-webkit-column-rule-style"
],
"computed-style-storage-name": "style",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol", "columnRule"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "BorderStyle",
"parser-grammar": "<line-style>"
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#column-rule-style"
}
},
"column-rule-width": {
"animation-type": "by computed value",
"initial": "medium",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"aliases": [
"-webkit-column-rule-width"
],
"style-builder-custom": "Initial",
"computed-style-initial-constexpr": true,
"computed-style-initial-custom": true,
"computed-style-storage-name": "width",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol", "columnRule"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::LineWidth",
"skip-render-style-getter": true,
"parser-grammar": "<line-width>"
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#column-rule-width"
}
},
"column-span": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"all"
],
"codegen-properties": {
"aliases": [
"-webkit-column-span"
],
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ColumnSpan",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#column-span0"
}
},
"column-width": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"aliases": [
"-webkit-column-width"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "multiCol"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::ColumnWidth",
"parser-grammar": "auto | <length [0,inf]>",
"parser-exported": true
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#column-width"
}
},
"columns": {
"codegen-properties": {
"aliases": [
"-webkit-columns"
],
"longhands": [
"column-width",
"column-count"
],
"parser-function": "consumeColumnsShorthand",
"parser-grammar-unused": "<'column-width'> || <'column-count'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-multicol",
"url": "https://www.w3.org/TR/css3-multicol/#columns"
}
},
"-webkit-box-decoration-break": {
"animation-type": "discrete",
"initial": "slice",
"values": [
"clone",
"slice"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "boxData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BoxDecorationBreak",
"parser-grammar": "<<values>>"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-break",
"url": "https://www.w3.org/TR/css-break-3/#propdef-box-decoration-break"
}
},
"mix-blend-mode": {
"animation-type": "discrete",
"initial": "normal",
"values": [
"normal",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"hue",
"saturation",
"color",
"luminosity",
"plus-darker",
"plus-lighter"
],
"codegen-properties": {
"computed-style-name-for-methods": "BlendMode",
"computed-style-setter-custom": true,
"computed-style-storage-name": "effectiveBlendMode",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "BlendMode",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-compositing",
"url": "https://www.w3.org/TR/compositing-1/#propdef-mix-blend-mode"
}
},
"isolation": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"isolate"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Isolation",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-compositing",
"url": "https://www.w3.org/TR/compositing-1/#isolation"
}
},
"filter": {
"animation-type": "see prose",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"aliases": [
"-webkit-filter"
],
"animation-wrapper-acceleration": "always",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "filter"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Filter",
"parser-function": "consumeFilter",
"parser-grammar-unused": "none | <filter-value-list>",
"parser-grammar-unused-reason": "Needs support for the strong value representation."
},
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#FilterProperty"
}
},
"-apple-color-filter": {
"animation-type": "see prose",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"settings-flag": "colorFilterEnabled",
"computed-style-storage-path": ["m_inheritedRareData", "appleColorFilter"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::AppleColorFilter",
"parser-function": "consumeAppleColorFilter",
"parser-grammar-unused": "none | <-apple-color-filter-value-list>",
"parser-grammar-unused-reason": "Needs support for the strong value representation."
},
"status": {
"status": "non-standard"
}
},
"align-content": {
"animation-type": "discrete",
"initial": "normal",
"values": [
"normal",
"flex-start",
"flex-end",
"center",
"space-between",
"space-around",
"space-evenly",
"stretch",
"first",
"last",
"baseline",
"unsafe",
"safe",
"start",
"end"
],
"codegen-properties": {
"aliases": [
"-webkit-align-content"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::AlignContent",
"parser-function": "consumeAlignContent",
"parser-grammar-unused": "normal | <baseline-position> | <content-distribution> | [ <overflow-position>? <content-position> ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals.",
"comment": "Alternate definition in css-flexbox - flex-start | flex-end | center | space-between | space-around | stretch"
},
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#propdef-align-content"
}
},
"align-items": {
"animation-type": "discrete",
"initial": "normal",
"values": [
"flex-start",
"flex-end",
"center",
"baseline",
"stretch",
"normal",
"first",
"last",
"safe",
"unsafe",
"start",
"end",
"self-start",
"self-end"
],
"codegen-properties": {
"aliases": [
"-webkit-align-items"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::AlignItems",
"parser-function": "consumeAlignItems",
"parser-grammar-unused": "normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals.",
"comment": "Alternate definition in css-flexbox - flex-start | flex-end | center | baseline | stretch"
},
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#propdef-align-items",
"keywords": ["flexbox, align-items"]
}
},
"align-self": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"flex-start",
"flex-end",
"center",
"baseline",
"stretch",
"normal",
"first",
"last",
"safe",
"unsafe",
"start",
"end",
"self-start",
"self-end"
],
"codegen-properties": {
"aliases": [
"-webkit-align-self"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::AlignSelf",
"parser-function": "consumeAlignSelf",
"parser-grammar-unused": "auto | normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals.",
"comment": "Alternate definition in css-flexbox - auto | flex-start | flex-end | center | baseline | stretch"
},
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#propdef-align-self"
}
},
"flex": {
"codegen-properties": {
"aliases": [
"-webkit-flex"
],
"longhands": [
"flex-grow",
"flex-shrink",
"flex-basis"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-function": "consumeFlexShorthand",
"parser-grammar-unused": "none | [ [ <'flex-grow'> <'flex-shrink'>? ] || <'flex-basis'> ]",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/css-flexbox-1/#propdef-flex"
}
},
"flex-basis": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"content",
"min-content",
"max-content",
{
"value": "stretch",
"status": "unimplemented"
},
"fit-content",
{
"value": "contain",
"status": "unimplemented"
},
{
"value": "intrinsic",
"status": "non-standard"
},
{
"value": "min-intrinsic",
"status": "non-standard"
},
{
"value": "-webkit-min-content",
"status": "non-standard"
},
{
"value": "-webkit-max-content",
"status": "non-standard"
},
{
"value": "-webkit-fit-content",
"status": "non-standard"
},
{
"value": "-webkit-fill-available",
"status": "non-standard"
}
],
"codegen-properties": {
"aliases": [
"-webkit-flex-basis"
],
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "flexibleBox"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::FlexBasis",
"parser-grammar": "auto | content | <width-or-height-keyword> | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis"
}
},
"flex-direction": {
"animation-type": "discrete",
"initial": "row",
"values": [
"row",
"row-reverse",
"column",
"column-reverse"
],
"codegen-properties": {
"aliases": [
"-webkit-flex-direction"
],
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "flexibleBox"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FlexDirection",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/css-flexbox-1/#propdef-flex-direction"
}
},
"flex-flow": {
"codegen-properties": {
"aliases": [
"-webkit-flex-flow"
],
"longhands": [
"flex-direction",
"flex-wrap"
],
"shorthand-parser-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'flex-direction'> || <'flex-wrap'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow"
}
},
"flex-grow": {
"animation-type": "by computed value",
"initial": "0",
"codegen-properties": {
"aliases": [
"-webkit-flex-grow"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "flexibleBox"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FlexGrow",
"parser-grammar": "<number [0,inf]>"
},
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow"
}
},
"flex-shrink": {
"animation-type": "by computed value",
"initial": "1",
"codegen-properties": {
"aliases": [
"-webkit-flex-shrink"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "flexibleBox"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::FlexShrink",
"parser-grammar": "<number [0,inf]>"
},
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink"
}
},
"flex-wrap": {
"animation-type": "discrete",
"initial": "nowrap",
"values": [
"nowrap",
"wrap",
"wrap-reverse"
],
"codegen-properties": {
"aliases": [
"-webkit-flex-wrap"
],
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "flexibleBox"],
"computed-style-storage-kind": "enum",
"computed-style-type": "FlexWrap",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-flexbox",
"url": "https://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap"
}
},
"justify-content": {
"animation-type": "discrete",
"initial": "normal",
"values": [
"normal",
"flex-start",
"flex-end",
"center",
"space-between",
"space-around",
"space-evenly",
"stretch",
"safe",
"unsafe",
"start",
"end",
"left",
"right"
],
"codegen-properties": {
"aliases": [
"-webkit-justify-content"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::JustifyContent",
"parser-function": "consumeJustifyContent",
"parser-grammar-unused": "normal | <content-distribution> | [ <overflow-position>? [ <content-position> | left | right ] ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals.",
"comment": "Alternate definition in css-flexbox - flex-start | flex-end | center | space-between | space-around"
},
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#propdef-justify-content"
}
},
"-webkit-backdrop-filter": {
"animation-type": "see prose",
"initial": "none",
"codegen-properties": {
"cascade-alias": "backdrop-filter",
"skip-style-builder": true,
"parser-function": "consumeFilter",
"parser-grammar-unused": "none | <filter-value-list>",
"parser-grammar-unused-reason": "Needs support for the strong value representation."
},
"status": "non-standard",
"specification": {
"category": "css-filters",
"url": "https://drafts.fxtf.org/filters-2/#BackdropFilterProperty"
}
},
"backdrop-filter": {
"animation-type": "see prose",
"initial": "none",
"codegen-properties": {
"animation-wrapper-acceleration": "always",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "backdropFilter"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Filter",
"parser-function": "consumeFilter",
"parser-grammar-unused": "none | <filter-value-list>",
"parser-grammar-unused-reason": "Needs support for the strong value representation.",
"settings-flag": "cssUnprefixedBackdropFilterEnabled"
},
"specification": {
"category": "css-filters",
"url": "https://drafts.fxtf.org/filters-2/#BackdropFilterProperty"
}
},
"-webkit-font-size-delta": {
"animation-type": "not animatable (internal)",
"codegen-properties": {
"accepts-quirky-length": true,
"skip-style-builder": true,
"skip-computed-style": true,
"internal-only": true,
"parser-grammar": "<length>"
},
"status": "non-standard"
},
"justify-self": {
"animation-type": "discrete",
"initial": "auto",
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::JustifySelf",
"parser-function": "consumeJustifySelf",
"parser-grammar-unused": "auto | normal | stretch | <baseline-position> | [ <overflow-position>? [ <self-position> | left | right ] ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals."
},
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#propdef-justify-self"
}
},
"justify-items": {
"animation-type": "discrete",
"initial": "legacy",
"codegen-properties": {
"aliases": [
"-webkit-justify-items"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::JustifyItems",
"parser-function": "consumeJustifyItems",
"parser-grammar-unused": "[ normal | stretch | <baseline-position> | [ <overflow-position>? [ <self-position> | left | right ] ] | legacy | legacy ] && [ left | right | center ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals."
},
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#propdef-justify-items"
}
},
"place-content": {
"codegen-properties": {
"longhands": [
"align-content",
"justify-content"
],
"shorthand-pattern": "CoalescingPair",
"parser-function": "consumeAlignShorthand",
"parser-grammar-unused": "<'align-content'> <'justify-content'>?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#propdef-place-content"
}
},
"place-items": {
"codegen-properties": {
"longhands": [
"align-items",
"justify-items"
],
"shorthand-pattern": "CoalescingPair",
"parser-function": "consumeAlignShorthand",
"parser-grammar-unused": "<'align-items'> <'justify-items'>?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-align",
"url": "https://drafts.csswg.org/css-align-3/#propdef-place-items"
}
},
"place-self": {
"codegen-properties": {
"longhands": [
"align-self",
"justify-self"
],
"shorthand-pattern": "CoalescingPair",
"parser-function": "consumeAlignShorthand",
"parser-grammar-unused": "<'align-self'> <'justify-self'>?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-align",
"url": "https://drafts.csswg.org/css-align-3/#propdef-place-self"
}
},
"grid": {
"codegen-properties": {
"longhands": [
"grid-template-rows",
"grid-template-columns",
"grid-template-areas",
"grid-auto-flow",
"grid-auto-rows",
"grid-auto-columns"
],
"shorthand-pattern": "StandardSlashSeparated",
"parser-function": "consumeGridShorthand",
"parser-grammar-unused": "<grid>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid"
}
},
"grid-area": {
"codegen-properties": {
"longhands": [
"grid-row-start",
"grid-column-start",
"grid-row-end",
"grid-column-end"
],
"shorthand-pattern": "StandardSlashSeparated",
"parser-function": "consumeGridAreaShorthand",
"parser-grammar-unused": "<grid-line> [ / <grid-line> ]{0,3}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-area"
}
},
"grid-auto-columns": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"codegen-properties": {
"separator": " ",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "grid"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridTrackSizes",
"parser-function": "consumeGridTrackList",
"parser-grammar-unused": "<track-size>+",
"parser-grammar-unused-reason": "Needs investigation."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-auto-columns"
}
},
"grid-auto-rows": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"codegen-properties": {
"separator": " ",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "grid"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridTrackSizes",
"parser-function": "consumeGridTrackList",
"parser-grammar-unused": "<track-size>+",
"parser-grammar-unused-reason": "Needs investigation."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-auto-rows"
}
},
"grid-column-end": {
"animation-type": "discrete",
"initial": "auto",
"codegen-properties": {
"computed-style-name-for-methods": "GridItemColumnEnd",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "gridItem"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridPosition",
"parser-function": "consumeGridLine",
"parser-grammar-unused": "<grid-line>",
"parser-grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-column-end"
}
},
"grid-column-start": {
"animation-type": "discrete",
"initial": "auto",
"codegen-properties": {
"computed-style-name-for-methods": "GridItemColumnStart",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "gridItem"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridPosition",
"parser-function": "consumeGridLine",
"parser-grammar-unused": "<grid-line>",
"parser-grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-column-start"
}
},
"grid-template": {
"codegen-properties": {
"longhands": [
"grid-template-rows",
"grid-template-columns",
"grid-template-areas"
],
"shorthand-pattern": "StandardSlashSeparated",
"parser-function": "consumeGridTemplateShorthand",
"parser-grammar-unused": "<grid-template>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-template"
}
},
"grid-template-columns": {
"animation-type": "see prose",
"initial": "none",
"codegen-properties": {
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "grid"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridTemplateList",
"parser-function": "consumeGridTemplatesRowsOrColumns",
"parser-grammar-unused": "none | <track-list> | <auto-track-list>",
"parser-grammar-unused-reason": "Needs investigation."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-template-columns"
}
},
"grid-template-rows": {
"animation-type": "see prose",
"initial": "none",
"codegen-properties": {
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "grid"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridTemplateList",
"parser-function": "consumeGridTemplatesRowsOrColumns",
"parser-grammar-unused": "none | <track-list> | <auto-track-list>",
"parser-grammar-unused-reason": "Needs investigation."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-template-rows"
}
},
"grid-row-end": {
"animation-type": "discrete",
"initial": "auto",
"codegen-properties": {
"computed-style-name-for-methods": "GridItemRowEnd",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "gridItem"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridPosition",
"parser-function": "consumeGridLine",
"parser-grammar-unused": "<grid-line>",
"parser-grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-row-end"
}
},
"grid-row-start": {
"animation-type": "discrete",
"initial": "auto",
"codegen-properties": {
"computed-style-name-for-methods": "GridItemRowStart",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "gridItem"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridPosition",
"parser-function": "consumeGridLine",
"parser-grammar-unused": "<grid-line>",
"parser-grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-row-start"
}
},
"grid-column": {
"codegen-properties": {
"longhands": [
"grid-column-start",
"grid-column-end"
],
"shorthand-pattern": "StandardSlashSeparated",
"parser-function": "consumeGridItemPositionShorthand",
"parser-grammar-unused": "<grid-line> [ / <grid-line> ]?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-column"
}
},
"grid-row": {
"codegen-properties": {
"longhands": [
"grid-row-start",
"grid-row-end"
],
"shorthand-pattern": "StandardSlashSeparated",
"parser-function": "consumeGridItemPositionShorthand",
"parser-grammar-unused": "<grid-line> [ / <grid-line> ]?",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-row"
}
},
"grid-template-areas": {
"animation-type": "discrete",
"initial": "none",
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "grid"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::GridTemplateAreas",
"parser-function": "consumeGridTemplateAreas",
"parser-grammar-unused": "none | <string>+",
"parser-grammar-unused-reason": "Needs support for nested grammars in <string> values."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-template-areas"
}
},
"grid-auto-flow": {
"animation-type": "discrete",
"initial": "normal",
"initial-comment": "Current spec initial value is 'row'.",
"codegen-properties": {
"style-extractor-custom": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "grid"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::GridAutoFlow",
"parser-function": "consumeGridAutoFlow",
"parser-grammar-unused": "normal | [ [ row | column ] || dense ]",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#propdef-grid-auto-flow"
}
},
"hyphenate-character": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"aliases": [
"-webkit-hyphenate-character"
],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::HyphenateCharacter",
"parser-grammar": "auto | <string>"
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-character"
}
},
"-webkit-hyphenate-limit-after": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::HyphenateLimitEdge",
"parser-grammar": "auto | <number [0,inf]>"
},
"status": "non-standard"
},
"-webkit-hyphenate-limit-before": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::HyphenateLimitEdge",
"parser-grammar": "auto | <number [0,inf]>"
},
"status": "non-standard"
},
"-webkit-hyphenate-limit-lines": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "no-limit",
"values": [
"no-limit"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::HyphenateLimitLines",
"parser-grammar": "no-limit | <number [0,inf]>"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-4/#propdef-hyphenate-limit-lines"
}
},
"hyphens": {
"animation-type": "discrete",
"inherited": true,
"initial": "manual",
"values": [
"none",
"manual",
"auto"
],
"codegen-properties": {
"aliases": [
"-epub-hyphens",
"-webkit-hyphens"
],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Hyphens",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://drafts.csswg.org/css-text-3/"
}
},
"-webkit-initial-letter": {
"animation-type": "discrete",
"initial": "normal",
"values": [
"normal"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::WebkitInitialLetter",
"parser-grammar": "normal | <number [0,inf]>{1,2}@(type=CSSValuePair default=previous)",
"parser-grammar-comment": "Spec does not match our implementation. Spec is 'normal | [ <number [1,inf]> <integer [1,inf]> ] | [ <number [1,inf]> && [ drop | raise ]? ]'"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-inline",
"url": "https://www.w3.org/TR/css-inline/#propdef-initial-letter"
}
},
"-webkit-line-box-contain": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "block inline replaced",
"values": [
"none",
"block",
"inline",
"font",
"glyphs",
"replaced",
"inline-box",
"initial-letter"
],
"codegen-properties": {
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::WebkitLineBoxContain",
"parser-grammar": "none | [ block || inline || font || glyphs || replaced || inline-box || initial-letter ]"
},
"status": {
"status": "obsolete",
"comment": "Added in https://trac.webkit.org/changeset/81684"
}
},
"-webkit-line-align": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "none",
"values": [
"none",
"edges"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "LineAlign",
"parser-grammar": "<<values>>"
},
"status": {
"status": "obsolete",
"comment": "Added in https://trac.webkit.org/changeset/108133"
},
"specification": {
"category": "css-line-grid",
"url": "https://www.w3.org/TR/css-line-grid-1/"
}
},
"line-break": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"loose",
"normal",
"strict",
{
"value": "after-white-space",
"status": "non-standard",
"comment": "Added in https://trac.webkit.org/changeset/7763"
},
"anywhere"
],
"codegen-properties": {
"aliases": [
"-webkit-line-break"
],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "LineBreak",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text",
"url": "https://www.w3.org/TR/css-text-3/#line-break"
}
},
"line-clamp": {
"codegen-properties": {
"longhands": [
"max-lines",
"block-ellipsis",
"continue"
],
"settings-flag": "cssLineClampEnabled",
"parser-function": "consumeLineClampShorthand",
"parser-grammar-unused": "none | [ <integer [1,inf]> <'block-ellipsis'>? ]",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-inline",
"url": "https://www.w3.org/TR/css-overflow-4/#line-clamp"
},
"status": "experimental"
},
"-webkit-line-clamp": {
"animation-type": "not animatable (legacy)",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::WebkitLineClamp",
"parser-grammar": "none | <percentage [0,inf]> | <integer [1,inf]>"
},
"status": "non-standard"
},
"-webkit-line-grid": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::WebkitLineGrid",
"parser-grammar": "none | <custom-ident>"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-line-grid",
"url": "https://www.w3.org/TR/css-line-grid-1/#propdef-line-grid"
}
},
"-webkit-line-snap": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "none",
"values": [
"none",
"baseline",
"contain"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "LineSnap",
"parser-grammar": "<<values>>"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-line-grid",
"url": "https://www.w3.org/TR/css-line-grid-1/#line-snap"
}
},
"-webkit-marquee-direction": {
"animation-type": "not animatable (internal)",
"initial": "auto",
"values": [
"forwards",
"backwards",
"ahead",
"reverse",
"left",
"right",
"down",
"up",
"auto"
],
"codegen-properties": {
"internal-only": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "marquee"],
"computed-style-storage-kind": "enum",
"computed-style-type": "MarqueeDirection",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-webkit-marquee-increment": {
"animation-type": "not animatable (internal)",
"initial": "6px",
"codegen-properties": {
"accepts-quirky-length": true,
"internal-only": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "marquee"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::WebkitMarqueeIncrement",
"parser-grammar": "<length-percentage>"
},
"status": "non-standard"
},
"-webkit-marquee-repetition": {
"animation-type": "not animatable (internal)",
"initial": "infinite",
"codegen-properties": {
"internal-only": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "marquee"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitMarqueeRepetition",
"parser-grammar": "infinite | <integer [0,inf]>"
},
"status": "non-standard"
},
"-webkit-marquee-speed": {
"animation-type": "not animatable (internal)",
"initial": "85ms",
"codegen-properties": {
"internal-only": true,
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "marquee"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitMarqueeSpeed",
"parser-grammar": "<time [0,inf]>"
},
"status": "non-standard"
},
"-webkit-marquee-style": {
"animation-type": "not animatable (internal)",
"initial": "scroll",
"values": [
"none",
"slide",
"scroll",
"alternate"
],
"codegen-properties": {
"internal-only": true,
"computed-style-name-for-methods": "MarqueeBehavior",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "marquee"],
"computed-style-storage-kind": "enum",
"computed-style-type": "MarqueeBehavior",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-webkit-mask": {
"codegen-properties": {
"longhands": [
"mask-image",
"-webkit-mask-source-type",
"-webkit-mask-position-x",
"-webkit-mask-position-y",
"mask-size",
"mask-repeat",
"mask-origin",
"-webkit-mask-clip"
],
"skip-style-extractor": true,
"skip-style-extractor-comment": "FIXME: Figure out and document why this has no computed value",
"parser-function": "consumeBackgroundShorthand",
"parser-grammar-unused": "<-webkit-mask>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"comment": "Differs from the unprefixed property in accepting -webkit-mask-source-type in place of mask-mode",
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask"
}
},
"-webkit-mask-box-image": {
"codegen-properties": {
"longhands": [
"mask-border-source",
"mask-border-slice",
"mask-border-width",
"mask-border-outset",
"mask-border-repeat"
],
"parser-function": "consumeWebkitMaskBoxImageShorthand",
"parser-grammar-unused": "<-webkit-mask-box-image>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"status": {
"status": "obsolete",
"comment": "Differs from mask-border in that it always includes the 'fill' keyword in 'mask-border-slice'."
}
},
"-webkit-mask-clip": {
"animation-type": "not animatable (legacy)",
"initial": "border-box",
"codegen-properties": {
"cascade-alias": "mask-clip",
"skip-style-builder": true,
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Clip",
"coordinated-value-list-property-item-type": "FillBox",
"parser-grammar": "<single-webkit-mask-clip>#"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-clip"
}
},
"-webkit-mask-composite": {
"animation-type": "not animatable (legacy)",
"initial": "source-over",
"codegen-properties": {
"cascade-alias": "mask-composite",
"skip-style-builder": true,
"style-extractor-custom": true,
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "Composite",
"parser-grammar": "<single-webkit-mask-composite>#"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-composite"
}
},
"-webkit-mask-source-type": {
"animation-type": "not animatable (legacy)",
"initial": "auto",
"codegen-properties": {
"cascade-alias": "mask-mode",
"skip-style-builder": true,
"style-extractor-custom": true,
"coordinated-value-list-property": true,
"coordinated-value-list-property-name-for-methods": "MaskMode",
"parser-grammar": "<single-webkit-mask-source-type>#"
},
"status": {
"status": "non-standard",
"comment": "Deprecated alias for mask-mode, supports an 'auto' value, does not support 'match-source'"
},
"specification": {
"category": "css-masking"
}
},
"-webkit-nbsp-mode": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"space"
],
"codegen-properties": {
"computed-style-initial": "initialNBSPMode",
"computed-style-setter": "setNBSPMode",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "NBSPMode",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"color-scheme": {
"animation-type": "discrete",
"inherited": true,
"initial": "normal",
"values": [
"normal",
"light",
"dark",
"only"
],
"codegen-properties": {
"aliases": [
"supported-color-schemes"
],
"enable-if": "ENABLE_DARK_MODE_CSS",
"computed-style-has-explicitly-set-policy": "value-only",
"computed-style-has-explicitly-set-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::ColorScheme",
"top-priority": true,
"top-priority-reason": "This is a top priority property to ensure that its value can be checked when resolving colors.",
"parser-function": "consumeColorScheme",
"parser-grammar-unused": "normal | [ [ light | dark | <custom-ident excluding=light,dark,normal,only> ]+ && only? ]",
"parser-grammar-unused-reason": "Needs support for the strong value representation."
},
"specification": {
"category": "css-color-adjust",
"url": "https://www.w3.org/TR/css-color-adjust/#color-scheme-prop"
},
"status": {
"status": "supported",
"enabled-by-default": true
}
},
"order": {
"animation-type": "by computed value",
"initial": "0",
"codegen-properties": {
"aliases": [
"-webkit-order"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::Order",
"parser-grammar": "<integer>"
},
"specification": {
"category": "css-display",
"url": "https://drafts.csswg.org/css-display-4/#propdef-order"
}
},
"perspective": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Perspective",
"parser-grammar": "none | <length [0,inf]>",
"parser-exported": true
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#perspective-property"
}
},
"-webkit-perspective": {
"codegen-properties": {
"longhands": [
"perspective"
],
"shorthand-pattern": "Single",
"parser-function": "consumeWebkitPerspectiveShorthand",
"parser-grammar-unused": "<'perspective'> | <number [0,inf]>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#perspective-property"
},
"status": {
"comment": "Differs from unprefixed perspective only through support for unitless values, which are interpreted as 'px'."
}
},
"perspective-origin": {
"codegen-properties": {
"aliases": [
"-webkit-perspective-origin"
],
"longhands": [
"perspective-origin-x",
"perspective-origin-y"
],
"parser-function": "consumePerspectiveOriginShorthand",
"parser-grammar-unused": "<position>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#propdef-perspective-origin"
}
},
"perspective-origin-x": {
"animation-type": "by computed value",
"initial": "50%",
"codegen-properties": {
"aliases": [
"-webkit-perspective-origin-x"
],
"skip-style-extractor": true,
"computed-style-storage-name": "x",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "perspectiveOrigin"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PerspectiveOriginX",
"parser-grammar": "<position-x>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#propdef-perspective-origin"
}
},
"perspective-origin-y": {
"animation-type": "by computed value",
"initial": "50%",
"codegen-properties": {
"aliases": [
"-webkit-perspective-origin-y"
],
"skip-style-extractor": true,
"computed-style-storage-name": "y",
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "perspectiveOrigin"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PerspectiveOriginY",
"parser-grammar": "<position-y>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#propdef-perspective-origin"
}
},
"print-color-adjust": {
"animation-type": "discrete",
"inherited": true,
"initial": "economy",
"values": [
"exact",
"economy"
],
"codegen-properties": {
"aliases": [
"-webkit-print-color-adjust",
"color-adjust"
],
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "PrintColorAdjust",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-color-adjust",
"url": "https://www.w3.org/TR/css-color-adjust/#print-color-adjust"
}
},
"-webkit-rtl-ordering": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "logical",
"values": [
"logical",
"visual"
],
"codegen-properties": {
"computed-style-initial": "initialRTLOrdering",
"computed-style-setter": "setRTLOrdering",
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "enum",
"computed-style-type": "WebCore::Order",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-webkit-text-combine": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "none",
"values": [
"none",
"horizontal"
],
"codegen-properties": {
"aliases": [
"-epub-text-combine"
],
"cascade-alias": "text-combine-upright",
"skip-style-builder": true,
"style-extractor-custom": true,
"parser-grammar": "<<values>>"
},
"status": {
"status": "obsolete",
"comment": "Use text-combine-upright instead."
}
},
"text-combine-upright": {
"animation-type": "not animatable",
"inherited": true,
"initial": "none",
"values": [
"none",
"all"
],
"codegen-properties": {
"computed-style-name-for-methods": "TextCombine",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextCombine",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-writing-modes",
"url": "https://www.w3.org/TR/css-writing-modes-3/#propdef-direction"
}
},
"text-decoration": {
"codegen-properties": {
"longhands": [
"text-decoration-line",
"text-decoration-thickness",
"text-decoration-style",
"text-decoration-color"
],
"aliases": [
"-webkit-text-decoration"
],
"shorthand-pattern": "StandardSpaceSeparated",
"style-extractor-custom": true,
"parser-grammar-unused": "<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-decoration"
}
},
"text-decoration-line": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"underline",
"overline",
"line-through",
{
"value": "blink",
"comment": "The value is parsed and computed but ignored for rendering."
},
"spelling-error",
"grammar-error"
],
"codegen-properties": {
"aliases": [
"-webkit-text-decoration-line"
],
"computed-style-storage-path": ["m_nonInheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::TextDecorationLine",
"parser-grammar": "none | [ underline || overline || line-through || blink ]@(no-single-item-opt) | spelling-error@(settings-flag=cssTextDecorationLineErrorValues) | grammar-error@(settings-flag=cssTextDecorationLineErrorValues)",
"parser-exported": true
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-decoration-line"
}
},
"text-decoration-style": {
"animation-type": "discrete",
"initial": "solid",
"values": [
"solid",
"double",
"dotted",
"dashed",
"wavy"
],
"codegen-properties": {
"aliases": [
"-webkit-text-decoration-style"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextDecorationStyle",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-decoration-style"
}
},
"text-decoration-color": {
"animation-type": "by computed value",
"initial": "currentcolor",
"codegen-properties": {
"aliases": [
"-webkit-text-decoration-color"
],
"visited-link-color-support": true,
"color-property": true,
"color-property-traits-requires-resolving-current-color": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_nonInheritedData", "miscData", "visitedLinkColor"],
"parser-grammar": "<color>"
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-decoration-color"
}
},
"text-decoration-skip": {
"inherited": true,
"codegen-properties": {
"aliases": [
"-webkit-text-decoration-skip"
],
"longhands": [
"text-decoration-skip-ink"
],
"parser-function": "consumeTextDecorationSkipShorthand",
"parser-grammar-unused": "none | auto | ink@(aliased-to=auto)",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-decoration-skip"
}
},
"text-decoration-skip-ink": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"none",
"all"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextDecorationSkipInk",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-text-decor",
"url": "https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"
}
},
"text-underline-position": {
"animation-type": "discrete",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"under",
"from-font",
"left",
"right"
],
"codegen-properties": {
"aliases": [
"-webkit-text-underline-position"
],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::TextUnderlinePosition",
"parser-grammar": "auto | [ [ under | from-font ] || [ left | right ] ]@(no-single-item-opt)"
},
"specification": {
"category": "css-text-decor",
"url": "https://drafts.csswg.org/css-text-decor-4/#text-underline-position-property"
}
},
"text-underline-offset": {
"animation-type": "by computed value",
"inherited": true,
"initial": "auto",
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TextUnderlineOffset",
"parser-grammar": "auto | <length-percentage>"
},
"specification": {
"category": "css-text-decor",
"url": "https://drafts.csswg.org/css-text-decor-4/#underline-offset"
}
},
"text-decoration-thickness": {
"animation-type": "by computed value",
"initial": "auto",
"values": [
"auto",
"from-font"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TextDecorationThickness",
"parser-grammar": "auto | from-font | <length-percentage>"
},
"specification": {
"category": "css-text-decor",
"url": "https://drafts.csswg.org/css-text-decor-4/#text-decoration-thickness-property"
}
},
"-webkit-text-decorations-in-effect": {
"animation-type": "not animatable (internal)",
"inherited": true,
"initial": "none",
"codegen-properties": {
"skip-style-builder": true,
"computed-style-name-for-methods": "TextDecorationLineInEffect",
"computed-style-storage-path": ["m_inheritedFlags"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::TextDecorationLine",
"parser-grammar": "none | [ underline || overline || line-through || blink ]@(no-single-item-opt) | spelling-error@(settings-flag=cssTextDecorationLineErrorValues)",
"comment": "FIXME: Should this be an alias of text-decoration-line?"
},
"status": "non-standard"
},
"-internal-text-autosizing-status": {
"animation-type": "not animatable (internal)",
"inherited": true,
"codegen-properties": {
"enable-if": "ENABLE_TEXT_AUTOSIZING",
"skip-style-builder": true,
"skip-parser": true,
"skip-computed-style": true,
"internal-only": true
},
"status": "non-standard"
},
"text-emphasis": {
"inherited": true,
"codegen-properties": {
"aliases": [
"-epub-text-emphasis",
"-webkit-text-emphasis"
],
"longhands": [
"text-emphasis-style",
"text-emphasis-color"
],
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'text-emphasis-style'> || <'text-emphasis-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-emphasis"
}
},
"text-emphasis-color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "currentcolor",
"codegen-properties": {
"aliases": [
"-epub-text-emphasis-color",
"-webkit-text-emphasis-color"
],
"visited-link-color-support": true,
"color-property": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_inheritedRareData"],
"parser-grammar": "<color>"
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-emphasis-color"
}
},
"text-emphasis-position": {
"animation-type": "discrete",
"inherited": true,
"initial": "over right",
"codegen-properties": {
"aliases": [
"-webkit-text-emphasis-position"
],
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::TextEmphasisPosition",
"parser-grammar": "[ [ over | under ] && [ right | left ]? ]@(no-single-item-opt)"
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-emphasis-position"
}
},
"text-emphasis-style": {
"animation-type": "discrete",
"inherited": true,
"initial": "none",
"codegen-properties": {
"aliases": [
"-epub-text-emphasis-style",
"-webkit-text-emphasis-style"
],
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TextEmphasisStyle",
"parser-grammar": "none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>"
},
"specification": {
"category": "css-text-decor",
"url": "https://www.w3.org/TR/css-text-decor-3/#text-emphasis-style"
}
},
"-webkit-text-fill-color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "currentcolor",
"codegen-properties": {
"visited-link-color-support": true,
"color-property": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_inheritedRareData"],
"parser-grammar": "<color>"
},
"status": {
"status": "non-standard",
"comment": "Obsoleted by fill-color"
}
},
"-webkit-text-security": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "none",
"values": [
"disc",
"circle",
"square",
"none"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TextSecurity",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-webkit-text-stroke": {
"inherited": true,
"codegen-properties": {
"longhands": [
"-webkit-text-stroke-width",
"-webkit-text-stroke-color"
],
"skip-style-extractor": true,
"skip-style-extractor-comment": "FIXME: Figure out and document why this has no computed value",
"shorthand-pattern": "StandardSpaceSeparated",
"parser-grammar-unused": "<'-webkit-text-stroke-width'> || <'-webkit-text-stroke-color'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"status": "non-standard"
},
"-webkit-text-stroke-color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "currentcolor",
"codegen-properties": {
"visited-link-color-support": true,
"color-property": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-visited-link-storage-path": ["m_inheritedRareData"],
"parser-grammar": "<color>"
},
"status": {
"status": "non-standard",
"comment": "Obsoleted by stroke-color"
}
},
"-webkit-text-stroke-width": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "0px",
"values": [
"thin",
"medium",
"thick"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::WebkitTextStrokeWidth",
"parser-grammar": "<line-width>"
},
"status": {
"status": "non-standard",
"comment": "Obsoleted by stroke-width"
}
},
"transform": {
"animation-type": "see prose",
"initial": "none",
"codegen-properties": {
"aliases": [
"-webkit-transform"
],
"animation-wrapper-acceleration": "always",
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transform"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Transform",
"parser-grammar": "none | <transform-list>",
"parser-exported": true
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#transform-property"
}
},
"transform-box": {
"animation-type": "discrete",
"initial": "view-box",
"values" : [
"content-box",
"border-box",
"fill-box",
"stroke-box",
"view-box"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transform"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TransformBox",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms/#propdef-transform-box"
}
},
"transform-origin": {
"codegen-properties": {
"aliases": [
"-webkit-transform-origin"
],
"longhands": [
"transform-origin-x",
"transform-origin-y",
"transform-origin-z"
],
"parser-function": "consumeTransformOriginShorthand",
"parser-grammar-unused": "<transform-origin>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#propdef-transform-origin"
}
},
"transform-origin-x": {
"animation-type": "by computed value",
"initial": "50%",
"codegen-properties": {
"aliases": [
"-webkit-transform-origin-x"
],
"skip-style-extractor": true,
"computed-style-storage-name": "x",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transform", "origin"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TransformOriginX",
"parser-grammar": "<position-x>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#propdef-transform-origin"
}
},
"transform-origin-y": {
"animation-type": "by computed value",
"initial": "50%",
"codegen-properties": {
"aliases": [
"-webkit-transform-origin-y"
],
"skip-style-extractor": true,
"computed-style-storage-name": "y",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transform", "origin"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TransformOriginY",
"parser-grammar": "<position-y>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#propdef-transform-origin"
}
},
"transform-origin-z": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-transform-origin-z"
],
"skip-style-extractor": true,
"computed-style-storage-name": "z",
"computed-style-storage-path": ["m_nonInheritedData", "miscData", "transform", "origin"],
"computed-style-storage-container": "struct",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::TransformOriginZ",
"parser-grammar": "<length>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#propdef-transform-origin"
}
},
"transform-style": {
"animation-type": "discrete",
"initial": "flat",
"values": [
"flat",
"preserve-3d",
{
"value": "separated",
"status": "non-standard",
"settings-flag": "cssTransformStyleSeparatedEnabled",
"enable-if": "HAVE_CORE_ANIMATION_SEPARATED_LAYERS"
}
],
"codegen-properties": {
"aliases": [
"-webkit-transform-style"
],
"computed-style-name-for-methods": "TransformStyle3D",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "TransformStyle3D",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#transform-style-property"
}
},
"translate": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"animation-wrapper-acceleration": "always",
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Translate",
"parser-function": "consumeTranslate",
"parser-grammar-unused": "none | [ <length-percentage> [ <length-percentage> <length>? ]? ]",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-transforms",
"url": "https://drafts.csswg.org/css-transforms-2/#propdef-translate"
}
},
"scale": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"animation-wrapper-acceleration": "always",
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Scale",
"parser-function": "consumeScale",
"parser-grammar-unused": "none | [ <number-or-percentage-resolved-to-number> ]{1,3}",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-transforms",
"url": "https://drafts.csswg.org/css-transforms-2/#propdef-scale"
}
},
"rotate": {
"animation-type": "by computed value",
"initial": "none",
"values": [
"none",
"x",
"y",
"z"
],
"codegen-properties": {
"animation-wrapper-acceleration": "always",
"style-extractor-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Rotate",
"parser-function": "consumeRotate",
"parser-grammar-unused": "none | <angle> | [ [ x | y | z | <number>{3} ] && <angle> ]",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-transforms",
"url": "https://drafts.csswg.org/css-transforms-2/#propdef-rotate"
}
},
"-webkit-user-drag": {
"animation-type": "not animatable (legacy)",
"initial": "auto",
"values": [
"auto",
"none",
"element"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "miscData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "UserDrag",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-webkit-user-modify": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "read-only",
"values": [
"read-only",
"read-write",
"read-write-plaintext-only"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "UserModify",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-webkit-user-select": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec for standard 'user-select' animation type is 'discrete'",
"inherited": true,
"initial": "text",
"initial-comment": "Current spec for standard 'user-select' initial is 'auto'",
"values": [
"auto",
"text",
"none",
{
"value": "contain",
"status": "unimplemented"
},
"all"
],
"codegen-properties": {
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "UserSelect",
"parser-grammar": "<<values>>"
},
"status": {
"status": "experimental"
},
"specification": {
"category": "css-ui",
"url": "https://www.w3.org/TR/css-ui-4/#propdef-user-select"
}
},
"scroll-behavior": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'not animatable'",
"initial": "auto",
"values": [
"auto",
"smooth"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::ScrollBehavior",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#smooth-scrolling"
}
},
"scroll-margin": {
"codegen-properties": {
"longhands": [
"scroll-margin-top",
"scroll-margin-right",
"scroll-margin-bottom",
"scroll-margin-left"
],
"aliases": [
"scroll-snap-margin"
],
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'scroll-margin-top'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-margin"
}
},
"scroll-margin-bottom": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"aliases": [
"scroll-snap-margin-bottom"
],
"logical-property-group": {
"name": "scroll-margin",
"resolver": "bottom"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollMargin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollMarginEdge",
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-bottom"
}
},
"scroll-margin-left": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"aliases": [
"scroll-snap-margin-left"
],
"logical-property-group": {
"name": "scroll-margin",
"resolver": "left"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollMargin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollMarginEdge",
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-left"
}
},
"scroll-margin-right": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"aliases": [
"scroll-snap-margin-right"
],
"logical-property-group": {
"name": "scroll-margin",
"resolver": "right"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollMargin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollMarginEdge",
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-right"
}
},
"scroll-margin-top": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"aliases": [
"scroll-snap-margin-top"
],
"logical-property-group": {
"name": "scroll-margin",
"resolver": "top"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollMargin"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollMarginEdge",
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-top"
}
},
"scroll-margin-inline-start": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-margin",
"resolver": "inline-start"
},
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-margin-inline-start"
}
},
"scroll-margin-block-start": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-margin",
"resolver": "block-start"
},
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-margin-block-start"
}
},
"scroll-margin-inline-end": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-margin",
"resolver": "inline-end"
},
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-margin-inline-end"
}
},
"scroll-margin-block-end": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "0px",
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-margin",
"resolver": "block-end"
},
"parser-grammar": "<length>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-margin-block-end"
}
},
"scroll-margin-block": {
"codegen-properties": {
"longhands": [
"scroll-margin-block-start",
"scroll-margin-block-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'scroll-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-margin-block"
}
},
"scroll-margin-inline": {
"codegen-properties": {
"longhands": [
"scroll-margin-inline-start",
"scroll-margin-inline-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'scroll-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-margin-inline"
}
},
"scroll-padding": {
"codegen-properties": {
"longhands": [
"scroll-padding-top",
"scroll-padding-right",
"scroll-padding-bottom",
"scroll-padding-left"
],
"shorthand-pattern": "CoalescingQuad",
"parser-grammar-unused": "<'scroll-padding-top'>{1,4}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding"
}
},
"scroll-padding-bottom": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "scroll-padding",
"resolver": "bottom"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollPadding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollPaddingEdge",
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-bottom"
}
},
"scroll-padding-left": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "scroll-padding",
"resolver": "left"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollPadding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollPaddingEdge",
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-left"
}
},
"scroll-padding-right": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "scroll-padding",
"resolver": "right"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollPadding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollPaddingEdge",
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-right"
}
},
"scroll-padding-top": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"logical-property-group": {
"name": "scroll-padding",
"resolver": "top"
},
"computed-style-storage-path": ["m_nonInheritedData", "rareData", "scrollPadding"],
"computed-style-storage-container": "physical-group",
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollPaddingEdge",
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-top"
}
},
"scroll-padding-inline-start": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-padding",
"resolver": "inline-start"
},
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-inline-start"
}
},
"scroll-padding-block-start": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-padding",
"resolver": "block-start"
},
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-block-start"
}
},
"scroll-padding-inline-end": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-padding",
"resolver": "inline-end"
},
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-inline-end"
}
},
"scroll-padding-block-end": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"skip-style-builder": true,
"logical-property-group": {
"name": "scroll-padding",
"resolver": "block-end"
},
"parser-grammar": "auto | <length-percentage [0,inf]>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-block-end"
}
},
"scroll-padding-block": {
"codegen-properties": {
"longhands": [
"scroll-padding-block-start",
"scroll-padding-block-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'scroll-padding-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-block"
}
},
"scroll-padding-inline": {
"codegen-properties": {
"longhands": [
"scroll-padding-inline-start",
"scroll-padding-inline-end"
],
"shorthand-pattern": "CoalescingPair",
"parser-grammar-unused": "<'scroll-padding-left'>{1,2}",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#propdef-scroll-padding-inline"
}
},
"scroll-snap-align": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"start",
"end",
"center"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollSnapAlign",
"parser-grammar": "[ none | start | end | center ]{1,2}@(type=CSSValuePair default=previous)"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#scroll-snap-align"
}
},
"scroll-snap-type": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"x",
"y",
"block",
"inline",
"both",
"mandatory",
"proximity"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollSnapType",
"parser-function": "consumeScrollSnapType",
"parser-grammar-unused": "none | [ [ x | y | block | inline | both ] [ mandatory | proximity ]? ]",
"parser-grammar-unused-reason": "Needs support for default values on optionals."
},
"specification": {
"category": "css-scroll-snap",
"url": "https://www.w3.org/TR/css-scroll-snap-1/#scroll-snap-type"
}
},
"scroll-snap-stop": {
"animation-type": "discrete",
"initial": "normal",
"values": [
"always",
"normal"
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ScrollSnapStop",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-scroll-snap",
"url": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-stop"
}
},
"scroll-timeline": {
"codegen-properties": {
"longhands": [
"scroll-timeline-name",
"scroll-timeline-axis"
],
"parser-function": "consumeScrollTimelineShorthand",
"parser-grammar-unused": "[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-shorthand"
}
},
"scroll-timeline-axis": {
"animation-type": "not animatable",
"initial": "block",
"values": [
"block",
"inline",
"x",
"y"
],
"codegen-properties": {
"computed-style-name-for-methods": "ScrollTimelineAxes",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ProgressTimelineAxes",
"parser-exported": true,
"parser-grammar": "<axis>#"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-axis"
}
},
"scroll-timeline-name": {
"animation-type": "not animatable",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-name-for-methods": "ScrollTimelineNames",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ProgressTimelineNames",
"parser-exported": true,
"parser-grammar": "<single-scroll-timeline-name>#"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-name"
}
},
"scrollbar-color": {
"animation-type": "by computed value",
"inherited": true,
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"settings-flag": "cssScrollbarColorEnabled",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollbarColor",
"parser-function": "consumeScrollbarColor",
"parser-grammar-unused": "auto | <color>{2}",
"parser-grammar-unused-reason": "Needs support for non-coalescing CSSValuePair."
},
"specification": {
"category": "css-scrollbars",
"url": "https://drafts.csswg.org/css-scrollbars/#scrollbar-color"
}
},
"scrollbar-gutter": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"stable",
"both-edges"
],
"codegen-properties": {
"settings-flag": "cssScrollbarGutterEnabled",
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ScrollbarGutter",
"parser-grammar": "auto | [ stable && both-edges? ]@(type=CSSValuePair)"
},
"specification": {
"category": "css-overflow",
"url": "https://drafts.csswg.org/css-overflow-3/#scrollbar-gutter-property"
}
},
"scrollbar-width": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"thin",
"none"
],
"codegen-properties": {
"settings-flag": "cssScrollbarWidthEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::ScrollbarWidth",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-scrollbars",
"url": "https://drafts.csswg.org/css-scrollbars/#scrollbar-width"
}
},
"shape-outside": {
"animation-type": "see prose",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"aliases": [
"-webkit-shape-outside"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ShapeOutside",
"parser-function": "consumeShapeOutside",
"parser-grammar-unused": "none | [ <basic-shape> || <shape-box> ] | <image>",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form and the strong value representation."
},
"specification": {
"category": "css-shapes",
"url": "https://www.w3.org/TR/css-shapes/#propdef-shape-outside"
}
},
"shape-margin": {
"animation-type": "by computed value",
"initial": "0px",
"codegen-properties": {
"aliases": [
"-webkit-shape-margin"
],
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ShapeMargin",
"parser-grammar": "<length-percentage [0,inf]>"
},
"specification": {
"category": "css-shapes",
"url": "https://www.w3.org/TR/css-shapes/#propdef-shape-margin"
}
},
"shape-image-threshold": {
"animation-type": "by computed value",
"initial": "0",
"codegen-properties": {
"aliases": [
"-webkit-shape-image-threshold"
],
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::ShapeImageThreshold",
"parser-grammar": "<number>",
"parser-grammar-comment": "Current spec grammar is '<opacity-value>'"
},
"specification": {
"category": "css-shapes",
"url": "https://www.w3.org/TR/css-shapes/#propdef-shape-image-threshold"
}
},
"timeline-scope": {
"animation-type": "not animatable",
"initial": "none",
"values": [
"none",
"all"
],
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::NameScope",
"parser-grammar": "none | all | <dashed-ident>#"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#timeline-scope"
}
},
"view-timeline": {
"codegen-properties": {
"longhands": [
"view-timeline-name",
"view-timeline-axis",
"view-timeline-inset"
],
"parser-function": "consumeViewTimelineShorthand",
"parser-grammar-unused": "[ <'view-timeline-name'> [ <'view-timeline-axis'> || <'view-timeline-inset'> ]? ]#",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#view-timeline-shorthand"
}
},
"view-timeline-axis": {
"animation-type": "not animatable",
"initial": "block",
"values": [
"block",
"inline",
"x",
"y"
],
"codegen-properties": {
"computed-style-name-for-methods": "ViewTimelineAxes",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ProgressTimelineAxes",
"parser-exported": true,
"parser-grammar": "<axis>#"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#view-timeline-axis"
}
},
"view-timeline-inset": {
"animation-type": "not animatable (needs triage)",
"animation-type-comment": "Current spec animation type is 'by computed value'",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"computed-style-name-for-methods": "ViewTimelineInsets",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ViewTimelineInsets",
"parser-grammar": "<single-view-timeline-inset-item>#@(no-single-item-opt)"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#view-timeline-inset"
}
},
"view-timeline-name": {
"animation-type": "not animatable",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"computed-style-name-for-methods": "ViewTimelineNames",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ProgressTimelineNames",
"parser-exported": true,
"parser-grammar": "<single-scroll-timeline-name>#"
},
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#view-timeline-name"
}
},
"view-transition-class": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"settings-flag": "viewTransitionsEnabled",
"computed-style-name-for-methods": "ViewTransitionClasses",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ViewTransitionClasses",
"parser-grammar": "none | <custom-ident excluding=none>+@(no-single-item-opt)"
},
"specification": {
"category": "css-view-transitions",
"url": "https://drafts.csswg.org/css-view-transitions-2/#view-transition-class-prop"
}
},
"view-transition-name": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"auto",
"match-element"
],
"codegen-properties": {
"settings-flag": "viewTransitionsEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::ViewTransitionName",
"parser-grammar": "none | auto | match-element | <custom-ident>"
},
"specification": {
"category": "css-view-transitions",
"url": "https://drafts.csswg.org/css-view-transitions/#view-transition-name-prop"
}
},
"anchor-name": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"settings-flag": "cssAnchorPositioningEnabled",
"computed-style-name-for-methods": "AnchorNames",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::AnchorNames",
"parser-grammar": "none | <dashed-ident>#"
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position-1/#name"
}
},
"anchor-scope": {
"animation-type": "discrete",
"initial": "none",
"codegen-properties": {
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::NameScope",
"parser-grammar": "none | all | <dashed-ident>#",
"settings-flag": "cssAnchorPositioningEnabled"
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position-1/#anchor-scope"
}
},
"position-anchor": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto"
],
"codegen-properties": {
"settings-flag": "cssAnchorPositioningEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PositionAnchor",
"parser-grammar": "auto | <dashed-ident>"
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position-1/#position-anchor"
}
},
"position-area": {
"animation-type": "discrete",
"animation-type-comment": "Current spec animation type is 'TDB'",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"settings-flag": "cssAnchorPositioningEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::PositionArea",
"parser-function": "consumePositionArea",
"parser-grammar-unused": "none | <position-area>",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position-1/#position-area"
}
},
"position-try": {
"codegen-properties": {
"longhands": [
"position-try-order",
"position-try-fallbacks"
],
"settings-flag": "cssAnchorPositioningEnabled",
"parser-function": "consumePositionTryShorthand",
"parser-grammar-unused": "<'position-try-order'>? <'position-try-fallbacks'>",
"parser-grammar-unused-reason": "Needs support for shorthand grammars."
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position-1/#position-try-prop"
}
},
"position-try-order": {
"animation-type": "discrete",
"initial": "normal",
"values": [
"normal",
"most-width",
"most-height",
"most-block-size",
"most-inline-size"
],
"codegen-properties": {
"settings-flag": "cssAnchorPositioningEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::PositionTryOrder",
"parser-grammar": "<<values>>"
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position-1/#position-try-order-property"
}
},
"position-try-fallbacks": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none"
],
"codegen-properties": {
"settings-flag": "cssAnchorPositioningEnabled",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::PositionTryFallbacks",
"parser-function": "consumePositionTryFallbacks",
"parser-grammar-unused": "none | [ [<dashed-ident> || <try-tactic>] | <position-area> ]#",
"parser-grammar-unused-reason": "Needs support for transforming parsed input to minimal form."
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks"
}
},
"position-visibility": {
"animation-type": "discrete",
"initial": "anchors-visible",
"values": [
"always",
"anchors-valid",
"anchors-visible",
"no-overflow"
],
"codegen-properties": {
"settings-flag": "cssAnchorPositioningEnabled",
"computed-style-initial-custom": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "raw",
"computed-style-type": "Style::PositionVisibility",
"parser-grammar": "always | [ anchors-valid || anchors-visible || no-overflow ]@(no-single-item-opt)"
},
"specification": {
"category": "css-anchor-position",
"url": "https://drafts.csswg.org/css-anchor-position/#position-visibility"
}
},
"-webkit-tap-highlight-color": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "@TapHighlightColor",
"codegen-properties": {
"enable-if": "ENABLE_TOUCH_EVENTS",
"color-property": true,
"computed-style-initial-custom": true,
"computed-style-initial-inline": false,
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "reference",
"computed-style-type": "Style::Color",
"computed-style-resolving-current-color-exported": true,
"parser-grammar": "<color>"
},
"status": "non-standard"
},
"-webkit-overflow-scrolling": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "auto",
"values": [
"auto",
"touch"
],
"codegen-properties": {
"enable-if": "ENABLE_WEBKIT_OVERFLOW_SCROLLING_CSS_PROPERTY",
"settings-flag": "legacyOverflowScrollingTouchEnabled",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::WebkitOverflowScrolling",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"touch-action": {
"animation-type": "discrete",
"initial": "auto",
"values": [
"auto",
"none",
"manipulation",
"pan-x",
{
"value": "pan-left",
"status": "unimplemented",
"url": "https://w3c.github.io/pointerevents/#the-touch-action-css-property"
},
{
"value": "pan-right",
"status": "unimplemented",
"url": "https://w3c.github.io/pointerevents/#the-touch-action-css-property"
},
"pan-y",
{
"value": "pan-up",
"status": "unimplemented",
"url": "https://w3c.github.io/pointerevents/#the-touch-action-css-property"
},
{
"value": "pan-down",
"status": "unimplemented",
"url": "https://w3c.github.io/pointerevents/#the-touch-action-css-property"
},
{
"value": "pinch-zoom",
"status": "non-standard"
}
],
"codegen-properties": {
"computed-style-initial-constexpr": true,
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "value",
"computed-style-type": "Style::TouchAction",
"parser-grammar": "auto | none | [ pan-x || pan-y || pinch-zoom ]@(no-single-item-opt) | manipulation",
"parser-grammar-comment": "Current spec grammar is 'auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] ] | manipulation'"
},
"specification": {
"url": "https://www.w3.org/TR/pointerevents/#the-touch-action-css-property"
}
},
"-webkit-touch-callout": {
"animation-type": "not animatable (legacy)",
"inherited": true,
"initial": "default",
"values": [
"default",
"none"
],
"codegen-properties": {
"enable-if": "ENABLE_WEBKIT_TOUCH_CALLOUT_CSS_PROPERTY",
"computed-style-storage-path": ["m_inheritedRareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "Style::WebkitTouchCallout",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-apple-visual-effect": {
"animation-type": "discrete",
"initial": "none",
"values": [
"none",
"-apple-system-blur-material-ultra-thin",
"-apple-system-blur-material-thin",
"-apple-system-blur-material",
"-apple-system-blur-material-thick",
"-apple-system-blur-material-chrome",
{
"value": "-apple-system-glass-material",
"enable-if": "HAVE_MATERIAL_HOSTING"
},
{
"value": "-apple-system-glass-material-clear",
"enable-if": "HAVE_MATERIAL_HOSTING"
},
{
"value": "-apple-system-glass-material-subdued",
"enable-if": "HAVE_MATERIAL_HOSTING"
},
{
"value": "-apple-system-glass-material-media-controls",
"enable-if": "HAVE_MATERIAL_HOSTING"
},
{
"value": "-apple-system-glass-material-media-controls-subdued",
"enable-if": "HAVE_MATERIAL_HOSTING"
},
"-apple-system-vibrancy-label",
"-apple-system-vibrancy-secondary-label",
"-apple-system-vibrancy-tertiary-label",
"-apple-system-vibrancy-quaternary-label",
"-apple-system-vibrancy-fill",
"-apple-system-vibrancy-secondary-fill",
"-apple-system-vibrancy-tertiary-fill",
"-apple-system-vibrancy-separator"
],
"codegen-properties": {
"enable-if": "HAVE_CORE_MATERIAL",
"settings-flag": "useSystemAppearance",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "AppleVisualEffect",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-apple-pay-button-style": {
"animation-type": "not animatable (legacy)",
"initial": "black",
"values": [
"white",
"white-outline",
"black"
],
"codegen-properties": {
"enable-if": "ENABLE_APPLE_PAY",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ApplePayButtonStyle",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
},
"-apple-pay-button-type": {
"animation-type": "not animatable (legacy)",
"initial": "plain",
"values": [
"plain",
"buy",
"set-up",
"donate",
"check-out",
"book",
"subscribe",
{
"value": "reload",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
},
{
"value": "add-money",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
},
{
"value": "top-up",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
},
{
"value": "order",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
},
{
"value": "rent",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
},
{
"value": "support",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
},
{
"value": "contribute",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
},
{
"value": "tip",
"enable-if": "ENABLE_APPLE_PAY_NEW_BUTTON_TYPES"
}
],
"codegen-properties": {
"enable-if": "ENABLE_APPLE_PAY",
"computed-style-storage-path": ["m_nonInheritedData", "rareData"],
"computed-style-storage-kind": "enum",
"computed-style-type": "ApplePayButtonType",
"parser-grammar": "<<values>>"
},
"status": "non-standard"
}
},
"descriptors": {
"@counter-style": {
"additive-symbols": {
"codegen-properties": {
"parser-function": "consumeCounterStyleAdditiveSymbols",
"parser-grammar-unused": "[ <integer [0,inf]> && <symbol> ]#",
"parser-grammar-unused-reason": "Needs support for custom validation of lists."
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-symbols"
}
},
"fallback": {
"codegen-properties": {
"parser-function": "consumeCounterStyleName",
"parser-grammar-unused": "<counter-style-name>",
"parser-grammar-unused-reason": "Needs support for excluding a class of names from a <custom-ident>."
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-fallback"
}
},
"negative": {
"codegen-properties": {
"parser-grammar": "<symbol> <symbol>?"
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-negative"
}
},
"pad": {
"codegen-properties": {
"parser-grammar": "<integer [0,inf]> && <symbol>"
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-pad"
}
},
"prefix": {
"codegen-properties": {
"parser-grammar": "<symbol>"
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-prefix"
}
},
"range": {
"codegen-properties": {
"parser-function": "consumeCounterStyleRange",
"parser-grammar-unused": "[ [ <integer> | infinite ]{2} ]# | auto",
"parser-grammar-unused-reason": "Needs support for non-coalescing CSSValuePair and custom validation of lists."
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-range"
}
},
"suffix": {
"codegen-properties": {
"parser-grammar": "<symbol>"
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-suffix"
}
},
"system": {
"codegen-properties": {
"parser-function": "consumeCounterStyleSystem",
"parser-grammar-unused": "cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]",
"parser-grammar-unused-reason": "Needs support for different parsing based on the current mode, ordered groups with a keyword/literal first term differentiator and excluding a class of names from a <custom-ident>."
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-system"
}
},
"speak-as": {
"codegen-properties": {
"parser-grammar": "auto | bullets | numbers | words | spell-out | <counter-style-name>"
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-speak-as"
}
},
"symbols": {
"codegen-properties": {
"parser-grammar": "<symbol>+@(no-single-item-opt)"
},
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-symbols"
}
}
},
"@font-face": {
"font-family": {
"codegen-properties": {
"parser-grammar": "<family-name>",
"parser-exported": true
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-font-family"
}
},
"font-display": {
"values": [
"auto",
"block",
"swap",
"fallback",
"optional"
],
"codegen-properties": {
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-font-display"
}
},
"font-feature-settings": {
"values": [
"normal"
],
"codegen-properties": {
"parser-grammar": "normal | <feature-tag-value>#@(no-single-item-opt)",
"parser-exported": true
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-font-feature-settings"
}
},
"font-width": {
"values": [
{
"value": "auto",
"status": "unimplemented",
"enable-if": "ENABLE_VARIATION_FONTS"
},
"normal",
"ultra-condensed",
"extra-condensed",
"condensed",
"semi-condensed",
"semi-expanded",
"expanded",
"extra-expanded",
"ultra-expanded"
],
"codegen-properties": [
{
"enable-if": "ENABLE_VARIATION_FONTS",
"aliases": ["font-stretch"],
"parser-grammar": "<font-width-absolute> | <percentage [0,inf]>{1,2}",
"parser-grammar-comment": "Current spec grammar is 'auto | <'font-width'>{1,2}'",
"parser-exported": true
},
{
"enable-if": "!ENABLE_VARIATION_FONTS",
"aliases": ["font-stretch"],
"parser-grammar": "<font-width-absolute> | <percentage [0,inf]>",
"parser-exported": true
}
],
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-font-width"
}
},
"font-style": {
"values": [
{
"value": "auto",
"status": "unimplemented",
"enable-if": "ENABLE_VARIATION_FONTS"
},
"normal",
"italic",
"oblique"
],
"codegen-properties": [
{
"enable-if": "ENABLE_VARIATION_FONTS",
"parser-function": "consumeFontFaceFontStyle",
"parser-grammar-unused": "auto | normal | italic | [ oblique [ <angle>{1,2} ]? ]",
"parser-grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator."
},
{
"enable-if": "!ENABLE_VARIATION_FONTS",
"parser-grammar": "normal | italic | oblique"
}
],
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-font-style"
}
},
"font-weight": {
"values": [
{
"value": "auto",
"status": "unimplemented",
"enable-if": "ENABLE_VARIATION_FONTS"
},
"normal",
"bold"
],
"codegen-properties": [
{
"enable-if": "ENABLE_VARIATION_FONTS",
"parser-grammar": "normal | bold | <number [1,1000]>{1,2}",
"parser-grammar-comment": "Current spec grammar is 'auto | <font-weight-absolute>{1,2}'",
"parser-exported": true
},
{
"enable-if": "!ENABLE_VARIATION_FONTS",
"parser-grammar": "<font-weight-absolute>",
"parser-exported": true
}
],
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-font-weight"
}
},
"src": {
"codegen-properties": {
"parser-function": "consumeFontFaceSrc",
"parser-grammar-unused": "<font-src-list>",
"parser-grammar-unused-reason": "Needs support for primitive <family-name>."
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-src"
}
},
"size-adjust": {
"codegen-properties": {
"parser-grammar": "<percentage [0,inf]>",
"parser-exported": true
},
"specification": {
"category": "css-fonts-5",
"url": "https://drafts.csswg.org/css-fonts-5/#descdef-font-face-size-adjust"
}
},
"unicode-range": {
"codegen-properties": {
"parser-grammar": "<unicode-range-token>#@(no-single-item-opt)",
"parser-exported": true
},
"specification": {
"category": "css-fonts",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-face-unicode-range"
}
}
},
"@font-palette-values": {
"font-family": {
"codegen-properties": {
"parser-grammar": "<family-name>#@(no-single-item-opt)"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-palette-values-font-family"
}
},
"base-palette": {
"codegen-properties": {
"parser-grammar": "light | dark | <integer [0,inf]>"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-palette-values-base-palette"
}
},
"override-colors": {
"codegen-properties": {
"parser-grammar": "[ <integer [0,inf]> <color allowed-types=absolute> ]@(type=CSSValuePair)#@(no-single-item-opt)"
},
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#descdef-font-palette-values-override-colors"
}
}
},
"@page": {
"size": {
"codegen-properties": {
"parser-grammar": "<length [0,inf]>{1,2}@(type=CSSValuePair) | auto | [ <page-size> || [ portrait | landscape ] ]@(type=CSSValuePair)"
},
"specification": {
"category": "css-page",
"url": "https://www.w3.org/TR/css3-page/#page-size-prop"
}
}
},
"@property": {
"syntax": {
"codegen-properties": {
"parser-grammar": "<string>"
},
"specification": {
"category": "css-properties-and-values",
"url": "https://drafts.css-houdini.org/css-properties-values-api/#the-syntax-descriptor"
}
},
"inherits": {
"codegen-properties": {
"parser-grammar": "true | false"
},
"specification": {
"category": "css-properties-and-values",
"url": "https://drafts.css-houdini.org/css-properties-values-api/#inherits-descriptor"
}
},
"initial-value": {
"codegen-properties": {
"parser-grammar": "<declaration-value>"
},
"specification": {
"category": "css-properties-and-values",
"url": "https://drafts.css-houdini.org/css-properties-values-api/#initial-value-descriptor"
}
}
},
"@function": {
"result": {
"codegen-properties": {
"settings-flag": "cssFunctionAtRuleEnabled",
"parser-grammar": "<declaration-value>?"
},
"specification": {
"category": "css-mixins",
"url": "https://www.w3.org/TR/css-mixins-1/#descdef-function-result"
}
}
},
"@view-transition": {
"navigation": {
"values": [
"none",
"auto"
],
"codegen-properties": {
"settings-flag": "crossDocumentViewTransitionsEnabled",
"parser-grammar": "<<values>>",
"parser-exported": true
},
"specification": {
"category": "css-view-transitions",
"url": "https://www.w3.org/TR/css-view-transitions-2/#view-transition-navigation-descriptor"
}
},
"types": {
"values": [
"none"
],
"codegen-properties": {
"settings-flag": "crossDocumentViewTransitionsEnabled",
"parser-function": "consumeViewTransitionTypes",
"parser-grammar-unused": "none | <custom-ident excluding=none>+",
"parser-grammar-unused-reason": "Needs support for excluding from <custom-ident> based on prefixes."
},
"specification": {
"category": "css-view-transitions",
"url": "https://www.w3.org/TR/css-view-transitions-2/#view-transition-navigation-descriptor"
}
}
}
},
"categories": {
"css-22": {
"shortname": "CSS 2.2",
"longname": "CSS 2.2",
"url": "https://www.w3.org/TR/CSS22/"
},
"css-align": {
"shortname": "CSS Box Alignment",
"longname": "CSS Box Alignment Module",
"url": "https://www.w3.org/TR/css-align-3/"
},
"css-anchor-position": {
"shortname": "CSS Anchor Positioning",
"longname": "CSS Anchor Positioning",
"url": "https://www.w3.org/TR/css-anchor-position-1/"
},
"css-animations": {
"shortname": "CSS Animations",
"longname": "CSS Animations",
"url": "https://www.w3.org/TR/css3-animations/"
},
"css-backgrounds": {
"shortname": "CSS Backgrounds and Borders",
"longname": "CSS Backgrounds and Borders Module",
"url": "https://www.w3.org/TR/css3-background/"
},
"css-borders": {
"shortname": "CSS Borders and Box Decorations",
"longname": "CSS Borders and Box Decorations Module",
"url": "https://drafts.csswg.org/css-borders-4/"
},
"css-box-4": {
"shortname": "CSS Box 4",
"longname": "CSS Box Model Module Level 4",
"url": "https://www.w3.org/TR/css-box-4/"
},
"css-break": {
"shortname": "CSS Fragmentation",
"longname": "CSS Fragmentation Module",
"url": "https://www.w3.org/TR/css-break-3/"
},
"css-cascade": {
"shortname": "CSS Cascade",
"longname": "CSS Cascading and Inheritance",
"url": "https://www.w3.org/TR/css-cascade-3/"
},
"css-color": {
"shortname": "CSS Color",
"longname": "CSS Color Module",
"url": "https://www.w3.org/TR/css-color/"
},
"css-color-adjust": {
"shortname": "CSS Color Adjustment",
"longname": "CSS Color Adjustment Module",
"url": "https://www.w3.org/TR/css-color-adjust/"
},
"css-compositing": {
"shortname": "CSS Compositing and Blending",
"longname": "CSS Compositing and Blending",
"url": "https://www.w3.org/TR/compositing-1/"
},
"css-contain": {
"shortname": "CSS Containment",
"longname": "CSS Containment Module",
"url": "https://drafts.csswg.org/css-contain-2/"
},
"css-content": {
"shortname": "CSS Generated Content",
"longname": "CSS Generated Content Module",
"url": "https://www.w3.org/TR/css-content-3/"
},
"css-content-visibility": {
"shortname": "CSS Content Visibility",
"longname": "CSS Content Visibility Module",
"url": "https://www.w3.org/TR/css-contain-2/#content-visibility"
},
"css-counter-styles": {
"shortname": "CSS Counter Styles",
"longname": "CSS Counter Styles Module",
"url": "https://www.w3.org/TR/css-counter-styles-3"
},
"css-display": {
"shortname": "CSS Display",
"longname": "CSS Display Module",
"url": "https://www.w3.org/TR/css-display-3/"
},
"css-filters": {
"shortname": "CSS Filter Effects",
"longname": "CSS Filter Effects Module",
"url": "https://www.w3.org/TR/filter-effects/"
},
"css-flexbox": {
"shortname": "CSS Flexbox",
"longname": "CSS Flexible Box Module",
"url": "https://www.w3.org/TR/css-flexbox-1/"
},
"css-fonts": {
"shortname": "CSS Fonts",
"longname": "CSS Fonts Module",
"url": "https://www.w3.org/TR/css-fonts-3/"
},
"css-fonts-4": {
"shortname": "CSS Fonts Level 4",
"longname": "CSS Fonts Module Level 4",
"url": "https://drafts.csswg.org/css-fonts-4"
},
"css-fonts-5": {
"shortname": "CSS Fonts Level 5",
"longname": "CSS Fonts Module Level 5",
"url": "https://www.w3.org/TR/css-fonts-5"
},
"css-grid": {
"shortname": "CSS Grid Layout",
"longname": "CSS Grid Layout Module",
"url": "https://www.w3.org/TR/css-grid-1/"
},
"css-images": {
"shortname": "CSS Images",
"longname": "CSS Image Values and Replaced Content Module",
"url": "https://www.w3.org/TR/css3-images/"
},
"css-inline": {
"shortname": "CSS Inline Layout",
"longname": "CSS Inline Layout Module",
"url": "https://www.w3.org/TR/css-inline-3/"
},
"css-line-grid": {
"shortname": "CSS Line Grid",
"longname": "CSS Line Grid Module",
"url": "https://www.w3.org/TR/css-line-grid-1/"
},
"css-lists": {
"shortname": "CSS Lists and Counters",
"longname": "CSS Lists and Counters Module",
"url": "https://www.w3.org/TR/css-lists-3/"
},
"css-logical-props": {
"shortname": "CSS Logical Properties",
"longname": "CSS Logical Properties Module",
"url": "https://drafts.csswg.org/css-logical-props/"
},
"css-masking": {
"shortname": "CSS Masking",
"longname": "CSS Masking Module",
"url": "https://drafts.fxtf.org/css-masking-1/"
},
"css-mixins": {
"shortname": "CSS Functions and Mixins",
"longname": "CSS Functions and Mixins Module",
"url": "https://www.w3.org/TR/css-mixins-1"
},
"css-motion-path": {
"shortname": "CSS Motion Path",
"longname": "CSS Motion Path Module",
"url": "https://drafts.fxtf.org/motion-1/"
},
"css-multicol": {
"shortname": "CSS Multi-column Layout",
"longname": "CSS Multi-column Layout Module",
"url": "https://www.w3.org/TR/css3-multicol/"
},
"css-overflow": {
"shortname": "CSS Overflow",
"longname": "CSS Overflow Module",
"url": "https://drafts.csswg.org/css-overflow-3/"
},
"css-page": {
"shortname": "CSS Paged Media",
"longname": "CSS Paged Media Module",
"url": "https://www.w3.org/TR/css3-page/"
},
"css-position-3": {
"shortname": "CSS Positioned Layout",
"longname": "CSS Positioned Layout Module Level 3",
"url": "https://drafts.csswg.org/css-position-3/"
},
"css-properties-and-values": {
"shortname": "CSS Properties and Values API",
"longname": "CSS Properties and Values API",
"url": "https://drafts.css-houdini.org/css-properties-values-api"
},
"css-rhythm": {
"shortname": "CSS Rhythmic Sizing",
"longname": "CSS Rhythmic Sizing",
"url": "https://www.w3.org/TR/css-rhythm-1/"
},
"css-ruby": {
"shortname": "CSS Ruby",
"longname": "CSS Ruby Layout Module",
"url": "https://www.w3.org/TR/css-ruby-1/"
},
"css-scroll-anchoring": {
"shortname": "CSS Scroll Anchoring",
"longname": "CSS Scroll Anchoring Module",
"url": "https://www.w3.org/TR/css-scroll-anchoring-1/"
},
"css-scroll-snap": {
"shortname": "CSS Scroll Snap",
"longname": "CSS Scroll Snap Module",
"url": "https://www.w3.org/TR/css-scroll-snap-1/"
},
"css-scrollbars": {
"shortname": "CSS Scrollbars",
"longname": "CSS Scrollbars Styling Module",
"url": "https://www.w3.org/TR/css-scrollbars-1/"
},
"css-shapes": {
"shortname": "CSS Shapes",
"longname": "CSS Shapes Module",
"url": "https://www.w3.org/TR/css-shapes/"
},
"css-sizing": {
"shortname": "CSS Box Sizing",
"longname": "CSS Box Sizing Module Level 4",
"url": "https://drafts.csswg.org/css-sizing-4/"
},
"css-speech": {
"shortname": "CSS Speech",
"longname": "CSS Speech Module",
"url": "https://www.w3.org/TR/css3-speech/"
},
"css-text": {
"shortname": "CSS Text",
"longname": "CSS Text Module",
"url": "https://www.w3.org/TR/css-text-3/"
},
"css-text-fill-and-stroke": {
"shortname": "CSS Text Fill and Stroke",
"longname": "CSS Text Fill and Stroke Module",
"url": "https://drafts.fxtf.org/paint/"
},
"css-text-decor": {
"shortname": "CSS Text Decoration",
"longname": "CSS Text Decoration Module",
"url": "https://www.w3.org/TR/css-text-decor-3/"
},
"css-transforms": {
"shortname": "CSS Transforms",
"longname": "CSS Transforms Module",
"url": "https://www.w3.org/TR/css-transforms-1/"
},
"css-transitions": {
"shortname": "CSS Transitions",
"longname": "CSS Transitions Module",
"url": "https://www.w3.org/TR/css3-transitions/"
},
"css-ui": {
"shortname": "CSS Basic User Interface",
"longname": "CSS Basic User Interface Module",
"url": "https://www.w3.org/TR/css-ui-3/"
},
"css-viewport": {
"shortname": "CSS Viewport",
"longname": "CSS Viewport Module",
"url": "https://drafts.csswg.org/css-viewport/"
},
"css-view-transitions": {
"shortname": "CSS View Transitions",
"longname": "CSS View Transitions Module",
"url": "https://drafts.csswg.org/css-view-transitions/"
},
"css-will-change": {
"shortname": "CSS Will Change",
"longname": "CSS Will Change Module",
"url": "https://www.w3.org/TR/css-will-change/"
},
"css-writing-modes": {
"shortname": "CSS Writing Modes",
"longname": "CSS Writing Modes Module",
"url": "https://www.w3.org/TR/css-writing-modes-3/"
},
"mathml-core": {
"shortname": "MathML Core",
"longname": "MathML Core",
"url": "https://w3c.github.io/mathml-core/"
},
"scroll-animations": {
"shortname": "Scroll-driven Animations",
"longname": "Scroll-driven Animations",
"url": "https://www.w3.org/TR/scroll-animations-1/"
},
"svg": {
"shortname": "SVG",
"longname": "SVG",
"url": "https://www.w3.org/TR/SVG11/"
}
},
"shared-grammar-rules": {
"<opacity-value>": {
"grammar": "<number-or-percentage-resolved-to-number>",
"specification": {
"category": "css-color",
"url": "https://drafts.csswg.org/css-color-4/#typedef-opacity-opacity-value"
}
},
"<marker-ref>": {
"grammar": "<url>",
"specification": {
"category": "svg",
"url": "https://www.w3.org/TR/SVG/painting.html#DataTypeMarkerRef"
}
},
"<absolute-size>": {
"grammar": "xx-small | x-small | small | medium | large | x-large | xx-large | xxx-large",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#valdef-font-size-absolute-size"
}
},
"<-webkit-absolute-size>": {
"grammar": "-webkit-xxx-large@(aliased-to=xxx-large)",
"status": "non-standard"
},
"<relative-size>": {
"grammar": "larger | smaller",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#valdef-font-size-relative-size"
}
},
"<-webkit-relative-size>": {
"grammar": "-webkit-ruby-text",
"status": "non-standard"
},
"<font-weight-absolute>": {
"grammar": "normal | bold | <number [1,1000]>",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-weight-absolute-values"
}
},
"<font-width-absolute>": {
"grammar": "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded",
"exported": true,
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#stretchmappings"
}
},
"<common-lig-values>": {
"grammar": "common-ligatures | no-common-ligatures",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#common-lig-values"
}
},
"<discretionary-lig-values>": {
"grammar": "discretionary-ligatures | no-discretionary-ligatures",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#discretionary-lig-values"
}
},
"<historical-lig-values>": {
"grammar": "historical-ligatures | no-historical-ligatures",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#historical-lig-values"
}
},
"<contextual-alt-values>": {
"grammar": "contextual | no-contextual",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#contextual-alt-values"
}
},
"<numeric-figure-values>": {
"grammar": "lining-nums | oldstyle-nums",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#numeric-figure-values"
}
},
"<numeric-spacing-values>": {
"grammar": "proportional-nums | tabular-nums",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#numeric-spacing-values"
}
},
"<numeric-fraction-values>": {
"grammar": "diagonal-fractions | stacked-fractions",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#numeric-fraction-values"
}
},
"<east-asian-variant-values>": {
"grammar": "jis78 | jis83 | jis90 | jis04 | simplified | traditional",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#east-asian-variant-values"
}
},
"<east-asian-width-values>": {
"grammar": "full-width | proportional-width",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#east-asian-width-values"
}
},
"<generic-family>": {
"grammar": "serif | sans-serif | cursive | fantasy | monospace | system-ui | emoji | math | fangsong | ui-serif | ui-sans-serif | ui-monospace | ui-rounded",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#generic-font-families"
}
},
"<-webkit-generic-family>": {
"grammar": "-webkit-body",
"status": "non-standard"
},
"<gap-gutter>": {
"grammar": "normal | <length-percentage [0,inf]>",
"specification": {
"category": "css-align",
"url": "https://drafts.csswg.org/css-align/#column-row-gap"
}
},
"<width-or-height-keyword>": {
"grammar": "intrinsic | min-intrinsic | min-content | -webkit-min-content | max-content | -webkit-max-content | -webkit-fill-available | fit-content | -webkit-fit-content"
},
"<width-or-height>": {
"grammar": "auto | <width-or-height-keyword> | <length-percentage [0,inf] anchor-size=allowed>",
"exported": true,
"comment": "Doesn't match current specification",
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#preferred-size-properties"
}
},
"<max-width-or-height>": {
"grammar": "none | <width-or-height-keyword> | <length-percentage [0,inf] anchor-size=allowed>",
"comment": "Doesn't match current specification",
"specification": {
"category": "css-sizing",
"url": "https://drafts.csswg.org/css-sizing-4/#max-size-properties"
}
},
"<line-style>": {
"grammar": "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset",
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#typedef-line-style"
}
},
"<line-width>": {
"grammar": "thin | medium | thick | <length [0,inf]>",
"exported": true,
"specification": {
"category": "css-backgrounds",
"url": "https://drafts.csswg.org/css-backgrounds/#typedef-line-width"
}
},
"<outline-line-style>": {
"grammar": "none | dotted | dashed | solid | double | groove | ridge | inset | outset",
"specification": {
"category": "css-ui",
"url": "https://drafts.csswg.org/css-ui-4/#typedef-outline-line-style",
"comment": "Defined in prose as '<outline-line-style> accepts the same values as <line-style> (CSS Backgrounds 3 § 3.2 Line Patterns: the border-style properties) with the same meaning, except that hidden is not a legal outline style.'"
}
},
"<margin-logical>": {
"grammar": "auto | <length-percentage anchor-size=allowed>",
"specification": {
"category": "css-logical-props",
"url": "https://www.w3.org/TR/css-logical/#margin-properties"
}
},
"<palette-identifier>": {
"grammar": "<dashed-ident>",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#typedef-font-palette-palette-identifier"
}
},
"<shape-radius>": {
"grammar": "<length-percentage [0,inf]> | closest-side | farthest-side",
"specification": {
"category": "css-shapes",
"url": "https://www.w3.org/TR/css-shapes-1/#typedef-shape-radius"
}
},
"<attachment>": {
"grammar": "scroll | fixed | local",
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#background-attachment"
}
},
"<blend-mode>": {
"grammar": "normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity",
"exported": true,
"specification": {
"category": "css-compositing",
"url": "https://www.w3.org/TR/compositing-1/#ltblendmodegt"
}
},
"<box>": {
"grammar": "border-box | padding-box | content-box",
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#typedef-box"
}
},
"<shape-box>": {
"grammar": "<box> | margin-box",
"exported": true,
"specification": {
"category": "css-shapes",
"url": "https://www.w3.org/TR/css-shapes-1/#typedef-shape-box"
}
},
"<geometry-box>": {
"grammar": "<shape-box> | fill-box | stroke-box | view-box",
"exported": true,
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#typedef-geometry-box"
}
},
"<clip-source>": {
"grammar": "<url>",
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking/#typedef-clip-source"
}
},
"<compositing-operator>": {
"grammar": "add | subtract | intersect | exclude",
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#typedef-compositing-operator"
}
},
"<masking-mode>": {
"grammar": "alpha | luminance | match-source",
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#typedef-masking-mode"
}
},
"<bg-image>": {
"grammar": "<image> | none",
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#typedef-bg-image"
}
},
"<shadow>": {
"grammar": "<color>? && [<length>{2} <length [0,inf]>? <length>?] && inset?",
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#typedef-shadow"
}
},
"<mask-reference>": {
"grammar": "<image> | none",
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#typedef-mask-reference"
}
},
"<rect()>": {
"grammar-unused": "rect( [ <length> | auto ]#{4} | [ <length> | auto ]{4} )",
"grammar-unused-reason": "Needs support for custom types for functional notation.",
"grammar-function": "consumeClipRectFunction",
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect"
}
},
"<-webkit-origin-box>": {
"grammar": "<box> | border | content | padding | -webkit-text",
"status": "non-standard"
},
"<-webkit-clip-box>": {
"grammar": "<-webkit-origin-box> | text",
"status": "non-standard"
},
"<-webkit-compositing-operator>": {
"grammar": "clear | copy | source-over | source-in | source-out | source-atop | destination-over | destination-in | destination-out | destination-atop | xor | plus-darker | plus-lighter",
"status": "non-standard"
},
"<-webkit-masking-source-type>": {
"grammar": "auto | alpha | luminance",
"status": "non-standard"
},
"<single-background-blend-mode>": {
"grammar": "<blend-mode>",
"exported": true,
"specification": {
"category": "css-compositing",
"url": "https://www.w3.org/TR/compositing-1/#propdef-background-blend-mode"
}
},
"<single-background-attachment>": {
"grammar": "<attachment>",
"exported": true,
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#background-attachment"
}
},
"<single-background-clip>": {
"grammar": "<box> | border-area | text | -webkit-text",
"exported": true,
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-4/#background-clip"
},
"comment": "-webkit-text is non-standard."
},
"<single-background-origin>": {
"grammar": "<box>",
"exported": true,
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#background-origin"
}
},
"<single-background-image>": {
"grammar": "<bg-image>",
"exported": true,
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#background-image"
}
},
"<single-background-repeat>": {
"grammar": "<repeat-style>",
"exported": true,
"specification": {
"category": "css-backgrounds",
"url": "https://www.w3.org/TR/css-backgrounds-3/#background-repeat"
}
},
"<single-background-position-x>": {
"grammar": "<position-x>",
"exported": true,
"status": "non-standard",
"comment": "Internally used to represent horizontal part of standard <bg-position>"
},
"<single-background-position-y>": {
"grammar": "<position-y>",
"exported": true,
"status": "non-standard",
"comment": "Internally used to represent vertical part of standard <bg-position>"
},
"<single-mask-clip>": {
"grammar": "<box> | no-clip",
"exported": true,
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-clip"
},
"comment": "Out of spec. 'mask-clip' is currently defined to '[ <coord-box> | no-clip ]#'."
},
"<single-mask-origin>": {
"grammar": "<box> | border | content | padding | -webkit-text",
"exported": true,
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-origin"
},
"comment": "Out of spec. 'mask-origin' is currently defined to '<coord-box>#'."
},
"<single-mask-repeat>": {
"grammar": "<repeat-style>",
"exported": true,
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-repeat"
}
},
"<single-mask-image>": {
"grammar": "<mask-reference>",
"exported": true,
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-image"
}
},
"<single-mask-composite>": {
"grammar": "<compositing-operator>",
"exported": true,
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-composite"
}
},
"<single-mask-mode>": {
"grammar": "<masking-mode>",
"exported": true,
"specification": {
"category": "css-masking",
"url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-mode"
}
},
"<single-webkit-background-clip>": {
"grammar": "<-webkit-clip-box>",
"exported": true,
"status": "non-standard"
},
"<single-webkit-background-origin>": {
"grammar": "<-webkit-origin-box>",
"exported": true,
"status": "non-standard"
},
"<single-webkit-mask-composite>": {
"grammar": "<-webkit-compositing-operator>",
"exported": true,
"status": "non-standard"
},
"<single-webkit-mask-clip>": {
"grammar": "<-webkit-clip-box>",
"exported": true,
"status": "non-standard"
},
"<single-webkit-mask-position-x>": {
"grammar": "<position-x>",
"exported": true,
"status": "non-standard"
},
"<single-webkit-mask-position-y>": {
"grammar": "<position-y>",
"exported": true,
"status": "non-standard"
},
"<single-webkit-mask-source-type>": {
"grammar": "<-webkit-masking-source-type>",
"exported": true,
"status": "non-standard"
},
"<single-animation-composition>": {
"grammar": "replace | add | accumulate",
"exported": true,
"specification": {
"category": "css-animations",
"url": "https://drafts.csswg.org/css-animations-2/#animation-composition"
}
},
"<single-animation-duration>": {
"grammar": "auto | <time [0,inf]>",
"exported": true,
"specification": {
"category": "css-animations",
"url": "https://drafts.csswg.org/css-animations-2/#animation-duration"
}
},
"<single-animation-direction>": {
"grammar": "normal | reverse | alternate | alternate-reverse",
"exported": true,
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css-animations-1/#typedef-single-animation-direction"
}
},
"<single-animation-fill-mode>": {
"grammar": "none | forwards | backwards | both",
"exported": true,
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css-animations-1/#typedef-single-animation-fill-mode"
}
},
"<single-animation-iteration-count>": {
"grammar": "infinite | <number [0,inf]>",
"exported": true,
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css-animations-1/#typedef-single-animation-iteration-count"
}
},
"<single-animation-name>": {
"grammar": "none | <keyframes-name>",
"exported": true,
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css-animations-1/#animation-name"
}
},
"<single-animation-play-state>": {
"grammar": "running | paused",
"exported": true,
"specification": {
"category": "css-animations",
"url": "https://www.w3.org/TR/css-animations-1/#typedef-single-animation-play-state"
}
},
"<corner-shape-value>": {
"grammar": "round | scoop | bevel | notch | straight | squircle | superellipse(<number [0,inf]> | infinity)",
"specification": {
"category": "css-borders",
"url": "https://drafts.csswg.org/css-borders-4/#corner-shaping"
}
},
"<transition-behavior-value>": {
"grammar": "normal | allow-discrete",
"exported": true,
"specification": {
"category": "css-transitions",
"url": "https://drafts.csswg.org/css-transitions-2/#typedef-transition-behavior-value"
}
},
"<page-size>": {
"grammar": "A5 | A4 | A3 | B5 | B4 | jis-B5 | jis-B4 | letter | legal | ledger",
"specification": {
"category": "css-page",
"url": "https://www.w3.org/TR/css-page-3/#typedef-page-size-page-size"
}
},
"<filter-value-list>": {
"grammar": "[ <filter-function> | <url> ]+",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#typedef-filter-value-list"
}
},
"<filter-function>": {
"grammar": "<blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()>",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#typedef-filter-function"
}
},
"<color-filter-value-list>": {
"grammar": "<color-filter-function>+",
"status": "non-standard"
},
"<color-filter-function>": {
"grammar": "<brightness()> | <contrast()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()> | <-apple-invert-lightness()>",
"status": "non-standard"
},
"<blur()>": {
"grammar": "blur( <length [0,inf]>? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-blur"
}
},
"<brightness()>": {
"grammar": "brightness( [ <number [0,inf]> | <percentage [0,inf]> ]? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-brightness"
}
},
"<contrast()>": {
"grammar": "contrast( [ <number [0,inf]> | <percentage [0,inf]> ]? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-contrast"
}
},
"<drop-shadow()>": {
"grammar": "drop-shadow( <color>? && <length>{2,3} )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-drop-shadow"
}
},
"<grayscale()>": {
"grammar": "grayscale( [ <number [0,inf]> | <percentage [0,inf]> ]? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-grayscale"
}
},
"<hue-rotate()>": {
"grammar": "hue-rotate( <angle unitless-zero=allowed>? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-hue-rotate"
}
},
"<invert()>": {
"grammar": "invert( [ <number [0,inf]> | <percentage [0,inf]> ]? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-invert"
}
},
"<opacity()>": {
"grammar": "opacity( [ <number [0,inf]> | <percentage [0,inf]> ]? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-opacity"
}
},
"<saturate()>": {
"grammar": "saturate( [ <number [0,inf]> | <percentage [0,inf]> ]? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-saturate"
}
},
"<sepia()>": {
"grammar": "sepia( [ <number [0,inf]> | <percentage [0,inf]> ]? )",
"specification": {
"category": "css-filters",
"url": "https://www.w3.org/TR/filter-effects/#funcdef-filter-sepia"
}
},
"<-apple-invert-lightness()>": {
"grammar": "-apple-invert-lightness()",
"status": "non-standard"
},
"<baseline-position>": {
"grammar": "[ first | last ]? && baseline",
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#typedef-baseline-position"
}
},
"<overflow-position>": {
"grammar": "unsafe | safe",
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#typedef-overflow-position"
}
},
"<self-position>": {
"grammar": "center | start | end | self-start | self-end | flex-start | flex-end | anchor-center",
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#typedef-self-position"
}
},
"<content-position>": {
"grammar": "center | start | end | flex-start | flex-end",
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#typedef-content-position"
}
},
"<content-distribution>": {
"grammar": "space-between | space-around | space-evenly | stretch",
"specification": {
"category": "css-align",
"url": "https://www.w3.org/TR/css-align-3/#typedef-content-distribution"
}
},
"<track-list>": {
"grammar": "[ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-track-list"
}
},
"<auto-track-list>": {
"grammar": "[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-auto-track-list"
}
},
"<explicit-track-list>": {
"grammar": "[ <line-names>? <track-size> ]+ <line-names>?",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-explicit-track-list"
}
},
"<track-size>": {
"grammar": "<track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( <length-percentage> )",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-track-size"
}
},
"<fixed-size>": {
"grammar": "<fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-fixed-size"
}
},
"<track-breadth>": {
"grammar": "<length-percentage> | <flex> | min-content | max-content | auto",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-track-breadth"
}
},
"<inflexible-breadth>": {
"grammar": "<length-percentage> | min-content | max-content | auto",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-inflexible-breadth"
}
},
"<fixed-breadth>": {
"grammar": "<length-percentage>",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-fixed-breadth"
}
},
"<line-names>": {
"grammar": "'[' <custom-ident>* ']'",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-line-names"
}
},
"<grid-line>": {
"grammar": "auto | <custom-ident> | [ <integer> && <custom-ident>? ] | [ span && [ <integer> || <custom-ident> ] ]",
"specification": {
"category": "css-grid",
"url": "https://www.w3.org/TR/css-grid-1/#typedef-grid-row-start-grid-line"
}
},
"<transform-list>": {
"grammar": "<transform-function>+@(type=CSSTransformListValue no-single-item-opt)",
"exported": true,
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#typedef-transform-list"
}
},
"<transform-function>": {
"grammar": "<matrix()> | <translate()> | <translateX()> | <translateY()> | <scale()> | <scaleX()> | <scaleY()> | <rotate()> | <skew()> | <skewX()> | <skewY()> | <matrix3d()> | <translate3d()> | <translateZ()> | <scale3d()> | <scaleZ()> | <rotate3d()> | <rotateX()> | <rotateY()> | <rotateZ()> | <perspective()>",
"exported": true,
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#typedef-transform-function"
}
},
"<matrix()>": {
"grammar": "matrix( <number>#{6} )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-matrix"
}
},
"<translate()>": {
"grammar-unused": "translate( <length-percentage>#{1,2} )",
"grammar-unused-reason": "Needs support for transforming parsed input to minimal form",
"grammar-function": "consumeTranslateFunction",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-translate"
}
},
"<translateX()>": {
"grammar": "translateX( <length-percentage> )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-translatex"
}
},
"<translateY()>": {
"grammar": "translateY( <length-percentage> )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-translatey"
}
},
"<scale()>": {
"grammar": "scale( [ <number-or-percentage-resolved-to-number> ]#{1,2} )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-scale"
}
},
"<scaleX()>": {
"grammar": "scaleX( [ <number-or-percentage-resolved-to-number> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-scalex"
}
},
"<scaleY()>": {
"grammar": "scaleY( [ <number-or-percentage-resolved-to-number> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-scaley"
}
},
"<rotate()>": {
"grammar": "rotate( [ <angle unitless-zero=allowed> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-rotate"
}
},
"<skew()>": {
"grammar": "skew( [ <angle unitless-zero=allowed> ]#{1,2} )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-skew"
}
},
"<skewX()>": {
"grammar": "skewX( [ <angle unitless-zero=allowed> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-skewx"
}
},
"<skewY()>": {
"grammar": "skewY( [ <angle unitless-zero=allowed> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-1/#funcdef-transform-skewy"
}
},
"<matrix3d()>": {
"grammar": "matrix3d( <number>#{16} )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-matrix3d"
}
},
"<translate3d()>": {
"grammar-unused": "translate3d( <length-percentage> , <length-percentage> , <length> )",
"grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator.",
"grammar-function": "consumeTranslate3dFunction",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-translate3d"
}
},
"<translateZ()>": {
"grammar": "translateZ( <length> )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-translatez"
}
},
"<scale3d()>": {
"grammar": "scale3d( [ <number-or-percentage-resolved-to-number> ]#{3} )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-scale3d"
}
},
"<scaleZ()>": {
"grammar": "scaleZ( [ <number-or-percentage-resolved-to-number> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-scalez"
}
},
"<rotate3d()>": {
"grammar-unused": "rotate3d( <number> , <number> , <number> , [ <angle unitless-zero=allowed> ] )",
"grammar-unused-reason": "Needs support for ordered groups with a keyword/literal first term differentiator.",
"grammar-function": "consumeRotate3dFunction",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-rotate3d"
}
},
"<rotateX()>": {
"grammar": "rotateX( [ <angle unitless-zero=allowed> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-rotatex"
}
},
"<rotateY()>": {
"grammar": "rotateY( [ <angle unitless-zero=allowed> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-rotatey"
}
},
"<rotateZ()>": {
"grammar": "rotateZ( [ <angle unitless-zero=allowed> ] )",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-rotatez"
}
},
"<perspective()>": {
"grammar": "perspective( <length [0,inf]> | <number [0,inf]> | none )",
"grammar-comment": "Current spec grammar is 'perspective( <length [0,inf]> | none )'",
"specification": {
"category": "css-transforms",
"url": "https://www.w3.org/TR/css-transforms-2/#funcdef-perspective"
}
},
"<symbol>": {
"grammar": "<string> | <image allowed-types=url,generated>@(settings-flag=counterStyleAtRuleImageSymbolsEnabled) | <custom-ident>",
"grammar-comment": "There are inherent difficulties in supporting <image> symbols in @counter-styles, so gate them behind a flag for now - https://bugs.webkit.org/show_bug.cgi?id=167645.",
"exported": true,
"specification": {
"category": "css-counter-styles",
"url": "https://www.w3.org/TR/css-counter-styles-3/#counter-style-symbols"
}
},
"<counter-style-name>": {
"grammar-unused": "<custom-ident excluding=none>",
"grammar-unused-reason": "Needs support for excluding a class of names from a <custom-ident>.",
"grammar-function": "consumeCounterStyleName",
"specification": {
"category": "css-counter-styles",
"url": "https://drafts.csswg.org/css-counter-styles/#typedef-counter-style-name"
}
},
"<counter-style>": {
"grammar-unused": "<counter-style-name> | <symbols()>",
"grammar-unused-reason": "Needs support for excluding a class of names from a <custom-ident>.",
"grammar-comment": "Current implementation does not support '<symbols()>'.",
"grammar-function": "consumeCounterStyle",
"specification": {
"category": "css-counter-styles",
"url": "https://drafts.csswg.org/css-counter-styles/#typedef-counter-style"
}
},
"<symbols()>": {
"grammar": "symbols( <symbols-type>? [ <string> | <image> ]+ )",
"specification": {
"category": "css-counter-styles",
"url": "https://drafts.csswg.org/css-counter-styles/#funcdef-symbols"
}
},
"<symbols-type>": {
"grammar": "cyclic | numeric | alphabetic | symbolic | fixed",
"specification": {
"category": "css-counter-styles",
"url": "https://drafts.csswg.org/css-counter-styles/#typedef-symbols-type"
}
},
"<display-outside>": {
"grammar": "block | inline | run-in",
"specification": {
"category": "css-display",
"url": "https://www.w3.org/TR/css-display-3/#typedef-display-outside"
}
},
"<display-inside>": {
"grammar": "flow | flow-root | table | flex | grid | grid-lanes | ruby",
"specification": {
"category": "css-display",
"url": "https://www.w3.org/TR/css-display-3/#typedef-display-inside"
}
},
"<display-listitem>": {
"grammar": "<display-outside>? && [ flow | flow-root ]? && list-item",
"specification": {
"category": "css-display",
"url": "https://www.w3.org/TR/css-display-3/#typedef-display-listitem"
}
},
"<display-internal>": {
"grammar": "table-row-group | table-header-group | table-footer-group | table-row | table-cell | table-column-group | table-column | table-caption | ruby-base | ruby-text | ruby-base-container | ruby-text-container",
"specification": {
"category": "css-display",
"url": "https://www.w3.org/TR/css-display-3/#typedef-display-internal"
}
},
"<display-box>": {
"grammar": "contents | none",
"specification": {
"category": "css-display",
"url": "https://www.w3.org/TR/css-display-3/#typedef-display-box"
}
},
"<display-legacy>": {
"grammar": "inline-block | inline-table | inline-flex | inline-grid | inline-grid-lanes",
"specification": {
"category": "css-display",
"url": "https://www.w3.org/TR/css-display-3/#typedef-display-legacy"
}
},
"<-webkit-display>": {
"grammar": "-webkit-inline-flex | -webkit-box | -webkit-inline-box | -webkit-flex",
"status": "non-standard"
},
"<single-scroll-timeline-name>": {
"grammar": "none | <dashed-ident>",
"exported": true,
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-name"
}
},
"<single-view-timeline-inset>": {
"grammar": "auto | <length-percentage>",
"exported": true,
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#propdef-view-timeline-inset"
}
},
"<single-view-timeline-inset-item>": {
"grammar-function": "consumeSingleViewTimelineInsetItem",
"grammar-unused": "<single-view-timeline-inset>{1,2}",
"grammar-unused-reason": "Needs support for non-coalescing CSSValuePair.",
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#propdef-view-timeline-inset"
}
},
"<axis>": {
"grammar": "block | inline | x | y",
"exported": true,
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#typedef-axis"
}
},
"<scroller>": {
"grammar": "root | nearest | self",
"exported": true,
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#typedef-scroller"
}
},
"<scroll()>": {
"grammar-function": "consumeAnimationTimelineScroll",
"grammar-unused": "scroll( [ <scroller> || <axis> ]? )",
"grammar-unused-reason": "Needs support for custom types for functional notation.",
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#funcdef-scroll"
}
},
"<view()>": {
"grammar-function": "consumeAnimationTimelineView",
"grammar-unused": "view( [ <axis> || <single-view-timeline-inset-item> ]? )",
"grammar-unused-reason": "Needs support for custom types for functional notation.",
"grammar-comment": "Current spec grammar is 'view( [ <axis> || <'view-timeline-inset'> ]? )'",
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#funcdef-view"
}
},
"<timeline-range-name>": {
"grammar": "cover | contain | entry | exit | entry-crossing | exit-crossing",
"exported": true,
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#typedef-timeline-range-name"
}
},
"<single-animation-range-start>": {
"grammar-function": "consumeSingleAnimationRangeStart",
"grammar-unused": "[ normal | <length-percentage> | [ <timeline-range-name> <length-percentage>? ] ]",
"grammar-unused-reason": "Needs support for default values on optionals.",
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#propdef-animation-range-start"
}
},
"<single-animation-range-end>": {
"grammar-function": "consumeSingleAnimationRangeEnd",
"grammar-unused": "[ normal | <length-percentage> | [ <timeline-range-name> <length-percentage>? ] ]",
"grammar-unused-reason": "Needs support for default values on optionals.",
"specification": {
"category": "scroll-animations",
"url": "https://drafts.csswg.org/scroll-animations-1/#propdef-animation-range-end"
}
},
"<single-animation-timeline>": {
"grammar": "auto | none | <dashed-ident> | <scroll()> | <view()>",
"specification": {
"category": "css-animations",
"url": "https://drafts.csswg.org/css-animations-2/#typedef-single-animation-timeline"
}
},
"<single-container-name>": {
"grammar": "<custom-ident excluding=none,and,or,not>",
"exported": true,
"specification": {
"category": "css-contain",
"url": "https://drafts.csswg.org/css-contain-3/#container-name"
}
},
"<counter-name>": {
"grammar": "<custom-ident excluding=none>",
"specification": {
"category": "css-lists",
"url": "https://drafts.csswg.org/css-lists/#typedef-counter-name"
}
},
"<reversed-counter-name>": {
"grammar": "reversed( <counter-name> )",
"specification": {
"category": "css-lists",
"url": "https://drafts.csswg.org/css-lists/#typedef-reversed-counter-name"
}
},
"<font-src-list>": {
"grammar": "<font-src>#",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#typedef-font-src-list"
}
},
"<font-src>": {
"grammar": "[ <url> [ format( <font-format> ) ]? [ tech( <font-tech># ) ]? ] | local( <family-name> )",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#typedef-font-src"
}
},
"<font-format>": {
"grammar": "[ <string> | collection | embedded-opentype | opentype | svg | truetype | woff | woff2 ]",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-format-values"
}
},
"<font-tech>": {
"grammar": "[ <font-features-tech> | <color-font-tech> | variations | palettes | incremental ]",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-tech-values"
}
},
"<font-features-tech>": {
"grammar": "[ features-opentype | features-aat | features-graphite ]",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#font-features-tech-values"
}
},
"<color-font-tech>": {
"grammar": "[ color-COLRv0 | color-COLRv1 | color-SVG | color-sbix | color-CBDT ]",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#color-font-tech-values"
}
},
"<feature-value-name>": {
"grammar": "<custom-ident>",
"grammar-comment": "Current spec grammar is '<ident>'",
"specification": {
"category": "css-fonts-4",
"url": "https://drafts.csswg.org/css-fonts-4/#feature-value-name-value"
}
}
}
}