@eslint/css-tree 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +194 -0
  3. package/cjs/convertor/create.cjs +32 -0
  4. package/cjs/convertor/index.cjs +8 -0
  5. package/cjs/data-patch.cjs +7 -0
  6. package/cjs/data.cjs +120 -0
  7. package/cjs/definition-syntax/SyntaxError.cjs +16 -0
  8. package/cjs/definition-syntax/generate.cjs +139 -0
  9. package/cjs/definition-syntax/index.cjs +13 -0
  10. package/cjs/definition-syntax/parse.cjs +556 -0
  11. package/cjs/definition-syntax/scanner.cjs +113 -0
  12. package/cjs/definition-syntax/walk.cjs +57 -0
  13. package/cjs/generator/create.cjs +102 -0
  14. package/cjs/generator/index.cjs +8 -0
  15. package/cjs/generator/sourceMap.cjs +96 -0
  16. package/cjs/generator/token-before.cjs +170 -0
  17. package/cjs/index.cjs +65 -0
  18. package/cjs/lexer/Lexer.cjs +517 -0
  19. package/cjs/lexer/error.cjs +128 -0
  20. package/cjs/lexer/generic-an-plus-b.cjs +235 -0
  21. package/cjs/lexer/generic-const.cjs +12 -0
  22. package/cjs/lexer/generic-urange.cjs +149 -0
  23. package/cjs/lexer/generic.cjs +589 -0
  24. package/cjs/lexer/index.cjs +7 -0
  25. package/cjs/lexer/match-graph.cjs +530 -0
  26. package/cjs/lexer/match.cjs +632 -0
  27. package/cjs/lexer/prepare-tokens.cjs +54 -0
  28. package/cjs/lexer/search.cjs +65 -0
  29. package/cjs/lexer/structure.cjs +173 -0
  30. package/cjs/lexer/trace.cjs +73 -0
  31. package/cjs/lexer/units.cjs +38 -0
  32. package/cjs/parser/SyntaxError.cjs +74 -0
  33. package/cjs/parser/create.cjs +378 -0
  34. package/cjs/parser/index.cjs +8 -0
  35. package/cjs/parser/parse-selector.cjs +8 -0
  36. package/cjs/parser/sequence.cjs +47 -0
  37. package/cjs/syntax/atrule/container.cjs +32 -0
  38. package/cjs/syntax/atrule/font-face.cjs +12 -0
  39. package/cjs/syntax/atrule/import.cjs +101 -0
  40. package/cjs/syntax/atrule/index.cjs +27 -0
  41. package/cjs/syntax/atrule/layer.cjs +16 -0
  42. package/cjs/syntax/atrule/media.cjs +16 -0
  43. package/cjs/syntax/atrule/nest.cjs +16 -0
  44. package/cjs/syntax/atrule/page.cjs +16 -0
  45. package/cjs/syntax/atrule/scope.cjs +16 -0
  46. package/cjs/syntax/atrule/starting-style.cjs +12 -0
  47. package/cjs/syntax/atrule/supports.cjs +16 -0
  48. package/cjs/syntax/config/generator.cjs +9 -0
  49. package/cjs/syntax/config/lexer.cjs +14 -0
  50. package/cjs/syntax/config/mix.cjs +126 -0
  51. package/cjs/syntax/config/parser-selector.cjs +19 -0
  52. package/cjs/syntax/config/parser.cjs +49 -0
  53. package/cjs/syntax/config/walker.cjs +9 -0
  54. package/cjs/syntax/create.cjs +58 -0
  55. package/cjs/syntax/function/expression.cjs +11 -0
  56. package/cjs/syntax/function/var.cjs +43 -0
  57. package/cjs/syntax/index.cjs +14 -0
  58. package/cjs/syntax/node/AnPlusB.cjs +293 -0
  59. package/cjs/syntax/node/Atrule.cjs +103 -0
  60. package/cjs/syntax/node/AtrulePrelude.cjs +52 -0
  61. package/cjs/syntax/node/AttributeSelector.cjs +148 -0
  62. package/cjs/syntax/node/Block.cjs +96 -0
  63. package/cjs/syntax/node/Brackets.cjs +38 -0
  64. package/cjs/syntax/node/CDC.cjs +26 -0
  65. package/cjs/syntax/node/CDO.cjs +26 -0
  66. package/cjs/syntax/node/ClassSelector.cjs +31 -0
  67. package/cjs/syntax/node/Combinator.cjs +61 -0
  68. package/cjs/syntax/node/Comment.cjs +40 -0
  69. package/cjs/syntax/node/Condition.cjs +120 -0
  70. package/cjs/syntax/node/Declaration.cjs +166 -0
  71. package/cjs/syntax/node/DeclarationList.cjs +62 -0
  72. package/cjs/syntax/node/Dimension.cjs +30 -0
  73. package/cjs/syntax/node/Feature.cjs +101 -0
  74. package/cjs/syntax/node/FeatureFunction.cjs +67 -0
  75. package/cjs/syntax/node/FeatureRange.cjs +133 -0
  76. package/cjs/syntax/node/Function.cjs +45 -0
  77. package/cjs/syntax/node/GeneralEnclosed.cjs +68 -0
  78. package/cjs/syntax/node/Hash.cjs +30 -0
  79. package/cjs/syntax/node/IdSelector.cjs +33 -0
  80. package/cjs/syntax/node/Identifier.cjs +25 -0
  81. package/cjs/syntax/node/Layer.cjs +35 -0
  82. package/cjs/syntax/node/LayerList.cjs +43 -0
  83. package/cjs/syntax/node/MediaQuery.cjs +100 -0
  84. package/cjs/syntax/node/MediaQueryList.cjs +41 -0
  85. package/cjs/syntax/node/NestingSelector.cjs +29 -0
  86. package/cjs/syntax/node/Nth.cjs +54 -0
  87. package/cjs/syntax/node/Number.cjs +25 -0
  88. package/cjs/syntax/node/Operator.cjs +28 -0
  89. package/cjs/syntax/node/Parentheses.cjs +38 -0
  90. package/cjs/syntax/node/Percentage.cjs +25 -0
  91. package/cjs/syntax/node/PseudoClassSelector.cjs +67 -0
  92. package/cjs/syntax/node/PseudoElementSelector.cjs +69 -0
  93. package/cjs/syntax/node/Ratio.cjs +71 -0
  94. package/cjs/syntax/node/Raw.cjs +48 -0
  95. package/cjs/syntax/node/Rule.cjs +58 -0
  96. package/cjs/syntax/node/Scope.cjs +69 -0
  97. package/cjs/syntax/node/Selector.cjs +38 -0
  98. package/cjs/syntax/node/SelectorList.cjs +43 -0
  99. package/cjs/syntax/node/String.cjs +26 -0
  100. package/cjs/syntax/node/StyleSheet.cjs +83 -0
  101. package/cjs/syntax/node/SupportsDeclaration.cjs +38 -0
  102. package/cjs/syntax/node/TypeSelector.cjs +59 -0
  103. package/cjs/syntax/node/UnicodeRange.cjs +158 -0
  104. package/cjs/syntax/node/Url.cjs +54 -0
  105. package/cjs/syntax/node/Value.cjs +26 -0
  106. package/cjs/syntax/node/WhiteSpace.cjs +34 -0
  107. package/cjs/syntax/node/index-generate.cjs +103 -0
  108. package/cjs/syntax/node/index-parse-selector.cjs +39 -0
  109. package/cjs/syntax/node/index-parse.cjs +103 -0
  110. package/cjs/syntax/node/index.cjs +103 -0
  111. package/cjs/syntax/pseudo/index.cjs +60 -0
  112. package/cjs/syntax/pseudo/lang.cjs +37 -0
  113. package/cjs/syntax/scope/atrulePrelude.cjs +9 -0
  114. package/cjs/syntax/scope/default.cjs +76 -0
  115. package/cjs/syntax/scope/index.cjs +11 -0
  116. package/cjs/syntax/scope/selector.cjs +88 -0
  117. package/cjs/syntax/scope/value.cjs +29 -0
  118. package/cjs/tokenizer/OffsetToLocation.cjs +91 -0
  119. package/cjs/tokenizer/TokenStream.cjs +358 -0
  120. package/cjs/tokenizer/adopt-buffer.cjs +13 -0
  121. package/cjs/tokenizer/char-code-definitions.cjs +236 -0
  122. package/cjs/tokenizer/index.cjs +554 -0
  123. package/cjs/tokenizer/names.cjs +32 -0
  124. package/cjs/tokenizer/types.cjs +57 -0
  125. package/cjs/tokenizer/utils.cjs +261 -0
  126. package/cjs/utils/List.cjs +473 -0
  127. package/cjs/utils/clone.cjs +25 -0
  128. package/cjs/utils/create-custom-error.cjs +18 -0
  129. package/cjs/utils/ident.cjs +102 -0
  130. package/cjs/utils/index.cjs +20 -0
  131. package/cjs/utils/names.cjs +113 -0
  132. package/cjs/utils/string.cjs +99 -0
  133. package/cjs/utils/url.cjs +108 -0
  134. package/cjs/version.cjs +5 -0
  135. package/cjs/walker/create.cjs +291 -0
  136. package/cjs/walker/index.cjs +8 -0
  137. package/data/patch.json +874 -0
  138. package/dist/csstree.esm.js +12 -0
  139. package/dist/csstree.js +12 -0
  140. package/dist/data.cjs +1341 -0
  141. package/dist/data.js +1341 -0
  142. package/dist/version.cjs +1 -0
  143. package/dist/version.js +1 -0
  144. package/lib/convertor/create.js +28 -0
  145. package/lib/convertor/index.js +4 -0
  146. package/lib/data-patch.js +6 -0
  147. package/lib/data.js +118 -0
  148. package/lib/definition-syntax/SyntaxError.js +12 -0
  149. package/lib/definition-syntax/generate.js +135 -0
  150. package/lib/definition-syntax/index.js +4 -0
  151. package/lib/definition-syntax/parse.js +552 -0
  152. package/lib/definition-syntax/scanner.js +109 -0
  153. package/lib/definition-syntax/walk.js +53 -0
  154. package/lib/generator/create.js +97 -0
  155. package/lib/generator/index.js +4 -0
  156. package/lib/generator/sourceMap.js +92 -0
  157. package/lib/generator/token-before.js +182 -0
  158. package/lib/index.d.ts +3016 -0
  159. package/lib/index.js +30 -0
  160. package/lib/lexer/Lexer.js +511 -0
  161. package/lib/lexer/error.js +123 -0
  162. package/lib/lexer/generic-an-plus-b.js +238 -0
  163. package/lib/lexer/generic-const.js +8 -0
  164. package/lib/lexer/generic-urange.js +151 -0
  165. package/lib/lexer/generic.js +622 -0
  166. package/lib/lexer/index.js +1 -0
  167. package/lib/lexer/match-graph.js +527 -0
  168. package/lib/lexer/match.js +630 -0
  169. package/lib/lexer/prepare-tokens.js +50 -0
  170. package/lib/lexer/search.js +61 -0
  171. package/lib/lexer/structure.js +169 -0
  172. package/lib/lexer/trace.js +66 -0
  173. package/lib/lexer/units.js +27 -0
  174. package/lib/parser/SyntaxError.js +70 -0
  175. package/lib/parser/create.js +388 -0
  176. package/lib/parser/index.js +4 -0
  177. package/lib/parser/parse-selector.js +4 -0
  178. package/lib/parser/sequence.js +43 -0
  179. package/lib/syntax/atrule/container.js +28 -0
  180. package/lib/syntax/atrule/font-face.js +8 -0
  181. package/lib/syntax/atrule/import.js +104 -0
  182. package/lib/syntax/atrule/index.js +23 -0
  183. package/lib/syntax/atrule/layer.js +12 -0
  184. package/lib/syntax/atrule/media.js +12 -0
  185. package/lib/syntax/atrule/nest.js +12 -0
  186. package/lib/syntax/atrule/page.js +12 -0
  187. package/lib/syntax/atrule/scope.js +12 -0
  188. package/lib/syntax/atrule/starting-style.js +8 -0
  189. package/lib/syntax/atrule/supports.js +12 -0
  190. package/lib/syntax/config/generator.js +5 -0
  191. package/lib/syntax/config/lexer.js +10 -0
  192. package/lib/syntax/config/mix.js +122 -0
  193. package/lib/syntax/config/parser-selector.js +15 -0
  194. package/lib/syntax/config/parser.js +45 -0
  195. package/lib/syntax/config/walker.js +5 -0
  196. package/lib/syntax/create.js +55 -0
  197. package/lib/syntax/function/expression.js +7 -0
  198. package/lib/syntax/function/var.js +39 -0
  199. package/lib/syntax/index.js +10 -0
  200. package/lib/syntax/node/AnPlusB.js +292 -0
  201. package/lib/syntax/node/Atrule.js +100 -0
  202. package/lib/syntax/node/AtrulePrelude.js +47 -0
  203. package/lib/syntax/node/AttributeSelector.js +147 -0
  204. package/lib/syntax/node/Block.js +95 -0
  205. package/lib/syntax/node/Brackets.js +35 -0
  206. package/lib/syntax/node/CDC.js +19 -0
  207. package/lib/syntax/node/CDO.js +19 -0
  208. package/lib/syntax/node/ClassSelector.js +24 -0
  209. package/lib/syntax/node/Combinator.js +54 -0
  210. package/lib/syntax/node/Comment.js +33 -0
  211. package/lib/syntax/node/Condition.js +123 -0
  212. package/lib/syntax/node/Declaration.js +165 -0
  213. package/lib/syntax/node/DeclarationList.js +62 -0
  214. package/lib/syntax/node/Dimension.js +23 -0
  215. package/lib/syntax/node/Feature.js +103 -0
  216. package/lib/syntax/node/FeatureFunction.js +63 -0
  217. package/lib/syntax/node/FeatureRange.js +133 -0
  218. package/lib/syntax/node/Function.js +41 -0
  219. package/lib/syntax/node/GeneralEnclosed.js +66 -0
  220. package/lib/syntax/node/Hash.js +23 -0
  221. package/lib/syntax/node/IdSelector.js +26 -0
  222. package/lib/syntax/node/Identifier.js +18 -0
  223. package/lib/syntax/node/Layer.js +28 -0
  224. package/lib/syntax/node/LayerList.js +36 -0
  225. package/lib/syntax/node/MediaQuery.js +102 -0
  226. package/lib/syntax/node/MediaQueryList.js +34 -0
  227. package/lib/syntax/node/NestingSelector.js +22 -0
  228. package/lib/syntax/node/Nth.js +47 -0
  229. package/lib/syntax/node/Number.js +18 -0
  230. package/lib/syntax/node/Operator.js +21 -0
  231. package/lib/syntax/node/Parentheses.js +34 -0
  232. package/lib/syntax/node/Percentage.js +18 -0
  233. package/lib/syntax/node/PseudoClassSelector.js +65 -0
  234. package/lib/syntax/node/PseudoElementSelector.js +66 -0
  235. package/lib/syntax/node/Ratio.js +68 -0
  236. package/lib/syntax/node/Raw.js +41 -0
  237. package/lib/syntax/node/Rule.js +51 -0
  238. package/lib/syntax/node/Scope.js +66 -0
  239. package/lib/syntax/node/Selector.js +31 -0
  240. package/lib/syntax/node/SelectorList.js +35 -0
  241. package/lib/syntax/node/String.js +19 -0
  242. package/lib/syntax/node/StyleSheet.js +82 -0
  243. package/lib/syntax/node/SupportsDeclaration.js +34 -0
  244. package/lib/syntax/node/TypeSelector.js +52 -0
  245. package/lib/syntax/node/UnicodeRange.js +156 -0
  246. package/lib/syntax/node/Url.js +52 -0
  247. package/lib/syntax/node/Value.js +19 -0
  248. package/lib/syntax/node/WhiteSpace.js +27 -0
  249. package/lib/syntax/node/index-generate.js +49 -0
  250. package/lib/syntax/node/index-parse-selector.js +17 -0
  251. package/lib/syntax/node/index-parse.js +49 -0
  252. package/lib/syntax/node/index.js +49 -0
  253. package/lib/syntax/pseudo/index.js +56 -0
  254. package/lib/syntax/pseudo/lang.js +33 -0
  255. package/lib/syntax/scope/atrulePrelude.js +5 -0
  256. package/lib/syntax/scope/default.js +85 -0
  257. package/lib/syntax/scope/index.js +3 -0
  258. package/lib/syntax/scope/selector.js +94 -0
  259. package/lib/syntax/scope/value.js +25 -0
  260. package/lib/tokenizer/OffsetToLocation.js +87 -0
  261. package/lib/tokenizer/TokenStream.js +366 -0
  262. package/lib/tokenizer/adopt-buffer.js +9 -0
  263. package/lib/tokenizer/char-code-definitions.js +212 -0
  264. package/lib/tokenizer/index.js +513 -0
  265. package/lib/tokenizer/names.js +28 -0
  266. package/lib/tokenizer/types.js +28 -0
  267. package/lib/tokenizer/utils.js +254 -0
  268. package/lib/utils/List.js +469 -0
  269. package/lib/utils/clone.js +21 -0
  270. package/lib/utils/create-custom-error.js +14 -0
  271. package/lib/utils/ident.js +101 -0
  272. package/lib/utils/index.js +6 -0
  273. package/lib/utils/names.js +106 -0
  274. package/lib/utils/string.js +99 -0
  275. package/lib/utils/url.js +108 -0
  276. package/lib/version.js +5 -0
  277. package/lib/walker/create.js +287 -0
  278. package/lib/walker/index.js +4 -0
  279. package/package.json +133 -0
@@ -0,0 +1,874 @@
1
+ {
2
+ "atrules": {
3
+ "charset": {
4
+ "prelude": "<string>"
5
+ },
6
+ "container": {
7
+ "prelude": "[ <container-name> ]? <container-condition>"
8
+ },
9
+ "font-face": {
10
+ "descriptors": {
11
+ "unicode-range": {
12
+ "comment": "replaces <unicode-range>, an old production name",
13
+ "syntax": "<urange>#"
14
+ }
15
+ }
16
+ },
17
+ "nest": {
18
+ "prelude": "<complex-selector-list>"
19
+ },
20
+ "scope": {
21
+ "prelude": "[ ( <scope-start> ) ]? [ to ( <scope-end> ) ]?"
22
+ },
23
+ "position-try": {
24
+ "comment": "The list of descriptors: https://developer.mozilla.org/en-US/docs/Web/CSS/@position-try",
25
+ "descriptors": {
26
+ "top": "<'top'>",
27
+ "left": "<'left'>",
28
+ "bottom": "<'bottom'>",
29
+ "right": "<'right'>",
30
+ "inset-block-start": "<'inset-block-start'>",
31
+ "inset-block-end": "<'inset-block-end'>",
32
+ "inset-inline-start": "<'inset-inline-start'>",
33
+ "inset-inline-end": "<'inset-inline-end'>",
34
+ "inset-block": "<'inset-block'>",
35
+ "inset-inline": "<'inset-inline'>",
36
+ "inset": "<'inset'>",
37
+ "margin-top": "<'margin-top'>",
38
+ "margin-left": "<'margin-left'>",
39
+ "margin-bottom": "<'margin-bottom'>",
40
+ "margin-right": "<'margin-right'>",
41
+ "margin-block-start": "<'margin-block-start'>",
42
+ "margin-block-end": "<'margin-block-end'>",
43
+ "margin-inline-start": "<'margin-inline-start'>",
44
+ "margin-inline-end": "<'margin-inline-end'>",
45
+ "margin": "<'margin'>",
46
+ "margin-block": "<'margin-block'>",
47
+ "margin-inline": "<'margin-inline'>",
48
+ "width": "<'width'>",
49
+ "height": "<'height'>",
50
+ "min-width": "<'min-width'>",
51
+ "min-height": "<'min-height'>",
52
+ "max-width": "<'max-width'>",
53
+ "max-height": "<'max-height'>",
54
+ "block-size": "<'block-size'>",
55
+ "inline-size": "<'inline-size'>",
56
+ "min-block-size": "<'min-block-size'>",
57
+ "min-inline-size": "<'min-inline-size'>",
58
+ "max-block-size": "<'max-block-size'>",
59
+ "max-inline-size": "<'max-inline-size'>",
60
+ "align-self": "<'align-self'> | anchor-center",
61
+ "justify-self": "<'justify-self'> | anchor-center"
62
+ }
63
+ }
64
+ },
65
+ "properties": {
66
+ "-moz-border-radius-bottomleft": {
67
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius",
68
+ "syntax": "<'border-bottom-left-radius'>"
69
+ },
70
+ "-moz-border-radius-bottomright": {
71
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",
72
+ "syntax": "<'border-bottom-right-radius'>"
73
+ },
74
+ "-moz-border-radius-topleft": {
75
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius",
76
+ "syntax": "<'border-top-left-radius'>"
77
+ },
78
+ "-moz-border-radius-topright": {
79
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",
80
+ "syntax": "<'border-bottom-right-radius'>"
81
+ },
82
+ "-moz-control-character-visibility": {
83
+ "comment": "firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588",
84
+ "syntax": "visible | hidden"
85
+ },
86
+ "-moz-osx-font-smoothing": {
87
+ "comment": "misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",
88
+ "syntax": "auto | grayscale"
89
+ },
90
+ "-moz-user-select": {
91
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",
92
+ "syntax": "none | text | all | -moz-none"
93
+ },
94
+ "-ms-flex-align": {
95
+ "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",
96
+ "syntax": "start | end | center | baseline | stretch"
97
+ },
98
+ "-ms-flex-item-align": {
99
+ "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",
100
+ "syntax": "auto | start | end | center | baseline | stretch"
101
+ },
102
+ "-ms-flex-line-pack": {
103
+ "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack",
104
+ "syntax": "start | end | center | justify | distribute | stretch"
105
+ },
106
+ "-ms-flex-negative": {
107
+ "comment": "misssed old syntax implemented in IE; TODO: find references for comfirmation",
108
+ "syntax": "<'flex-shrink'>"
109
+ },
110
+ "-ms-flex-pack": {
111
+ "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack",
112
+ "syntax": "start | end | center | justify | distribute"
113
+ },
114
+ "-ms-flex-order": {
115
+ "comment": "misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx",
116
+ "syntax": "<integer>"
117
+ },
118
+ "-ms-flex-positive": {
119
+ "comment": "misssed old syntax implemented in IE; TODO: find references for comfirmation",
120
+ "syntax": "<'flex-grow'>"
121
+ },
122
+ "-ms-flex-preferred-size": {
123
+ "comment": "misssed old syntax implemented in IE; TODO: find references for comfirmation",
124
+ "syntax": "<'flex-basis'>"
125
+ },
126
+ "-ms-interpolation-mode": {
127
+ "comment": "https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx",
128
+ "syntax": "nearest-neighbor | bicubic"
129
+ },
130
+ "-ms-grid-column-align": {
131
+ "comment": "add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx",
132
+ "syntax": "start | end | center | stretch"
133
+ },
134
+ "-ms-grid-row-align": {
135
+ "comment": "add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx",
136
+ "syntax": "start | end | center | stretch"
137
+ },
138
+ "-ms-hyphenate-limit-last": {
139
+ "comment": "misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits",
140
+ "syntax": "none | always | column | page | spread"
141
+ },
142
+ "-webkit-appearance": {
143
+ "comment": "webkit specific keywords",
144
+ "references": [
145
+ "http://css-infos.net/property/-webkit-appearance"
146
+ ],
147
+ "syntax": "none | button | button-bevel | caps-lock-indicator | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | 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 | -apple-pay-button"
148
+ },
149
+ "-webkit-column-break-after": {
150
+ "comment": "added, http://help.dottoro.com/lcrthhhv.php",
151
+ "syntax": "always | auto | avoid"
152
+ },
153
+ "-webkit-column-break-before": {
154
+ "comment": "added, http://help.dottoro.com/lcxquvkf.php",
155
+ "syntax": "always | auto | avoid"
156
+ },
157
+ "-webkit-column-break-inside": {
158
+ "comment": "added, http://help.dottoro.com/lclhnthl.php",
159
+ "syntax": "always | auto | avoid"
160
+ },
161
+ "-webkit-font-smoothing": {
162
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",
163
+ "syntax": "auto | none | antialiased | subpixel-antialiased"
164
+ },
165
+ "-webkit-mask-box-image": {
166
+ "comment": "missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",
167
+ "syntax": "[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?"
168
+ },
169
+ "-webkit-print-color-adjust": {
170
+ "comment": "missed",
171
+ "references": [
172
+ "https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust"
173
+ ],
174
+ "syntax": "economy | exact"
175
+ },
176
+ "-webkit-text-security": {
177
+ "comment": "missed; http://help.dottoro.com/lcbkewgt.php",
178
+ "syntax": "none | circle | disc | square"
179
+ },
180
+ "-webkit-user-drag": {
181
+ "comment": "missed; http://help.dottoro.com/lcbixvwm.php",
182
+ "syntax": "none | element | auto"
183
+ },
184
+ "-webkit-user-select": {
185
+ "comment": "auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",
186
+ "syntax": "auto | none | text | all"
187
+ },
188
+ "alignment-baseline": {
189
+ "comment": "added SVG property",
190
+ "references": [
191
+ "https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty"
192
+ ],
193
+ "syntax": "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical"
194
+ },
195
+ "baseline-shift": {
196
+ "comment": "added SVG property",
197
+ "references": [
198
+ "https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty"
199
+ ],
200
+ "syntax": "baseline | sub | super | <svg-length>"
201
+ },
202
+ "behavior": {
203
+ "comment": "added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx",
204
+ "syntax": "<url>+"
205
+ },
206
+ "container-type": {
207
+ "comment": "https://www.w3.org/TR/css-contain-3/#propdef-container-type",
208
+ "syntax": "normal || [ size | inline-size ]"
209
+ },
210
+ "cue": {
211
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
212
+ "syntax": "<'cue-before'> <'cue-after'>?"
213
+ },
214
+ "cue-after": {
215
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
216
+ "syntax": "<url> <decibel>? | none"
217
+ },
218
+ "cue-before": {
219
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
220
+ "syntax": "<url> <decibel>? | none"
221
+ },
222
+ "cursor": {
223
+ "comment": "added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out",
224
+ "references": [
225
+ "https://www.sitepoint.com/css3-cursor-styles/"
226
+ ],
227
+ "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 ] ]"
228
+ },
229
+ "display": {
230
+ "comment": "extended with -ms-flexbox",
231
+ "syntax": "| <-non-standard-display>"
232
+ },
233
+ "position": {
234
+ "comment": "extended with -webkit-sticky",
235
+ "syntax": "| -webkit-sticky"
236
+ },
237
+ "dominant-baseline": {
238
+ "comment": "added SVG property",
239
+ "references": [
240
+ "https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty"
241
+ ],
242
+ "syntax": "auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge"
243
+ },
244
+ "image-rendering": {
245
+ "comment": "extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality",
246
+ "references": [
247
+ "https://developer.mozilla.org/en/docs/Web/CSS/image-rendering",
248
+ "https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty"
249
+ ],
250
+ "syntax": "| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>"
251
+ },
252
+ "fill-opacity": {
253
+ "comment": "added SVG property",
254
+ "references": [
255
+ "https://www.w3.org/TR/SVG/painting.html#FillProperty"
256
+ ],
257
+ "syntax": "<number-zero-one>"
258
+ },
259
+ "filter": {
260
+ "comment": "extend with IE legacy syntaxes",
261
+ "syntax": "| <-ms-filter-function-list>"
262
+ },
263
+ "font": {
264
+ "comment": "align with font-4, fix <'font-family'>#, add non standard fonts",
265
+ "references": [
266
+ "https://drafts.csswg.org/css-fonts-4/#font-prop",
267
+ "https://github.com/w3c/csswg-drafts/pull/10832",
268
+ "https://webkit.org/blog/3709/using-the-system-font-in-web-content/"
269
+ ],
270
+ "syntax": "[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name> | <-non-standard-font>"
271
+ },
272
+ "glyph-orientation-horizontal": {
273
+ "comment": "added SVG property",
274
+ "references": [
275
+ "https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty"
276
+ ],
277
+ "syntax": "<angle>"
278
+ },
279
+ "glyph-orientation-vertical": {
280
+ "comment": "added SVG property",
281
+ "references": [
282
+ "https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty"
283
+ ],
284
+ "syntax": "<angle>"
285
+ },
286
+ "kerning": {
287
+ "comment": "added SVG property",
288
+ "references": [
289
+ "https://www.w3.org/TR/SVG/text.html#KerningProperty"
290
+ ],
291
+ "syntax": "auto | <svg-length>"
292
+ },
293
+ "letter-spacing": {
294
+ "comment": "fix syntax <length> -> <length-percentage>",
295
+ "references": [
296
+ "https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing"
297
+ ],
298
+ "syntax": "normal | <length-percentage>"
299
+ },
300
+ "max-width": {
301
+ "comment": "extend by non-standard size keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",
302
+ "syntax": "| stretch | <-non-standard-size>"
303
+ },
304
+ "max-height": {
305
+ "comment": "extend by non-standard size keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",
306
+ "syntax": "| stretch | <-non-standard-size>"
307
+ },
308
+ "width": {
309
+ "references": [
310
+ "https://developer.mozilla.org/en-US/docs/Web/CSS/width",
311
+ "https://github.com/csstree/stylelint-validator/issues/29"
312
+ ],
313
+ "syntax": "| stretch | <-non-standard-size>"
314
+ },
315
+ "height": {
316
+ "syntax": "| stretch | <-non-standard-size>"
317
+ },
318
+ "min-width": {
319
+ "comment": "extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",
320
+ "syntax": "| stretch | <-non-standard-size>"
321
+ },
322
+ "min-height": {
323
+ "syntax": "| stretch | <-non-standard-size>"
324
+ },
325
+ "overflow": {
326
+ "comment": "extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",
327
+ "syntax": "| <-non-standard-overflow>"
328
+ },
329
+ "overflow-x": {
330
+ "comment": "extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-x",
331
+ "syntax": "| <-non-standard-overflow>"
332
+ },
333
+ "overflow-y": {
334
+ "comment": "extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-y",
335
+ "syntax": "| <-non-standard-overflow>"
336
+ },
337
+ "pause": {
338
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
339
+ "syntax": "<'pause-before'> <'pause-after'>?"
340
+ },
341
+ "pause-after": {
342
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
343
+ "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong"
344
+ },
345
+ "pause-before": {
346
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
347
+ "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong"
348
+ },
349
+ "position-try-options": {
350
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/position-try-fallbacks",
351
+ "syntax": "<'position-try-fallbacks'>"
352
+ },
353
+ "rest": {
354
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
355
+ "syntax": "<'rest-before'> <'rest-after'>?"
356
+ },
357
+ "rest-after": {
358
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
359
+ "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong"
360
+ },
361
+ "rest-before": {
362
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
363
+ "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong"
364
+ },
365
+ "scroll-timeline": {
366
+ "comment": "fix according to spec",
367
+ "references": [
368
+ "https://www.w3.org/TR/scroll-animations-1/#scroll-timeline-shorthand"
369
+ ],
370
+ "syntax": "[ <'scroll-timeline-name'> || <'scroll-timeline-axis'> ]#"
371
+ },
372
+ "src": {
373
+ "comment": "added @font-face's src property https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src",
374
+ "syntax": "[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#"
375
+ },
376
+ "speak": {
377
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
378
+ "syntax": "auto | never | always"
379
+ },
380
+ "stroke-dasharray": {
381
+ "comment": "added SVG property; a list of comma and/or white space separated <length>s and <percentage>s",
382
+ "references": [
383
+ "https://www.w3.org/TR/SVG/painting.html#StrokeProperties"
384
+ ],
385
+ "syntax": "none | [ <svg-length>+ ]#"
386
+ },
387
+ "stroke-dashoffset": {
388
+ "comment": "added SVG property",
389
+ "references": [
390
+ "https://www.w3.org/TR/SVG/painting.html#StrokeProperties"
391
+ ],
392
+ "syntax": "<svg-length>"
393
+ },
394
+ "stroke-linejoin": {
395
+ "comment": "added SVG property",
396
+ "references": [
397
+ "https://www.w3.org/TR/SVG/painting.html#StrokeProperties"
398
+ ],
399
+ "syntax": "miter | round | bevel"
400
+ },
401
+ "stroke-miterlimit": {
402
+ "comment": "added SVG property (<miterlimit> = <number-one-or-greater>) ",
403
+ "references": [
404
+ "https://www.w3.org/TR/SVG/painting.html#StrokeProperties"
405
+ ],
406
+ "syntax": "<number-one-or-greater>"
407
+ },
408
+ "stroke-width": {
409
+ "comment": "added SVG property",
410
+ "references": [
411
+ "https://www.w3.org/TR/SVG/painting.html#StrokeProperties"
412
+ ],
413
+ "syntax": "<svg-length>"
414
+ },
415
+ "unicode-bidi": {
416
+ "comment": "added prefixed keywords https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",
417
+ "syntax": "| -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext"
418
+ },
419
+ "unicode-range": {
420
+ "comment": "added missed property https://developer.mozilla.org/en-US/docs/Web/CSS/%40font-face/unicode-range",
421
+ "syntax": "<urange>#"
422
+ },
423
+ "voice-balance": {
424
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
425
+ "syntax": "<number> | left | center | right | leftwards | rightwards"
426
+ },
427
+ "voice-duration": {
428
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
429
+ "syntax": "auto | <time>"
430
+ },
431
+ "voice-family": {
432
+ "comment": "<name> -> <family-name>, https://www.w3.org/TR/css3-speech/#property-index",
433
+ "syntax": "[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve"
434
+ },
435
+ "voice-pitch": {
436
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
437
+ "syntax": "<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"
438
+ },
439
+ "voice-range": {
440
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
441
+ "syntax": "<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"
442
+ },
443
+ "voice-rate": {
444
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
445
+ "syntax": "[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>"
446
+ },
447
+ "voice-stress": {
448
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
449
+ "syntax": "normal | strong | moderate | none | reduced"
450
+ },
451
+ "voice-volume": {
452
+ "comment": "https://www.w3.org/TR/css3-speech/#property-index",
453
+ "syntax": "silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]"
454
+ },
455
+ "writing-mode": {
456
+ "comment": "extend with SVG keywords",
457
+ "syntax": "| <svg-writing-mode>"
458
+ },
459
+ "white-space-trim": {
460
+ "syntax": "none | discard-before || discard-after || discard-inner",
461
+ "comment": "missed, https://www.w3.org/TR/css-text-4/#white-space-trim"
462
+ }
463
+ },
464
+ "types": {
465
+ "-legacy-gradient": {
466
+ "comment": "added collection of legacy gradient syntaxes",
467
+ "syntax": "<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>"
468
+ },
469
+ "-legacy-linear-gradient": {
470
+ "comment": "like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",
471
+ "syntax": "-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )"
472
+ },
473
+ "-legacy-repeating-linear-gradient": {
474
+ "comment": "like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",
475
+ "syntax": "-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )"
476
+ },
477
+ "-legacy-linear-gradient-arguments": {
478
+ "comment": "like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",
479
+ "syntax": "[ <angle> | <side-or-corner> ]? , <color-stop-list>"
480
+ },
481
+ "-legacy-radial-gradient": {
482
+ "comment": "deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",
483
+ "syntax": "-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )"
484
+ },
485
+ "-legacy-repeating-radial-gradient": {
486
+ "comment": "deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",
487
+ "syntax": "-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )"
488
+ },
489
+ "-legacy-radial-gradient-arguments": {
490
+ "comment": "deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",
491
+ "syntax": "[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>"
492
+ },
493
+ "-legacy-radial-gradient-size": {
494
+ "comment": "before a standard it contains 2 extra keywords (`contain` and `cover`) https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltsize",
495
+ "syntax": "closest-side | closest-corner | farthest-side | farthest-corner | contain | cover"
496
+ },
497
+ "-legacy-radial-gradient-shape": {
498
+ "comment": "define to double sure it doesn't extends in future https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltshape",
499
+ "syntax": "circle | ellipse"
500
+ },
501
+ "-non-standard-font": {
502
+ "comment": "non standard fonts",
503
+ "references": [
504
+ "https://webkit.org/blog/3709/using-the-system-font-in-web-content/"
505
+ ],
506
+ "syntax": "-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"
507
+ },
508
+ "-non-standard-color": {
509
+ "comment": "non standard colors",
510
+ "references": [
511
+ "http://cssdot.ru/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_CSS/color-i305.html",
512
+ "https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Mozilla_Color_Preference_Extensions"
513
+ ],
514
+ "syntax": "-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"
515
+ },
516
+ "-non-standard-image-rendering": {
517
+ "comment": "non-standard keywords http://phrogz.net/tmp/canvas_image_zoom.html",
518
+ "syntax": "optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast"
519
+ },
520
+ "-non-standard-overflow": {
521
+ "comment": "non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",
522
+ "syntax": "overlay | -moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable"
523
+ },
524
+ "-non-standard-size": {
525
+ "comment": "non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",
526
+ "syntax": "intrinsic | min-intrinsic | -webkit-fill-available | -webkit-fit-content | -webkit-min-content | -webkit-max-content | -moz-available | -moz-fit-content | -moz-min-content | -moz-max-content"
527
+ },
528
+ "-webkit-gradient()": {
529
+ "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/ - TODO: simplify when after match algorithm improvement ( [, point, radius | , point] -> [, radius]? , point )",
530
+ "syntax": "-webkit-gradient( <-webkit-gradient-type>, <-webkit-gradient-point> [, <-webkit-gradient-point> | , <-webkit-gradient-radius>, <-webkit-gradient-point> ] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )"
531
+ },
532
+ "-webkit-gradient-color-stop": {
533
+ "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",
534
+ "syntax": "from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )"
535
+ },
536
+ "-webkit-gradient-point": {
537
+ "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",
538
+ "syntax": "[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]"
539
+ },
540
+ "-webkit-gradient-radius": {
541
+ "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",
542
+ "syntax": "<length> | <percentage>"
543
+ },
544
+ "-webkit-gradient-type": {
545
+ "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",
546
+ "syntax": "linear | radial"
547
+ },
548
+ "-webkit-mask-box-repeat": {
549
+ "comment": "missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",
550
+ "syntax": "repeat | stretch | round"
551
+ },
552
+ "-ms-filter-function-list": {
553
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",
554
+ "syntax": "<-ms-filter-function>+"
555
+ },
556
+ "-ms-filter-function": {
557
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",
558
+ "syntax": "<-ms-filter-function-progid> | <-ms-filter-function-legacy>"
559
+ },
560
+ "-ms-filter-function-progid": {
561
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",
562
+ "syntax": "'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]"
563
+ },
564
+ "-ms-filter-function-legacy": {
565
+ "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",
566
+ "syntax": "<ident-token> | <function-token> <any-value>? )"
567
+ },
568
+ "absolute-color-base": {
569
+ "comment": "https://www.w3.org/TR/css-color-4/#color-syntax",
570
+ "syntax": "<hex-color> | <absolute-color-function> | <named-color> | transparent"
571
+ },
572
+ "absolute-color-function": {
573
+ "comment": "https://www.w3.org/TR/css-color-4/#color-syntax",
574
+ "syntax": "<rgb()> | <rgba()> | <hsl()> | <hsla()> | <hwb()> | <lab()> | <lch()> | <oklab()> | <oklch()> | <color()>"
575
+ },
576
+ "age": {
577
+ "comment": "https://www.w3.org/TR/css3-speech/#voice-family",
578
+ "syntax": "child | young | old"
579
+ },
580
+ "attr-name": {
581
+ "syntax": "<wq-name>"
582
+ },
583
+ "attr-fallback": {
584
+ "syntax": "<any-value>"
585
+ },
586
+ "bottom": {
587
+ "comment": "missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",
588
+ "syntax": "<length> | auto"
589
+ },
590
+ "content-list": {
591
+ "comment": "added attr(), see https://github.com/csstree/csstree/issues/201",
592
+ "syntax": "[ <string> | contents | <image> | <counter> | <quote> | <target> | <leader()> | <attr()> ]+"
593
+ },
594
+ "container-name": {
595
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#container-rule",
596
+ "syntax": "<custom-ident>"
597
+ },
598
+ "container-condition": {
599
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#container-rule",
600
+ "syntax": "not <query-in-parens> | <query-in-parens> [ [ and <query-in-parens> ]* | [ or <query-in-parens> ]* ]"
601
+ },
602
+ "coord-box": {
603
+ "syntax": "content-box | padding-box | border-box | fill-box | stroke-box | view-box"
604
+ },
605
+ "element()": {
606
+ "comment": "https://drafts.csswg.org/css-gcpm/#element-syntax & https://drafts.csswg.org/css-images-4/#element-notation",
607
+ "syntax": "element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )"
608
+ },
609
+ "generic-voice": {
610
+ "comment": "https://www.w3.org/TR/css3-speech/#voice-family",
611
+ "syntax": "[ <age>? <gender> <integer>? ]"
612
+ },
613
+ "gender": {
614
+ "comment": "https://www.w3.org/TR/css3-speech/#voice-family",
615
+ "syntax": "male | female | neutral"
616
+ },
617
+ "general-enclosed": {
618
+ "comment": "remove ident-token, optional any-value, brackets (see https://drafts.csswg.org/mediaqueries-5/#typedef-general-enclosed)",
619
+ "syntax": "[ <function-token> <any-value>? ) ] | [ ( <any-value>? ) ]"
620
+ },
621
+ "generic-family": {
622
+ "comment": "new definition on font-4, https://drafts.csswg.org/css-fonts-4/#typedef-generic-family",
623
+ "syntax": "<generic-script-specific>| <generic-complete> | <generic-incomplete> | <-non-standard-generic-family>"
624
+ },
625
+ "generic-script-specific": {
626
+ "syntax": "generic(kai) | generic(fangsong) | generic(nastaliq)"
627
+ },
628
+ "generic-complete": {
629
+ "syntax": "serif | sans-serif | system-ui | cursive | fantasy | math | monospace"
630
+ },
631
+ "generic-incomplete": {
632
+ "syntax": "ui-serif | ui-sans-serif | ui-monospace | ui-rounded"
633
+ },
634
+ "-non-standard-generic-family": {
635
+ "syntax": "-apple-system | BlinkMacSystemFont",
636
+ "references": [
637
+ "https://css-tricks.com/snippets/css/system-font-stack/",
638
+ "https://webkit.org/blog/3709/using-the-system-font-in-web-content/"
639
+ ]
640
+ },
641
+ "gradient": {
642
+ "comment": "added legacy syntaxes support",
643
+ "syntax": "| <-legacy-gradient>"
644
+ },
645
+ "intrinsic-size-keyword": {
646
+ "comment": "Missing from mdn-data. 4.3. Intrinsic Size Keywords https://www.w3.org/TR/css-sizing-4/#intrinsic-size-keywords",
647
+ "syntax": "min-content | max-content | fit-content"
648
+ },
649
+ "left": {
650
+ "comment": "missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",
651
+ "syntax": "<length> | auto"
652
+ },
653
+ "color": {
654
+ "comment": "css-color-5, added non standard color names",
655
+ "syntax": "<color-base> | currentColor | <system-color> | <device-cmyk()> | <light-dark()> | <-non-standard-color>"
656
+ },
657
+ "device-cmyk()": {
658
+ "syntax": "<legacy-device-cmyk-syntax> | <modern-device-cmyk-syntax>"
659
+ },
660
+ "legacy-device-cmyk-syntax": {
661
+ "syntax": "device-cmyk( <number>#{4} )"
662
+ },
663
+ "modern-device-cmyk-syntax": {
664
+ "syntax": "device-cmyk( <cmyk-component>{4} [ / [ <alpha-value> | none ] ]? )"
665
+ },
666
+ "cmyk-component": {
667
+ "syntax": "<number> | <percentage> | none"
668
+ },
669
+ "color-mix()": {
670
+ "syntax": "color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#{2} )"
671
+ },
672
+ "color-space": {
673
+ "syntax": "<rectangular-color-space> | <polar-color-space> | <custom-color-space>"
674
+ },
675
+ "paint": {
676
+ "comment": "used by SVG https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint",
677
+ "syntax": "none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke"
678
+ },
679
+ "right": {
680
+ "comment": "missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",
681
+ "syntax": "<length> | auto"
682
+ },
683
+ "shape": {
684
+ "comment": "missed spaces in function body and add backwards compatible syntax",
685
+ "syntax": "rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )"
686
+ },
687
+ "scope-start": {
688
+ "syntax": "<forgiving-selector-list>"
689
+ },
690
+ "scope-end": {
691
+ "syntax": "<forgiving-selector-list>"
692
+ },
693
+ "forgiving-selector-list": {
694
+ "syntax": "<complex-real-selector-list>"
695
+ },
696
+ "forgiving-relative-selector-list": {
697
+ "syntax": "<relative-real-selector-list>"
698
+ },
699
+ "complex-real-selector-list": {
700
+ "syntax": "<complex-real-selector>#"
701
+ },
702
+ "simple-selector-list": {
703
+ "syntax": "<simple-selector>#"
704
+ },
705
+ "relative-real-selector-list": {
706
+ "syntax": "<relative-real-selector>#"
707
+ },
708
+ "complex-selector": {
709
+ "syntax": "<complex-selector-unit> [ <combinator>? <complex-selector-unit> ]*"
710
+ },
711
+ "complex-selector-unit": {
712
+ "syntax": "[ <compound-selector>? <pseudo-compound-selector>* ]!"
713
+ },
714
+ "complex-real-selector": {
715
+ "syntax": "<compound-selector> [ <combinator>? <compound-selector> ]*"
716
+ },
717
+ "relative-real-selector": {
718
+ "syntax": "<combinator>? <complex-real-selector>"
719
+ },
720
+ "compound-selector": {
721
+ "syntax": "[ <type-selector>? <subclass-selector>* ]!"
722
+ },
723
+ "pseudo-compound-selector": {
724
+ "syntax": " <pseudo-element-selector> <pseudo-class-selector>*"
725
+ },
726
+ "simple-selector": {
727
+ "syntax": "<type-selector> | <subclass-selector>"
728
+ },
729
+ "combinator": {
730
+ "syntax": "'>' | '+' | '~' | [ '|' '|' ]"
731
+ },
732
+ "pseudo-element-selector": {
733
+ "syntax": "':' <pseudo-class-selector> | <legacy-pseudo-element-selector>"
734
+ },
735
+ "legacy-pseudo-element-selector": {
736
+ "syntax": " ':' [before | after | first-line | first-letter]"
737
+ },
738
+ "svg-length": {
739
+ "comment": "All coordinates and lengths in SVG can be specified with or without a unit identifier",
740
+ "references": [
741
+ "https://www.w3.org/TR/SVG11/coords.html#Units"
742
+ ],
743
+ "syntax": "<percentage> | <length> | <number>"
744
+ },
745
+ "svg-writing-mode": {
746
+ "comment": "SVG specific keywords (deprecated for CSS)",
747
+ "references": [
748
+ "https://developer.mozilla.org/en/docs/Web/CSS/writing-mode",
749
+ "https://www.w3.org/TR/SVG/text.html#WritingModeProperty"
750
+ ],
751
+ "syntax": "lr-tb | rl-tb | tb-rl | lr | rl | tb"
752
+ },
753
+ "top": {
754
+ "comment": "missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",
755
+ "syntax": "<length> | auto"
756
+ },
757
+ "x": {
758
+ "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",
759
+ "syntax": "<number>"
760
+ },
761
+ "y": {
762
+ "comment": "missed; not sure we should add it, but no others except `cursor` is using so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",
763
+ "syntax": "<number>"
764
+ },
765
+ "declaration": {
766
+ "comment": "missed, restored by https://drafts.csswg.org/css-syntax",
767
+ "syntax": "<ident-token> : <declaration-value>? [ '!' important ]?"
768
+ },
769
+ "declaration-list": {
770
+ "comment": "missed, restored by https://drafts.csswg.org/css-syntax",
771
+ "syntax": "[ <declaration>? ';' ]* <declaration>?"
772
+ },
773
+ "url": {
774
+ "comment": "https://drafts.csswg.org/css-values-4/#urls",
775
+ "syntax": "url( <string> <url-modifier>* ) | <url-token>"
776
+ },
777
+ "url-modifier": {
778
+ "comment": "https://drafts.csswg.org/css-values-4/#typedef-url-modifier",
779
+ "syntax": "<ident> | <function-token> <any-value> )"
780
+ },
781
+ "number-zero-one": {
782
+ "syntax": "<number [0,1]>"
783
+ },
784
+ "number-one-or-greater": {
785
+ "syntax": "<number [1,∞]>"
786
+ },
787
+ "color()": {
788
+ "syntax": "color( <colorspace-params> [ / [ <alpha-value> | none ] ]? )"
789
+ },
790
+ "colorspace-params": {
791
+ "syntax": "[ <predefined-rgb-params> | <xyz-params>]"
792
+ },
793
+ "xyz-params": {
794
+ "syntax": "<xyz-space> [ <number> | <percentage> | none ]{3}"
795
+ },
796
+ "xyz-space": {
797
+ "syntax": "xyz | xyz-d50 | xyz-d65"
798
+ },
799
+ "basic-shape": {
800
+ "syntax": "<inset()> | <xywh()> | <rect()> | <circle()> | <ellipse()> | <polygon()> | <path()>"
801
+ },
802
+ "query-in-parens": {
803
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#container-rule",
804
+ "syntax": "( <container-condition> ) | ( <size-feature> ) | style( <style-query> ) | <general-enclosed>"
805
+ },
806
+ "size-feature": {
807
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#typedef-size-feature",
808
+ "syntax": "<mf-plain> | <mf-boolean> | <mf-range>"
809
+ },
810
+ "style-feature": {
811
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#typedef-style-feature",
812
+ "syntax": "<declaration>"
813
+ },
814
+ "style-query": {
815
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#container-rule",
816
+ "syntax": "<style-condition> | <style-feature>"
817
+ },
818
+ "style-condition": {
819
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#container-rule",
820
+ "syntax": "not <style-in-parens> | <style-in-parens> [ [ and <style-in-parens> ]* | [ or <style-in-parens> ]* ]"
821
+ },
822
+ "style-in-parens": {
823
+ "comment": "missed, https://drafts.csswg.org/css-contain-3/#container-rule",
824
+ "syntax": "( <style-condition> ) | ( <style-feature> ) | <general-enclosed>"
825
+ },
826
+ "-non-standard-display": {
827
+ "syntax": "-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"
828
+ },
829
+ "inset-area": {
830
+ "syntax": "[ [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | x-self-start | x-self-end | span-x-self-start | span-x-self-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | y-self-start | y-self-end | span-y-self-start | span-y-self-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2} ]",
831
+ "comment": "initial name for <position-area> before renamed",
832
+ "references": [
833
+ "https://www.w3.org/TR/css-anchor-position-1/#inset-area"
834
+ ]
835
+ },
836
+ "position-area": {
837
+ "syntax": "[ [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | x-self-start | x-self-end | span-x-self-start | span-x-self-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | y-self-start | y-self-end | span-y-self-start | span-y-self-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2} ]",
838
+ "comment": "replaced <inset-area>",
839
+ "references": [
840
+ "https://drafts.csswg.org/css-anchor-position-1/#typedef-position-area"
841
+ ]
842
+ },
843
+ "anchor()": {
844
+ "syntax": "anchor( <anchor-element>? && <anchor-side>, <length-percentage>? )",
845
+ "comment": "missed",
846
+ "references": [
847
+ "https://drafts.csswg.org/css-anchor-position-1/#anchor-pos"
848
+ ]
849
+ },
850
+ "anchor-size()": {
851
+ "syntax": "anchor-size( [ <anchor-element> || <anchor-size> ]? , <length-percentage>? )",
852
+ "comment": "missed",
853
+ "references": [
854
+ "https://drafts.csswg.org/css-anchor-position-1/#funcdef-anchor-size"
855
+ ]
856
+ },
857
+ "anchor-element": {
858
+ "syntax": "<dashed-ident>",
859
+ "comment": "missed, https://drafts.csswg.org/css-anchor-position-1/#typedef-anchor-element"
860
+ },
861
+ "font-variant-css2": {
862
+ "syntax": "normal | small-caps",
863
+ "comment": "new definition on font-4, https://drafts.csswg.org/css-fonts-4/#font-variant-css21-values"
864
+ },
865
+ "font-width-css3": {
866
+ "syntax": "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded",
867
+ "comment": "new definition on font-4, https://drafts.csswg.org/css-fonts-4/#font-width-css3-values"
868
+ },
869
+ "system-family-name": {
870
+ "syntax": "caption | icon | menu | message-box | small-caption | status-bar",
871
+ "comment": "new definition on font-4, https://drafts.csswg.org/css-fonts-4/#system-family-name-value"
872
+ }
873
+ }
874
+ }