Comparing version 1.0.0-alpha16 to 1.0.0-alpha17
{ | ||
"absolute-size": "xx-small | x-small | small | medium | large | x-large | xx-large", | ||
"alpha-value": "<number>", | ||
"an-plus-b": "<var>A</var>n+<var>B</var> | even | odd", | ||
"angle-percentage": "<angle> | <percentage>", | ||
"animateable-feature": "scroll-position | contents | <custom-ident>", | ||
"alpha-value": "<number>, | <percentage>", | ||
"angle-percentage": "<angle> | <percentage>", | ||
"animateable-feature": "scroll-position | contents | <custom-ident>", | ||
"attachment": "scroll | fixed | local", | ||
"attr()": "attr( <attr-name> <type-or-unit>? [, <attr-fallback> ]? )", | ||
"auto-repeat": "repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )", | ||
"auto-track-list": "[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat>\n[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?", | ||
"basic-shape": "<inset()> | <circle()> | <ellipse()> | <polygon()>", | ||
"bg-image": "none | <image>", | ||
"bg-layer": "<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2}", | ||
"bg-size": "[ <length-percentage> | auto ]{1,2} | cover | contain", | ||
"blur()": "blur( <length> )", | ||
"attr()": "attr( <attr-name> <type-or-unit>? [, <attr-fallback> ]? )", | ||
"auto-repeat": "repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )", | ||
"auto-track-list": "[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat>\n[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?", | ||
"basic-shape": "<inset()> | <circle()> | <ellipse()> | <polygon()>", | ||
"bg-image": "none | <image>", | ||
"bg-layer": "<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2}", | ||
"bg-size": "[ <length-percentage> | auto ]{1,2} | cover | contain", | ||
"blur()": "blur( <length> )", | ||
"blend-mode": "normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity", | ||
"box": "border-box | padding-box | content-box", | ||
"br-style": "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset", | ||
"br-width": "<length> | thin | medium | thick", | ||
"brightness()": "brightness( <number-percentage> )", | ||
"calc()": "calc( <calc-sum> )", | ||
"calc-sum": "<calc-product> [ [ '+' | '-' ] <calc-product> ]*", | ||
"calc-product": "<calc-value> [ '*' <calc-value> | '/' <number> ]*", | ||
"calc-value": "<number> | <dimension> | <percentage> | ( <calc-sum> )", | ||
"cf-final-image": "<image> | <color>", | ||
"cf-mixing-image": "<percentage>? && <image>", | ||
"circle()": "circle( [ <shape-radius> ]? [ at <position> ]? )", | ||
"clip-source": "<url>", | ||
"color": "<rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>", | ||
"color-stop": "<color> <length-percentage>?", | ||
"color-stop-list": "<color-stop>{2,}", | ||
"br-width": "<length> | thin | medium | thick", | ||
"brightness()": "brightness( <number-percentage> )", | ||
"calc()": "calc( <calc-sum> )", | ||
"calc-sum": "<calc-product> [ [ '+' | '-' ] <calc-product> ]*", | ||
"calc-product": "<calc-value> [ '*' <calc-value> | '/' <number> ]*", | ||
"calc-value": "<number> | <dimension> | <percentage> | ( <calc-sum> )", | ||
"cf-final-image": "<image> | <color>", | ||
"cf-mixing-image": "<percentage>? && <image>", | ||
"circle()": "circle( [ <shape-radius> ]? [ at <position> ]? )", | ||
"clip-source": "<url>", | ||
"color": "<rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>", | ||
"color-stop": "<color> <length-percentage>?", | ||
"color-stop-list": "<color-stop>{2,}", | ||
"common-lig-values": "[ common-ligatures | no-common-ligatures ]", | ||
@@ -36,154 +35,167 @@ "composite-style": "clear | copy | source-over | source-in | source-out | source-atop | destination-over | destination-in | destination-out | destination-atop | xor", | ||
"contextual-alt-values": "[ contextual | no-contextual ]", | ||
"contrast()": "contrast( [ <number-percentage> ] )", | ||
"counter-style": "<counter-style-name> | symbols()", | ||
"counter-style-name": "<custom-ident>", | ||
"cross-fade()": "cross-fade( <cf-mixing-image> , <cf-final-image>? )", | ||
"content-list": "[ <string> | contents | <url> | <quote> | <target> | <leader()> ]+", | ||
"contrast()": "contrast( [ <number-percentage> ] )", | ||
"counter-style": "<counter-style-name> | symbols()", | ||
"counter-style-name": "<custom-ident>", | ||
"cross-fade()": "cross-fade( <cf-mixing-image> , <cf-final-image>? )", | ||
"deprecated-system-color": "ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonFace | ButtonHighlight | ButtonShadow | ButtonText | CaptionText | GrayText | Highlight | HighlightText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowText", | ||
"discretionary-lig-values": "[ discretionary-ligatures | no-discretionary-ligatures ]", | ||
"drop-shadow()": "drop-shadow( <length>{2,3} <color>? )", | ||
"display-box": "contents | none", | ||
"display-inside": "flow | flow-root | table | flex | grid | subgrid | ruby", | ||
"display-internal": "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", | ||
"display-legacy": "inline-block | inline-list-item | inline-table | inline-flex | inline-grid", | ||
"display-listitem": "list-item && <display-outside>? && [ flow | flow-root ]?", | ||
"display-outside": "block | inline | run-in", | ||
"drop-shadow()": "drop-shadow( <length>{2,3} <color>? )", | ||
"east-asian-variant-values": "[ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]", | ||
"east-asian-width-values": "[ full-width | proportional-width ]", | ||
"element()": "element( <id-selector> )", | ||
"ellipse()": "ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )", | ||
"element()": "element( <id-selector> )", | ||
"ellipse()": "ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )", | ||
"ending-shape": "circle | ellipse", | ||
"explicit-track-list": "[ <line-names>? <track-size> ]+ <line-names>?", | ||
"family-name": "<string> | <custom-ident>+", | ||
"feature-tag-value": "<string> [ <integer> | on | off ]?", | ||
"explicit-track-list": "[ <line-names>? <track-size> ]+ <line-names>?", | ||
"family-name": "<string> | <custom-ident>+", | ||
"feature-tag-value": "<string> [ <integer> | on | off ]?", | ||
"feature-type": "@stylistic | @historical-forms | @styleset | @character-variant | @swash | @ornaments | @annotation", | ||
"feature-value-block": "<feature-type> {\n <feature-value-declaration-list>\n}", | ||
"feature-value-block-list": "<feature-value-block>+", | ||
"feature-value-declaration": "<custom-ident>: <integer>+;", | ||
"feature-value-declaration-list": "<feature-value-declaration>", | ||
"feature-value-name": "<custom-ident>", | ||
"feature-value-block": "<feature-type> {\n <feature-value-declaration-list>\n}", | ||
"feature-value-block-list": "<feature-value-block>+", | ||
"feature-value-declaration": "<custom-ident>: <integer>+;", | ||
"feature-value-declaration-list": "<feature-value-declaration>", | ||
"feature-value-name": "<custom-ident>", | ||
"fill-rule": "nonzero | evenodd", | ||
"filter-function": "<blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()>", | ||
"filter-function-list": "[ <filter-function> | <url> ]+", | ||
"final-bg-layer": "<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box> || <'background-color'>", | ||
"fit-content()": "fit-content( [ <length> | <percentage> ] )", | ||
"fixed-breadth": "<length-percentage>", | ||
"fixed-repeat": "repeat( [ <positive-integer> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )", | ||
"fixed-size": "<fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )", | ||
"filter-function": "<blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()>", | ||
"filter-function-list": "[ <filter-function> | <url> ]+", | ||
"final-bg-layer": "<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box> || <'background-color'>", | ||
"fit-content()": "fit-content( [ <length> | <percentage> ] )", | ||
"fixed-breadth": "<length-percentage>", | ||
"fixed-repeat": "repeat( [ <positive-integer> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )", | ||
"fixed-size": "<fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )", | ||
"font-variant-css21": "[ normal | small-caps ]", | ||
"frequency-percentage": "<frequency> | <percentage>", | ||
"general-enclosed": "[ <function-token> <any-value> ) ] | ( <ident> <any-value> )", | ||
"frequency-percentage": "<frequency> | <percentage>", | ||
"general-enclosed": "[ <function-token> <any-value> ) ] | ( <ident> <any-value> )", | ||
"generic-family": "serif | sans-serif | cursive | fantasy | monospace", | ||
"generic-name": "serif | sans-serif | cursive | fantasy | monospace", | ||
"geometry-box": "<shape-box> | fill-box | stroke-box | view-box", | ||
"gradient": "<linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()>", | ||
"grayscale()": "grayscale( <number-percentage> )", | ||
"grid-line": "auto | <custom-ident> | [ <integer> && <custom-ident>? ] | [ span && [ <integer> || <custom-ident> ] ]", | ||
"geometry-box": "<shape-box> | fill-box | stroke-box | view-box", | ||
"gradient": "<linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()>", | ||
"grayscale()": "grayscale( <number-percentage> )", | ||
"grid-line": "auto | <custom-ident> | [ <integer> && <custom-ident>? ] | [ span && [ <integer> || <custom-ident> ] ]", | ||
"historical-lig-values": "[ historical-ligatures | no-historical-ligatures ]", | ||
"hsl()": "hsl( <hue>, <percentage>, <percentage> )", | ||
"hsla()": "hsla( <hue>, <percentage>, <percentage>, <alpha-value> )", | ||
"hue": "<number>", | ||
"hue-rotate()": "hue-rotate( <angle> )", | ||
"image": "<url> | <image()> | <image-set()> | <element()> | <cross-fade()> | <gradient>", | ||
"image()": "image( [ [ <image> | <string> ]? , <color>? ]! )", | ||
"image-set()": "image-set( <image-set-option># )", | ||
"image-set-option": "[ <image> | <string> ] <resolution>", | ||
"inflexible-breadth": "<length> | <percentage> | min-content | max-content | auto", | ||
"inset()": "inset( <length-percentage>{1,4} [ round <border-radius> ]? )", | ||
"invert()": "invert( <number-percentage> )", | ||
"keyframes-name": "<custom-ident> | <string>", | ||
"keyframe-block": "<keyframe-selector># {\n <declaration-list>\n}", | ||
"keyframe-block-list": "<keyframe-block>+", | ||
"keyframe-selector": "from | to | <percentage>", | ||
"length-percentage": "<length> | <percentage>", | ||
"line-names": "'[' <custom-ident>* ']'", | ||
"line-name-list": "[ <line-names> | <name-repeat> ]+", | ||
"linear-gradient()": "linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )", | ||
"mask-layer": "<mask-reference> <masking-mode>? || <position> [ / <bg-size> ]? || <repeat-style> || <geometry-box> || [ <geometry-box> | no-clip ] || <compositing-operator>", | ||
"mask-position": "[ <length-percentage> | left | center | right ] [ <length-percentage> | top | center | bottom ]?", | ||
"mask-reference": "none | <image> | <mask-source>", | ||
"mask-source": "<url>", | ||
"hsl()": "hsl( [ <hue> <percentage> <percentage> [ / <alpha-value> ]? ] | [ <hue>, <percentage>, <percentage>, <alpha-value>? ] )", | ||
"hsla()": "hsla( [ <hue> <percentage> <percentage> [ / <alpha-value> ]? ] | [ <hue>, <percentage>, <percentage>, <alpha-value>? ] )", | ||
"hue": "<number> | <angle>", | ||
"hue-rotate()": "hue-rotate( <angle> )", | ||
"image": "<url> | <image()> | <image-set()> | <element()> | <cross-fade()> | <gradient>", | ||
"image()": "image( [ [ <image> | <string> ]? , <color>? ]! )", | ||
"image-set()": "image-set( <image-set-option># )", | ||
"image-set-option": "[ <image> | <string> ] <resolution>", | ||
"inflexible-breadth": "<length> | <percentage> | min-content | max-content | auto", | ||
"inset()": "inset( <length-percentage>{1,4} [ round <border-radius> ]? )", | ||
"invert()": "invert( <number-percentage> )", | ||
"keyframes-name": "<custom-ident> | <string>", | ||
"keyframe-block": "<keyframe-selector># {\n <declaration-list>\n}", | ||
"keyframe-block-list": "<keyframe-block>+", | ||
"keyframe-selector": "from | to | <percentage>", | ||
"leader()": "leader( dotted | solid | space | <string> )", | ||
"length-percentage": "<length> | <percentage>", | ||
"line-names": "'[' <custom-ident>* ']'", | ||
"line-name-list": "[ <line-names> | <name-repeat> ]+", | ||
"linear-gradient()": "linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )", | ||
"mask-layer": "<mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || <geometry-box> || [ <geometry-box> | no-clip ] || <compositing-operator> || <masking-mode>", | ||
"mask-position": "[ <length-percentage> | left | center | right ] [ <length-percentage> | top | center | bottom ]?", | ||
"mask-reference": "none | <image> | <mask-source>", | ||
"mask-source": "<url>", | ||
"masking-mode": "alpha | luminance | match-source", | ||
"matrix()": "matrix( <number> [, <number> ]{5,5} )", | ||
"matrix3d()": "matrix3d( <number> [, <number> ]{15,15} )", | ||
"media-and": "<media-in-parens> [ and <media-in-parens> ]+", | ||
"media-condition": "<media-not> | <media-and> | <media-or> | <media-in-parens>", | ||
"media-condition-without-or": "<media-not> | <media-and> | <media-in-parens>", | ||
"media-feature": "( [ <mf-plain> | <mf-boolean> | <mf-range> ] )", | ||
"media-in-parens": "( <media-condition> ) | <media-feature> | <general-enclosed>", | ||
"media-not": "not <media-in-parens>", | ||
"media-or": "<media-in-parens> [ or <media-in-parens> ]+", | ||
"media-query": "<media-condition> | [ not | only ]? <media-type> [ and <media-condition-without-or> ]?", | ||
"media-query-list": "<media-query>#", | ||
"media-type": "<ident>", | ||
"mf-boolean": "<mf-name>", | ||
"mf-name": "<ident>", | ||
"mf-plain": "<mf-name> : <mf-value>", | ||
"mf-range": "<mf-name> [ '<' | '>' ]? '='? <mf-value>\n| <mf-value> [ '<' | '>' ]? '='? <mf-name>\n| <mf-value> '<' '='? <mf-name> '<' '='? <mf-value>\n| <mf-value> '>' '='? <mf-name> '>' '='? <mf-value>", | ||
"mf-value": "<number> | <dimension> | <ident> | <ratio>", | ||
"minmax()": "minmax( <var>min</var>, <var>max</var> )", | ||
"named-color": "<ident>", | ||
"namespace-prefix": "<ident>", | ||
"number-percentage": "<number> | <percentage>", | ||
"matrix()": "matrix( <number> [, <number> ]{5,5} )", | ||
"matrix3d()": "matrix3d( <number> [, <number> ]{15,15} )", | ||
"media-and": "<media-in-parens> [ and <media-in-parens> ]+", | ||
"media-condition": "<media-not> | <media-and> | <media-or> | <media-in-parens>", | ||
"media-condition-without-or": "<media-not> | <media-and> | <media-in-parens>", | ||
"media-feature": "( [ <mf-plain> | <mf-boolean> | <mf-range> ] )", | ||
"media-in-parens": "( <media-condition> ) | <media-feature> | <general-enclosed>", | ||
"media-not": "not <media-in-parens>", | ||
"media-or": "<media-in-parens> [ or <media-in-parens> ]+", | ||
"media-query": "<media-condition> | [ not | only ]? <media-type> [ and <media-condition-without-or> ]?", | ||
"media-query-list": "<media-query>#", | ||
"media-type": "<ident>", | ||
"mf-boolean": "<mf-name>", | ||
"mf-name": "<ident>", | ||
"mf-plain": "<mf-name> : <mf-value>", | ||
"mf-range": "<mf-name> [ '<' | '>' ]? '='? <mf-value>\n| <mf-value> [ '<' | '>' ]? '='? <mf-name>\n| <mf-value> '<' '='? <mf-name> '<' '='? <mf-value>\n| <mf-value> '>' '='? <mf-name> '>' '='? <mf-value>", | ||
"mf-value": "<number> | <dimension> | <ident> | <ratio>", | ||
"minmax()": "minmax( min, max )", | ||
"named-color": "transparent | aliceblue | antiquewhite | aqua | aquamarine | azure | beige | bisque | black | blanchedalmond | blue | blueviolet | brown | burlywood | cadetblue | chartreuse | chocolate | coral | cornflowerblue | cornsilk | crimson | cyan | darkblue | darkcyan | darkgoldenrod | darkgray | darkgreen | darkgrey | darkkhaki | darkmagenta | darkolivegreen | darkorange | darkorchid | darkred | darksalmon | darkseagreen | darkslateblue | darkslategray | darkslategrey | darkturquoise | darkviolet | deeppink | deepskyblue | dimgray | dimgrey | dodgerblue | firebrick | floralwhite | forestgreen | fuchsia | gainsboro | ghostwhite | gold | goldenrod | gray | green | greenyellow | grey | honeydew | hotpink | indianred | indigo | ivory | khaki | lavender | lavenderblush | lawngreen | lemonchiffon | lightblue | lightcoral | lightcyan | lightgoldenrodyellow | lightgray | lightgreen | lightgrey | lightpink | lightsalmon | lightseagreen | lightskyblue | lightslategray | lightslategrey | lightsteelblue | lightyellow | lime | limegreen | linen | magenta | maroon | mediumaquamarine | mediumblue | mediumorchid | mediumpurple | mediumseagreen | mediumslateblue | mediumspringgreen | mediumturquoise | mediumvioletred | midnightblue | mintcream | mistyrose | moccasin | navajowhite | navy | oldlace | olive | olivedrab | orange | orangered | orchid | palegoldenrod | palegreen | paleturquoise | palevioletred | papayawhip | peachpuff | peru | pink | plum | powderblue | purple | rebeccapurple | red | rosybrown | royalblue | saddlebrown | salmon | sandybrown | seagreen | seashell | sienna | silver | skyblue | slateblue | slategray | slategrey | snow | springgreen | steelblue | tan | teal | thistle | tomato | turquoise | violet | wheat | white | whitesmoke | yellow | yellowgreen", | ||
"namespace-prefix": "<ident>", | ||
"number-percentage": "<number> | <percentage>", | ||
"numeric-figure-values": "[ lining-nums | oldstyle-nums ]", | ||
"numeric-fraction-values": "[ diagonal-fractions | stacked-fractions ]", | ||
"numeric-spacing-values": "[ proportional-nums | tabular-nums ]", | ||
"opacity()": "opacity( [ <number-percentage> ] )", | ||
"page-body": "<declaration>? [ ; <page-body> ]? | <page-margin-box> <page-body>", | ||
"page-margin-box": "<page-margin-box-type> {\n <declaration-list>\n}", | ||
"nth": "<an-plus-b> | even | odd", | ||
"opacity()": "opacity( [ <number-percentage> ] )", | ||
"page-body": "<declaration>? [ ; <page-body> ]? | <page-margin-box> <page-body>", | ||
"page-margin-box": "<page-margin-box-type> {\n <declaration-list>\n}", | ||
"page-margin-box-type": "@top-left-corner | @top-left | @top-center | @top-right | @top-right-corner | @bottom-left-corner | @bottom-left | @bottom-center | @bottom-right | @bottom-right-corner | @left-top | @left-middle | @left-bottom | @right-top | @right-middle | @right-bottom", | ||
"page-selector-list": "[ <page-selector># ]?", | ||
"page-selector": "<pseudo-page>+ | <ident> <pseudo-page>*", | ||
"perspective()": "perspective( <length> )", | ||
"polygon()": "polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )", | ||
"position": "[[ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ center | [ left | right ] <length-percentage>? ] && [ center | [ top | bottom ] <length-percentage>? ]]", | ||
"page-selector-list": "[ <page-selector># ]?", | ||
"page-selector": "<pseudo-page>+ | <ident> <pseudo-page>*", | ||
"perspective()": "perspective( <length> )", | ||
"polygon()": "polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )", | ||
"position": "[[ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ center | [ left | right ] <length-percentage>? ] && [ center | [ top | bottom ] <length-percentage>? ]]", | ||
"pseudo-page": ": [ left | right | first | blank ]", | ||
"radial-gradient()": "radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )", | ||
"quote": "open-quote | close-quote | no-open-quote | no-close-quote", | ||
"radial-gradient()": "radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )", | ||
"relative-size": "larger | smaller", | ||
"repeat-style": "repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}", | ||
"repeating-linear-gradient()": "repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )", | ||
"repeating-radial-gradient()": "repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )", | ||
"rgb()": "rgb( <rgb-component>#{3} )", | ||
"rgb-component": "<integer> | <percentage>", | ||
"rgba()": "rgba( <rgb-component>#{3} , <alpha-value> )", | ||
"rotate()": "rotate( <angle> )", | ||
"rotate3d()": "rotate3d( <number> , <number> , <number> , <angle> )", | ||
"rotateX()": "rotateX( <angle> )", | ||
"rotateY()": "rotateY( <angle> )", | ||
"rotateZ()": "rotateZ( <angle> )", | ||
"saturate()": "saturate( <number-percentage> )", | ||
"scale()": "scale( <number> [, <number> ]? )", | ||
"scale3d()": "scale3d( <number> , <number> , <number> )", | ||
"scaleX()": "scaleX( <number> )", | ||
"scaleY()": "scaleY( <number> )", | ||
"scaleZ()": "scaleZ( <number> )", | ||
"shape-radius": "<length-percentage> | closest-side | farthest-side", | ||
"skew()": "skew( <angle> [, <angle> ]? )", | ||
"skewX()": "skewX( <angle> )", | ||
"skewY()": "skewY( <angle> )", | ||
"sepia()": "sepia( <number-percentage> )", | ||
"shadow": "inset? && <length>{2,4} && <color>?", | ||
"shadow-t": "[ <length>{2,3} && <color>? ]", | ||
"shape": "rect(<top>, <right>, <bottom>, <left>)", | ||
"shape-box": "<box> | margin-box", | ||
"repeating-linear-gradient()": "repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )", | ||
"repeating-radial-gradient()": "repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )", | ||
"rgb()": "rgb( [ [ <percentage>{3} | <number>{3} ] [ / <alpha-value> ]? ] | [ [ <percentage>#{3} | <number>#{3} ] , <alpha-value>? ] )", | ||
"rgba()": "rgba( [ [ <percentage>{3} | <number>{3} ] [ / <alpha-value> ]? ] | [ [ <percentage>#{3} | <number>#{3} ] , <alpha-value>? ] )", | ||
"rotate()": "rotate( <angle> )", | ||
"rotate3d()": "rotate3d( <number> , <number> , <number> , <angle> )", | ||
"rotateX()": "rotateX( <angle> )", | ||
"rotateY()": "rotateY( <angle> )", | ||
"rotateZ()": "rotateZ( <angle> )", | ||
"saturate()": "saturate( <number-percentage> )", | ||
"scale()": "scale( <number> [, <number> ]? )", | ||
"scale3d()": "scale3d( <number> , <number> , <number> )", | ||
"scaleX()": "scaleX( <number> )", | ||
"scaleY()": "scaleY( <number> )", | ||
"scaleZ()": "scaleZ( <number> )", | ||
"shape-radius": "<length-percentage> | closest-side | farthest-side", | ||
"skew()": "skew( <angle> [, <angle> ]? )", | ||
"skewX()": "skewX( <angle> )", | ||
"skewY()": "skewY( <angle> )", | ||
"sepia()": "sepia( <number-percentage> )", | ||
"shadow": "inset? && <length>{2,4} && <color>?", | ||
"shadow-t": "[ <length>{2,3} && <color>? ]", | ||
"shape": "rect(<top>, <right>, <bottom>, <left>)", | ||
"shape-box": "<box> | margin-box", | ||
"side-or-corner": "[ left | right ] || [ top | bottom ]", | ||
"single-animation": "<time> || <single-timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ]", | ||
"single-animation": "<time> || <single-timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ]", | ||
"single-animation-direction": "normal | reverse | alternate | alternate-reverse", | ||
"single-animation-fill-mode": "none | forwards | backwards | both", | ||
"single-animation-iteration-count": "infinite | <number>", | ||
"single-animation-iteration-count": "infinite | <number>", | ||
"single-animation-play-state": "running | paused", | ||
"single-timing-function": "<single-transition-timing-function>", | ||
"single-transition": "[ none | <single-transition-property> ] || <time> || <single-transition-timing-function> || <time>", | ||
"single-transition-timing-function": "ease | linear | ease-in | ease-out | ease-in-out | step-start | step-end | steps( <integer> [, [ start | end ] ]? ) | cubic-bezier( <number>, <number>, <number>, <number> )", | ||
"single-transition-property": "all | <custom-ident>", | ||
"size": "closest-side | farthest-side | closest-corner | farthest-corner | <length> | <length-percentage>{2}", | ||
"symbol": "<string> | <image> | <ident>", | ||
"time-percentage": "<time> | <percentage>", | ||
"track-breadth": "<length-percentage> | <flex> | min-content | max-content | auto", | ||
"track-list": "[ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?", | ||
"track-repeat": "repeat( [ <positive-integer> ] , [ <line-names>? <track-size> ]+ <line-names>? )", | ||
"track-size": "<track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )", | ||
"transform-function": "[ <matrix()> || <translate()> || <translateX()> || <translateY()> || <scale()> || <scaleX()> || <scaleY()> || <rotate()> || <skew()> || <skewX()> || <skewY()> || <matrix3d()> || <translate3d()> || <translateZ()> || <scale3d()> || <scaleZ()> || <rotate3d()> || <rotateX()> || <rotateY()> || <rotateZ()> || <perspective()> ]+", | ||
"transform-list": "<transform-function>+", | ||
"translate()": "translate( <length-percentage> [, <length-percentage> ]? )", | ||
"translate3d()": "translate3d( <length-percentage> , <length-percentage> , <length> )", | ||
"translateX()": "translateX( <length-percentage> )", | ||
"translateY()": "translateY( <length-percentage> )", | ||
"translateZ()": "translateZ( <length> )", | ||
"single-timing-function": "<single-transition-timing-function>", | ||
"single-transition": "[ none | <single-transition-property> ] || <time> || <single-transition-timing-function> || <time>", | ||
"single-transition-timing-function": "ease | linear | ease-in | ease-out | ease-in-out | step-start | step-end | steps( <integer> [, [ start | end ] ]? ) | cubic-bezier( <number>, <number>, <number>, <number> )", | ||
"single-transition-property": "all | <custom-ident>", | ||
"size": "closest-side | farthest-side | closest-corner | farthest-corner | <length> | <length-percentage>{2}", | ||
"symbol": "<string> | <image> | <ident>", | ||
"target": "<target-counter()> | <target-counters()> | <target-text()>", | ||
"target-counter()": "target-counter( [ <string> | <url> ] , <custom-ident> [, <counter-style> ]? )", | ||
"target-counters()": "target-counters( [ <string> | <url> ] , <custom-ident> , <string> [, <counter-style> ]? )", | ||
"target-text()": "target-text( [ <string> | <url> ] [, [ content | before | after | first-letter ] ]? )", | ||
"time-percentage": "<time> | <percentage>", | ||
"track-breadth": "<length-percentage> | <flex> | min-content | max-content | auto", | ||
"track-list": "[ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?", | ||
"track-repeat": "repeat( [ <positive-integer> ] , [ <line-names>? <track-size> ]+ <line-names>? )", | ||
"track-size": "<track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )", | ||
"transform-function": "[ <matrix()> || <translate()> || <translateX()> || <translateY()> || <scale()> || <scaleX()> || <scaleY()> || <rotate()> || <skew()> || <skewX()> || <skewY()> || <matrix3d()> || <translate3d()> || <translateZ()> || <scale3d()> || <scaleZ()> || <rotate3d()> || <rotateX()> || <rotateY()> || <rotateZ()> || <perspective()> ]+", | ||
"transform-list": "<transform-function>+", | ||
"translate()": "translate( <length-percentage> [, <length-percentage> ]? )", | ||
"translate3d()": "translate3d( <length-percentage> , <length-percentage> , <length> )", | ||
"translateX()": "translateX( <length-percentage> )", | ||
"translateY()": "translateY( <length-percentage> )", | ||
"translateZ()": "translateZ( <length> )", | ||
"type-or-unit": "string | integer | color | url | integer | number | length | angle | time | frequency | em | ex | px | rem | vw | vh | vmin | vmax | mm | q | cm | in | pt | pc | deg | grad | rad | ms | s | Hz | kHz | %", | ||
"var()": "var( <custom-property-name> [, <declaration-value> ]? )", | ||
"viewport-length": "auto | <length-percentage>" | ||
"var()": "var( <custom-property-name> [, <declaration-value> ]? )", | ||
"viewport-length": "auto | <length-percentage>" | ||
} |
@@ -121,3 +121,3 @@ { | ||
"comment": "changing for property references due webkit version of properties can differ from current mask spec; needs for revision", | ||
"syntax": "<mask-image> [ <'-webkit-mask-repeat'> || <'-webkit-mask-attachment'> || <'-webkit-mask-position'> || <'-webkit-mask-origin'> || <'-webkit-mask-clip'> ]*" | ||
"syntax": "<mask-image> [ <'-webkit-mask-repeat'> || <'-webkit-mask-attachment'> || <'-webkit-mask-position'> || <'-webkit-mask-origin'> || <'-webkit-mask-clip'> ]*" | ||
}, | ||
@@ -130,3 +130,3 @@ "-webkit-mask-box-image": { | ||
"comment": "change type to <-webkit-mask-clip-style> since it differ from <mask-clip>, extra space between [ and ,", | ||
"syntax": "<-webkit-mask-clip-style> [, <-webkit-mask-clip-style> ]*" | ||
"syntax": "<-webkit-mask-clip-style> [, <-webkit-mask-clip-style> ]*" | ||
}, | ||
@@ -181,6 +181,2 @@ "-webkit-overflow-scrolling": { | ||
}, | ||
"content": { | ||
"comment": "outdated syntax, used syntax from https://drafts.csswg.org/css-content/#typedef-content-list", | ||
"syntax": "[ <image> ',' ]* [ normal | none | <content-list> ] [/ <string> ]?" | ||
}, | ||
"cue": { | ||
@@ -201,3 +197,3 @@ "comment": "https://www.w3.org/TR/css3-speech/#property-index", | ||
"refenrences": ["https://www.sitepoint.com/css3-cursor-styles/"], | ||
"syntax": "[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | 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 | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]" | ||
"syntax": "[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | 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 | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]" | ||
}, | ||
@@ -208,2 +204,6 @@ "display": { | ||
}, | ||
"position": { | ||
"comment": "extended with -webkit-sticky", | ||
"syntax": "static | relative | absolute | sticky | fixed | -webkit-sticky" | ||
}, | ||
"dominant-baseline": { | ||
@@ -247,7 +247,7 @@ "comment": "added SVG property", | ||
"comment": "extend with IE legacy syntaxes", | ||
"syntax": "none | <filter-function-list> | <-ms-filter>" | ||
"syntax": "none | <filter-function-list> | <-ms-filter>" | ||
}, | ||
"font": { | ||
"comment": "extend with non-standart fonts", | ||
"syntax": "[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar | <-non-standart-font>" | ||
"syntax": "[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar | <-non-standart-font>" | ||
}, | ||
@@ -280,3 +280,3 @@ "glyph-orientation-horizontal": { | ||
], | ||
"syntax": "normal | <length-percentage>" | ||
"syntax": "normal | <length-percentage>" | ||
}, | ||
@@ -313,8 +313,15 @@ "marker": { | ||
"comment": "extend by non-standart width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width", | ||
"syntax": "<length> | <percentage> | none | max-content | min-content | fit-content | fill-available | <-non-standart-width>" | ||
"syntax": "<length> | <percentage> | none | max-content | min-content | fit-content | fill-available | <-non-standart-width>" | ||
}, | ||
"min-width": { | ||
"comment": "extend by non-standart width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width", | ||
"syntax": "<length> | <percentage> | auto | max-content | min-content | fit-content | fill-available | <-non-standart-width>" | ||
"syntax": "<length> | <percentage> | auto | max-content | min-content | fit-content | fill-available | <-non-standart-width>" | ||
}, | ||
"offset-position": { | ||
"comment": "missed", | ||
"references": [ | ||
"https://drafts.fxtf.org/motion-1/#offset-position-property" | ||
], | ||
"syntax": "auto | <position>" | ||
}, | ||
"opacity": { | ||
@@ -432,3 +439,3 @@ "comment": "strict to 0..1 <number> -> <number-zero-one>", | ||
"comment": "move first group to the end since less collecting", | ||
"syntax": "[ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>? | [ <length-percentage> | left | center | right | top | bottom ]" | ||
"syntax": "[ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>? | [ <length-percentage> | left | center | right | top | bottom ]" | ||
}, | ||
@@ -503,3 +510,3 @@ "unicode-bidi": { | ||
"comment": "like standart syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient", | ||
"syntax": "[ <angle> | <side-or-corner> ]? , <color-stop-list>" | ||
"syntax": "[ <angle> | <side-or-corner> ]? , <color-stop-list>" | ||
}, | ||
@@ -592,2 +599,6 @@ "-legacy-radial-gradient()": { | ||
}, | ||
"alpha-value": { | ||
"comment": "wrong comma after <number>", | ||
"syntax": "<number> | <percentage>" | ||
}, | ||
"attr()": { | ||
@@ -615,3 +626,3 @@ "comment": "drop it since it's a generic", | ||
"comment": "changed <border-radius> to <'border-radius'>", | ||
"syntax": "inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )" | ||
"syntax": "inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )" | ||
}, | ||
@@ -635,3 +646,3 @@ "generic-voice": { | ||
"comment": "added -webkit-gradient() since may to be used for legacy support", | ||
"syntax": "<-legacy-gradient()> | <linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()>" | ||
"syntax": "<-legacy-gradient()> | <linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()>" | ||
}, | ||
@@ -648,7 +659,7 @@ "left": { | ||
"comment": "redundant max", | ||
"syntax": "matrix( <number> [, <number> ]{5} )" | ||
"syntax": "matrix( <number> [, <number> ]{5} )" | ||
}, | ||
"matrix3d()": { | ||
"comment": "redundant max", | ||
"syntax": "matrix3d( <number> [, <number> ]{15} )" | ||
"syntax": "matrix3d( <number> [, <number> ]{15} )" | ||
}, | ||
@@ -677,3 +688,3 @@ "name-repeat": { | ||
"comment": "rewrite syntax (TODO: make match work with original syntax)", | ||
"syntax": "[ center && [ left | right | top | bottom ] <length-percentage>? ] | [ [ left | right ] <length-percentage>? ] && [ [ top | bottom ] <length-percentage>? ] | [ [ left | center | right | <length-percentage> ] || [ top | center | bottom | <length-percentage> ] ]" | ||
"syntax": "[ center && [ left | right | top | bottom ] <length-percentage>? ] | [ [ left | right ] <length-percentage>? ] && [ [ top | bottom ] <length-percentage>? ] | [ [ left | center | right | <length-percentage> ] || [ top | center | bottom | <length-percentage> ] ]" | ||
}, | ||
@@ -690,3 +701,3 @@ "right": { | ||
"comment": "moved <single-transition-timing-function> in the beginning to avoid wrong match to <single-transition-property>", | ||
"syntax": "<single-transition-timing-function> || [ none | <single-transition-property> ] || <time> || <time>" | ||
"syntax": "<single-transition-timing-function> || [ none | <single-transition-property> ] || <time> || <time>" | ||
}, | ||
@@ -712,6 +723,2 @@ "svg-length": { | ||
}, | ||
"quote": { | ||
"comment": "missed -> https://drafts.csswg.org/css-content/#typedef-quote", | ||
"syntax": "open-quote | close-quote | no-open-quote | no-close-quote" | ||
}, | ||
"x": { | ||
@@ -765,3 +772,3 @@ "comment": "missed; not sure we should add it, but no others except `cursor` is using it so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor", | ||
"syntax": null | ||
}, | ||
}, | ||
"mf-plain": { | ||
@@ -819,2 +826,6 @@ "comment": "syntax is incorrect and can't be parsed, drop for now", | ||
}, | ||
"nth": { | ||
"comment": "syntax has <an-plus-b> that doesn't support currently, drop for now", | ||
"syntax": null | ||
}, | ||
"page-selector": { | ||
@@ -821,0 +832,0 @@ "comment": "syntax is incorrect and can't be parsed, drop for now", |
@@ -1,1 +0,1 @@ | ||
{"generic":true,"types":{"absolute-size":"xx-small | x-small | small | medium | large | x-large | xx-large","alpha-value":"<number>","angle-percentage":"<angle> | <percentage>","animateable-feature":"scroll-position | contents | <custom-ident>","attachment":"scroll | fixed | local","auto-repeat":"repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )","auto-track-list":"[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?","basic-shape":"<inset()> | <circle()> | <ellipse()> | <polygon()>","bg-image":"none | <image>","bg-layer":"<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2}","bg-size":"[ <length-percentage> | auto ]{1,2} | cover | contain","blur()":"blur( <length> )","blend-mode":"normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity","box":"border-box | padding-box | content-box","br-style":"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset","br-width":"<length> | thin | medium | thick","brightness()":"brightness( <number-percentage> )","calc()":"calc( <calc-sum> )","calc-sum":"<calc-product> [ [ '+' | '-' ] <calc-product> ]*","calc-product":"<calc-value> [ '*' <calc-value> | '/' <number> ]*","calc-value":"<number> | <dimension> | <percentage> | ( <calc-sum> )","cf-final-image":"<image> | <color>","cf-mixing-image":"<percentage>? && <image>","circle()":"circle( [ <shape-radius> ]? [ at <position> ]? )","clip-source":"<url>","color":"<rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>","color-stop":"<color> <length-percentage>?","color-stop-list":"<color-stop>#{2,}","common-lig-values":"[ common-ligatures | no-common-ligatures ]","composite-style":"clear | copy | source-over | source-in | source-out | source-atop | destination-over | destination-in | destination-out | destination-atop | xor","compositing-operator":"add | subtract | intersect | exclude","contextual-alt-values":"[ contextual | no-contextual ]","contrast()":"contrast( [ <number-percentage> ] )","counter-style":"<counter-style-name> | symbols()","counter-style-name":"<custom-ident>","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","deprecated-system-color":"ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonFace | ButtonHighlight | ButtonShadow | ButtonText | CaptionText | GrayText | Highlight | HighlightText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowText","discretionary-lig-values":"[ discretionary-ligatures | no-discretionary-ligatures ]","drop-shadow()":"drop-shadow( <length>{2,3} <color>? )","east-asian-variant-values":"[ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]","east-asian-width-values":"[ full-width | proportional-width ]","element()":"element( <id-selector> )","ellipse()":"ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )","ending-shape":"circle | ellipse","explicit-track-list":"[ <line-names>? <track-size> ]+ <line-names>?","family-name":"<string> | <custom-ident>+","feature-tag-value":"<string> [ <integer> | on | off ]?","feature-value-name":"<custom-ident>","fill-rule":"nonzero | evenodd","filter-function":"<blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()>","filter-function-list":"[ <filter-function> | <url> ]+","final-bg-layer":"<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box> || <'background-color'>","fit-content()":"fit-content( [ <length> | <percentage> ] )","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [ <positive-integer> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )","fixed-size":"<fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )","font-variant-css21":"[ normal | small-caps ]","frequency-percentage":"<frequency> | <percentage>","generic-family":"serif | sans-serif | cursive | fantasy | monospace | -apple-system","generic-name":"serif | sans-serif | cursive | fantasy | monospace","geometry-box":"<shape-box> | fill-box | stroke-box | view-box","gradient":"<-legacy-gradient()> | <linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()>","grayscale()":"grayscale( <number-percentage> )","grid-line":"auto | <custom-ident> | [ <integer> && <custom-ident>? ] | [ span && [ <integer> || <custom-ident> ] ]","historical-lig-values":"[ historical-ligatures | no-historical-ligatures ]","hsl()":"hsl( <hue> , <percentage> , <percentage> )","hsla()":"hsla( <hue> , <percentage> , <percentage> , <alpha-value> )","hue":"<number>","hue-rotate()":"hue-rotate( <angle> )","image":"<url> | <image()> | <image-set()> | <element()> | <cross-fade()> | <gradient>","image()":"image( [ [ <image> | <string> ]? , <color>? ]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[ <image> | <string> ] <resolution>","inflexible-breadth":"<length> | <percentage> | min-content | max-content | auto","inset()":"inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )","invert()":"invert( <number-percentage> )","keyframes-name":"<custom-ident> | <string>","keyframe-selector":"from | to | <percentage>","length-percentage":"<length> | <percentage>","line-names":"'[' <custom-ident>* ']'","line-name-list":"[ <line-names> | <name-repeat> ]+","linear-gradient()":"linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )","mask-layer":"<mask-reference> <masking-mode>? || <position> [ / <bg-size> ]? || <repeat-style> || <geometry-box> || [ <geometry-box> | no-clip ] || <compositing-operator>","mask-position":"[ <length-percentage> | left | center | right ] [ <length-percentage> | top | center | bottom ]?","mask-reference":"none | <image> | <mask-source>","mask-source":"<url>","masking-mode":"alpha | luminance | match-source","matrix()":"matrix( <number> [, <number> ]{5} )","matrix3d()":"matrix3d( <number> [, <number> ]{15} )","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","named-color":"transparent | aliceblue | antiquewhite | aqua | aquamarine | azure | beige | bisque | black | blanchedalmond | blue | blueviolet | brown | burlywood | cadetblue | chartreuse | chocolate | coral | cornflowerblue | cornsilk | crimson | cyan | darkblue | darkcyan | darkgoldenrod | darkgray | darkgreen | darkgrey | darkkhaki | darkmagenta | darkolivegreen | darkorange | darkorchid | darkred | darksalmon | darkseagreen | darkslateblue | darkslategray | darkslategrey | darkturquoise | darkviolet | deeppink | deepskyblue | dimgray | dimgrey | dodgerblue | firebrick | floralwhite | forestgreen | fuchsia | gainsboro | ghostwhite | gold | goldenrod | gray | green | greenyellow | grey | honeydew | hotpink | indianred | indigo | ivory | khaki | lavender | lavenderblush | lawngreen | lemonchiffon | lightblue | lightcoral | lightcyan | lightgoldenrodyellow | lightgray | lightgreen | lightgrey | lightpink | lightsalmon | lightseagreen | lightskyblue | lightslategray | lightslategrey | lightsteelblue | lightyellow | lime | limegreen | linen | magenta | maroon | mediumaquamarine | mediumblue | mediumorchid | mediumpurple | mediumseagreen | mediumslateblue | mediumspringgreen | mediumturquoise | mediumvioletred | midnightblue | mintcream | mistyrose | moccasin | navajowhite | navy | oldlace | olive | olivedrab | orange | orangered | orchid | palegoldenrod | palegreen | paleturquoise | palevioletred | papayawhip | peachpuff | peru | pink | plum | powderblue | purple | rebeccapurple | red | rosybrown | royalblue | saddlebrown | salmon | sandybrown | seagreen | seashell | sienna | silver | skyblue | slateblue | slategray | slategrey | snow | springgreen | steelblue | tan | teal | thistle | tomato | turquoise | violet | wheat | white | whitesmoke | yellow | yellowgreen | <-non-standart-color>","namespace-prefix":"<ident>","number-percentage":"<number> | <percentage>","numeric-figure-values":"[ lining-nums | oldstyle-nums ]","numeric-fraction-values":"[ diagonal-fractions | stacked-fractions ]","numeric-spacing-values":"[ proportional-nums | tabular-nums ]","opacity()":"opacity( [ <number-percentage> ] )","perspective()":"perspective( <length> )","polygon()":"polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )","position":"[ center && [ left | right | top | bottom ] <length-percentage>? ] | [ [ left | right ] <length-percentage>? ] && [ [ top | bottom ] <length-percentage>? ] | [ [ left | center | right | <length-percentage> ] || [ top | center | bottom | <length-percentage> ] ]","radial-gradient()":"radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )","relative-size":"larger | smaller","repeat-style":"repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}","repeating-linear-gradient()":"repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )","repeating-radial-gradient()":"repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )","rgb()":"rgb( <rgb-component>#{3} )","rgb-component":"<integer> | <percentage>","rgba()":"rgba( <rgb-component>#{3} , <alpha-value> )","rotate()":"rotate( <angle> )","rotate3d()":"rotate3d( <number> , <number> , <number> , <angle> )","rotateX()":"rotateX( <angle> )","rotateY()":"rotateY( <angle> )","rotateZ()":"rotateZ( <angle> )","saturate()":"saturate( <number-percentage> )","scale()":"scale( <number> [, <number> ]? )","scale3d()":"scale3d( <number> , <number> , <number> )","scaleX()":"scaleX( <number> )","scaleY()":"scaleY( <number> )","scaleZ()":"scaleZ( <number> )","shape-radius":"<length-percentage> | closest-side | farthest-side","skew()":"skew( <angle> [, <angle> ]? )","skewX()":"skewX( <angle> )","skewY()":"skewY( <angle> )","sepia()":"sepia( <number-percentage> )","shadow":"inset? && <length>{2,4} && <color>?","shadow-t":"[ <length>{2,3} && <color>? ]","shape":"rect( [ [ <top> , <right> , <bottom> , <left> ] | [ <top> <right> <bottom> <left> ] ] )","shape-box":"<box> | margin-box","side-or-corner":"[ left | right ] || [ top | bottom ]","single-animation":"<time> || <single-timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ]","single-animation-direction":"normal | reverse | alternate | alternate-reverse","single-animation-fill-mode":"none | forwards | backwards | both","single-animation-iteration-count":"infinite | <number>","single-animation-play-state":"running | paused","single-timing-function":"<single-transition-timing-function>","single-transition":"<single-transition-timing-function> || [ none | <single-transition-property> ] || <time> || <time>","single-transition-timing-function":"ease | linear | ease-in | ease-out | ease-in-out | step-start | step-end | steps( <integer> [, [ start | end ] ]? ) | cubic-bezier( <number> , <number> , <number> , <number> )","single-transition-property":"all | <custom-ident>","size":"closest-side | farthest-side | closest-corner | farthest-corner | <length> | <length-percentage>{2}","symbol":"<string> | <image> | <ident>","time-percentage":"<time> | <percentage>","track-breadth":"<length-percentage> | <flex> | min-content | max-content | auto","track-list":"[ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?","track-repeat":"repeat( [ <positive-integer> ] , [ <line-names>? <track-size> ]+ <line-names>? )","track-size":"<track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )","transform-function":"[ <matrix()> || <translate()> || <translateX()> || <translateY()> || <scale()> || <scaleX()> || <scaleY()> || <rotate()> || <skew()> || <skewX()> || <skewY()> || <matrix3d()> || <translate3d()> || <translateZ()> || <scale3d()> || <scaleZ()> || <rotate3d()> || <rotateX()> || <rotateY()> || <rotateZ()> || <perspective()> ]+","transform-list":"<transform-function>+","translate()":"translate( <length-percentage> [, <length-percentage> ]? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","type-or-unit":"string | integer | color | url | integer | number | length | angle | time | frequency | em | ex | px | rem | vw | vh | vmin | vmax | mm | q | cm | in | pt | pc | deg | grad | rad | ms | s | Hz | kHz | %","viewport-length":"auto | <length-percentage>","-legacy-gradient()":"<-webkit-gradient()> | <-legacy-linear-gradient()> | <-legacy-repeating-linear-gradient()> | <-legacy-radial-gradient()> | <-legacy-repeating-radial-gradient()>","-legacy-linear-gradient()":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -ms-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient()":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -ms-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[ <angle> | <side-or-corner> ]? , <color-stop-list>","-legacy-radial-gradient()":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -ms-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient()":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -ms-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side | closest-corner | farthest-side | farthest-corner | contain | cover","-legacy-radial-gradient-shape":"circle | ellipse","-non-standart-font":"-apple-system-body | -apple-system-headline | -apple-system-subheadline | -apple-system-caption1 | -apple-system-caption2 | -apple-system-footnote | -apple-system-short-body | -apple-system-short-headline | -apple-system-short-subheadline | -apple-system-short-caption1 | -apple-system-short-footnote | -apple-system-tall-body","-non-standart-color":"-moz-ButtonDefault | -moz-ButtonHoverFace | -moz-ButtonHoverText | -moz-CellHighlight | -moz-CellHighlightText | -moz-Combobox | -moz-ComboboxText | -moz-Dialog | -moz-DialogText | -moz-dragtargetzone | -moz-EvenTreeRow | -moz-Field | -moz-FieldText | -moz-html-CellHighlight | -moz-html-CellHighlightText | -moz-mac-accentdarkestshadow | -moz-mac-accentdarkshadow | -moz-mac-accentface | -moz-mac-accentlightesthighlight | -moz-mac-accentlightshadow | -moz-mac-accentregularhighlight | -moz-mac-accentregularshadow | -moz-mac-chrome-active | -moz-mac-chrome-inactive | -moz-mac-focusring | -moz-mac-menuselect | -moz-mac-menushadow | -moz-mac-menutextselect | -moz-MenuHover | -moz-MenuHoverText | -moz-MenuBarText | -moz-MenuBarHoverText | -moz-nativehyperlinktext | -moz-OddTreeRow | -moz-win-communicationstext | -moz-win-mediatext | -moz-activehyperlinktext | -moz-default-background-color | -moz-default-color | -moz-hyperlinktext | -moz-visitedhyperlinktext | -webkit-activelink | -webkit-focus-ring-color | -webkit-link | -webkit-text","-non-standart-image-rendering":"optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast","-non-standart-width":"min-intrinsic | intrinsic | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content","-non-standart-word-break":"break-word","-webkit-image-set()":"<image-set()>","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [ , <-webkit-gradient-point> | , <-webkit-gradient-radius> , <-webkit-gradient-point> ] [, <-webkit-gradient-radius> ]? [, <-webkit-gradient-color-stop()> ]* )","-webkit-gradient-color-stop()":"from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )","-webkit-gradient-point":"[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]","-webkit-gradient-radius":"<length> | <percentage>","-webkit-gradient-type":"linear | radial","-webkit-mask-box-repeat":"repeat | stretch | round","-webkit-mask-clip-style":"border | border-box | padding | padding-box | content | content-box | text","-ms-filter":"[ <progid> | FlipH | FlipV ]+","age":"child | young | old","border-radius":"<length-percentage>{1,2}","bottom":"<length> | auto","content-list":"[ <string> | contents | <url> | <quote> | <attr()> | counter( <ident> , <'list-style-type'>? ) ]+","generic-voice":"[ <age>? <gender> <integer>? ]","gender":"male | female | neutral","left":"<length> | auto","mask-image":"<mask-reference>#","name-repeat":"repeat( [ <positive-integer> | auto-fill ] , <line-names>+ )","outline-radius":"<border-radius>","paint":"none | currentColor | <color> | <url> [ none | currentColor | <color> ]?","path()":"path( <string> )","right":"<length> | auto","svg-length":"<percentage> | <length> | <number>","svg-writing-mode":"lr-tb | rl-tb | tb-rl | lr | rl | tb","top":"<length> | auto","quote":"open-quote | close-quote | no-open-quote | no-close-quote","x":"<number>","y":"<number>"},"properties":{"-ms-overflow-style":"auto | none | scrollbar | -ms-autohiding-scrollbar","-moz-appearance":"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized","-moz-binding":"<url> | none","-moz-border-bottom-colors":"[ <color> ]* <color> | none","-moz-border-left-colors":"[ <color> ]* <color> | none","-moz-border-right-colors":"[ <color> ]* <color> | none","-moz-border-top-colors":"[ <color> ]* <color> | none","-moz-float-edge":"border-box | content-box | margin-box | padding-box","-moz-force-broken-image-icon":"<integer>","-moz-image-region":"<shape>","-moz-orient":"inline | block | horizontal | vertical","-moz-outline-radius":"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore | stretch-to-fit","-moz-text-blink":"none | blink","-moz-user-focus":"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none","-moz-user-input":"none | enabled | disabled","-moz-user-modify":"read-only | read-write | write-only","-moz-window-shadow":"default | menu | tooltip | sheet | none","-webkit-border-before":"<'border-width'> || <'border-style'> || <'color'>","-webkit-border-before-color":"<'color'>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[ above | below | right | left ]? <length>? <image>?","-webkit-mask":"<mask-image> [ <'-webkit-mask-repeat'> || <'-webkit-mask-attachment'> || <'-webkit-mask-position'> || <'-webkit-mask-origin'> || <'-webkit-mask-clip'> ]*","-webkit-mask-attachment":"<attachment> [, <attachment> ]*","-webkit-mask-clip":"<-webkit-mask-clip-style> [, <-webkit-mask-clip-style> ]*","-webkit-mask-composite":"<composite-style> [, <composite-style> ]*","-webkit-mask-image":"<mask-image> [, <mask-image> ]*","-webkit-mask-origin":"[ padding | border | content ] [, [ border | padding | content ] ]*","-webkit-mask-position":"<mask-position>#","-webkit-mask-position-x":"[ <length-percentage> | left | center | right ]#","-webkit-mask-position-y":"[ <length-percentage> | top | center | bottom ]#","-webkit-mask-repeat":"<repeat-style> [, <repeat-style> ]*","-webkit-mask-repeat-x":"repeat | no-repeat | space | round","-webkit-mask-repeat-y":"repeat | no-repeat | space | round","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length> <color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default | none","align-content":"flex-start | flex-end | center | space-between | space-around | stretch","align-items":"flex-start | flex-end | center | baseline | stretch","align-self":"auto | flex-start | flex-end | center | baseline | stretch","all":"initial | inherit | unset","animation":"<single-animation>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"<time>#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[ none | <keyframes-name> ]#","animation-play-state":"<single-animation-play-state>#","animation-timing-function":"<single-timing-function>#","appearance":"auto | none","azimuth":"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards","backdrop-filter":"none | <filter-function-list>","backface-visibility":"visible | hidden","background":"[ <bg-layer> , ]* <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<box>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<box>#","background-position":"<position>#","background-position-x":"[ center | [ left | right | x-start | x-end ]? <length-percentage>? ]#","background-position-y":"[ center | [ top | bottom | y-start | y-end ]? <length-percentage>? ]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","block-size":"<'width'>","border":"<br-width> || <br-style> || <color>","border-block-end":"<'border-width'> || <'border-style'> || <'color'>","border-block-end-color":"<'color'>","border-block-end-style":"<'border-style'>","border-block-end-width":"<'border-width'>","border-block-start":"<'border-width'> || <'border-style'> || <'color'>","border-block-start-color":"<'color'>","border-block-start-style":"<'border-style'>","border-block-start-width":"<'border-width'>","border-bottom":"<br-width> || <br-style> || <color>","border-bottom-color":"<color>","border-bottom-left-radius":"<length-percentage>{1,2}","border-bottom-right-radius":"<length-percentage>{1,2}","border-bottom-style":"<br-style>","border-bottom-width":"<br-width>","border-collapse":"collapse | separate","border-color":"<color>{1,4}","border-image":"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>","border-image-outset":"[ <length> | <number> ]{1,4}","border-image-repeat":"[ stretch | repeat | round | space ]{1,2}","border-image-slice":"<number-percentage>{1,4} && fill?","border-image-source":"none | <image>","border-image-width":"[ <length-percentage> | <number> | auto ]{1,4}","border-inline-end":"<'border-width'> || <'border-style'> || <'color'>","border-inline-end-color":"<'color'>","border-inline-end-style":"<'border-style'>","border-inline-end-width":"<'border-width'>","border-inline-start":"<'border-width'> || <'border-style'> || <'color'>","border-inline-start-color":"<'color'>","border-inline-start-style":"<'border-style'>","border-inline-start-width":"<'border-width'>","border-left":"<br-width> || <br-style> || <color>","border-left-color":"<color>","border-left-style":"<br-style>","border-left-width":"<br-width>","border-radius":"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?","border-right":"<br-width> || <br-style> || <color>","border-right-color":"<color>","border-right-style":"<br-style>","border-right-width":"<br-width>","border-spacing":"<length> <length>?","border-style":"<br-style>{1,4}","border-top":"<br-width> || <br-style> || <color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage>{1,2}","border-top-right-radius":"<length-percentage>{1,2}","border-top-style":"<br-style>","border-top-width":"<br-width>","border-width":"<br-width>{1,4}","bottom":"<length> | <percentage> | auto","box-align":"start | center | end | baseline | stretch","box-decoration-break":"slice | clone","box-direction":"normal | reverse | inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single | multiple","box-ordinal-group":"<integer>","box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","box-pack":"start | center | end | justify","box-shadow":"none | <shadow>#","box-sizing":"content-box | border-box","box-suppress":"show | discard | hide","break-after":"auto | avoid | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region","break-before":"auto | avoid | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region","break-inside":"auto | avoid | avoid-page | avoid-column | avoid-region","caption-side":"top | bottom | block-start | block-end | inline-start | inline-end","clear":"none | left | right | both | inline-start | inline-end","clip":"<shape> | auto","clip-path":"<clip-source> | [ <basic-shape> || <geometry-box> ] | none","color":"<color>","column-count":"<number> | auto","column-fill":"auto | balance","column-gap":"<length> | normal","column-rule":"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<br-style>","column-rule-width":"<br-width>","column-span":"none | all","column-width":"<length> | auto","columns":"<'column-width'> || <'column-count'>","contain":"none | strict | content | [ size || layout || style || paint ]","content":"[ <image> ',' ]* [ normal | none | <content-list> ] [ / <string> ]?","counter-increment":"[ <custom-ident> <integer>? ]+ | none","counter-reset":"[ <custom-ident> <integer>? ]+ | none","cursor":"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | 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 | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]","direction":"ltr | rtl","display":"none | inline | block | list-item | inline-list-item | inline-block | inline-table | table | table-cell | table-column | table-column-group | table-footer-group | table-header-group | table-row | table-row-group | flex | inline-flex | grid | inline-grid | run-in | ruby | ruby-base | ruby-text | ruby-base-container | ruby-text-container | contents | -ms-flexbox | -ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box","display-inside":"auto | block | table | flex | grid | ruby","display-list":"none | list-item","display-outside":"block-level | inline-level | run-in | contents | none | 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","empty-cells":"show | hide","filter":"none | <filter-function-list> | <-ms-filter>","flex":"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]","flex-basis":"content | <'width'>","flex-direction":"row | row-reverse | column | column-reverse","flex-flow":"<'flex-direction'> || <'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap | wrap | wrap-reverse","float":"left | right | none | inline-start | inline-end","font":"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar | <-non-standart-font>","font-family":"[ <family-name> | <generic-family> ]#","font-feature-settings":"normal | <feature-tag-value>#","font-kerning":"auto | normal | none","font-language-override":"normal | <string>","font-size":"<absolute-size> | <relative-size> | <length-percentage>","font-size-adjust":"none | <number>","font-stretch":"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded","font-style":"normal | italic | oblique","font-synthesis":"none | [ weight || style ]","font-variant":"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || 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> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]","font-variant-alternates":"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> ) ]","font-variant-caps":"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps","font-variant-east-asian":"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]","font-variant-ligatures":"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]","font-variant-numeric":"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]","font-variant-position":"normal | sub | super","font-weight":"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900","grid":"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [ / <grid-line> ]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[ row | column ] || dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [ / <grid-line> ]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [ / <grid-line> ]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?","grid-template-areas":"none | <string>+","grid-template-columns":"none | <track-list> | <auto-track-list>","grid-template-rows":"none | <track-list> | <auto-track-list>","height":"[ <length> | <percentage> ] && [ border-box | content-box ]? | available | min-content | max-content | fit-content | auto","hyphens":"none | manual | auto","image-orientation":"from-image | <angle> | [ <angle>? flip ]","image-rendering":"auto | crisp-edges | pixelated | optimizeSpeed | optimizeQuality | <-non-standart-image-rendering>","image-resolution":"[ from-image || <resolution> ] && snap?","ime-mode":"auto | normal | active | inactive | disabled","initial-letter":"normal | [ <number> <integer>? ]","initial-letter-align":"[ auto | alphabetic | hanging | ideographic ]","inline-size":"<'width'>","isolation":"auto | isolate","justify-content":"flex-start | flex-end | center | space-between | space-around","left":"<length> | <percentage> | auto","letter-spacing":"normal | <length-percentage>","line-break":"auto | loose | normal | strict","line-height":"normal | <number> | <length> | <percentage>","list-style":"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>","list-style-image":"<url> | none","list-style-position":"inside | outside","list-style-type":"<counter-style> | <string> | none","margin":"[ <length> | <percentage> | auto ]{1,4}","margin-block-end":"<'margin-left'>","margin-block-start":"<'margin-left'>","margin-bottom":"<length> | <percentage> | auto","margin-inline-end":"<'margin-left'>","margin-inline-start":"<'margin-left'>","margin-left":"<length> | <percentage> | auto","margin-right":"<length> | <percentage> | auto","margin-top":"<length> | <percentage> | auto","marker-offset":"<length> | auto","mask":"<mask-layer>#","mask-clip":"[ <geometry-box> | no-clip ]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<geometry-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance | alpha","max-block-size":"<'max-width'>","max-height":"<length> | <percentage> | none | max-content | min-content | fit-content | fill-available","max-inline-size":"<'max-width'>","max-width":"<length> | <percentage> | none | max-content | min-content | fit-content | fill-available | <-non-standart-width>","min-block-size":"<'min-width'>","min-height":"<length> | <percentage> | auto | max-content | min-content | fit-content | fill-available","min-inline-size":"<'min-width'>","min-width":"<length> | <percentage> | auto | max-content | min-content | fit-content | fill-available | <-non-standart-width>","mix-blend-mode":"<blend-mode>","motion":"<'motion-path'> && <'motion-offset'> && <'motion-rotation'>","motion-offset":"<length-percentage>","motion-path":"<url> | [ <basic-shape> | <path()> ] || <geometry-box> | none","motion-rotation":"[ auto | reverse ] && <angle>","object-fit":"fill | contain | cover | none | scale-down","object-position":"<position>","offset-block-end":"<'left'>","offset-block-start":"<'left'>","offset-inline-end":"<'left'>","offset-inline-start":"<'left'>","opacity":"<number-zero-one>","order":"<integer>","orphans":"<integer>","outline":"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]","outline-color":"<color> | invert","outline-offset":"<length>","outline-style":"auto | <br-style>","outline-width":"<br-width>","overflow":"visible | hidden | scroll | auto","overflow-clip-box":"padding-box | content-box","overflow-wrap":"normal | break-word","overflow-x":"visible | hidden | scroll | auto","overflow-y":"visible | hidden | scroll | auto","padding":"[ <length> | <percentage> ]{1,4}","padding-block-end":"<'padding-left'>","padding-block-start":"<'padding-left'>","padding-bottom":"<length> | <percentage>","padding-inline-end":"<'padding-left'>","padding-inline-start":"<'padding-left'>","padding-left":"<length> | <percentage>","padding-right":"<length> | <percentage>","padding-top":"<length> | <percentage>","page-break-after":"auto | always | avoid | left | right","page-break-before":"auto | always | avoid | left | right","page-break-inside":"auto | avoid","perspective":"none | <length>","perspective-origin":"<position>","pointer-events":"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit","position":"static | relative | absolute | sticky | fixed","quotes":"[ <string> <string> ]+ | none","resize":"none | both | horizontal | vertical","right":"<length> | <percentage> | auto","ruby-align":"start | center | space-between | space-around","ruby-merge":"separate | collapse | auto","ruby-position":"over | under | inter-character","scroll-behavior":"auto | smooth","scroll-snap-coordinate":"none | <position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none | repeat( <length> )","scroll-snap-points-y":"none | repeat( <length> )","scroll-snap-type":"none | mandatory | proximity","scroll-snap-type-x":"none | mandatory | proximity","scroll-snap-type-y":"none | mandatory | proximity","shape-image-threshold":"<number>","shape-margin":"<length-percentage>","shape-outside":"none | <shape-box> || <basic-shape> | <image>","tab-size":"<integer> | <length>","table-layout":"auto | fixed","text-align":"start | end | left | right | center | justify | match-parent","text-align-last":"auto | start | end | left | right | center | justify","text-combine-upright":"none | all | [ digits <integer>? ]","text-decoration":"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'>","text-decoration-color":"<color>","text-decoration-line":"none | [ underline || overline || line-through || blink ]","text-decoration-skip":"none | [ objects || spaces || ink || edges || box-decoration ]","text-decoration-style":"solid | double | dotted | dashed | wavy","text-emphasis":"<'text-emphasis-style'> || <'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"[ over | under ] && [ right | left ]","text-emphasis-style":"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>","text-indent":"<length-percentage> && hanging? && each-line?","text-orientation":"mixed | upright | sideways","text-overflow":"[ clip | ellipsis | <string> ]{1,2}","text-rendering":"auto | optimizeSpeed | optimizeLegibility | geometricPrecision","text-shadow":"none | <shadow-t>#","text-size-adjust":"none | auto | <percentage>","text-transform":"none | capitalize | uppercase | lowercase | full-width","text-underline-position":"auto | [ under || [ left | right ] ]","top":"<length> | <percentage> | auto","touch-action":"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] ] | manipulation","transform":"none | <transform-list>","transform-box":"border-box | fill-box | view-box","transform-origin":"[ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>? | [ <length-percentage> | left | center | right | top | bottom ]","transform-style":"flat | preserve-3d","transition":"<single-transition>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none | <single-transition-property>#","transition-timing-function":"<single-transition-timing-function>#","unicode-bidi":"normal | embed | isolate | bidi-override | isolate-override | plaintext | -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate","user-select":"auto | text | none | contain | all","vertical-align":"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>","visibility":"visible | hidden | collapse","white-space":"normal | pre | nowrap | pre-wrap | pre-line","widows":"<integer>","width":"[ <length> | <percentage> ] && [ border-box | content-box ]? | available | min-content | max-content | fit-content | auto","will-change":"auto | <animateable-feature>#","word-break":"normal | break-all | keep-all | <-non-standart-word-break>","word-spacing":"normal | <length-percentage>","word-wrap":"normal | break-word","writing-mode":"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr | <svg-writing-mode>","z-index":"auto | <integer>","-moz-background-clip":"padding | border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-osx-font-smoothing":"auto | unset | grayscale","-moz-user-select":"none | text | all | -moz-none","-ms-filter":"<string>","-ms-flex-align":"start | end | center | baseline | stretch","-ms-flex-item-align":"auto | start | end | center | baseline | stretch","-ms-flex-line-pack":"start | end | center | justify | distribute | stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start | end | center | justify | distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor | bicubic","-ms-grid-column-align":"start | end | center | stretch","-ms-grid-row-align":"start | end | center | stretch","-ms-high-contrast-adjust":"auto | none","-ms-user-select":"none | element | text","-webkit-appearance":"none | button | button-bevel | caps-lock-indicator | caret | checkbox | default-button | listbox | listitem | media-fullscreen-button | media-mute-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | push-button | radio | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield","-webkit-background-clip":"[ <box> | border | padding | content | text ]#","-webkit-column-break-after":"always | auto | avoid","-webkit-column-break-before":"always | auto | avoid","-webkit-column-break-inside":"always | auto | avoid","-webkit-font-smoothing":"none | antialiased | subpixel-antialiased","-webkit-line-clamp":"<positive-integer>","-webkit-mask-box-image":"[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?","-webkit-overflow-scrolling":"auto | touch","-webkit-print-color-adjust":"economy | exact","-webkit-text-security":"none | circle | disc | square","-webkit-user-drag":"none | element | auto","-webkit-user-select":"auto | none | text | all","alignment-baseline":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical","baseline-shift":"baseline | sub | super | <svg-length>","behavior":"<url>+","clip-rule":"nonzero | evenodd","cue":"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>? | none","cue-before":"<url> <decibel>? | none","dominant-baseline":"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge","fill":"<paint>","fill-opacity":"<number-zero-one>","fill-rule":"nonzero | evenodd","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>","kerning":"auto | <svg-length>","marker":"none | <url>","marker-end":"none | <url>","marker-mid":"none | <url>","marker-start":"none | <url>","pause":"<'pause-before'> <'pause-after'>?","pause-after":"<time> | none | x-weak | weak | medium | strong | x-strong","pause-before":"<time> | none | x-weak | weak | medium | strong | x-strong","rest":"<'rest-before'> <'rest-after'>?","rest-after":"<time> | none | x-weak | weak | medium | strong | x-strong","rest-before":"<time> | none | x-weak | weak | medium | strong | x-strong","shape-rendering":"auto | optimizeSpeed | crispEdges | geometricPrecision","src":"[ <url> format( <string># )? | local( <family-name> ) ]#","speak":"auto | none | normal","speak-as":"normal | spell-out || digits || [ literal-punctuation | no-punctuation ]","stroke":"<paint>","stroke-dasharray":"none | [ <svg-length>+ ]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt | round | square","stroke-linejoin":"miter | round | bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<number-zero-one>","stroke-width":"<svg-length>","text-anchor":"start | middle | end","unicode-range":"<unicode-range>#","voice-balance":"<number> | left | center | right | leftwards | rightwards","voice-duration":"auto | <time>","voice-family":"[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve","voice-pitch":"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]","voice-range":"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]","voice-rate":"[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>","voice-stress":"normal | strong | moderate | none | reduced","voice-volume":"silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]","zoom":"normal | reset | <number> | <percentage>"}} | ||
{"generic":true,"types":{"absolute-size":"xx-small | x-small | small | medium | large | x-large | xx-large","alpha-value":"<number> | <percentage>","angle-percentage":"<angle> | <percentage>","animateable-feature":"scroll-position | contents | <custom-ident>","attachment":"scroll | fixed | local","auto-repeat":"repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )","auto-track-list":"[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?","basic-shape":"<inset()> | <circle()> | <ellipse()> | <polygon()>","bg-image":"none | <image>","bg-layer":"<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2}","bg-size":"[ <length-percentage> | auto ]{1,2} | cover | contain","blur()":"blur( <length> )","blend-mode":"normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity","box":"border-box | padding-box | content-box","br-style":"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset","br-width":"<length> | thin | medium | thick","brightness()":"brightness( <number-percentage> )","calc()":"calc( <calc-sum> )","calc-sum":"<calc-product> [ [ '+' | '-' ] <calc-product> ]*","calc-product":"<calc-value> [ '*' <calc-value> | '/' <number> ]*","calc-value":"<number> | <dimension> | <percentage> | ( <calc-sum> )","cf-final-image":"<image> | <color>","cf-mixing-image":"<percentage>? && <image>","circle()":"circle( [ <shape-radius> ]? [ at <position> ]? )","clip-source":"<url>","color":"<rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>","color-stop":"<color> <length-percentage>?","color-stop-list":"<color-stop>#{2,}","common-lig-values":"[ common-ligatures | no-common-ligatures ]","composite-style":"clear | copy | source-over | source-in | source-out | source-atop | destination-over | destination-in | destination-out | destination-atop | xor","compositing-operator":"add | subtract | intersect | exclude","contextual-alt-values":"[ contextual | no-contextual ]","content-list":"[ <string> | contents | <url> | <quote> | <attr()> | counter( <ident> , <'list-style-type'>? ) ]+","contrast()":"contrast( [ <number-percentage> ] )","counter-style":"<counter-style-name> | symbols()","counter-style-name":"<custom-ident>","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","deprecated-system-color":"ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonFace | ButtonHighlight | ButtonShadow | ButtonText | CaptionText | GrayText | Highlight | HighlightText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowText","discretionary-lig-values":"[ discretionary-ligatures | no-discretionary-ligatures ]","display-box":"contents | none","display-inside":"flow | flow-root | table | flex | grid | subgrid | ruby","display-internal":"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","display-legacy":"inline-block | inline-list-item | inline-table | inline-flex | inline-grid","display-listitem":"list-item && <display-outside>? && [ flow | flow-root ]?","display-outside":"block | inline | run-in","drop-shadow()":"drop-shadow( <length>{2,3} <color>? )","east-asian-variant-values":"[ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]","east-asian-width-values":"[ full-width | proportional-width ]","element()":"element( <id-selector> )","ellipse()":"ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )","ending-shape":"circle | ellipse","explicit-track-list":"[ <line-names>? <track-size> ]+ <line-names>?","family-name":"<string> | <custom-ident>+","feature-tag-value":"<string> [ <integer> | on | off ]?","feature-value-name":"<custom-ident>","fill-rule":"nonzero | evenodd","filter-function":"<blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()>","filter-function-list":"[ <filter-function> | <url> ]+","final-bg-layer":"<bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box> || <'background-color'>","fit-content()":"fit-content( [ <length> | <percentage> ] )","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [ <positive-integer> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )","fixed-size":"<fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )","font-variant-css21":"[ normal | small-caps ]","frequency-percentage":"<frequency> | <percentage>","generic-family":"serif | sans-serif | cursive | fantasy | monospace | -apple-system","generic-name":"serif | sans-serif | cursive | fantasy | monospace","geometry-box":"<shape-box> | fill-box | stroke-box | view-box","gradient":"<-legacy-gradient()> | <linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()>","grayscale()":"grayscale( <number-percentage> )","grid-line":"auto | <custom-ident> | [ <integer> && <custom-ident>? ] | [ span && [ <integer> || <custom-ident> ] ]","historical-lig-values":"[ historical-ligatures | no-historical-ligatures ]","hsl()":"hsl( [ <hue> <percentage> <percentage> [ / <alpha-value> ]? ] | [ <hue> , <percentage> , <percentage> , <alpha-value>? ] )","hsla()":"hsla( [ <hue> <percentage> <percentage> [ / <alpha-value> ]? ] | [ <hue> , <percentage> , <percentage> , <alpha-value>? ] )","hue":"<number> | <angle>","hue-rotate()":"hue-rotate( <angle> )","image":"<url> | <image()> | <image-set()> | <element()> | <cross-fade()> | <gradient>","image()":"image( [ [ <image> | <string> ]? , <color>? ]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[ <image> | <string> ] <resolution>","inflexible-breadth":"<length> | <percentage> | min-content | max-content | auto","inset()":"inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )","invert()":"invert( <number-percentage> )","keyframes-name":"<custom-ident> | <string>","keyframe-selector":"from | to | <percentage>","leader()":"leader( dotted | solid | space | <string> )","length-percentage":"<length> | <percentage>","line-names":"'[' <custom-ident>* ']'","line-name-list":"[ <line-names> | <name-repeat> ]+","linear-gradient()":"linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )","mask-layer":"<mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || <geometry-box> || [ <geometry-box> | no-clip ] || <compositing-operator> || <masking-mode>","mask-position":"[ <length-percentage> | left | center | right ] [ <length-percentage> | top | center | bottom ]?","mask-reference":"none | <image> | <mask-source>","mask-source":"<url>","masking-mode":"alpha | luminance | match-source","matrix()":"matrix( <number> [, <number> ]{5} )","matrix3d()":"matrix3d( <number> [, <number> ]{15} )","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","named-color":"transparent | aliceblue | antiquewhite | aqua | aquamarine | azure | beige | bisque | black | blanchedalmond | blue | blueviolet | brown | burlywood | cadetblue | chartreuse | chocolate | coral | cornflowerblue | cornsilk | crimson | cyan | darkblue | darkcyan | darkgoldenrod | darkgray | darkgreen | darkgrey | darkkhaki | darkmagenta | darkolivegreen | darkorange | darkorchid | darkred | darksalmon | darkseagreen | darkslateblue | darkslategray | darkslategrey | darkturquoise | darkviolet | deeppink | deepskyblue | dimgray | dimgrey | dodgerblue | firebrick | floralwhite | forestgreen | fuchsia | gainsboro | ghostwhite | gold | goldenrod | gray | green | greenyellow | grey | honeydew | hotpink | indianred | indigo | ivory | khaki | lavender | lavenderblush | lawngreen | lemonchiffon | lightblue | lightcoral | lightcyan | lightgoldenrodyellow | lightgray | lightgreen | lightgrey | lightpink | lightsalmon | lightseagreen | lightskyblue | lightslategray | lightslategrey | lightsteelblue | lightyellow | lime | limegreen | linen | magenta | maroon | mediumaquamarine | mediumblue | mediumorchid | mediumpurple | mediumseagreen | mediumslateblue | mediumspringgreen | mediumturquoise | mediumvioletred | midnightblue | mintcream | mistyrose | moccasin | navajowhite | navy | oldlace | olive | olivedrab | orange | orangered | orchid | palegoldenrod | palegreen | paleturquoise | palevioletred | papayawhip | peachpuff | peru | pink | plum | powderblue | purple | rebeccapurple | red | rosybrown | royalblue | saddlebrown | salmon | sandybrown | seagreen | seashell | sienna | silver | skyblue | slateblue | slategray | slategrey | snow | springgreen | steelblue | tan | teal | thistle | tomato | turquoise | violet | wheat | white | whitesmoke | yellow | yellowgreen | <-non-standart-color>","namespace-prefix":"<ident>","number-percentage":"<number> | <percentage>","numeric-figure-values":"[ lining-nums | oldstyle-nums ]","numeric-fraction-values":"[ diagonal-fractions | stacked-fractions ]","numeric-spacing-values":"[ proportional-nums | tabular-nums ]","opacity()":"opacity( [ <number-percentage> ] )","perspective()":"perspective( <length> )","polygon()":"polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )","position":"[ center && [ left | right | top | bottom ] <length-percentage>? ] | [ [ left | right ] <length-percentage>? ] && [ [ top | bottom ] <length-percentage>? ] | [ [ left | center | right | <length-percentage> ] || [ top | center | bottom | <length-percentage> ] ]","quote":"open-quote | close-quote | no-open-quote | no-close-quote","radial-gradient()":"radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )","relative-size":"larger | smaller","repeat-style":"repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}","repeating-linear-gradient()":"repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )","repeating-radial-gradient()":"repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )","rgb()":"rgb( [ [ <percentage>{3} | <number>{3} ] [ / <alpha-value> ]? ] | [ [ <percentage>#{3} | <number>#{3} ] , <alpha-value>? ] )","rgba()":"rgba( [ [ <percentage>{3} | <number>{3} ] [ / <alpha-value> ]? ] | [ [ <percentage>#{3} | <number>#{3} ] , <alpha-value>? ] )","rotate()":"rotate( <angle> )","rotate3d()":"rotate3d( <number> , <number> , <number> , <angle> )","rotateX()":"rotateX( <angle> )","rotateY()":"rotateY( <angle> )","rotateZ()":"rotateZ( <angle> )","saturate()":"saturate( <number-percentage> )","scale()":"scale( <number> [, <number> ]? )","scale3d()":"scale3d( <number> , <number> , <number> )","scaleX()":"scaleX( <number> )","scaleY()":"scaleY( <number> )","scaleZ()":"scaleZ( <number> )","shape-radius":"<length-percentage> | closest-side | farthest-side","skew()":"skew( <angle> [, <angle> ]? )","skewX()":"skewX( <angle> )","skewY()":"skewY( <angle> )","sepia()":"sepia( <number-percentage> )","shadow":"inset? && <length>{2,4} && <color>?","shadow-t":"[ <length>{2,3} && <color>? ]","shape":"rect( [ [ <top> , <right> , <bottom> , <left> ] | [ <top> <right> <bottom> <left> ] ] )","shape-box":"<box> | margin-box","side-or-corner":"[ left | right ] || [ top | bottom ]","single-animation":"<time> || <single-timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ]","single-animation-direction":"normal | reverse | alternate | alternate-reverse","single-animation-fill-mode":"none | forwards | backwards | both","single-animation-iteration-count":"infinite | <number>","single-animation-play-state":"running | paused","single-timing-function":"<single-transition-timing-function>","single-transition":"<single-transition-timing-function> || [ none | <single-transition-property> ] || <time> || <time>","single-transition-timing-function":"ease | linear | ease-in | ease-out | ease-in-out | step-start | step-end | steps( <integer> [, [ start | end ] ]? ) | cubic-bezier( <number> , <number> , <number> , <number> )","single-transition-property":"all | <custom-ident>","size":"closest-side | farthest-side | closest-corner | farthest-corner | <length> | <length-percentage>{2}","symbol":"<string> | <image> | <ident>","target":"<target-counter()> | <target-counters()> | <target-text()>","target-counter()":"target-counter( [ <string> | <url> ] , <custom-ident> [, <counter-style> ]? )","target-counters()":"target-counters( [ <string> | <url> ] , <custom-ident> , <string> [, <counter-style> ]? )","target-text()":"target-text( [ <string> | <url> ] [, [ content | before | after | first-letter ] ]? )","time-percentage":"<time> | <percentage>","track-breadth":"<length-percentage> | <flex> | min-content | max-content | auto","track-list":"[ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?","track-repeat":"repeat( [ <positive-integer> ] , [ <line-names>? <track-size> ]+ <line-names>? )","track-size":"<track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )","transform-function":"[ <matrix()> || <translate()> || <translateX()> || <translateY()> || <scale()> || <scaleX()> || <scaleY()> || <rotate()> || <skew()> || <skewX()> || <skewY()> || <matrix3d()> || <translate3d()> || <translateZ()> || <scale3d()> || <scaleZ()> || <rotate3d()> || <rotateX()> || <rotateY()> || <rotateZ()> || <perspective()> ]+","transform-list":"<transform-function>+","translate()":"translate( <length-percentage> [, <length-percentage> ]? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","type-or-unit":"string | integer | color | url | integer | number | length | angle | time | frequency | em | ex | px | rem | vw | vh | vmin | vmax | mm | q | cm | in | pt | pc | deg | grad | rad | ms | s | Hz | kHz | %","viewport-length":"auto | <length-percentage>","-legacy-gradient()":"<-webkit-gradient()> | <-legacy-linear-gradient()> | <-legacy-repeating-linear-gradient()> | <-legacy-radial-gradient()> | <-legacy-repeating-radial-gradient()>","-legacy-linear-gradient()":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -ms-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient()":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -ms-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[ <angle> | <side-or-corner> ]? , <color-stop-list>","-legacy-radial-gradient()":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -ms-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient()":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -ms-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side | closest-corner | farthest-side | farthest-corner | contain | cover","-legacy-radial-gradient-shape":"circle | ellipse","-non-standart-font":"-apple-system-body | -apple-system-headline | -apple-system-subheadline | -apple-system-caption1 | -apple-system-caption2 | -apple-system-footnote | -apple-system-short-body | -apple-system-short-headline | -apple-system-short-subheadline | -apple-system-short-caption1 | -apple-system-short-footnote | -apple-system-tall-body","-non-standart-color":"-moz-ButtonDefault | -moz-ButtonHoverFace | -moz-ButtonHoverText | -moz-CellHighlight | -moz-CellHighlightText | -moz-Combobox | -moz-ComboboxText | -moz-Dialog | -moz-DialogText | -moz-dragtargetzone | -moz-EvenTreeRow | -moz-Field | -moz-FieldText | -moz-html-CellHighlight | -moz-html-CellHighlightText | -moz-mac-accentdarkestshadow | -moz-mac-accentdarkshadow | -moz-mac-accentface | -moz-mac-accentlightesthighlight | -moz-mac-accentlightshadow | -moz-mac-accentregularhighlight | -moz-mac-accentregularshadow | -moz-mac-chrome-active | -moz-mac-chrome-inactive | -moz-mac-focusring | -moz-mac-menuselect | -moz-mac-menushadow | -moz-mac-menutextselect | -moz-MenuHover | -moz-MenuHoverText | -moz-MenuBarText | -moz-MenuBarHoverText | -moz-nativehyperlinktext | -moz-OddTreeRow | -moz-win-communicationstext | -moz-win-mediatext | -moz-activehyperlinktext | -moz-default-background-color | -moz-default-color | -moz-hyperlinktext | -moz-visitedhyperlinktext | -webkit-activelink | -webkit-focus-ring-color | -webkit-link | -webkit-text","-non-standart-image-rendering":"optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast","-non-standart-width":"min-intrinsic | intrinsic | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content","-non-standart-word-break":"break-word","-webkit-image-set()":"<image-set()>","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [ , <-webkit-gradient-point> | , <-webkit-gradient-radius> , <-webkit-gradient-point> ] [, <-webkit-gradient-radius> ]? [, <-webkit-gradient-color-stop()> ]* )","-webkit-gradient-color-stop()":"from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )","-webkit-gradient-point":"[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]","-webkit-gradient-radius":"<length> | <percentage>","-webkit-gradient-type":"linear | radial","-webkit-mask-box-repeat":"repeat | stretch | round","-webkit-mask-clip-style":"border | border-box | padding | padding-box | content | content-box | text","-ms-filter":"[ <progid> | FlipH | FlipV ]+","age":"child | young | old","border-radius":"<length-percentage>{1,2}","bottom":"<length> | auto","generic-voice":"[ <age>? <gender> <integer>? ]","gender":"male | female | neutral","left":"<length> | auto","mask-image":"<mask-reference>#","name-repeat":"repeat( [ <positive-integer> | auto-fill ] , <line-names>+ )","outline-radius":"<border-radius>","paint":"none | currentColor | <color> | <url> [ none | currentColor | <color> ]?","path()":"path( <string> )","right":"<length> | auto","svg-length":"<percentage> | <length> | <number>","svg-writing-mode":"lr-tb | rl-tb | tb-rl | lr | rl | tb","top":"<length> | auto","x":"<number>","y":"<number>"},"properties":{"-ms-overflow-style":"auto | none | scrollbar | -ms-autohiding-scrollbar","-moz-appearance":"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized","-moz-binding":"<url> | none","-moz-border-bottom-colors":"[ <color> ]* <color> | none","-moz-border-left-colors":"[ <color> ]* <color> | none","-moz-border-right-colors":"[ <color> ]* <color> | none","-moz-border-top-colors":"[ <color> ]* <color> | none","-moz-float-edge":"border-box | content-box | margin-box | padding-box","-moz-force-broken-image-icon":"<integer>","-moz-image-region":"<shape> | auto","-moz-orient":"inline | block | horizontal | vertical","-moz-outline-radius":"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore | stretch-to-fit","-moz-text-blink":"none | blink","-moz-user-focus":"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none","-moz-user-input":"auto | none | enabled | disabled","-moz-user-modify":"read-only | read-write | write-only","-moz-window-shadow":"default | menu | tooltip | sheet | none","-webkit-border-before":"<'border-width'> || <'border-style'> || <'color'>","-webkit-border-before-color":"<'color'>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[ above | below | right | left ]? <length>? <image>?","-webkit-mask":"<mask-image> [ <'-webkit-mask-repeat'> || <'-webkit-mask-attachment'> || <'-webkit-mask-position'> || <'-webkit-mask-origin'> || <'-webkit-mask-clip'> ]*","-webkit-mask-attachment":"<attachment> [, <attachment> ]*","-webkit-mask-clip":"<-webkit-mask-clip-style> [, <-webkit-mask-clip-style> ]*","-webkit-mask-composite":"<composite-style> [, <composite-style> ]*","-webkit-mask-image":"<mask-image> [, <mask-image> ]*","-webkit-mask-origin":"[ padding | border | content ] [, [ border | padding | content ] ]*","-webkit-mask-position":"<mask-position>#","-webkit-mask-position-x":"[ <length-percentage> | left | center | right ]#","-webkit-mask-position-y":"[ <length-percentage> | top | center | bottom ]#","-webkit-mask-repeat":"<repeat-style> [, <repeat-style> ]*","-webkit-mask-repeat-x":"repeat | no-repeat | space | round","-webkit-mask-repeat-y":"repeat | no-repeat | space | round","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length> || <color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default | none","align-content":"flex-start | flex-end | center | space-between | space-around | space-evenly | stretch","align-items":"flex-start | flex-end | center | baseline | stretch","align-self":"auto | flex-start | flex-end | center | baseline | stretch","all":"initial | inherit | unset","animation":"<single-animation>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"<time>#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[ none | <keyframes-name> ]#","animation-play-state":"<single-animation-play-state>#","animation-timing-function":"<single-timing-function>#","appearance":"auto | none","azimuth":"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards","backdrop-filter":"none | <filter-function-list>","backface-visibility":"visible | hidden","background":"[ <bg-layer> , ]* <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<box>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<box>#","background-position":"<position>#","background-position-x":"[ center | [ left | right | x-start | x-end ]? <length-percentage>? ]#","background-position-y":"[ center | [ top | bottom | y-start | y-end ]? <length-percentage>? ]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","block-size":"<'width'>","border":"<br-width> || <br-style> || <color>","border-block-end":"<'border-width'> || <'border-style'> || <'color'>","border-block-end-color":"<'color'>","border-block-end-style":"<'border-style'>","border-block-end-width":"<'border-width'>","border-block-start":"<'border-width'> || <'border-style'> || <'color'>","border-block-start-color":"<'color'>","border-block-start-style":"<'border-style'>","border-block-start-width":"<'border-width'>","border-bottom":"<br-width> || <br-style> || <color>","border-bottom-color":"<color>","border-bottom-left-radius":"<length-percentage>{1,2}","border-bottom-right-radius":"<length-percentage>{1,2}","border-bottom-style":"<br-style>","border-bottom-width":"<br-width>","border-collapse":"collapse | separate","border-color":"<color>{1,4}","border-image":"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>","border-image-outset":"[ <length> | <number> ]{1,4}","border-image-repeat":"[ stretch | repeat | round | space ]{1,2}","border-image-slice":"<number-percentage>{1,4} && fill?","border-image-source":"none | <image>","border-image-width":"[ <length-percentage> | <number> | auto ]{1,4}","border-inline-end":"<'border-width'> || <'border-style'> || <'color'>","border-inline-end-color":"<'color'>","border-inline-end-style":"<'border-style'>","border-inline-end-width":"<'border-width'>","border-inline-start":"<'border-width'> || <'border-style'> || <'color'>","border-inline-start-color":"<'color'>","border-inline-start-style":"<'border-style'>","border-inline-start-width":"<'border-width'>","border-left":"<br-width> || <br-style> || <color>","border-left-color":"<color>","border-left-style":"<br-style>","border-left-width":"<br-width>","border-radius":"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?","border-right":"<br-width> || <br-style> || <color>","border-right-color":"<color>","border-right-style":"<br-style>","border-right-width":"<br-width>","border-spacing":"<length> <length>?","border-style":"<br-style>{1,4}","border-top":"<br-width> || <br-style> || <color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage>{1,2}","border-top-right-radius":"<length-percentage>{1,2}","border-top-style":"<br-style>","border-top-width":"<br-width>","border-width":"<br-width>{1,4}","bottom":"<length> | <percentage> | auto","box-align":"start | center | end | baseline | stretch","box-decoration-break":"slice | clone","box-direction":"normal | reverse | inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single | multiple","box-ordinal-group":"<integer>","box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","box-pack":"start | center | end | justify","box-shadow":"none | <shadow>#","box-sizing":"content-box | border-box","box-suppress":"show | discard | hide","break-after":"auto | avoid | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region","break-before":"auto | avoid | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region","break-inside":"auto | avoid | avoid-page | avoid-column | avoid-region","caption-side":"top | bottom | block-start | block-end | inline-start | inline-end","caret-color":"auto | <color>","clear":"none | left | right | both | inline-start | inline-end","clip":"<shape> | auto","clip-path":"<clip-source> | [ <basic-shape> || <geometry-box> ] | none","color":"<color>","column-count":"<number> | auto","column-fill":"auto | balance","column-gap":"<length> | normal","column-rule":"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<br-style>","column-rule-width":"<br-width>","column-span":"none | all","column-width":"<length> | auto","columns":"<'column-width'> || <'column-count'>","contain":"none | strict | content | [ size || layout || style || paint ]","content":"[ <image> , ]* [ normal | none | <content-list> ] [ / <string> ]?","counter-increment":"[ <custom-ident> <integer>? ]+ | none","counter-reset":"[ <custom-ident> <integer>? ]+ | none","cursor":"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | 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 | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]","direction":"ltr | rtl","display":"none | inline | block | list-item | inline-list-item | inline-block | inline-table | table | table-cell | table-column | table-column-group | table-footer-group | table-header-group | table-row | table-row-group | flex | inline-flex | grid | inline-grid | run-in | ruby | ruby-base | ruby-text | ruby-base-container | ruby-text-container | contents | -ms-flexbox | -ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box","display-inside":"auto | block | table | flex | grid | ruby","display-list":"none | list-item","display-outside":"block-level | inline-level | run-in | contents | none | 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","empty-cells":"show | hide","filter":"none | <filter-function-list> | <-ms-filter>","flex":"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]","flex-basis":"content | <'width'>","flex-direction":"row | row-reverse | column | column-reverse","flex-flow":"<'flex-direction'> || <'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap | wrap | wrap-reverse","float":"left | right | none | inline-start | inline-end","font":"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar | <-non-standart-font>","font-family":"[ <family-name> | <generic-family> ]#","font-feature-settings":"normal | <feature-tag-value>#","font-kerning":"auto | normal | none","font-language-override":"normal | <string>","font-variation-settings":"normal | [ <string> <number> ]#","font-size":"<absolute-size> | <relative-size> | <length-percentage>","font-size-adjust":"none | <number>","font-stretch":"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded","font-style":"normal | italic | oblique","font-synthesis":"none | [ weight || style ]","font-variant":"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || 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> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]","font-variant-alternates":"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> ) ]","font-variant-caps":"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps","font-variant-east-asian":"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]","font-variant-ligatures":"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]","font-variant-numeric":"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]","font-variant-position":"normal | sub | super","font-weight":"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900","grid":"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [ / <grid-line> ]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[ row | column ] || dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [ / <grid-line> ]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [ / <grid-line> ]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?","grid-template-areas":"none | <string>+","grid-template-columns":"none | <track-list> | <auto-track-list>","grid-template-rows":"none | <track-list> | <auto-track-list>","height":"[ <length> | <percentage> ] && [ border-box | content-box ]? | available | min-content | max-content | fit-content | auto","hyphens":"none | manual | auto","image-orientation":"from-image | <angle> | [ <angle>? flip ]","image-rendering":"auto | crisp-edges | pixelated | optimizeSpeed | optimizeQuality | <-non-standart-image-rendering>","image-resolution":"[ from-image || <resolution> ] && snap?","ime-mode":"auto | normal | active | inactive | disabled","initial-letter":"normal | [ <number> <integer>? ]","initial-letter-align":"[ auto | alphabetic | hanging | ideographic ]","inline-size":"<'width'>","isolation":"auto | isolate","justify-content":"flex-start | flex-end | center | space-between | space-around | space-evenly","left":"<length> | <percentage> | auto","letter-spacing":"normal | <length-percentage>","line-break":"auto | loose | normal | strict","line-height":"normal | <number> | <length> | <percentage>","list-style":"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>","list-style-image":"<url> | none","list-style-position":"inside | outside","list-style-type":"<counter-style> | <string> | none","margin":"[ <length> | <percentage> | auto ]{1,4}","margin-block-end":"<'margin-left'>","margin-block-start":"<'margin-left'>","margin-bottom":"<length> | <percentage> | auto","margin-inline-end":"<'margin-left'>","margin-inline-start":"<'margin-left'>","margin-left":"<length> | <percentage> | auto","margin-right":"<length> | <percentage> | auto","margin-top":"<length> | <percentage> | auto","marker-offset":"<length> | auto","mask":"<mask-layer>#","mask-clip":"[ <geometry-box> | no-clip ]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<geometry-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance | alpha","max-block-size":"<'max-width'>","max-height":"<length> | <percentage> | none | max-content | min-content | fit-content | fill-available","max-inline-size":"<'max-width'>","max-width":"<length> | <percentage> | none | max-content | min-content | fit-content | fill-available | <-non-standart-width>","min-block-size":"<'min-width'>","min-height":"<length> | <percentage> | auto | max-content | min-content | fit-content | fill-available","min-inline-size":"<'min-width'>","min-width":"<length> | <percentage> | auto | max-content | min-content | fit-content | fill-available | <-non-standart-width>","mix-blend-mode":"<blend-mode>","object-fit":"fill | contain | cover | none | scale-down","object-position":"<position>","offset":"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?","offset-anchor":"auto | <position>","offset-block-end":"<'left'>","offset-block-start":"<'left'>","offset-inline-end":"<'left'>","offset-inline-start":"<'left'>","offset-distance":"<length-percentage>","offset-path":"none | ray( [ <angle> && <size>? && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]","offset-rotate":"[ auto | reverse ] || <angle>","opacity":"<number-zero-one>","order":"<integer>","orphans":"<integer>","outline":"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]","outline-color":"<color> | invert","outline-offset":"<length>","outline-style":"auto | <br-style>","outline-width":"<br-width>","overflow":"visible | hidden | scroll | auto","overflow-clip-box":"padding-box | content-box","overflow-wrap":"normal | break-word","overflow-x":"visible | hidden | scroll | auto","overflow-y":"visible | hidden | scroll | auto","padding":"[ <length> | <percentage> ]{1,4}","padding-block-end":"<'padding-left'>","padding-block-start":"<'padding-left'>","padding-bottom":"<length> | <percentage>","padding-inline-end":"<'padding-left'>","padding-inline-start":"<'padding-left'>","padding-left":"<length> | <percentage>","padding-right":"<length> | <percentage>","padding-top":"<length> | <percentage>","page-break-after":"auto | always | avoid | left | right","page-break-before":"auto | always | avoid | left | right","page-break-inside":"auto | avoid","perspective":"none | <length>","perspective-origin":"<position>","pointer-events":"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit","position":"static | relative | absolute | sticky | fixed | -webkit-sticky","quotes":"[ <string> <string> ]+ | none","resize":"none | both | horizontal | vertical","right":"<length> | <percentage> | auto","ruby-align":"start | center | space-between | space-around","ruby-merge":"separate | collapse | auto","ruby-position":"over | under | inter-character","scroll-behavior":"auto | smooth","scroll-snap-coordinate":"none | <position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none | repeat( <length-percentage> )","scroll-snap-points-y":"none | repeat( <length-percentage> )","scroll-snap-type":"none | mandatory | proximity","scroll-snap-type-x":"none | mandatory | proximity","scroll-snap-type-y":"none | mandatory | proximity","shape-image-threshold":"<number>","shape-margin":"<length-percentage>","shape-outside":"none | <shape-box> || <basic-shape> | <image>","tab-size":"<integer> | <length>","table-layout":"auto | fixed","text-align":"start | end | left | right | center | justify | match-parent","text-align-last":"auto | start | end | left | right | center | justify","text-combine-upright":"none | all | [ digits <integer>? ]","text-decoration":"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'>","text-decoration-color":"<color>","text-decoration-line":"none | [ underline || overline || line-through || blink ]","text-decoration-skip":"none | [ objects || spaces || ink || edges || box-decoration ]","text-decoration-style":"solid | double | dotted | dashed | wavy","text-emphasis":"<'text-emphasis-style'> || <'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"[ over | under ] && [ right | left ]","text-emphasis-style":"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>","text-indent":"<length-percentage> && hanging? && each-line?","text-orientation":"mixed | upright | sideways","text-overflow":"[ clip | ellipsis | <string> ]{1,2}","text-rendering":"auto | optimizeSpeed | optimizeLegibility | geometricPrecision","text-shadow":"none | <shadow-t>#","text-size-adjust":"none | auto | <percentage>","text-transform":"none | capitalize | uppercase | lowercase | full-width","text-underline-position":"auto | [ under || [ left | right ] ]","top":"<length> | <percentage> | auto","touch-action":"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation","transform":"none | <transform-list>","transform-box":"border-box | fill-box | view-box","transform-origin":"[ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>? | [ <length-percentage> | left | center | right | top | bottom ]","transform-style":"flat | preserve-3d","transition":"<single-transition>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none | <single-transition-property>#","transition-timing-function":"<single-transition-timing-function>#","unicode-bidi":"normal | embed | isolate | bidi-override | isolate-override | plaintext | -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate","user-select":"auto | text | none | contain | all","vertical-align":"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>","visibility":"visible | hidden | collapse","white-space":"normal | pre | nowrap | pre-wrap | pre-line","widows":"<integer>","width":"[ <length> | <percentage> ] && [ border-box | content-box ]? | available | min-content | max-content | fit-content | auto","will-change":"auto | <animateable-feature>#","word-break":"normal | break-all | keep-all | <-non-standart-word-break>","word-spacing":"normal | <length-percentage>","word-wrap":"normal | break-word","writing-mode":"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr | <svg-writing-mode>","z-index":"auto | <integer>","-moz-background-clip":"padding | border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-osx-font-smoothing":"auto | unset | grayscale","-moz-user-select":"none | text | all | -moz-none","-ms-filter":"<string>","-ms-flex-align":"start | end | center | baseline | stretch","-ms-flex-item-align":"auto | start | end | center | baseline | stretch","-ms-flex-line-pack":"start | end | center | justify | distribute | stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start | end | center | justify | distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor | bicubic","-ms-grid-column-align":"start | end | center | stretch","-ms-grid-row-align":"start | end | center | stretch","-ms-high-contrast-adjust":"auto | none","-ms-user-select":"none | element | text","-webkit-appearance":"none | button | button-bevel | caps-lock-indicator | caret | checkbox | default-button | listbox | listitem | media-fullscreen-button | media-mute-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | push-button | radio | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield","-webkit-background-clip":"[ <box> | border | padding | content | text ]#","-webkit-column-break-after":"always | auto | avoid","-webkit-column-break-before":"always | auto | avoid","-webkit-column-break-inside":"always | auto | avoid","-webkit-font-smoothing":"none | antialiased | subpixel-antialiased","-webkit-line-clamp":"<positive-integer>","-webkit-mask-box-image":"[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?","-webkit-overflow-scrolling":"auto | touch","-webkit-print-color-adjust":"economy | exact","-webkit-text-security":"none | circle | disc | square","-webkit-user-drag":"none | element | auto","-webkit-user-select":"auto | none | text | all","alignment-baseline":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical","baseline-shift":"baseline | sub | super | <svg-length>","behavior":"<url>+","clip-rule":"nonzero | evenodd","cue":"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>? | none","cue-before":"<url> <decibel>? | none","dominant-baseline":"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge","fill":"<paint>","fill-opacity":"<number-zero-one>","fill-rule":"nonzero | evenodd","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>","kerning":"auto | <svg-length>","marker":"none | <url>","marker-end":"none | <url>","marker-mid":"none | <url>","marker-start":"none | <url>","offset-position":"auto | <position>","pause":"<'pause-before'> <'pause-after'>?","pause-after":"<time> | none | x-weak | weak | medium | strong | x-strong","pause-before":"<time> | none | x-weak | weak | medium | strong | x-strong","rest":"<'rest-before'> <'rest-after'>?","rest-after":"<time> | none | x-weak | weak | medium | strong | x-strong","rest-before":"<time> | none | x-weak | weak | medium | strong | x-strong","shape-rendering":"auto | optimizeSpeed | crispEdges | geometricPrecision","src":"[ <url> format( <string># )? | local( <family-name> ) ]#","speak":"auto | none | normal","speak-as":"normal | spell-out || digits || [ literal-punctuation | no-punctuation ]","stroke":"<paint>","stroke-dasharray":"none | [ <svg-length>+ ]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt | round | square","stroke-linejoin":"miter | round | bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<number-zero-one>","stroke-width":"<svg-length>","text-anchor":"start | middle | end","unicode-range":"<unicode-range>#","voice-balance":"<number> | left | center | right | leftwards | rightwards","voice-duration":"auto | <time>","voice-family":"[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve","voice-pitch":"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]","voice-range":"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]","voice-rate":"[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>","voice-stress":"normal | strong | moderate | none | reduced","voice-volume":"silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]","zoom":"normal | reset | <number> | <percentage>"}} |
@@ -21,2 +21,4 @@ # AST format | ||
- [Brackets](#brackets) | ||
- [CDC](#cdc) | ||
- [CDO](#cdo) | ||
- [ClassSelector](#classselector) | ||
@@ -30,4 +32,4 @@ - [Combinator](#combinator) | ||
- [HexColor](#hexcolor) | ||
- [IdSelector](#idselector) | ||
- [Identifier](#identifier) | ||
- [IdSelector](#idselector) | ||
- [MediaFeature](#mediafeature) | ||
@@ -58,3 +60,2 @@ - [MediaQuery](#mediaquery) | ||
## AnPlusB | ||
@@ -67,4 +68,4 @@ | ||
"type": "AnPlusB", | ||
"a": string | null, | ||
"b": string | null | ||
"a": String | null, | ||
"b": String | null | ||
} | ||
@@ -80,3 +81,4 @@ ``` | ||
"type": "Atrule", | ||
"expression": <AtruleExpression> | <MediaQuery> | <SelectorList> | <Raw> | null, | ||
"name": String, | ||
"expression": <AtruleExpression> | <MediaQueryList> | <SelectorList> | <Raw> | null, | ||
"block": <Block> | null | ||
@@ -101,5 +103,5 @@ } | ||
"name": <Identifier>, | ||
"operator": string | null, | ||
"operator": String | null, | ||
"value": <String> | <Identifier> | null, | ||
"flags": string | null | ||
"flags": String | null | ||
} | ||
@@ -126,2 +128,18 @@ ``` | ||
## CDC | ||
``` | ||
{ | ||
"type": "CDC" | ||
} | ||
``` | ||
## CDO | ||
``` | ||
{ | ||
"type": "CDO" | ||
} | ||
``` | ||
## ClassSelector | ||
@@ -132,3 +150,3 @@ | ||
"type": "ClassSelector", | ||
"name": string | ||
"name": String | ||
} | ||
@@ -142,3 +160,3 @@ ``` | ||
"type": "Combinator", | ||
"name": string | ||
"name": String | ||
} | ||
@@ -152,3 +170,3 @@ ``` | ||
"type": "Comment", | ||
"value": string | ||
"value": String | ||
} | ||
@@ -162,4 +180,4 @@ ``` | ||
"type": "Declaration", | ||
"important": boolean, | ||
"property": string, | ||
"important": Boolean | String, | ||
"property": String, | ||
"value": <Value> | <Raw> | ||
@@ -183,4 +201,4 @@ } | ||
"type": "Dimension", | ||
"value": string, | ||
"unit": string | ||
"value": String, | ||
"unit": String | ||
} | ||
@@ -194,3 +212,3 @@ ``` | ||
"type": "Function", | ||
"name": string, | ||
"name": String, | ||
"children": List | ||
@@ -205,21 +223,21 @@ } | ||
"type": "HexColor", | ||
"value": string | ||
"value": String | ||
} | ||
``` | ||
## Identifier | ||
## IdSelector | ||
``` | ||
{ | ||
"type": "Identifier", | ||
"name": string | ||
"type": "IdSelector", | ||
"name": String | ||
} | ||
``` | ||
## IdSelector | ||
## Identifier | ||
``` | ||
{ | ||
"type": "IdSelector", | ||
"name": string | ||
"type": "Identifier", | ||
"name": String | ||
} | ||
@@ -233,4 +251,4 @@ ``` | ||
"type": "MediaFeature", | ||
"name": string, | ||
"value": string | null | ||
"name": String, | ||
"value": <Identifier> | <Number> | <Dimension> | <Ratio> | null | ||
} | ||
@@ -262,3 +280,3 @@ ``` | ||
"type": "Nth", | ||
"nth": <Nth> | <Identifier> | ||
"nth": <AnPlusB> | <Identifier>, | ||
"selector": <SelectorList> | null | ||
@@ -273,3 +291,3 @@ } | ||
"type": "Number", | ||
"value": string | ||
"value": String | ||
} | ||
@@ -283,3 +301,3 @@ ``` | ||
"type": "Operator", | ||
"value": string | ||
"value": String | ||
} | ||
@@ -302,3 +320,3 @@ ``` | ||
"type": "Percentage", | ||
"value": string | ||
"value": String | ||
} | ||
@@ -312,3 +330,3 @@ ``` | ||
"type": "PseudoClassSelector", | ||
"name": string, | ||
"name": String, | ||
"children": List | null | ||
@@ -323,3 +341,3 @@ } | ||
"type": "PseudoElementSelector", | ||
"name": string, | ||
"name": String, | ||
"children": List | null | ||
@@ -334,4 +352,4 @@ } | ||
"type": "Ratio", | ||
"left": string, | ||
"right": string | ||
"left": String, | ||
"right": String | ||
} | ||
@@ -345,3 +363,3 @@ ``` | ||
"type": "Raw", | ||
"value": string | ||
"value": String | ||
} | ||
@@ -355,3 +373,3 @@ ``` | ||
"type": "Rule", | ||
"selector": <SelectorList>, | ||
"selector": <SelectorList> | <Raw>, | ||
"block": <Block> | ||
@@ -384,3 +402,3 @@ } | ||
"type": "String", | ||
"value": string | ||
"value": String | ||
} | ||
@@ -403,3 +421,3 @@ ``` | ||
"type": "TypeSelector", | ||
"name": string | ||
"name": String | ||
} | ||
@@ -413,3 +431,3 @@ ``` | ||
"type": "UnicodeRange", | ||
"value": string | ||
"value": String | ||
} | ||
@@ -441,4 +459,4 @@ ``` | ||
"type": "WhiteSpace", | ||
"value": string | ||
"value": String | ||
} | ||
``` |
@@ -0,1 +1,42 @@ | ||
## 1.0.0-alpha17 (March 13, 2017) | ||
- Implemented new concept of `syntax` | ||
- Changed main `exports` to expose a default syntax | ||
- Defined initial [CSS syntax](lib/syntax/default.js) | ||
- Implemented `createSyntax()` method to create a new syntax from scratch | ||
- Implemented `fork()` method to create a new syntax based on given via extension | ||
- Parser | ||
- Implemented `mediaQueryList` and `mediaQuery` parsing contexts | ||
- Implemented `CDO` and `CDC` node types | ||
- Implemented additional declaration property prefix hacks (`#` and `+`) | ||
- Added support for UTF-16LE BOM | ||
- Added support for `@font-face` at-rule | ||
- Added `chroma()` to legacy IE filter functions | ||
- Improved `HexColor` to consume hex only | ||
- Improved support for `\0` and `\9` hacks (#2) | ||
- Relaxed number check for `Ratio` terms | ||
- Allowed fractal values as a `Ratio` term | ||
- Disallowed zero number as a `Ratio` term | ||
- Changed important clause parsing | ||
- Allowed any identifier for important (to support hacks like `!ie`) | ||
- Store `true` for `important` field in case identifier equals to `important` and string otherwise | ||
- Fixed parse error formatted message rendering to take into account tabs | ||
- Removed exposing of `Parser` class | ||
- Removed `readSelectorSequence()`, `readSequenceFallback()` and `readSelectorSequenceFallback` methods | ||
- Used single universal sequence consumer for `AtruleExpression`, `Selector` and `Value` | ||
- Generator | ||
- Reworked generator to use auto-generated functions based on syntax definition (additional work to be done in next releases) | ||
- Implemented `translateMarkup(ast, before, after)` method for complex cases | ||
- Reworked `translateWithSourceMap` to be more flexible (based on `translateMarkup`, additional work to be done in next releases) | ||
- Walker | ||
- Reworked walker to use auto-generated function based on syntax definition (additional work to be done in next releases) | ||
- Lexer | ||
- Prepared for better extensibility (additional work to be done in next releases) | ||
- Implemented `checkStructure(ast)` method to check AST structure based on syntax definition | ||
- Update syntax dictionaries to latest `mdn/data` | ||
- Add missing `<'offset-position'>` syntax | ||
- Extended `<position>` property with `-webkit-sticky` (@sergejmueller, #37) | ||
- Improved mismatch error position | ||
- Implemented script (`gen:syntax`) to generate AST format reference page (`docs/ast.md`) using syntax definition | ||
## 1.0.0-alpha16 (February 12, 2017) | ||
@@ -2,0 +43,0 @@ |
'use strict'; | ||
var walkers = require('./utils/walk'); | ||
var names = require('./utils/names'); | ||
module.exports = { | ||
List: require('./utils/list'), | ||
Tokenizer: require('./tokenizer'), | ||
Parser: require('./parser/Parser'), | ||
Lexer: require('./lexer/Lexer'), | ||
syntax: require('./lexer'), | ||
property: names.property, | ||
keyword: names.keyword, | ||
parse: require('./parser'), | ||
clone: require('./utils/clone'), | ||
fromPlainObject: require('./utils/convert').fromPlainObject, | ||
toPlainObject: require('./utils/convert').toPlainObject, | ||
walk: walkers.all, | ||
walkUp: walkers.allUp, | ||
walkRules: walkers.rules, | ||
walkRulesRight: walkers.rulesRight, | ||
walkDeclarations: walkers.declarations, | ||
translate: require('./utils/translate'), | ||
translateWithSourceMap: require('./utils/translateWithSourceMap') | ||
}; | ||
module.exports = require('./syntax/default'); |
'use strict'; | ||
var translateSyntax = require('./translate'); | ||
var translateCss = require('../utils/translate'); | ||
var walk = require('../utils/walk').all; | ||
var translateGrammar = require('./grammar/translate'); | ||
function contains(node, searchFor) { | ||
var found = false; | ||
walk(node, function(descendant) { | ||
if (descendant === searchFor) { | ||
found = true; | ||
} | ||
}); | ||
return found; | ||
} | ||
function getLocation(node, point) { | ||
@@ -29,28 +15,11 @@ var loc = node && node.loc && node.loc[point]; | ||
var SyntaxParseError = function(message, syntaxStr, offset) { | ||
var error = new SyntaxError(); | ||
error.name = 'SyntaxParseError'; | ||
error.rawMessage = message; | ||
error.syntax = syntaxStr; | ||
error.offset = offset; | ||
error.message = error.rawMessage + '\n' + | ||
' ' + error.syntax + '\n' + | ||
'--' + new Array((error.offset || error.syntax.length) + 1).join('-') + '^'; | ||
return error; | ||
}; | ||
var MatchError = function(message, syntax, value, badNode) { | ||
var MatchError = function(message, lexer, syntax, value, badNode) { | ||
var errorOffset = -1; | ||
var css = ''; | ||
var error = new SyntaxError(message); | ||
var start = getLocation(badNode, 'start'); | ||
var end = getLocation(badNode, 'end'); | ||
value.children.each(function(node) { | ||
if (badNode === node || (badNode && contains(node, badNode))) { | ||
errorOffset = css.length; | ||
var css = lexer.syntax.translateMarkup(value, function(node, buffer) { | ||
if (node === badNode) { | ||
errorOffset = buffer.length; | ||
} | ||
css += translateCss(node); | ||
}); | ||
@@ -64,3 +33,3 @@ | ||
error.rawMessage = message; | ||
error.syntax = syntax ? translateSyntax(syntax) : '<generic>'; | ||
error.syntax = syntax ? translateGrammar(syntax) : '<generic>'; | ||
error.css = css; | ||
@@ -85,4 +54,3 @@ error.mismatchOffset = errorOffset; | ||
module.exports = { | ||
SyntaxParseError: SyntaxParseError, | ||
MatchError: MatchError | ||
}; |
@@ -5,7 +5,3 @@ 'use strict'; | ||
Lexer: require('./Lexer'), | ||
create: require('./Lexer').create, | ||
defaultSyntax: require('./default'), | ||
parse: require('./parse'), | ||
translate: require('./translate'), | ||
walk: require('./walk') | ||
grammar: require('./grammar') | ||
}; |
'use strict'; | ||
var MatchError = require('./error').MatchError; | ||
var walkAst = require('../utils/walk').all; | ||
var names = require('../utils/names'); | ||
var generic = require('./generic'); | ||
var parse = require('./parse'); | ||
var translate = require('./translate'); | ||
var walk = require('./walk'); | ||
var parse = require('./grammar/parse'); | ||
var translate = require('./grammar/translate'); | ||
var walk = require('./grammar/walk'); | ||
var match = require('./match'); | ||
@@ -33,3 +32,3 @@ var cssWideKeywords = parse('inherit | initial | unset'); | ||
walkAst(value, function(node) { | ||
this.syntax.walk(value, function(node) { | ||
if (node.type === 'Function' && node.name.toLowerCase() === 'var') { | ||
@@ -43,2 +42,22 @@ hasVar = true; | ||
// check node is \0 or \9 hack | ||
function isHack(node) { | ||
return node.type === 'Identifier' && /^\\[09]/.test(node.name); | ||
} | ||
// white spaces, comments and some hacks can to be ignored at the end of value | ||
function isNextMayToBeIgnored(cursor) { | ||
while (cursor !== null) { | ||
if (cursor.data.type !== 'WhiteSpace' && | ||
cursor.data.type !== 'Comment' && | ||
!isHack(cursor.data)) { | ||
return false; | ||
} | ||
cursor = cursor.next; | ||
} | ||
return true; | ||
} | ||
function matchSyntax(lexer, syntax, value) { | ||
@@ -54,3 +73,3 @@ var result; | ||
if (valueHasVar(value)) { | ||
if (valueHasVar.call(lexer, value)) { | ||
return { | ||
@@ -67,3 +86,3 @@ type: 'NoMatch', | ||
if (!result || !result.match) { | ||
lexer.lastMatchError = new MatchError('Mismatch', syntax.syntax, value, result.badNode || unwrapNode(result.next)); | ||
lexer.lastMatchError = new MatchError('Mismatch', lexer, syntax.syntax, value, result.badNode || unwrapNode(result.next)); | ||
return null; | ||
@@ -73,4 +92,4 @@ } | ||
if (result.next) { | ||
lexer.lastMatchError = new MatchError('Uncomplete match', syntax.syntax, value, result.badNode || unwrapNode(result.next)); | ||
if (result.next && !isNextMayToBeIgnored(result.next)) { | ||
lexer.lastMatchError = new MatchError('Uncomplete match', lexer, syntax.syntax, value, result.badNode || unwrapNode(result.next)); | ||
return null; | ||
@@ -83,25 +102,27 @@ } | ||
var Lexer = function(syntax) { | ||
var Lexer = function(config, syntax, structure) { | ||
this.valueCommonSyntax = cssWideKeywords; | ||
this.syntax = syntax; | ||
this.generic = false; | ||
this.properties = {}; | ||
this.types = {}; | ||
this.valueCommonSyntax = cssWideKeywords; | ||
this.structure = structure; | ||
if (syntax) { | ||
if (syntax.generic) { | ||
if (config) { | ||
if (config.generic) { | ||
this.generic = true; | ||
for (var name in generic) { | ||
this.addType(name, generic[name]); | ||
this.addType_(name, generic[name]); | ||
} | ||
} | ||
if (syntax.types) { | ||
for (var name in syntax.types) { | ||
this.addType(name, syntax.types[name]); | ||
if (config.types) { | ||
for (var name in config.types) { | ||
this.addType_(name, config.types[name]); | ||
} | ||
} | ||
if (syntax.properties) { | ||
for (var name in syntax.properties) { | ||
this.addProperty(name, syntax.properties[name]); | ||
if (config.properties) { | ||
for (var name in config.properties) { | ||
this.addProperty_(name, config.properties[name]); | ||
} | ||
@@ -112,7 +133,19 @@ } | ||
Lexer.create = function(syntax) { | ||
return new Lexer(syntax); | ||
}; | ||
Lexer.prototype = { | ||
structure: {}, | ||
checkStructure: function(ast) { | ||
var structure = this.structure; | ||
var warns = []; | ||
Lexer.prototype = { | ||
this.syntax.walk(ast, function(node) { | ||
if (structure.hasOwnProperty(node.type)) { | ||
structure[node.type].check(node, warns.push.bind(warns)); | ||
} else { | ||
throw new Error('Unknown node type: ' + node.type); | ||
} | ||
}); | ||
return warns.length ? warns : false; | ||
}, | ||
createDescriptor: function(syntax) { | ||
@@ -160,6 +193,6 @@ var self = this; | ||
}, | ||
addProperty: function(name, syntax) { | ||
addProperty_: function(name, syntax) { | ||
this.properties[name] = this.createDescriptor(syntax); | ||
}, | ||
addType: function(name, syntax) { | ||
addType_: function(name, syntax) { | ||
this.types[name] = this.createDescriptor(syntax); | ||
@@ -166,0 +199,0 @@ |
@@ -315,5 +315,11 @@ 'use strict'; | ||
var keyword = names.keyword(node.data.name); | ||
var keywordName = keyword.name; | ||
var name = syntaxNode.name.toLowerCase(); | ||
if (name !== keyword.vendor + keyword.name) { | ||
// drop \0 and \9 hack from keyword name | ||
if (keywordName.indexOf('\\') !== -1) { | ||
keywordName = keywordName.replace(/\\[09].*$/, ''); | ||
} | ||
if (name !== keyword.vendor + keywordName) { | ||
break mismatch; | ||
@@ -320,0 +326,0 @@ } |
@@ -1,4 +0,75 @@ | ||
var Parser = require('./Parser'); | ||
var parser = new Parser(); | ||
'use strict'; | ||
module.exports = parser.parse.bind(parser); | ||
var Tokenizer = require('../tokenizer'); | ||
var sequence = require('./sequence'); | ||
module.exports = function createParser(config) { | ||
var parser = { | ||
scanner: new Tokenizer(), | ||
filename: '<unknown>', | ||
needPositions: false, | ||
parseAtruleExpression: true, | ||
parseSelector: true, | ||
parseValue: true, | ||
parseCustomProperty: false, | ||
readSequence: sequence, | ||
getLocation: function(start, end) { | ||
if (this.needPositions) { | ||
return this.scanner.getLocationRange( | ||
start, | ||
end, | ||
this.filename | ||
); | ||
} | ||
return null; | ||
}, | ||
getLocationFromList: function(list) { | ||
if (this.needPositions) { | ||
return this.scanner.getLocationRange( | ||
list.head !== null ? list.first().loc.start.offset - this.scanner.startOffset : this.scanner.tokenStart, | ||
list.head !== null ? list.last().loc.end.offset - this.scanner.startOffset : this.scanner.tokenStart, | ||
this.filename | ||
); | ||
} | ||
return null; | ||
}, | ||
parse: function(source, options) { | ||
options = options || {}; | ||
var context = options.context || 'default'; | ||
var ast; | ||
this.scanner.setSource(source, options.offset, options.line, options.column); | ||
this.filename = options.filename || '<unknown>'; | ||
this.needPositions = Boolean(options.positions); | ||
this.parseAtruleExpression = 'parseAtruleExpression' in options ? Boolean(options.parseAtruleExpression) : true; | ||
this.parseSelector = 'parseSelector' in options ? Boolean(options.parseSelector) : true; | ||
this.parseValue = 'parseValue' in options ? Boolean(options.parseValue) : true; | ||
this.parseCustomProperty = 'parseCustomProperty' in options ? Boolean(options.parseCustomProperty) : false; | ||
if (!this.context.hasOwnProperty(context)) { | ||
throw new Error('Unknown context `' + context + '`'); | ||
} | ||
ast = this.context[context].call(this, options); | ||
if (!this.scanner.eof) { | ||
this.scanner.error(); | ||
} | ||
// console.log(JSON.stringify(ast, null, 4)); | ||
return ast; | ||
} | ||
}; | ||
for (var key in config) { | ||
parser[key] = config[key]; | ||
} | ||
return parser.parse.bind(parser); | ||
}; |
var List = require('../utils/list'); | ||
var cmpChar = require('../tokenizer').cmpChar; | ||
var TYPE = require('../tokenizer').TYPE; | ||
var WHITESPACE = TYPE.Whitespace; | ||
var IDENTIFIER = TYPE.Identifier; | ||
var STRING = TYPE.String; | ||
var NUMBER = TYPE.Number; | ||
var COMMENT = TYPE.Comment; | ||
var NUMBERSIGN = TYPE.NumberSign; | ||
var LEFTPARENTHESIS = TYPE.LeftParenthesis; | ||
var LEFTSQUAREBRACKET = TYPE.LeftSquareBracket; | ||
var PLUSSIGN = TYPE.PlusSign; | ||
var HYPHENMINUS = TYPE.HyphenMinus; | ||
var COMMA = TYPE.Comma; | ||
var SOLIDUS = TYPE.Solidus; | ||
var ASTERISK = TYPE.Asterisk; | ||
var PERCENTSIGN = TYPE.PercentSign; | ||
var FULLSTOP = TYPE.FullStop; | ||
var COLON = TYPE.Colon; | ||
var GREATERTHANSIGN = TYPE.GreaterThanSign; | ||
var VERTICALLINE = TYPE.VerticalLine; | ||
var TILDE = TYPE.Tilde; | ||
var U = 117; // 'u'.charCodeAt(0) | ||
var ALLOW_OF_CLAUSE = true; | ||
var DISALLOW_OF_CLAUSE = false; | ||
function singleIdentifier() { | ||
return new List().appendData( | ||
this.Identifier() | ||
); | ||
} | ||
function selectorList() { | ||
return new List().appendData( | ||
this.SelectorList() | ||
); | ||
} | ||
function compoundSelector() { | ||
return new List().appendData( | ||
this.Selector() | ||
); | ||
} | ||
function nth() { | ||
return new List().appendData( | ||
this.Nth(DISALLOW_OF_CLAUSE) | ||
); | ||
} | ||
function nthWithOfClause() { | ||
return new List().appendData( | ||
this.Nth(ALLOW_OF_CLAUSE) | ||
); | ||
} | ||
function selectorSequence() { | ||
module.exports = function readSequence(recognizer) { | ||
var children = new List(); | ||
var space = null; | ||
var child = null; | ||
var ignoreWSAfter = false; | ||
var ignoreWS = false; | ||
var context = { | ||
recognizer: recognizer, | ||
space: null, | ||
ignoreWS: false, | ||
ignoreWSAfter: false | ||
}; | ||
this.readSC(); | ||
this.scanner.skipSC(); | ||
scan: | ||
while (!this.scanner.eof) { | ||
@@ -76,195 +25,28 @@ switch (this.scanner.tokenType) { | ||
case WHITESPACE: | ||
if (ignoreWS) { | ||
if (context.ignoreWS) { | ||
this.scanner.next(); | ||
} else { | ||
space = this.WhiteSpace(); | ||
context.space = this.WhiteSpace(); | ||
} | ||
continue; | ||
case PLUSSIGN: | ||
case GREATERTHANSIGN: | ||
case TILDE: | ||
space = null; | ||
ignoreWSAfter = true; | ||
child = this.Combinator(); | ||
break; | ||
case SOLIDUS: // /deep/ | ||
child = this.Combinator(); | ||
break; | ||
case FULLSTOP: | ||
child = this.ClassSelector(); | ||
break; | ||
case LEFTSQUAREBRACKET: | ||
child = this.AttributeSelector(); | ||
break; | ||
case NUMBERSIGN: | ||
child = this.IdSelector(); | ||
break; | ||
case COLON: | ||
if (this.scanner.lookupType(1) === COLON) { | ||
child = this.PseudoElementSelector(); | ||
} else { | ||
child = this.PseudoClassSelector(); | ||
} | ||
break; | ||
case IDENTIFIER: | ||
case ASTERISK: | ||
case VERTICALLINE: | ||
child = this.TypeSelector(); | ||
break; | ||
case NUMBER: | ||
child = this.Percentage(); | ||
break; | ||
default: | ||
if (typeof this.readSelectorSequenceFallback === 'function') { | ||
child = this.readSelectorSequenceFallback(); | ||
if (!child) { | ||
break scan; | ||
} | ||
} else { | ||
break scan; | ||
} | ||
} | ||
if (space !== null) { | ||
children.appendData(space); | ||
space = null; | ||
} | ||
child = recognizer.getNode.call(this, context); | ||
children.appendData(child); | ||
if (ignoreWSAfter) { | ||
ignoreWSAfter = false; | ||
ignoreWS = true; | ||
} else { | ||
ignoreWS = false; | ||
if (child === undefined) { | ||
break; | ||
} | ||
} | ||
// nothing were consumed | ||
if (child === null) { | ||
this.scanner.error('Selector is expected'); | ||
} | ||
return children; | ||
} | ||
function defaultSequence(scope) { | ||
var children = new List(); | ||
var space = null; | ||
var child = null; | ||
var ignoreWSAfter = false; | ||
var ignoreWS = false; | ||
this.readSC(); | ||
scan: | ||
while (!this.scanner.eof) { | ||
switch (this.scanner.tokenType) { | ||
case COMMENT: | ||
this.scanner.next(); | ||
continue; | ||
case WHITESPACE: | ||
if (ignoreWS) { | ||
this.scanner.next(); | ||
} else { | ||
space = this.WhiteSpace(); | ||
} | ||
continue; | ||
case NUMBERSIGN: | ||
child = this.HexColor(); | ||
break; | ||
case COMMA: | ||
space = null; | ||
ignoreWSAfter = true; | ||
child = this.Operator(); | ||
break; | ||
case SOLIDUS: | ||
case ASTERISK: | ||
case PLUSSIGN: | ||
case HYPHENMINUS: | ||
child = this.Operator(); | ||
break; | ||
case LEFTPARENTHESIS: | ||
child = this.Parentheses(defaultSequence); | ||
break; | ||
case LEFTSQUAREBRACKET: | ||
child = this.Brackets(defaultSequence); | ||
break; | ||
case STRING: | ||
child = this.String(); | ||
break; | ||
case NUMBER: | ||
switch (this.scanner.lookupType(1)) { | ||
case PERCENTSIGN: | ||
child = this.Percentage(); | ||
break; | ||
case IDENTIFIER: | ||
child = this.Dimension(); | ||
break; | ||
default: | ||
child = this.Number(); | ||
} | ||
break; | ||
case IDENTIFIER: | ||
// check for unicode range, it should start with u+ or U+ | ||
if (cmpChar(this.scanner.source, this.scanner.tokenStart, U) && | ||
cmpChar(this.scanner.source, this.scanner.tokenStart + 1, PLUSSIGN)) { | ||
child = this.UnicodeRange(); | ||
} else if (this.scanner.lookupType(1) === LEFTPARENTHESIS) { | ||
if (this.scanner.lookupValue(0, 'url')) { | ||
child = this.Url(); | ||
} else { | ||
child = this.Function(scope, defaultSequence); | ||
} | ||
} else { | ||
child = this.Identifier(); | ||
} | ||
break; | ||
default: | ||
if (typeof this.readSequenceFallback === 'function') { | ||
child = this.readSequenceFallback(); | ||
if (!child) { | ||
break scan; | ||
} | ||
} else { | ||
break scan; | ||
} | ||
if (context.space !== null) { | ||
children.appendData(context.space); | ||
context.space = null; | ||
} | ||
if (space !== null) { | ||
children.appendData(space); | ||
space = null; | ||
} | ||
children.appendData(child); | ||
if (ignoreWSAfter) { | ||
ignoreWSAfter = false; | ||
ignoreWS = true; | ||
if (context.ignoreWSAfter) { | ||
context.ignoreWSAfter = false; | ||
context.ignoreWS = true; | ||
} else { | ||
ignoreWS = false; | ||
context.ignoreWS = false; | ||
} | ||
@@ -274,12 +56,2 @@ } | ||
return children; | ||
} | ||
module.exports = { | ||
singleIdentifier: singleIdentifier, | ||
selectorList: selectorList, | ||
compoundSelector: compoundSelector, | ||
nth: nth, | ||
nthWithOfClause: nthWithOfClause, | ||
selector: selectorSequence, | ||
default: defaultSequence | ||
}; |
@@ -10,2 +10,4 @@ 'use strict'; | ||
var PUNCTUATOR = 6; | ||
var CDO = 7; | ||
var CDC = 8; | ||
@@ -25,2 +27,4 @@ var TAB = 9; | ||
Punctuator: PUNCTUATOR, | ||
CDO: CDO, | ||
CDC: CDC, | ||
@@ -27,0 +31,0 @@ ExclamationMark: 33, // ! |
@@ -5,2 +5,3 @@ 'use strict'; | ||
var OFFSET_CORRECTION = 60; | ||
var TAB_REPLACEMENT = ' '; | ||
@@ -21,4 +22,4 @@ function sourceFragment(error, extraLines) { | ||
var lines = error.source.split(/\n|\r\n?|\f/); | ||
var line = error.line; | ||
var column = error.column; | ||
var line = error.line; | ||
var startLine = Math.max(1, line - extraLines) - 1; | ||
@@ -29,2 +30,5 @@ var endLine = Math.min(line + extraLines, lines.length + 1); | ||
// correct column according to replaced tab before column | ||
column += (TAB_REPLACEMENT.length - 1) * (lines[line - 1].substr(0, column - 1).match(/\t/g) || []).length; | ||
if (column > MAX_LINE_LENGTH) { | ||
@@ -37,2 +41,3 @@ cutLeft = column - OFFSET_CORRECTION + 3; | ||
if (i >= 0 && i < lines.length) { | ||
lines[i] = lines[i].replace(/\t/g, TAB_REPLACEMENT); | ||
lines[i] = | ||
@@ -39,0 +44,0 @@ (cutLeft > 0 && lines[i].length > cutLeft ? '\u2026' : '') + |
@@ -29,2 +29,4 @@ 'use strict'; | ||
var PUNCTUATOR = TYPE.Punctuator; | ||
var CDO = TYPE.CDO; | ||
var CDC = TYPE.CDC; | ||
@@ -39,2 +41,5 @@ var N = 10; | ||
var HYPHENMINUS = TYPE.HyphenMinus; | ||
var GREATERTHANSIGN = TYPE.GreaterThanSign; | ||
var LESSTHANSIGN = TYPE.LessThanSign; | ||
var EXCLAMATIONMARK = TYPE.ExclamationMark; | ||
@@ -106,21 +111,44 @@ var MIN_BUFFER_SIZE = 16 * 1024; | ||
case PUNCTUATOR: | ||
if (code === STAR && prevType === SLASH) { // /* | ||
// /* | ||
if (code === STAR && prevType === SLASH) { | ||
type = COMMENT; | ||
offset = findCommentEnd(source, offset + 1); | ||
tokenCount--; // rewrite prev token | ||
} else { | ||
// edge case for -.123 and +.123 | ||
if (code === FULLSTOP && (prevType === PLUSSIGN || prevType === HYPHENMINUS)) { | ||
if (offset + 1 < sourceLength && isNumber(source.charCodeAt(offset + 1))) { | ||
type = NUMBER; | ||
offset = findNumberEnd(source, offset + 2, false); | ||
tokenCount--; // rewrite prev token | ||
break; | ||
} | ||
break; | ||
} | ||
// edge case for -.123 and +.123 | ||
if (code === FULLSTOP && (prevType === PLUSSIGN || prevType === HYPHENMINUS)) { | ||
if (offset + 1 < sourceLength && isNumber(source.charCodeAt(offset + 1))) { | ||
type = NUMBER; | ||
offset = findNumberEnd(source, offset + 2, false); | ||
tokenCount--; // rewrite prev token | ||
break; | ||
} | ||
} | ||
type = code; | ||
offset = offset + 1; | ||
// <!-- | ||
if (code === EXCLAMATIONMARK && prevType === LESSTHANSIGN) { | ||
if (offset + 2 < sourceLength && | ||
source.charCodeAt(offset + 1) === HYPHENMINUS && | ||
source.charCodeAt(offset + 2) === HYPHENMINUS) { | ||
type = CDO; | ||
offset = offset + 3; | ||
tokenCount--; // rewrite prev token | ||
break; | ||
} | ||
} | ||
// --> | ||
if (code === HYPHENMINUS && prevType === HYPHENMINUS) { | ||
if (offset + 1 < sourceLength && source.charCodeAt(offset + 1) === GREATERTHANSIGN) { | ||
type = CDC; | ||
offset = offset + 2; | ||
tokenCount--; // rewrite prev token | ||
break; | ||
} | ||
} | ||
type = code; | ||
offset = offset + 1; | ||
break; | ||
@@ -250,2 +278,7 @@ | ||
}, | ||
skipSC: function() { | ||
while (this.tokenType === WHITESPACE || this.tokenType === COMMENT) { | ||
this.next(); | ||
} | ||
}, | ||
skip: function(tokenCount) { | ||
@@ -391,4 +424,4 @@ var next = this.currentToken + tokenCount; | ||
// fix soft deoptimizations (insufficient type feedback) | ||
new Tokenizer('\n\r\r\n\f//""\'\'/*\r\n\f*/1a;.\\31\t\+2{url(a);+1.2e3 -.4e-5 .6e+7}').getLocation(); | ||
new Tokenizer('\n\r\r\n\f<!---->//""\'\'/*\r\n\f*/1a;.\\31\t\+2{url(a);+1.2e3 -.4e-5 .6e+7}').getLocation(); | ||
module.exports = Tokenizer; |
@@ -21,3 +21,9 @@ 'use strict'; | ||
function firstCharOffset(source) { | ||
return source.charCodeAt(0) === 0xFEFF ? 1 : 0; | ||
// detect BOM (https://en.wikipedia.org/wiki/Byte_order_mark) | ||
if (source.charCodeAt(0) === 0xFEFF || // UTF-16BE | ||
source.charCodeAt(0) === 0xFFFE) { // UTF-16LE | ||
return 1; | ||
} | ||
return 0; | ||
} | ||
@@ -24,0 +30,0 @@ |
@@ -1,28 +0,27 @@ | ||
var walk = require('./walk').all; | ||
var walkUp = require('./walk').allUp; | ||
var List = require('./list'); | ||
function fromPlainObject(ast) { | ||
walk(ast, function(node) { | ||
if (node.children && node.children instanceof List === false) { | ||
node.children = new List().fromArray(node.children); | ||
} | ||
}); | ||
module.exports = function createConvertors(walker) { | ||
var walk = walker.all; | ||
var walkUp = walker.allUp; | ||
return ast; | ||
} | ||
return { | ||
fromPlainObject: function(ast) { | ||
walk(ast, function(node) { | ||
if (node.children && node.children instanceof List === false) { | ||
node.children = new List().fromArray(node.children); | ||
} | ||
}); | ||
function toPlainObject(ast) { | ||
walkUp(ast, function(node) { | ||
if (node.children && node.children instanceof List) { | ||
node.children = node.children.toArray(); | ||
return ast; | ||
}, | ||
toPlainObject: function(ast) { | ||
walkUp(ast, function(node) { | ||
if (node.children && node.children instanceof List) { | ||
node.children = node.children.toArray(); | ||
} | ||
}); | ||
return ast; | ||
} | ||
}); | ||
return ast; | ||
} | ||
module.exports = { | ||
fromPlainObject: fromPlainObject, | ||
toPlainObject: toPlainObject | ||
}; | ||
}; |
@@ -56,3 +56,7 @@ 'use strict'; | ||
hack = '//'; | ||
} else if (hack !== '*' && hack !== '_' && hack !== '$') { | ||
} else if (hack !== '_' && | ||
hack !== '*' && | ||
hack !== '$' && | ||
hack !== '#' && | ||
hack !== '+') { | ||
hack = ''; | ||
@@ -59,0 +63,0 @@ } |
{ | ||
"name": "css-tree", | ||
"version": "1.0.0-alpha16", | ||
"version": "1.0.0-alpha17", | ||
"description": "Fast detailed CSS parser", | ||
@@ -47,10 +47,10 @@ "keywords": [ | ||
"scripts": { | ||
"gen:syntax": "node scripts/gen-syntax-data.js", | ||
"lint": "jscs data lib scripts test && eslint data lib scripts test", | ||
"build": "npm run gen:syntax && browserify --standalone csstree lib/index.js | uglifyjs --compress --mangle -o dist/csstree.js", | ||
"codestyle-and-test": "npm run codestyle && npm test", | ||
"codestyle": "jscs data lib scripts test && eslint data lib scripts test", | ||
"lint-and-test": "npm run lint && npm test", | ||
"test": "mocha --reporter progress", | ||
"gen:syntax": "node scripts/gen-syntax-data.js && node scripts/update-ast-docs.js", | ||
"coverage": "istanbul cover _mocha -- -R min", | ||
"prepublish": "npm run build", | ||
"travis": "npm run codestyle-and-test && npm run coveralls", | ||
"travis": "npm run lint-and-test && npm run coveralls", | ||
"coveralls": "istanbul cover _mocha --report lcovonly -- -R min && cat ./coverage/lcov.info | coveralls", | ||
@@ -57,0 +57,0 @@ "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null" |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
657135
114
13463
1