@tbela99/css-parser 1.0.0 → 1.1.1-alpha4

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 (87) hide show
  1. package/CHANGELOG.md +269 -0
  2. package/README.md +16 -11
  3. package/dist/index-umd-web.js +3805 -1894
  4. package/dist/index.cjs +3806 -1895
  5. package/dist/index.d.ts +184 -57
  6. package/dist/lib/ast/expand.js +2 -1
  7. package/dist/lib/ast/features/calc.js +12 -1
  8. package/dist/lib/ast/features/inlinecssvariables.js +47 -24
  9. package/dist/lib/ast/features/prefix.js +117 -86
  10. package/dist/lib/ast/features/shorthand.js +29 -6
  11. package/dist/lib/ast/features/transform.js +10 -3
  12. package/dist/lib/ast/features/type.js +7 -0
  13. package/dist/lib/ast/math/expression.js +7 -1
  14. package/dist/lib/ast/math/math.js +6 -0
  15. package/dist/lib/ast/minify.js +165 -77
  16. package/dist/lib/ast/transform/compute.js +1 -0
  17. package/dist/lib/ast/transform/matrix.js +1 -0
  18. package/dist/lib/ast/types.js +26 -15
  19. package/dist/lib/ast/utils/utils.js +104 -0
  20. package/dist/lib/ast/walk.js +33 -7
  21. package/dist/lib/fs/resolve.js +10 -0
  22. package/dist/lib/parser/declaration/list.js +48 -45
  23. package/dist/lib/parser/declaration/map.js +1 -0
  24. package/dist/lib/parser/declaration/set.js +2 -1
  25. package/dist/lib/parser/parse.js +350 -279
  26. package/dist/lib/parser/tokenize.js +147 -72
  27. package/dist/lib/parser/utils/declaration.js +4 -3
  28. package/dist/lib/parser/utils/type.js +2 -1
  29. package/dist/lib/renderer/color/a98rgb.js +2 -1
  30. package/dist/lib/renderer/color/color-mix.js +10 -7
  31. package/dist/lib/renderer/color/color.js +171 -153
  32. package/dist/lib/renderer/color/hex.js +2 -1
  33. package/dist/lib/renderer/color/hsl.js +2 -1
  34. package/dist/lib/renderer/color/hwb.js +2 -1
  35. package/dist/lib/renderer/color/lab.js +2 -1
  36. package/dist/lib/renderer/color/lch.js +2 -1
  37. package/dist/lib/renderer/color/oklab.js +2 -1
  38. package/dist/lib/renderer/color/oklch.js +2 -1
  39. package/dist/lib/renderer/color/p3.js +2 -1
  40. package/dist/lib/renderer/color/rec2020.js +2 -1
  41. package/dist/lib/renderer/color/relativecolor.js +17 -11
  42. package/dist/lib/renderer/color/rgb.js +4 -3
  43. package/dist/lib/renderer/color/srgb.js +18 -17
  44. package/dist/lib/renderer/color/utils/components.js +6 -5
  45. package/dist/lib/renderer/color/utils/constants.js +47 -3
  46. package/dist/lib/renderer/color/xyz.js +2 -1
  47. package/dist/lib/renderer/color/xyzd50.js +2 -1
  48. package/dist/lib/renderer/render.js +48 -20
  49. package/dist/lib/syntax/syntax.js +257 -140
  50. package/dist/lib/validation/at-rules/container.js +75 -97
  51. package/dist/lib/validation/at-rules/counter-style.js +9 -8
  52. package/dist/lib/validation/at-rules/custom-media.js +13 -15
  53. package/dist/lib/validation/at-rules/document.js +22 -27
  54. package/dist/lib/validation/at-rules/font-feature-values.js +8 -8
  55. package/dist/lib/validation/at-rules/import.js +30 -81
  56. package/dist/lib/validation/at-rules/keyframes.js +18 -22
  57. package/dist/lib/validation/at-rules/layer.js +5 -5
  58. package/dist/lib/validation/at-rules/media.js +42 -52
  59. package/dist/lib/validation/at-rules/namespace.js +19 -23
  60. package/dist/lib/validation/at-rules/page-margin-box.js +15 -18
  61. package/dist/lib/validation/at-rules/page.js +8 -7
  62. package/dist/lib/validation/at-rules/supports.js +73 -82
  63. package/dist/lib/validation/at-rules/when.js +32 -36
  64. package/dist/lib/validation/atrule.js +15 -14
  65. package/dist/lib/validation/config.js +24 -1
  66. package/dist/lib/validation/config.json.js +611 -111
  67. package/dist/lib/validation/parser/parse.js +206 -212
  68. package/dist/lib/validation/parser/types.js +1 -1
  69. package/dist/lib/validation/selector.js +3 -3
  70. package/dist/lib/validation/syntax.js +984 -0
  71. package/dist/lib/validation/syntaxes/complex-selector-list.js +10 -11
  72. package/dist/lib/validation/syntaxes/complex-selector.js +10 -11
  73. package/dist/lib/validation/syntaxes/compound-selector.js +40 -50
  74. package/dist/lib/validation/syntaxes/family-name.js +9 -8
  75. package/dist/lib/validation/syntaxes/keyframe-block-list.js +4 -3
  76. package/dist/lib/validation/syntaxes/keyframe-selector.js +15 -18
  77. package/dist/lib/validation/syntaxes/layer-name.js +6 -5
  78. package/dist/lib/validation/syntaxes/relative-selector-list.js +7 -6
  79. package/dist/lib/validation/syntaxes/relative-selector.js +2 -1
  80. package/dist/lib/validation/syntaxes/url.js +18 -22
  81. package/dist/lib/validation/utils/list.js +2 -1
  82. package/dist/lib/validation/utils/whitespace.js +2 -1
  83. package/dist/node/index.js +4 -2
  84. package/dist/node/load.js +5 -0
  85. package/dist/web/index.js +4 -2
  86. package/dist/web/load.js +5 -0
  87. package/package.json +14 -13
@@ -60,7 +60,7 @@ var declarations = {
60
60
  syntax: "auto | after"
61
61
  },
62
62
  "-ms-overflow-style": {
63
- syntax: "auto | none | scrollbar | -ms-autohiding-scrollbar"
63
+ syntax: "auto | none | scrollbar | -ms-autohiding-scrollbar auto | none | scrollbar | -ms-autohiding-scrollbar"
64
64
  },
65
65
  "-ms-scroll-chaining": {
66
66
  syntax: "chained | none"
@@ -170,9 +170,6 @@ var declarations = {
170
170
  "-moz-force-broken-image-icon": {
171
171
  syntax: "0 | 1"
172
172
  },
173
- "-moz-image-region": {
174
- syntax: "<shape> | auto"
175
- },
176
173
  "-moz-orient": {
177
174
  syntax: "inline | block | horizontal | vertical"
178
175
  },
@@ -213,7 +210,7 @@ var declarations = {
213
210
  syntax: "default | menu | tooltip | sheet | none"
214
211
  },
215
212
  "-webkit-appearance": {
216
- syntax: "none | button | button-bevel | 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 | 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"
213
+ syntax: "none | button | button-bevel | 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 | 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 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"
217
214
  },
218
215
  "-webkit-border-before": {
219
216
  syntax: "<'border-width'> || <'border-style'> || <color>"
@@ -297,7 +294,7 @@ var declarations = {
297
294
  syntax: "read-only | read-write | read-write-plaintext-only"
298
295
  },
299
296
  "-webkit-user-select": {
300
- syntax: "auto | text | none | all"
297
+ syntax: "auto | text | none | all auto | none | text | all"
301
298
  },
302
299
  "accent-color": {
303
300
  syntax: "auto | <color>"
@@ -314,6 +311,9 @@ var declarations = {
314
311
  "align-tracks": {
315
312
  syntax: "[ normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ]#"
316
313
  },
314
+ "alignment-baseline": {
315
+ syntax: "baseline | alphabetic | ideographic | middle | central | mathematical | text-before-edge | text-after-edge auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical"
316
+ },
317
317
  all: {
318
318
  syntax: "initial | inherit | unset | revert | revert-layer"
319
319
  },
@@ -336,7 +336,7 @@ var declarations = {
336
336
  syntax: "<single-animation-direction>#"
337
337
  },
338
338
  "animation-duration": {
339
- syntax: "<time>#"
339
+ syntax: "[ auto | <time [0s,∞]> ]#"
340
340
  },
341
341
  "animation-fill-mode": {
342
342
  syntax: "<single-animation-fill-mode>#"
@@ -413,6 +413,9 @@ var declarations = {
413
413
  "background-size": {
414
414
  syntax: "<bg-size>#"
415
415
  },
416
+ "baseline-shift": {
417
+ syntax: "<length-percentage> | sub | super | baseline baseline | sub | super | <svg-length>"
418
+ },
416
419
  "block-size": {
417
420
  syntax: "<'width'>"
418
421
  },
@@ -732,7 +735,7 @@ var declarations = {
732
735
  syntax: "none | <custom-ident>+"
733
736
  },
734
737
  "container-type": {
735
- syntax: "normal | size | inline-size"
738
+ syntax: "normal | [ [ size | inline-size ] || scroll-state ]"
736
739
  },
737
740
  content: {
738
741
  syntax: "normal | none | [ <content-replacement> | <content-list> ] [/ [ <string> | <counter> ]+ ]?"
@@ -750,7 +753,7 @@ var declarations = {
750
753
  syntax: "[ <counter-name> <integer>? ]+ | none"
751
754
  },
752
755
  cursor: {
753
- 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 ] ]"
756
+ 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 ] ] [ [ <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 ] ]"
754
757
  },
755
758
  cx: {
756
759
  syntax: "<length> | <percentage>"
@@ -765,10 +768,10 @@ var declarations = {
765
768
  syntax: "ltr | rtl"
766
769
  },
767
770
  display: {
768
- syntax: "[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>"
771
+ syntax: "[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy> | <-non-standard-display>"
769
772
  },
770
773
  "dominant-baseline": {
771
- syntax: "auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top"
774
+ syntax: "auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge"
772
775
  },
773
776
  "empty-cells": {
774
777
  syntax: "show | hide"
@@ -780,13 +783,13 @@ var declarations = {
780
783
  syntax: "<paint>"
781
784
  },
782
785
  "fill-opacity": {
783
- syntax: "<'opacity'>"
786
+ syntax: "<'opacity'> <number-zero-one>"
784
787
  },
785
788
  "fill-rule": {
786
789
  syntax: "nonzero | evenodd"
787
790
  },
788
791
  filter: {
789
- syntax: "none | <filter-value-list>"
792
+ syntax: "none | <filter-value-list> | <-ms-filter-function-list>"
790
793
  },
791
794
  flex: {
792
795
  syntax: "none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]"
@@ -819,7 +822,7 @@ var declarations = {
819
822
  syntax: "<'opacity'>"
820
823
  },
821
824
  font: {
822
- 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"
825
+ syntax: "[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name> [ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name> | <-non-standard-font>"
823
826
  },
824
827
  "font-family": {
825
828
  syntax: "[ <family-name> | <generic-family> ]#"
@@ -840,7 +843,7 @@ var declarations = {
840
843
  syntax: "normal | light | dark | <palette-identifier> | <palette-mix()>"
841
844
  },
842
845
  "font-size": {
843
- syntax: "<absolute-size> | <relative-size> | <length-percentage>"
846
+ syntax: "<absolute-size> | <relative-size> | <length-percentage [0,∞]> | math"
844
847
  },
845
848
  "font-size-adjust": {
846
849
  syntax: "none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number> ]"
@@ -899,6 +902,9 @@ var declarations = {
899
902
  "font-weight": {
900
903
  syntax: "<font-weight-absolute> | bolder | lighter"
901
904
  },
905
+ "font-width": {
906
+ syntax: "normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded"
907
+ },
902
908
  "forced-color-adjust": {
903
909
  syntax: "auto | none | preserve-parent-color"
904
910
  },
@@ -963,7 +969,7 @@ var declarations = {
963
969
  syntax: "none | [ first || [ force-end | allow-end ] || last ]"
964
970
  },
965
971
  height: {
966
- syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>"
972
+ syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | <-non-standard-size>"
967
973
  },
968
974
  "hyphenate-character": {
969
975
  syntax: "auto | <string>"
@@ -978,7 +984,7 @@ var declarations = {
978
984
  syntax: "from-image | <angle> | [ <angle>? flip ]"
979
985
  },
980
986
  "image-rendering": {
981
- syntax: "auto | crisp-edges | pixelated | smooth"
987
+ syntax: "auto | crisp-edges | pixelated | smooth | optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>"
982
988
  },
983
989
  "image-resolution": {
984
990
  syntax: "[ from-image || <resolution> ] && snap?"
@@ -1038,7 +1044,7 @@ var declarations = {
1038
1044
  syntax: "<length> | <percentage> | auto"
1039
1045
  },
1040
1046
  "letter-spacing": {
1041
- syntax: "normal | <length>"
1047
+ syntax: "normal | <length> normal | <length-percentage>"
1042
1048
  },
1043
1049
  "lighting-color": {
1044
1050
  syntax: "<color>"
@@ -1182,7 +1188,7 @@ var declarations = {
1182
1188
  syntax: "<'max-width'>"
1183
1189
  },
1184
1190
  "max-height": {
1185
- syntax: "none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>"
1191
+ syntax: "none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | <-non-standard-size>"
1186
1192
  },
1187
1193
  "max-inline-size": {
1188
1194
  syntax: "<'max-width'>"
@@ -1191,19 +1197,19 @@ var declarations = {
1191
1197
  syntax: "none | <integer>"
1192
1198
  },
1193
1199
  "max-width": {
1194
- syntax: "none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>"
1200
+ syntax: "none | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | <-non-standard-size>"
1195
1201
  },
1196
1202
  "min-block-size": {
1197
1203
  syntax: "<'min-width'>"
1198
1204
  },
1199
1205
  "min-height": {
1200
- syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>"
1206
+ syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | <-non-standard-size>"
1201
1207
  },
1202
1208
  "min-inline-size": {
1203
1209
  syntax: "<'min-width'>"
1204
1210
  },
1205
1211
  "min-width": {
1206
- syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>"
1212
+ syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | <-non-standard-size>"
1207
1213
  },
1208
1214
  "mix-blend-mode": {
1209
1215
  syntax: "<blend-mode> | plus-lighter"
@@ -1214,6 +1220,9 @@ var declarations = {
1214
1220
  "object-position": {
1215
1221
  syntax: "<position>"
1216
1222
  },
1223
+ "object-view-box": {
1224
+ syntax: "none | <basic-shape-rect>"
1225
+ },
1217
1226
  offset: {
1218
1227
  syntax: "[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?"
1219
1228
  },
@@ -1257,7 +1266,7 @@ var declarations = {
1257
1266
  syntax: "<line-width>"
1258
1267
  },
1259
1268
  overflow: {
1260
- syntax: "[ visible | hidden | clip | scroll | auto ]{1,2}"
1269
+ syntax: "[ visible | hidden | clip | scroll | auto ]{1,2} | <-non-standard-overflow>"
1261
1270
  },
1262
1271
  "overflow-anchor": {
1263
1272
  syntax: "auto | none"
@@ -1278,10 +1287,10 @@ var declarations = {
1278
1287
  syntax: "normal | break-word | anywhere"
1279
1288
  },
1280
1289
  "overflow-x": {
1281
- syntax: "visible | hidden | clip | scroll | auto"
1290
+ syntax: "visible | hidden | clip | scroll | auto | <-non-standard-overflow>"
1282
1291
  },
1283
1292
  "overflow-y": {
1284
- syntax: "visible | hidden | clip | scroll | auto"
1293
+ syntax: "visible | hidden | clip | scroll | auto | <-non-standard-overflow>"
1285
1294
  },
1286
1295
  overlay: {
1287
1296
  syntax: "none | auto"
@@ -1368,7 +1377,7 @@ var declarations = {
1368
1377
  syntax: "auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit"
1369
1378
  },
1370
1379
  position: {
1371
- syntax: "static | relative | absolute | sticky | fixed"
1380
+ syntax: "static | relative | absolute | sticky | fixed | -webkit-sticky"
1372
1381
  },
1373
1382
  "position-anchor": {
1374
1383
  syntax: "auto | <anchor-name>"
@@ -1415,6 +1424,9 @@ var declarations = {
1415
1424
  "ruby-merge": {
1416
1425
  syntax: "separate | collapse | auto"
1417
1426
  },
1427
+ "ruby-overhang": {
1428
+ syntax: "auto | none"
1429
+ },
1418
1430
  "ruby-position": {
1419
1431
  syntax: "[ alternate || [ over | under ] ] | inter-character"
1420
1432
  },
@@ -1430,6 +1442,9 @@ var declarations = {
1430
1442
  "scroll-behavior": {
1431
1443
  syntax: "auto | smooth"
1432
1444
  },
1445
+ "scroll-initial-target": {
1446
+ syntax: "none | nearest"
1447
+ },
1433
1448
  "scroll-margin": {
1434
1449
  syntax: "<length>{1,4}"
1435
1450
  },
@@ -1565,26 +1580,29 @@ var declarations = {
1565
1580
  stroke: {
1566
1581
  syntax: "<paint>"
1567
1582
  },
1583
+ "stroke-color": {
1584
+ syntax: "<color>"
1585
+ },
1568
1586
  "stroke-dasharray": {
1569
- syntax: "none | <dasharray>"
1587
+ syntax: "none | <dasharray> none | [ <svg-length>+ ]#"
1570
1588
  },
1571
1589
  "stroke-dashoffset": {
1572
- syntax: "<length-percentage> | <number>"
1590
+ syntax: "<length-percentage> | <number> <svg-length>"
1573
1591
  },
1574
1592
  "stroke-linecap": {
1575
1593
  syntax: "butt | round | square"
1576
1594
  },
1577
1595
  "stroke-linejoin": {
1578
- syntax: "miter | miter-clip | round | bevel | arcs"
1596
+ syntax: "miter | miter-clip | round | bevel | arcs miter | round | bevel"
1579
1597
  },
1580
1598
  "stroke-miterlimit": {
1581
- syntax: "<number>"
1599
+ syntax: "<number> <number-one-or-greater>"
1582
1600
  },
1583
1601
  "stroke-opacity": {
1584
1602
  syntax: "<'opacity'>"
1585
1603
  },
1586
1604
  "stroke-width": {
1587
- syntax: "<length-percentage> | <number>"
1605
+ syntax: "<length-percentage> | <number> <svg-length>"
1588
1606
  },
1589
1607
  "tab-size": {
1590
1608
  syntax: "<integer> | <length>"
@@ -1593,7 +1611,7 @@ var declarations = {
1593
1611
  syntax: "auto | fixed"
1594
1612
  },
1595
1613
  "text-align": {
1596
- syntax: "start | end | left | right | center | justify | match-parent"
1614
+ syntax: "start | end | left | right | center | justify | match-parent | <-non-standard-text-align>"
1597
1615
  },
1598
1616
  "text-align-last": {
1599
1617
  syntax: "auto | start | end | left | right | center | justify"
@@ -1731,7 +1749,7 @@ var declarations = {
1731
1749
  syntax: "none | <length-percentage> [ <length-percentage> <length>? ]?"
1732
1750
  },
1733
1751
  "unicode-bidi": {
1734
- syntax: "normal | embed | isolate | bidi-override | isolate-override | plaintext"
1752
+ syntax: "normal | embed | isolate | bidi-override | isolate-override | plaintext | -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext"
1735
1753
  },
1736
1754
  "user-select": {
1737
1755
  syntax: "auto | text | none | all"
@@ -1743,7 +1761,7 @@ var declarations = {
1743
1761
  syntax: "baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>"
1744
1762
  },
1745
1763
  "view-timeline": {
1746
- syntax: "[ <'view-timeline-name'> <'view-timeline-axis'>? ]#"
1764
+ syntax: "[ <'view-timeline-name'> [ <'view-timeline-axis'> || <'view-timeline-inset'> ]? ]#"
1747
1765
  },
1748
1766
  "view-timeline-axis": {
1749
1767
  syntax: "[ block | inline | x | y ]#"
@@ -1752,10 +1770,13 @@ var declarations = {
1752
1770
  syntax: "[ [ auto | <length-percentage> ]{1,2} ]#"
1753
1771
  },
1754
1772
  "view-timeline-name": {
1755
- syntax: "none | <dashed-ident>#"
1773
+ syntax: "[ none | <dashed-ident> ]#"
1774
+ },
1775
+ "view-transition-class": {
1776
+ syntax: "none | <custom-ident>+"
1756
1777
  },
1757
1778
  "view-transition-name": {
1758
- syntax: "none | <custom-ident>"
1779
+ syntax: "none | <custom-ident> | match-element"
1759
1780
  },
1760
1781
  visibility: {
1761
1782
  syntax: "visible | hidden | collapse"
@@ -1770,7 +1791,7 @@ var declarations = {
1770
1791
  syntax: "<integer>"
1771
1792
  },
1772
1793
  width: {
1773
- syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()>"
1794
+ syntax: "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | <-non-standard-size>"
1774
1795
  },
1775
1796
  "will-change": {
1776
1797
  syntax: "auto | <animateable-feature>#"
@@ -1785,7 +1806,7 @@ var declarations = {
1785
1806
  syntax: "normal | break-word"
1786
1807
  },
1787
1808
  "writing-mode": {
1788
- syntax: "horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr"
1809
+ syntax: "horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr | <svg-writing-mode>"
1789
1810
  },
1790
1811
  x: {
1791
1812
  syntax: "<length> | <percentage>"
@@ -1798,6 +1819,165 @@ var declarations = {
1798
1819
  },
1799
1820
  zoom: {
1800
1821
  syntax: "normal | reset | <number [0,∞]> || <percentage [0,∞]>"
1822
+ },
1823
+ "-moz-background-clip": {
1824
+ syntax: "padding | border"
1825
+ },
1826
+ "-moz-border-radius-bottomleft": {
1827
+ syntax: "<'border-bottom-left-radius'>"
1828
+ },
1829
+ "-moz-border-radius-bottomright": {
1830
+ syntax: "<'border-bottom-right-radius'>"
1831
+ },
1832
+ "-moz-border-radius-topleft": {
1833
+ syntax: "<'border-top-left-radius'>"
1834
+ },
1835
+ "-moz-border-radius-topright": {
1836
+ syntax: "<'border-bottom-right-radius'>"
1837
+ },
1838
+ "-moz-control-character-visibility": {
1839
+ syntax: "visible | hidden"
1840
+ },
1841
+ "-moz-osx-font-smoothing": {
1842
+ syntax: "auto | grayscale"
1843
+ },
1844
+ "-moz-user-select": {
1845
+ syntax: "none | text | all | -moz-none | auto"
1846
+ },
1847
+ "-ms-flex-align": {
1848
+ syntax: "start | end | center | baseline | stretch"
1849
+ },
1850
+ "-ms-flex-item-align": {
1851
+ syntax: "auto | start | end | center | baseline | stretch"
1852
+ },
1853
+ "-ms-flex-line-pack": {
1854
+ syntax: "start | end | center | justify | distribute | stretch"
1855
+ },
1856
+ "-ms-flex-negative": {
1857
+ syntax: "<'flex-shrink'>"
1858
+ },
1859
+ "-ms-flex-pack": {
1860
+ syntax: "start | end | center | justify | distribute"
1861
+ },
1862
+ "-ms-flex-order": {
1863
+ syntax: "<integer>"
1864
+ },
1865
+ "-ms-flex-positive": {
1866
+ syntax: "<'flex-grow'>"
1867
+ },
1868
+ "-ms-flex-preferred-size": {
1869
+ syntax: "<'flex-basis'>"
1870
+ },
1871
+ "-ms-interpolation-mode": {
1872
+ syntax: "nearest-neighbor | bicubic"
1873
+ },
1874
+ "-ms-grid-column-align": {
1875
+ syntax: "start | end | center | stretch"
1876
+ },
1877
+ "-ms-grid-row-align": {
1878
+ syntax: "start | end | center | stretch"
1879
+ },
1880
+ "-ms-hyphenate-limit-last": {
1881
+ syntax: "none | always | column | page | spread"
1882
+ },
1883
+ "-webkit-background-clip": {
1884
+ syntax: "[ <visual-box> | border | padding | content | text ]#"
1885
+ },
1886
+ "-webkit-column-break-after": {
1887
+ syntax: "always | auto | avoid"
1888
+ },
1889
+ "-webkit-column-break-before": {
1890
+ syntax: "always | auto | avoid"
1891
+ },
1892
+ "-webkit-column-break-inside": {
1893
+ syntax: "always | auto | avoid"
1894
+ },
1895
+ "-webkit-font-smoothing": {
1896
+ syntax: "auto | none | antialiased | subpixel-antialiased"
1897
+ },
1898
+ "-webkit-mask-box-image": {
1899
+ syntax: "[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?"
1900
+ },
1901
+ "-webkit-print-color-adjust": {
1902
+ syntax: "economy | exact"
1903
+ },
1904
+ "-webkit-text-security": {
1905
+ syntax: "none | circle | disc | square"
1906
+ },
1907
+ "-webkit-user-drag": {
1908
+ syntax: "none | element | auto"
1909
+ },
1910
+ behavior: {
1911
+ syntax: "<url>+"
1912
+ },
1913
+ cue: {
1914
+ syntax: "<'cue-before'> <'cue-after'>?"
1915
+ },
1916
+ "cue-after": {
1917
+ syntax: "<url> <decibel>? | none"
1918
+ },
1919
+ "cue-before": {
1920
+ syntax: "<url> <decibel>? | none"
1921
+ },
1922
+ "glyph-orientation-horizontal": {
1923
+ syntax: "<angle>"
1924
+ },
1925
+ "glyph-orientation-vertical": {
1926
+ syntax: "<angle>"
1927
+ },
1928
+ kerning: {
1929
+ syntax: "auto | <svg-length>"
1930
+ },
1931
+ pause: {
1932
+ syntax: "<'pause-before'> <'pause-after'>?"
1933
+ },
1934
+ "pause-after": {
1935
+ syntax: "<time> | none | x-weak | weak | medium | strong | x-strong"
1936
+ },
1937
+ "pause-before": {
1938
+ syntax: "<time> | none | x-weak | weak | medium | strong | x-strong"
1939
+ },
1940
+ "position-try-options": {
1941
+ syntax: "<'position-try-fallbacks'>"
1942
+ },
1943
+ rest: {
1944
+ syntax: "<'rest-before'> <'rest-after'>?"
1945
+ },
1946
+ "rest-after": {
1947
+ syntax: "<time> | none | x-weak | weak | medium | strong | x-strong"
1948
+ },
1949
+ "rest-before": {
1950
+ syntax: "<time> | none | x-weak | weak | medium | strong | x-strong"
1951
+ },
1952
+ speak: {
1953
+ syntax: "auto | never | always"
1954
+ },
1955
+ "voice-balance": {
1956
+ syntax: "<number> | left | center | right | leftwards | rightwards"
1957
+ },
1958
+ "voice-duration": {
1959
+ syntax: "auto | <time>"
1960
+ },
1961
+ "voice-family": {
1962
+ syntax: "[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve"
1963
+ },
1964
+ "voice-pitch": {
1965
+ syntax: "<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"
1966
+ },
1967
+ "voice-range": {
1968
+ syntax: "<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"
1969
+ },
1970
+ "voice-rate": {
1971
+ syntax: "[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>"
1972
+ },
1973
+ "voice-stress": {
1974
+ syntax: "normal | strong | moderate | none | reduced"
1975
+ },
1976
+ "voice-volume": {
1977
+ syntax: "silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]"
1978
+ },
1979
+ "white-space-trim": {
1980
+ syntax: "none | discard-before || discard-after || discard-inner"
1801
1981
  }
1802
1982
  };
1803
1983
  var functions = {
@@ -1850,7 +2030,7 @@ var functions = {
1850
2030
  syntax: "color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#{2})"
1851
2031
  },
1852
2032
  "conic-gradient": {
1853
- syntax: "conic-gradient( [ from <angle> ]? [ at <position> ]?, <angular-color-stop-list> )"
2033
+ syntax: "conic-gradient( [ <conic-gradient-syntax> ] )"
1854
2034
  },
1855
2035
  contrast: {
1856
2036
  syntax: "contrast( [ <number> | <percentage> ]? )"
@@ -1867,6 +2047,9 @@ var functions = {
1867
2047
  "cross-fade": {
1868
2048
  syntax: "cross-fade( <cf-mixing-image> , <cf-final-image>? )"
1869
2049
  },
2050
+ "cubic-bezier": {
2051
+ syntax: "cubic-bezier( [ <number [0,1]>, <number> ]#{2} )"
2052
+ },
1870
2053
  "drop-shadow": {
1871
2054
  syntax: "drop-shadow( [ <color>? && <length>{2,3} ] )"
1872
2055
  },
@@ -1930,8 +2113,11 @@ var functions = {
1930
2113
  "light-dark": {
1931
2114
  syntax: "light-dark( <color>, <color> )"
1932
2115
  },
2116
+ linear: {
2117
+ syntax: "linear( [ <number> && <percentage>{0,2} ]# )"
2118
+ },
1933
2119
  "linear-gradient": {
1934
- syntax: "linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )"
2120
+ syntax: "linear-gradient( [ <linear-gradient-syntax> ] )"
1935
2121
  },
1936
2122
  log: {
1937
2123
  syntax: "log( <calc-sum>, <calc-sum>? )"
@@ -1982,7 +2168,7 @@ var functions = {
1982
2168
  syntax: "pow( <calc-sum>, <calc-sum> )"
1983
2169
  },
1984
2170
  "radial-gradient": {
1985
- syntax: "radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )"
2171
+ syntax: "radial-gradient( [ <radial-gradient-syntax> ] )"
1986
2172
  },
1987
2173
  ray: {
1988
2174
  syntax: "ray( <angle> && <ray-size>? && contain? && [at <position>]? )"
@@ -1994,13 +2180,13 @@ var functions = {
1994
2180
  syntax: "rem( <calc-sum>, <calc-sum> )"
1995
2181
  },
1996
2182
  "repeating-conic-gradient": {
1997
- syntax: "repeating-conic-gradient( [ from <angle> ]? [ at <position> ]?, <angular-color-stop-list> )"
2183
+ syntax: "repeating-conic-gradient( [ <conic-gradient-syntax> ] )"
1998
2184
  },
1999
2185
  "repeating-linear-gradient": {
2000
- syntax: "repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )"
2186
+ syntax: "repeating-linear-gradient( [ <linear-gradient-syntax> ] )"
2001
2187
  },
2002
2188
  "repeating-radial-gradient": {
2003
- syntax: "repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )"
2189
+ syntax: "repeating-radial-gradient( [ <radial-gradient-syntax> ] )"
2004
2190
  },
2005
2191
  rgb: {
2006
2192
  syntax: "rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? ) | rgb( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )"
@@ -2068,6 +2254,9 @@ var functions = {
2068
2254
  sqrt: {
2069
2255
  syntax: "sqrt( <calc-sum> )"
2070
2256
  },
2257
+ steps: {
2258
+ syntax: "steps( <integer>, <step-position>? )"
2259
+ },
2071
2260
  symbols: {
2072
2261
  syntax: "symbols( <symbols-type>? [ <string> | <image> ]+ )"
2073
2262
  },
@@ -2143,13 +2332,13 @@ var syntaxes = {
2143
2332
  syntax: "<angle> | <percentage>"
2144
2333
  },
2145
2334
  "angular-color-hint": {
2146
- syntax: "<angle-percentage>"
2335
+ syntax: "<angle-percentage> | <zero>"
2147
2336
  },
2148
2337
  "angular-color-stop": {
2149
- syntax: "<color> && <color-stop-angle>?"
2338
+ syntax: "<color> <color-stop-angle>?"
2150
2339
  },
2151
2340
  "angular-color-stop-list": {
2152
- syntax: "[ <angular-color-stop> [, <angular-color-hint>]? ]# , <angular-color-stop>"
2341
+ syntax: "<angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?"
2153
2342
  },
2154
2343
  "animateable-feature": {
2155
2344
  syntax: "scroll-position | contents | <custom-ident>"
@@ -2191,7 +2380,10 @@ var syntaxes = {
2191
2380
  syntax: "[ first | last ]? baseline"
2192
2381
  },
2193
2382
  "basic-shape": {
2194
- syntax: "<inset()> | <circle()> | <ellipse()> | <polygon()> | <path()>"
2383
+ syntax: "<inset()> | <xywh()> | <rect()> | <circle()> | <ellipse()> | <polygon()> | <path()>"
2384
+ },
2385
+ "basic-shape-rect": {
2386
+ syntax: "<inset()> | <rect()> | <xywh()>"
2195
2387
  },
2196
2388
  "bg-clip": {
2197
2389
  syntax: "<visual-box> | border-area | text"
@@ -2257,10 +2449,10 @@ var syntaxes = {
2257
2449
  syntax: "<url>"
2258
2450
  },
2259
2451
  color: {
2260
- syntax: "<color-base> | currentColor | <system-color> | <light-dark()> | <deprecated-system-color>"
2452
+ syntax: "<color-base> | currentColor | <system-color> | <device-cmyk()> | <light-dark()> | <-non-standard-color>"
2261
2453
  },
2262
2454
  "color()": {
2263
- syntax: "color( [ from <color> ]? <colorspace-params> [ / [ <alpha-value> | none ] ]? )"
2455
+ syntax: "color( <colorspace-params> [ / [ <alpha-value> | none ] ]? )"
2264
2456
  },
2265
2457
  "color-base": {
2266
2458
  syntax: "<hex-color> | <color-function> | <named-color> | <color-mix()> | transparent"
@@ -2272,25 +2464,25 @@ var syntaxes = {
2272
2464
  syntax: "in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]"
2273
2465
  },
2274
2466
  "color-mix()": {
2275
- syntax: "color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#{2})"
2467
+ syntax: "color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#{2} )"
2276
2468
  },
2277
2469
  "color-stop": {
2278
2470
  syntax: "<color-stop-length> | <color-stop-angle>"
2279
2471
  },
2280
2472
  "color-stop-angle": {
2281
- syntax: "<angle-percentage>{1,2}"
2473
+ syntax: "[ <angle-percentage> | <zero> ]{1,2}"
2282
2474
  },
2283
2475
  "color-stop-length": {
2284
2476
  syntax: "<length-percentage>{1,2}"
2285
2477
  },
2286
2478
  "color-stop-list": {
2287
- syntax: "[ <linear-color-stop> [, <linear-color-hint>]? ]# , <linear-color-stop>"
2479
+ syntax: "<linear-color-stop> , [ <linear-color-hint>? , <linear-color-stop> ]#?"
2288
2480
  },
2289
2481
  "colorspace-params": {
2290
- syntax: "[<custom-params> | <predefined-rgb-params> | <xyz-params>]"
2482
+ syntax: "[ <predefined-rgb-params> | <xyz-params>]"
2291
2483
  },
2292
2484
  combinator: {
2293
- syntax: "'>' | '+' | '~' | [ '||' ]"
2485
+ syntax: "'>' | '+' | '~' | [ '|' '|' ]"
2294
2486
  },
2295
2487
  "common-lig-values": {
2296
2488
  syntax: "[ common-ligatures | no-common-ligatures ]"
@@ -2299,7 +2491,7 @@ var syntaxes = {
2299
2491
  syntax: "searchfield | textarea | push-button | slider-horizontal | checkbox | radio | square-button | menulist | listbox | meter | progress-bar | button"
2300
2492
  },
2301
2493
  "complex-selector": {
2302
- syntax: "<compound-selector> [ <combinator>? <compound-selector> ]*"
2494
+ syntax: "<complex-selector-unit> [ <combinator>? <complex-selector-unit> ]*"
2303
2495
  },
2304
2496
  "complex-selector-list": {
2305
2497
  syntax: "<complex-selector>#"
@@ -2311,19 +2503,31 @@ var syntaxes = {
2311
2503
  syntax: "add | subtract | intersect | exclude"
2312
2504
  },
2313
2505
  "compound-selector": {
2314
- syntax: "[ <type-selector>? <subclass-selector>* [ <pseudo-element-selector> <pseudo-class-selector>* ]* ]!"
2506
+ syntax: "[ <type-selector>? <subclass-selector>* ]!"
2315
2507
  },
2316
2508
  "compound-selector-list": {
2317
2509
  syntax: "<compound-selector>#"
2318
2510
  },
2319
2511
  "conic-gradient()": {
2320
- syntax: "conic-gradient( [ from <angle> ]? [ at <position> ]?, <angular-color-stop-list> )"
2512
+ syntax: "conic-gradient( [ <conic-gradient-syntax> ] )"
2513
+ },
2514
+ "conic-gradient-syntax": {
2515
+ syntax: "[ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>"
2516
+ },
2517
+ "container-condition": {
2518
+ syntax: "not <query-in-parens> | <query-in-parens> [ [ and <query-in-parens> ]* | [ or <query-in-parens> ]* ]"
2519
+ },
2520
+ "container-name": {
2521
+ syntax: "<custom-ident>"
2522
+ },
2523
+ "container-query": {
2524
+ syntax: "not <query-in-parens> | <query-in-parens> [ [ and <query-in-parens> ]* | [ or <query-in-parens> ]* ]"
2321
2525
  },
2322
2526
  "content-distribution": {
2323
2527
  syntax: "space-between | space-around | space-evenly | stretch"
2324
2528
  },
2325
2529
  "content-list": {
2326
- syntax: "[ <string> | contents | <image> | <counter> | <quote> | <target> | <leader()> ]+"
2530
+ syntax: "[ <string> | contents | <image> | <counter> | <quote> | <target> | <leader()> | <attr()> ]+"
2327
2531
  },
2328
2532
  "content-position": {
2329
2533
  syntax: "center | start | end | flex-start | flex-end"
@@ -2338,7 +2542,7 @@ var syntaxes = {
2338
2542
  syntax: "contrast( [ <number> | <percentage> ]? )"
2339
2543
  },
2340
2544
  "coord-box": {
2341
- syntax: "<paint-box> | view-box"
2545
+ syntax: "content-box | padding-box | border-box | fill-box | stroke-box | view-box"
2342
2546
  },
2343
2547
  "cos()": {
2344
2548
  syntax: "cos( <calc-sum> )"
@@ -2364,8 +2568,11 @@ var syntaxes = {
2364
2568
  "cross-fade()": {
2365
2569
  syntax: "cross-fade( <cf-mixing-image> , <cf-final-image>? )"
2366
2570
  },
2367
- "cubic-bezier-timing-function": {
2368
- syntax: "ease | ease-in | ease-out | ease-in-out | cubic-bezier(<number [0,1]>, <number>, <number [0,1]>, <number>)"
2571
+ "cubic-bezier()": {
2572
+ syntax: "cubic-bezier( [ <number [0,1]>, <number> ]#{2} )"
2573
+ },
2574
+ "cubic-bezier-easing-function": {
2575
+ syntax: "ease | ease-in | ease-out | ease-in-out | cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )"
2369
2576
  },
2370
2577
  "custom-color-space": {
2371
2578
  syntax: "<dashed-ident>"
@@ -2407,7 +2614,7 @@ var syntaxes = {
2407
2614
  syntax: "drop-shadow( [ <color>? && <length>{2,3} ] )"
2408
2615
  },
2409
2616
  "easing-function": {
2410
- syntax: "linear | <cubic-bezier-timing-function> | <step-timing-function>"
2617
+ syntax: "<linear-easing-function> | <cubic-bezier-easing-function> | <step-easing-function>"
2411
2618
  },
2412
2619
  "east-asian-variant-values": {
2413
2620
  syntax: "[ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]"
@@ -2416,14 +2623,11 @@ var syntaxes = {
2416
2623
  syntax: "[ full-width | proportional-width ]"
2417
2624
  },
2418
2625
  "element()": {
2419
- syntax: "element( <id-selector> )"
2626
+ syntax: "element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )"
2420
2627
  },
2421
2628
  "ellipse()": {
2422
2629
  syntax: "ellipse( <radial-size>? [ at <position> ]? )"
2423
2630
  },
2424
- "ending-shape": {
2425
- syntax: "circle | ellipse"
2426
- },
2427
2631
  "env()": {
2428
2632
  syntax: "env( <custom-ident> , <declaration-value>? )"
2429
2633
  },
@@ -2481,29 +2685,38 @@ var syntaxes = {
2481
2685
  "font-stretch-absolute": {
2482
2686
  syntax: "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage>"
2483
2687
  },
2484
- "font-variant-css21": {
2485
- syntax: "[ normal | small-caps ]"
2688
+ "font-variant-css2": {
2689
+ syntax: "normal | small-caps"
2486
2690
  },
2487
2691
  "font-weight-absolute": {
2488
2692
  syntax: "normal | bold | <number [1,1000]>"
2489
2693
  },
2694
+ "font-width-css3": {
2695
+ syntax: "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded"
2696
+ },
2697
+ "form-control-identifier": {
2698
+ syntax: "select"
2699
+ },
2490
2700
  "frequency-percentage": {
2491
2701
  syntax: "<frequency> | <percentage>"
2492
2702
  },
2703
+ "generic-complete": {
2704
+ syntax: "serif | sans-serif | system-ui | cursive | fantasy | math | monospace"
2705
+ },
2493
2706
  "general-enclosed": {
2494
- syntax: "[ <function-token> <any-value> ) ] | ( <ident> <any-value> )"
2707
+ syntax: "[ <function-token> <any-value>? ) ] | [ ( <any-value>? ) ]"
2495
2708
  },
2496
2709
  "generic-family": {
2497
- syntax: "serif | sans-serif | cursive | fantasy | monospace"
2710
+ syntax: "<generic-script-specific>| <generic-complete> | <generic-incomplete> | <-non-standard-generic-family>"
2498
2711
  },
2499
- "generic-name": {
2500
- syntax: "serif | sans-serif | cursive | fantasy | monospace"
2712
+ "generic-incomplete": {
2713
+ syntax: "ui-serif | ui-sans-serif | ui-monospace | ui-rounded"
2501
2714
  },
2502
2715
  "geometry-box": {
2503
2716
  syntax: "<shape-box> | fill-box | stroke-box | view-box"
2504
2717
  },
2505
2718
  gradient: {
2506
- syntax: "<linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()> | <conic-gradient()> | <repeating-conic-gradient()>"
2719
+ syntax: "| <-legacy-gradient>"
2507
2720
  },
2508
2721
  "grayscale()": {
2509
2722
  syntax: "grayscale( [ <number> | <percentage> ]? )"
@@ -2538,9 +2751,6 @@ var syntaxes = {
2538
2751
  "id-selector": {
2539
2752
  syntax: "<hash-token>"
2540
2753
  },
2541
- integer: {
2542
- syntax: "<number-token>"
2543
- },
2544
2754
  image: {
2545
2755
  syntax: "<url> | <image()> | <image-set()> | <element()> | <paint()> | <cross-fade()> | <gradient>"
2546
2756
  },
@@ -2565,17 +2775,17 @@ var syntaxes = {
2565
2775
  "inset()": {
2566
2776
  syntax: "inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )"
2567
2777
  },
2778
+ integer: {
2779
+ syntax: "<number-token>"
2780
+ },
2568
2781
  "invert()": {
2569
2782
  syntax: "invert( [ <number> | <percentage> ]? )"
2570
2783
  },
2571
2784
  "keyframe-block": {
2572
2785
  syntax: "<keyframe-selector># {\n <declaration-list>\n}"
2573
2786
  },
2574
- "keyframe-block-list": {
2575
- syntax: "<keyframe-block>+"
2576
- },
2577
2787
  "keyframe-selector": {
2578
- syntax: "from | to | <percentage> | <timeline-range-name> <percentage>"
2788
+ syntax: "from | to | <percentage [0,100]> | <timeline-range-name> <percentage>"
2579
2789
  },
2580
2790
  "keyframes-name": {
2581
2791
  syntax: "<custom-ident> | <string>"
@@ -2616,14 +2826,23 @@ var syntaxes = {
2616
2826
  "line-width": {
2617
2827
  syntax: "<length> | thin | medium | thick"
2618
2828
  },
2829
+ "linear()": {
2830
+ syntax: "linear( [ <number> && <percentage>{0,2} ]# )"
2831
+ },
2619
2832
  "linear-color-hint": {
2620
2833
  syntax: "<length-percentage>"
2621
2834
  },
2622
2835
  "linear-color-stop": {
2623
2836
  syntax: "<color> <color-stop-length>?"
2624
2837
  },
2838
+ "linear-easing-function": {
2839
+ syntax: "linear | <linear()>"
2840
+ },
2625
2841
  "linear-gradient()": {
2626
- syntax: "linear-gradient( [ [ <angle> | to <side-or-corner> ] || <color-interpolation-method> ]? , <color-stop-list> )"
2842
+ syntax: "linear-gradient( [ <linear-gradient-syntax> ] )"
2843
+ },
2844
+ "linear-gradient-syntax": {
2845
+ syntax: "[ [ <angle> | <zero> | to <side-or-corner> ] || <color-interpolation-method> ]? , <color-stop-list>"
2627
2846
  },
2628
2847
  "log()": {
2629
2848
  syntax: "log( <calc-sum>, <calc-sum>? )"
@@ -2709,15 +2928,6 @@ var syntaxes = {
2709
2928
  "n-dimension": {
2710
2929
  syntax: "<dimension-token>"
2711
2930
  },
2712
- "ndash-dimension": {
2713
- syntax: "<dimension-token>"
2714
- },
2715
- "ndashdigit-dimension": {
2716
- syntax: "<dimension-token>"
2717
- },
2718
- "ndashdigit-ident": {
2719
- syntax: "<ident-token>"
2720
- },
2721
2931
  "name-repeat": {
2722
2932
  syntax: "repeat( [ <integer [1,∞]> | auto-fill ], <line-names>+ )"
2723
2933
  },
@@ -2727,6 +2937,15 @@ var syntaxes = {
2727
2937
  "namespace-prefix": {
2728
2938
  syntax: "<ident>"
2729
2939
  },
2940
+ "ndash-dimension": {
2941
+ syntax: "<dimension-token>"
2942
+ },
2943
+ "ndashdigit-dimension": {
2944
+ syntax: "<dimension-token>"
2945
+ },
2946
+ "ndashdigit-ident": {
2947
+ syntax: "<ident-token>"
2948
+ },
2730
2949
  "ns-prefix": {
2731
2950
  syntax: "[ <ident-token> | '*' ]? '|'"
2732
2951
  },
@@ -2785,7 +3004,7 @@ var syntaxes = {
2785
3004
  syntax: "A5 | A4 | A3 | B5 | B4 | JIS-B5 | JIS-B4 | letter | legal | ledger"
2786
3005
  },
2787
3006
  paint: {
2788
- syntax: "none | <color> | <url> [none | <color>]? | context-fill | context-stroke"
3007
+ syntax: "none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke"
2789
3008
  },
2790
3009
  "paint()": {
2791
3010
  syntax: "paint( <ident>, <declaration-value>? )"
@@ -2815,7 +3034,7 @@ var syntaxes = {
2815
3034
  syntax: "[ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]? | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ] ]"
2816
3035
  },
2817
3036
  "position-area": {
2818
- 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}"
3037
+ 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} ]"
2819
3038
  },
2820
3039
  "pow()": {
2821
3040
  syntax: "pow( <calc-sum>, <calc-sum> )"
@@ -2830,11 +3049,14 @@ var syntaxes = {
2830
3049
  syntax: "':' <ident-token> | ':' <function-token> <any-value> ')'"
2831
3050
  },
2832
3051
  "pseudo-element-selector": {
2833
- syntax: "':' <pseudo-class-selector>"
3052
+ syntax: "':' <pseudo-class-selector> | <legacy-pseudo-element-selector>"
2834
3053
  },
2835
3054
  "pseudo-page": {
2836
3055
  syntax: ": [ left | right | first | blank ]"
2837
3056
  },
3057
+ "query-in-parens": {
3058
+ syntax: "( <container-condition> ) | ( <size-feature> ) | style( <style-query> ) | <general-enclosed>"
3059
+ },
2838
3060
  quote: {
2839
3061
  syntax: "open-quote | close-quote | no-open-quote | no-close-quote"
2840
3062
  },
@@ -2842,7 +3064,13 @@ var syntaxes = {
2842
3064
  syntax: "closest-corner | closest-side | farthest-corner | farthest-side"
2843
3065
  },
2844
3066
  "radial-gradient()": {
2845
- syntax: "radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )"
3067
+ syntax: "radial-gradient( [ <radial-gradient-syntax> ] )"
3068
+ },
3069
+ "radial-gradient-syntax": {
3070
+ syntax: "[ [ [ <radial-shape> || <radial-size> ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <color-stop-list>"
3071
+ },
3072
+ "radial-shape": {
3073
+ syntax: "circle | ellipse"
2846
3074
  },
2847
3075
  "radial-size": {
2848
3076
  syntax: "<radial-extent> | <length [0,∞]> | <length-percentage [0,∞]>{2}"
@@ -2856,6 +3084,9 @@ var syntaxes = {
2856
3084
  "ray-size": {
2857
3085
  syntax: "closest-side | closest-corner | farthest-side | farthest-corner | sides"
2858
3086
  },
3087
+ "rect()": {
3088
+ syntax: "rect( [ <length-percentage> | auto ]{4} [ round <'border-radius'> ]? )"
3089
+ },
2859
3090
  "rectangular-color-space": {
2860
3091
  syntax: "srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65"
2861
3092
  },
@@ -2868,9 +3099,6 @@ var syntaxes = {
2868
3099
  "relative-size": {
2869
3100
  syntax: "larger | smaller"
2870
3101
  },
2871
- "rect()": {
2872
- syntax: "rect( [ <length-percentage> | auto ]{4} [ round <'border-radius'> ]? )"
2873
- },
2874
3102
  "rem()": {
2875
3103
  syntax: "rem( <calc-sum>, <calc-sum> )"
2876
3104
  },
@@ -2878,13 +3106,13 @@ var syntaxes = {
2878
3106
  syntax: "repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}"
2879
3107
  },
2880
3108
  "repeating-conic-gradient()": {
2881
- syntax: "repeating-conic-gradient( [ from <angle> ]? [ at <position> ]?, <angular-color-stop-list> )"
3109
+ syntax: "repeating-conic-gradient( [ <conic-gradient-syntax> ] )"
2882
3110
  },
2883
3111
  "repeating-linear-gradient()": {
2884
- syntax: "repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )"
3112
+ syntax: "repeating-linear-gradient( [ <linear-gradient-syntax> ] )"
2885
3113
  },
2886
3114
  "repeating-radial-gradient()": {
2887
- syntax: "repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )"
3115
+ syntax: "repeating-radial-gradient( [ <radial-gradient-syntax> ] )"
2888
3116
  },
2889
3117
  "reversed-counter-name": {
2890
3118
  syntax: "reversed( <counter-name> )"
@@ -2935,10 +3163,10 @@ var syntaxes = {
2935
3163
  syntax: "scaleZ( [ <number> | <percentage> ] )"
2936
3164
  },
2937
3165
  "scope-end": {
2938
- syntax: "<selector-list>"
3166
+ syntax: "<forgiving-selector-list>"
2939
3167
  },
2940
3168
  "scope-start": {
2941
- syntax: "<selector-list>"
3169
+ syntax: "<forgiving-selector-list>"
2942
3170
  },
2943
3171
  "scroll()": {
2944
3172
  syntax: "scroll( [ <scroller> || <axis> ]? )"
@@ -2946,6 +3174,15 @@ var syntaxes = {
2946
3174
  scroller: {
2947
3175
  syntax: "root | nearest | self"
2948
3176
  },
3177
+ "scroll-state-feature": {
3178
+ syntax: "<media-query-list>"
3179
+ },
3180
+ "scroll-state-in-parens": {
3181
+ syntax: "( <scroll-state-query> ) | ( <scroll-state-feature> ) | <general-enclosed>"
3182
+ },
3183
+ "scroll-state-query": {
3184
+ syntax: "not <scroll-state-in-parens> | <scroll-state-in-parens> [ [ and <scroll-state-in-parens> ]* | [ or <scroll-state-in-parens> ]* ] | <scroll-state-feature> "
3185
+ },
2949
3186
  "selector-list": {
2950
3187
  syntax: "<complex-selector-list>"
2951
3188
  },
@@ -2962,7 +3199,7 @@ var syntaxes = {
2962
3199
  syntax: "[ <length>{2,3} && <color>? ]"
2963
3200
  },
2964
3201
  shape: {
2965
- syntax: "rect(<top>, <right>, <bottom>, <left>)"
3202
+ syntax: "rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )"
2966
3203
  },
2967
3204
  "shape-box": {
2968
3205
  syntax: "<visual-box> | margin-box"
@@ -3012,6 +3249,9 @@ var syntaxes = {
3012
3249
  size: {
3013
3250
  syntax: "closest-side | farthest-side | closest-corner | farthest-corner | <length> | <length-percentage>{2}"
3014
3251
  },
3252
+ "size-feature": {
3253
+ syntax: "<mf-plain> | <mf-boolean> | <mf-range>"
3254
+ },
3015
3255
  "skew()": {
3016
3256
  syntax: "skew( [ <angle> | <zero> ] , [ <angle> | <zero> ]? )"
3017
3257
  },
@@ -3027,8 +3267,20 @@ var syntaxes = {
3027
3267
  "step-position": {
3028
3268
  syntax: "jump-start | jump-end | jump-none | jump-both | start | end"
3029
3269
  },
3030
- "step-timing-function": {
3031
- syntax: "step-start | step-end | steps(<integer>[, <step-position>]?)"
3270
+ "step-easing-function": {
3271
+ syntax: "step-start | step-end | <steps()>"
3272
+ },
3273
+ "steps()": {
3274
+ syntax: "steps( <integer>, <step-position>? )"
3275
+ },
3276
+ "style-feature": {
3277
+ syntax: "<declaration>"
3278
+ },
3279
+ "style-in-parens": {
3280
+ syntax: "( <style-condition> ) | ( <style-feature> ) | <general-enclosed>"
3281
+ },
3282
+ "style-query": {
3283
+ syntax: "<style-condition> | <style-feature>"
3032
3284
  },
3033
3285
  "subclass-selector": {
3034
3286
  syntax: "<id-selector> | <class-selector> | <attribute-selector> | <pseudo-class-selector>"
@@ -3060,6 +3312,9 @@ var syntaxes = {
3060
3312
  "system-color": {
3061
3313
  syntax: "AccentColor | AccentColorText | ActiveText | ButtonBorder | ButtonFace | ButtonText | Canvas | CanvasText | Field | FieldText | GrayText | Highlight | HighlightText | LinkText | Mark | MarkText | SelectedItem | SelectedItemText | VisitedText"
3062
3314
  },
3315
+ "system-family-name": {
3316
+ syntax: "caption | icon | menu | message-box | small-caption | status-bar"
3317
+ },
3063
3318
  "tan()": {
3064
3319
  syntax: "tan( <calc-sum> )"
3065
3320
  },
@@ -3154,7 +3409,208 @@ var syntaxes = {
3154
3409
  syntax: "xyz | xyz-d50 | xyz-d65"
3155
3410
  },
3156
3411
  "xyz-params": {
3157
- syntax: "<xyz> [ <number> | <percentage> | none ]{3}"
3412
+ syntax: "<xyz-space> [ <number> | <percentage> | none ]{3}"
3413
+ },
3414
+ "-legacy-gradient": {
3415
+ syntax: "<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>"
3416
+ },
3417
+ "-legacy-linear-gradient": {
3418
+ syntax: "-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )"
3419
+ },
3420
+ "-legacy-repeating-linear-gradient": {
3421
+ 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> )"
3422
+ },
3423
+ "-legacy-linear-gradient-arguments": {
3424
+ syntax: "[ <angle> | <side-or-corner> ]? , <color-stop-list>"
3425
+ },
3426
+ "-legacy-radial-gradient": {
3427
+ syntax: "-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )"
3428
+ },
3429
+ "-legacy-repeating-radial-gradient": {
3430
+ 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> )"
3431
+ },
3432
+ "-legacy-radial-gradient-arguments": {
3433
+ syntax: "[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>"
3434
+ },
3435
+ "-legacy-radial-gradient-size": {
3436
+ syntax: "closest-side | closest-corner | farthest-side | farthest-corner | contain | cover"
3437
+ },
3438
+ "-legacy-radial-gradient-shape": {
3439
+ syntax: "circle | ellipse"
3440
+ },
3441
+ "-non-standard-font": {
3442
+ 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"
3443
+ },
3444
+ "-non-standard-color": {
3445
+ 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"
3446
+ },
3447
+ "-non-standard-image-rendering": {
3448
+ syntax: "optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast"
3449
+ },
3450
+ "-non-standard-overflow": {
3451
+ syntax: "overlay | -moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable"
3452
+ },
3453
+ "-non-standard-size": {
3454
+ 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"
3455
+ },
3456
+ "-webkit-gradient()": {
3457
+ 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>]* )"
3458
+ },
3459
+ "-webkit-gradient-color-stop": {
3460
+ syntax: "from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )"
3461
+ },
3462
+ "-webkit-gradient-point": {
3463
+ syntax: "[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]"
3464
+ },
3465
+ "-webkit-gradient-radius": {
3466
+ syntax: "<length> | <percentage>"
3467
+ },
3468
+ "-webkit-gradient-type": {
3469
+ syntax: "linear | radial"
3470
+ },
3471
+ "-webkit-mask-box-repeat": {
3472
+ syntax: "repeat | stretch | round"
3473
+ },
3474
+ "-ms-filter-function-list": {
3475
+ syntax: "<-ms-filter-function>+"
3476
+ },
3477
+ "-ms-filter-function": {
3478
+ syntax: "<-ms-filter-function-progid> | <-ms-filter-function-legacy>"
3479
+ },
3480
+ "-ms-filter-function-progid": {
3481
+ syntax: "'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]"
3482
+ },
3483
+ "-ms-filter-function-legacy": {
3484
+ syntax: "<ident-token> | <function-token> <any-value>? )"
3485
+ },
3486
+ age: {
3487
+ syntax: "child | young | old"
3488
+ },
3489
+ "attr-name": {
3490
+ syntax: "<wq-name>"
3491
+ },
3492
+ "attr-fallback": {
3493
+ syntax: "<any-value>"
3494
+ },
3495
+ bottom: {
3496
+ syntax: "<length> | auto"
3497
+ },
3498
+ "generic-voice": {
3499
+ syntax: "[ <age>? <gender> <integer>? ]"
3500
+ },
3501
+ gender: {
3502
+ syntax: "male | female | neutral"
3503
+ },
3504
+ "generic-script-specific": {
3505
+ syntax: "generic(kai) | generic(fangsong) | generic(nastaliq)"
3506
+ },
3507
+ "-non-standard-generic-family": {
3508
+ syntax: "-apple-system | BlinkMacSystemFont"
3509
+ },
3510
+ "intrinsic-size-keyword": {
3511
+ syntax: "min-content | max-content | fit-content"
3512
+ },
3513
+ left: {
3514
+ syntax: "<length> | auto"
3515
+ },
3516
+ "device-cmyk()": {
3517
+ syntax: "<legacy-device-cmyk-syntax> | <modern-device-cmyk-syntax>"
3518
+ },
3519
+ "legacy-device-cmyk-syntax": {
3520
+ syntax: "device-cmyk( <number>#{4} )"
3521
+ },
3522
+ "modern-device-cmyk-syntax": {
3523
+ syntax: "device-cmyk( <cmyk-component>{4} [ / [ <alpha-value> | none ] ]? )"
3524
+ },
3525
+ "cmyk-component": {
3526
+ syntax: "<number> | <percentage> | none"
3527
+ },
3528
+ "color-space": {
3529
+ syntax: "<rectangular-color-space> | <polar-color-space> | <custom-color-space>"
3530
+ },
3531
+ right: {
3532
+ syntax: "<length> | auto"
3533
+ },
3534
+ "forgiving-selector-list": {
3535
+ syntax: "<complex-real-selector-list>"
3536
+ },
3537
+ "forgiving-relative-selector-list": {
3538
+ syntax: "<relative-real-selector-list>"
3539
+ },
3540
+ "complex-real-selector-list": {
3541
+ syntax: "<complex-real-selector>#"
3542
+ },
3543
+ "simple-selector-list": {
3544
+ syntax: "<simple-selector>#"
3545
+ },
3546
+ "relative-real-selector-list": {
3547
+ syntax: "<relative-real-selector>#"
3548
+ },
3549
+ "complex-selector-unit": {
3550
+ syntax: "[ <compound-selector>? <pseudo-compound-selector>* ]!"
3551
+ },
3552
+ "complex-real-selector": {
3553
+ syntax: "<compound-selector> [ <combinator>? <compound-selector> ]*"
3554
+ },
3555
+ "relative-real-selector": {
3556
+ syntax: "<combinator>? <complex-real-selector>"
3557
+ },
3558
+ "pseudo-compound-selector": {
3559
+ syntax: " <pseudo-element-selector> <pseudo-class-selector>*"
3560
+ },
3561
+ "simple-selector": {
3562
+ syntax: "<type-selector> | <subclass-selector>"
3563
+ },
3564
+ "legacy-pseudo-element-selector": {
3565
+ syntax: " ':' [before | after | first-line | first-letter]"
3566
+ },
3567
+ "svg-length": {
3568
+ syntax: "<percentage> | <length> | <number>"
3569
+ },
3570
+ "svg-writing-mode": {
3571
+ syntax: "lr-tb | rl-tb | tb-rl | lr | rl | tb"
3572
+ },
3573
+ top: {
3574
+ syntax: "<length> | auto"
3575
+ },
3576
+ x: {
3577
+ syntax: "<number>"
3578
+ },
3579
+ y: {
3580
+ syntax: "<number>"
3581
+ },
3582
+ declaration: {
3583
+ syntax: "<ident-token> : <declaration-value>? [ '!' important ]?"
3584
+ },
3585
+ "declaration-list": {
3586
+ syntax: "[ <declaration>? ';' ]* <declaration>?"
3587
+ },
3588
+ url: {
3589
+ syntax: "url( <string> <url-modifier>* ) | <url-token>"
3590
+ },
3591
+ "url-modifier": {
3592
+ syntax: "<ident> | <function-token> <any-value> )"
3593
+ },
3594
+ "number-zero-one": {
3595
+ syntax: "<number [0,1]>"
3596
+ },
3597
+ "number-one-or-greater": {
3598
+ syntax: "<number [1,∞]>"
3599
+ },
3600
+ "xyz-space": {
3601
+ syntax: "xyz | xyz-d50 | xyz-d65"
3602
+ },
3603
+ "style-condition": {
3604
+ syntax: "not <style-in-parens> | <style-in-parens> [ [ and <style-in-parens> ]* | [ or <style-in-parens> ]* ]"
3605
+ },
3606
+ "-non-standard-display": {
3607
+ 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 | -ms-flexbox"
3608
+ },
3609
+ "inset-area": {
3610
+ 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} ]"
3611
+ },
3612
+ "-non-standard-text-align": {
3613
+ syntax: "| -moz-center | -webkit-center | -webkit-match-parent"
3158
3614
  }
3159
3615
  };
3160
3616
  var selectors = {
@@ -3302,6 +3758,9 @@ var selectors = {
3302
3758
  ":only-of-type": {
3303
3759
  syntax: ":only-of-type"
3304
3760
  },
3761
+ ":open": {
3762
+ syntax: ":open"
3763
+ },
3305
3764
  ":optional": {
3306
3765
  syntax: ":optional"
3307
3766
  },
@@ -3356,6 +3815,9 @@ var selectors = {
3356
3815
  ":target": {
3357
3816
  syntax: ":target"
3358
3817
  },
3818
+ ":target-current": {
3819
+ syntax: ":target-current"
3820
+ },
3359
3821
  ":target-within": {
3360
3822
  syntax: ":target-within"
3361
3823
  },
@@ -3458,6 +3920,9 @@ var selectors = {
3458
3920
  "::before": {
3459
3921
  syntax: "::before"
3460
3922
  },
3923
+ "::checkmark": {
3924
+ syntax: "::checkmark"
3925
+ },
3461
3926
  "::cue": {
3462
3927
  syntax: "::cue"
3463
3928
  },
@@ -3494,9 +3959,21 @@ var selectors = {
3494
3959
  "::part()": {
3495
3960
  syntax: "::part( <ident>+ )"
3496
3961
  },
3962
+ "::picker-icon": {
3963
+ syntax: "::picker-icon"
3964
+ },
3965
+ "::picker()": {
3966
+ syntax: "::picker( <form-control-identifier>+ )"
3967
+ },
3497
3968
  "::placeholder": {
3498
3969
  syntax: "::placeholder"
3499
3970
  },
3971
+ "::scroll-marker": {
3972
+ syntax: "::scroll-marker"
3973
+ },
3974
+ "::scroll-marker-group": {
3975
+ syntax: "::scroll-marker-group"
3976
+ },
3500
3977
  "::selection": {
3501
3978
  syntax: "::selection"
3502
3979
  },
@@ -3523,6 +4000,12 @@ var selectors = {
3523
4000
  },
3524
4001
  "::view-transition-old()": {
3525
4002
  syntax: "::view-transition-old([ '*' | <custom-ident> ])"
4003
+ },
4004
+ ":-webkit-any()": {
4005
+ syntax: ":-webkit-any( <forgiving-selector-list> )"
4006
+ },
4007
+ ":-webkit-any-link": {
4008
+ syntax: ":-webkit-any-link"
3526
4009
  }
3527
4010
  };
3528
4011
  var atRules = {
@@ -3533,7 +4016,7 @@ var atRules = {
3533
4016
  syntax: "@counter-style <counter-style-name> {\n [ system: <counter-system>; ] ||\n [ symbols: <counter-symbols>; ] ||\n [ additive-symbols: <additive-symbols>; ] ||\n [ negative: <negative-symbol>; ] ||\n [ prefix: <prefix>; ] ||\n [ suffix: <suffix>; ] ||\n [ range: <range>; ] ||\n [ pad: <padding>; ] ||\n [ speak-as: <speak-as>; ] ||\n [ fallback: <counter-style-name>; ]\n}",
3534
4017
  descriptors: {
3535
4018
  "additive-symbols": {
3536
- syntax: "[ <integer> && <symbol> ]#"
4019
+ syntax: "[ <integer [0,∞]> && <symbol> ]#"
3537
4020
  },
3538
4021
  fallback: {
3539
4022
  syntax: "<counter-style-name>"
@@ -3542,7 +4025,7 @@ var atRules = {
3542
4025
  syntax: "<symbol> <symbol>?"
3543
4026
  },
3544
4027
  pad: {
3545
- syntax: "<integer> && <symbol>"
4028
+ syntax: "<integer [0,∞]> && <symbol>"
3546
4029
  },
3547
4030
  prefix: {
3548
4031
  syntax: "<symbol>"
@@ -3564,6 +4047,9 @@ var atRules = {
3564
4047
  }
3565
4048
  }
3566
4049
  },
4050
+ "@container": {
4051
+ syntax: "@container <container-condition># {\n <block-contents>\n}"
4052
+ },
3567
4053
  "@document": {
3568
4054
  syntax: "@document [ <url> | url-prefix(<string>) | domain(<string>) | media-document(<string>) | regexp(<string>) ]# {\n <group-rule-body>\n}"
3569
4055
  },
@@ -3632,7 +4118,7 @@ var atRules = {
3632
4118
  syntax: "@import [ <string> | <url> ]\n [ layer | layer(<layer-name>) ]?\n [ supports( [ <supports-condition> | <declaration> ] ) ]?\n <media-query-list>? ;"
3633
4119
  },
3634
4120
  "@keyframes": {
3635
- syntax: "@keyframes <keyframes-name> {\n <keyframe-block-list>\n}"
4121
+ syntax: "@keyframes <keyframes-name> {\n <qualified-rule-list>\n}"
3636
4122
  },
3637
4123
  "@layer": {
3638
4124
  syntax: "@layer [ <layer-name># | <layer-name>? {\n <stylesheet>\n} ]"
@@ -3656,7 +4142,7 @@ var atRules = {
3656
4142
  syntax: "upright | rotate-left | rotate-right "
3657
4143
  },
3658
4144
  size: {
3659
- syntax: "<length>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ]"
4145
+ syntax: "<length [0,∞]>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ]"
3660
4146
  }
3661
4147
  }
3662
4148
  },
@@ -3696,6 +4182,20 @@ var atRules = {
3696
4182
  syntax: "none | <custom-ident>+"
3697
4183
  }
3698
4184
  }
4185
+ },
4186
+ charset: {
4187
+ syntax: "<string>"
4188
+ },
4189
+ container: {
4190
+ syntax: "[ <container-name> ]? <container-condition>"
4191
+ },
4192
+ nest: {
4193
+ syntax: "<complex-selector-list>"
4194
+ },
4195
+ scope: {
4196
+ syntax: "[ ( <scope-start> ) ]? [ to ( <scope-end> ) ]?"
4197
+ },
4198
+ "position-try": {
3699
4199
  }
3700
4200
  };
3701
4201
  var config = {