1{ 2 "atrules": { 3 "charset": { 4 "prelude": "<string>" 5 }, 6 "font-face": { 7 "descriptors": { 8 "unicode-range": { 9 "comment": "replaces <unicode-range>, an old production name", 10 "syntax": "<urange>#" 11 } 12 } 13 } 14 }, 15 "properties": { 16 "-moz-background-clip": { 17 "comment": "deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip", 18 "syntax": "padding | border" 19 }, 20 "-moz-border-radius-bottomleft": { 21 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius", 22 "syntax": "<'border-bottom-left-radius'>" 23 }, 24 "-moz-border-radius-bottomright": { 25 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius", 26 "syntax": "<'border-bottom-right-radius'>" 27 }, 28 "-moz-border-radius-topleft": { 29 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius", 30 "syntax": "<'border-top-left-radius'>" 31 }, 32 "-moz-border-radius-topright": { 33 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius", 34 "syntax": "<'border-bottom-right-radius'>" 35 }, 36 "-moz-control-character-visibility": { 37 "comment": "firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588", 38 "syntax": "visible | hidden" 39 }, 40 "-moz-osx-font-smoothing": { 41 "comment": "misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth", 42 "syntax": "auto | grayscale" 43 }, 44 "-moz-user-select": { 45 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/user-select", 46 "syntax": "none | text | all | -moz-none" 47 }, 48 "-ms-flex-align": { 49 "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align", 50 "syntax": "start | end | center | baseline | stretch" 51 }, 52 "-ms-flex-item-align": { 53 "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align", 54 "syntax": "auto | start | end | center | baseline | stretch" 55 }, 56 "-ms-flex-line-pack": { 57 "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack", 58 "syntax": "start | end | center | justify | distribute | stretch" 59 }, 60 "-ms-flex-negative": { 61 "comment": "misssed old syntax implemented in IE; TODO: find references for comfirmation", 62 "syntax": "<'flex-shrink'>" 63 }, 64 "-ms-flex-pack": { 65 "comment": "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack", 66 "syntax": "start | end | center | justify | distribute" 67 }, 68 "-ms-flex-order": { 69 "comment": "misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx", 70 "syntax": "<integer>" 71 }, 72 "-ms-flex-positive": { 73 "comment": "misssed old syntax implemented in IE; TODO: find references for comfirmation", 74 "syntax": "<'flex-grow'>" 75 }, 76 "-ms-flex-preferred-size": { 77 "comment": "misssed old syntax implemented in IE; TODO: find references for comfirmation", 78 "syntax": "<'flex-basis'>" 79 }, 80 "-ms-interpolation-mode": { 81 "comment": "https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx", 82 "syntax": "nearest-neighbor | bicubic" 83 }, 84 "-ms-grid-column-align": { 85 "comment": "add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx", 86 "syntax": "start | end | center | stretch" 87 }, 88 "-ms-grid-row-align": { 89 "comment": "add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx", 90 "syntax": "start | end | center | stretch" 91 }, 92 "-ms-hyphenate-limit-last": { 93 "comment": "misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits", 94 "syntax": "none | always | column | page | spread" 95 }, 96 "-webkit-appearance": { 97 "comment": "webkit specific keywords", 98 "references": [ 99 "http://css-infos.net/property/-webkit-appearance" 100 ], 101 "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" 102 }, 103 "-webkit-background-clip": { 104 "comment": "https://developer.mozilla.org/en/docs/Web/CSS/background-clip", 105 "syntax": "[ <box> | border | padding | content | text ]#" 106 }, 107 "-webkit-column-break-after": { 108 "comment": "added, http://help.dottoro.com/lcrthhhv.php", 109 "syntax": "always | auto | avoid" 110 }, 111 "-webkit-column-break-before": { 112 "comment": "added, http://help.dottoro.com/lcxquvkf.php", 113 "syntax": "always | auto | avoid" 114 }, 115 "-webkit-column-break-inside": { 116 "comment": "added, http://help.dottoro.com/lclhnthl.php", 117 "syntax": "always | auto | avoid" 118 }, 119 "-webkit-font-smoothing": { 120 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth", 121 "syntax": "auto | none | antialiased | subpixel-antialiased" 122 }, 123 "-webkit-mask-box-image": { 124 "comment": "missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image", 125 "syntax": "[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?" 126 }, 127 "-webkit-print-color-adjust": { 128 "comment": "missed", 129 "references": [ 130 "https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust" 131 ], 132 "syntax": "economy | exact" 133 }, 134 "-webkit-text-security": { 135 "comment": "missed; http://help.dottoro.com/lcbkewgt.php", 136 "syntax": "none | circle | disc | square" 137 }, 138 "-webkit-user-drag": { 139 "comment": "missed; http://help.dottoro.com/lcbixvwm.php", 140 "syntax": "none | element | auto" 141 }, 142 "-webkit-user-select": { 143 "comment": "auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select", 144 "syntax": "auto | none | text | all" 145 }, 146 "alignment-baseline": { 147 "comment": "added SVG property", 148 "references": [ 149 "https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty" 150 ], 151 "syntax": "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical" 152 }, 153 "baseline-shift": { 154 "comment": "added SVG property", 155 "references": [ 156 "https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty" 157 ], 158 "syntax": "baseline | sub | super | <svg-length>" 159 }, 160 "behavior": { 161 "comment": "added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx", 162 "syntax": "<url>+" 163 }, 164 "clip-rule": { 165 "comment": "added SVG property", 166 "references": [ 167 "https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty" 168 ], 169 "syntax": "nonzero | evenodd" 170 }, 171 "cue": { 172 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 173 "syntax": "<'cue-before'> <'cue-after'>?" 174 }, 175 "cue-after": { 176 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 177 "syntax": "<url> <decibel>? | none" 178 }, 179 "cue-before": { 180 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 181 "syntax": "<url> <decibel>? | none" 182 }, 183 "cursor": { 184 "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", 185 "references": [ 186 "https://www.sitepoint.com/css3-cursor-styles/" 187 ], 188 "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 ] ]" 189 }, 190 "display": { 191 "comment": "extended with -ms-flexbox", 192 "syntax": "| <-non-standard-display>" 193 }, 194 "position": { 195 "comment": "extended with -webkit-sticky", 196 "syntax": "| -webkit-sticky" 197 }, 198 "dominant-baseline": { 199 "comment": "added SVG property", 200 "references": [ 201 "https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty" 202 ], 203 "syntax": "auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge" 204 }, 205 "image-rendering": { 206 "comment": "extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality", 207 "references": [ 208 "https://developer.mozilla.org/en/docs/Web/CSS/image-rendering", 209 "https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty" 210 ], 211 "syntax": "| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>" 212 }, 213 "fill": { 214 "comment": "added SVG property", 215 "references": [ 216 "https://www.w3.org/TR/SVG/painting.html#FillProperty" 217 ], 218 "syntax": "<paint>" 219 }, 220 "fill-opacity": { 221 "comment": "added SVG property", 222 "references": [ 223 "https://www.w3.org/TR/SVG/painting.html#FillProperty" 224 ], 225 "syntax": "<number-zero-one>" 226 }, 227 "fill-rule": { 228 "comment": "added SVG property", 229 "references": [ 230 "https://www.w3.org/TR/SVG/painting.html#FillProperty" 231 ], 232 "syntax": "nonzero | evenodd" 233 }, 234 "filter": { 235 "comment": "extend with IE legacy syntaxes", 236 "syntax": "| <-ms-filter-function-list>" 237 }, 238 "glyph-orientation-horizontal": { 239 "comment": "added SVG property", 240 "references": [ 241 "https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty" 242 ], 243 "syntax": "<angle>" 244 }, 245 "glyph-orientation-vertical": { 246 "comment": "added SVG property", 247 "references": [ 248 "https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty" 249 ], 250 "syntax": "<angle>" 251 }, 252 "kerning": { 253 "comment": "added SVG property", 254 "references": [ 255 "https://www.w3.org/TR/SVG/text.html#KerningProperty" 256 ], 257 "syntax": "auto | <svg-length>" 258 }, 259 "letter-spacing": { 260 "comment": "fix syntax <length> -> <length-percentage>", 261 "references": [ 262 "https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing" 263 ], 264 "syntax": "normal | <length-percentage>" 265 }, 266 "marker": { 267 "comment": "added SVG property", 268 "references": [ 269 "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" 270 ], 271 "syntax": "none | <url>" 272 }, 273 "marker-end": { 274 "comment": "added SVG property", 275 "references": [ 276 "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" 277 ], 278 "syntax": "none | <url>" 279 }, 280 "marker-mid": { 281 "comment": "added SVG property", 282 "references": [ 283 "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" 284 ], 285 "syntax": "none | <url>" 286 }, 287 "marker-start": { 288 "comment": "added SVG property", 289 "references": [ 290 "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" 291 ], 292 "syntax": "none | <url>" 293 }, 294 "max-width": { 295 "comment": "fix auto -> none (https://github.com/mdn/data/pull/431); extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width", 296 "syntax": "none | <length-percentage> | min-content | max-content | fit-content(<length-percentage>) | <-non-standard-width>" 297 }, 298 "width": { 299 "comment": "per spec fit-content should be a function, however browsers are supporting it as a keyword (https://github.com/csstree/stylelint-validator/issues/29)", 300 "syntax": "| fit-content | -moz-fit-content | -webkit-fit-content" 301 }, 302 "min-width": { 303 "comment": "extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width", 304 "syntax": "auto | <length-percentage> | min-content | max-content | fit-content(<length-percentage>) | <-non-standard-width>" 305 }, 306 "overflow": { 307 "comment": "extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow", 308 "syntax": "| <-non-standard-overflow>" 309 }, 310 "pause": { 311 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 312 "syntax": "<'pause-before'> <'pause-after'>?" 313 }, 314 "pause-after": { 315 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 316 "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong" 317 }, 318 "pause-before": { 319 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 320 "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong" 321 }, 322 "rest": { 323 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 324 "syntax": "<'rest-before'> <'rest-after'>?" 325 }, 326 "rest-after": { 327 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 328 "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong" 329 }, 330 "rest-before": { 331 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 332 "syntax": "<time> | none | x-weak | weak | medium | strong | x-strong" 333 }, 334 "shape-rendering": { 335 "comment": "added SVG property", 336 "references": [ 337 "https://www.w3.org/TR/SVG/painting.html#ShapeRenderingPropert" 338 ], 339 "syntax": "auto | optimizeSpeed | crispEdges | geometricPrecision" 340 }, 341 "src": { 342 "comment": "added @font-face's src property https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src", 343 "syntax": "[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#" 344 }, 345 "speak": { 346 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 347 "syntax": "auto | none | normal" 348 }, 349 "speak-as": { 350 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 351 "syntax": "normal | spell-out || digits || [ literal-punctuation | no-punctuation ]" 352 }, 353 "stroke": { 354 "comment": "added SVG property", 355 "references": [ 356 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 357 ], 358 "syntax": "<paint>" 359 }, 360 "stroke-dasharray": { 361 "comment": "added SVG property; a list of comma and/or white space separated <length>s and <percentage>s", 362 "references": [ 363 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 364 ], 365 "syntax": "none | [ <svg-length>+ ]#" 366 }, 367 "stroke-dashoffset": { 368 "comment": "added SVG property", 369 "references": [ 370 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 371 ], 372 "syntax": "<svg-length>" 373 }, 374 "stroke-linecap": { 375 "comment": "added SVG property", 376 "references": [ 377 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 378 ], 379 "syntax": "butt | round | square" 380 }, 381 "stroke-linejoin": { 382 "comment": "added SVG property", 383 "references": [ 384 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 385 ], 386 "syntax": "miter | round | bevel" 387 }, 388 "stroke-miterlimit": { 389 "comment": "added SVG property (<miterlimit> = <number-one-or-greater>) ", 390 "references": [ 391 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 392 ], 393 "syntax": "<number-one-or-greater>" 394 }, 395 "stroke-opacity": { 396 "comment": "added SVG property", 397 "references": [ 398 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 399 ], 400 "syntax": "<number-zero-one>" 401 }, 402 "stroke-width": { 403 "comment": "added SVG property", 404 "references": [ 405 "https://www.w3.org/TR/SVG/painting.html#StrokeProperties" 406 ], 407 "syntax": "<svg-length>" 408 }, 409 "text-anchor": { 410 "comment": "added SVG property", 411 "references": [ 412 "https://www.w3.org/TR/SVG/text.html#TextAlignmentProperties" 413 ], 414 "syntax": "start | middle | end" 415 }, 416 "unicode-bidi": { 417 "comment": "added prefixed keywords https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi", 418 "syntax": "| -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext" 419 }, 420 "unicode-range": { 421 "comment": "added missed property https://developer.mozilla.org/en-US/docs/Web/CSS/%40font-face/unicode-range", 422 "syntax": "<urange>#" 423 }, 424 "voice-balance": { 425 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 426 "syntax": "<number> | left | center | right | leftwards | rightwards" 427 }, 428 "voice-duration": { 429 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 430 "syntax": "auto | <time>" 431 }, 432 "voice-family": { 433 "comment": "<name> -> <family-name>, https://www.w3.org/TR/css3-speech/#property-index", 434 "syntax": "[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve" 435 }, 436 "voice-pitch": { 437 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 438 "syntax": "<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]" 439 }, 440 "voice-range": { 441 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 442 "syntax": "<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]" 443 }, 444 "voice-rate": { 445 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 446 "syntax": "[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>" 447 }, 448 "voice-stress": { 449 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 450 "syntax": "normal | strong | moderate | none | reduced" 451 }, 452 "voice-volume": { 453 "comment": "https://www.w3.org/TR/css3-speech/#property-index", 454 "syntax": "silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]" 455 }, 456 "writing-mode": { 457 "comment": "extend with SVG keywords", 458 "syntax": "| <svg-writing-mode>" 459 } 460 }, 461 "syntaxes": { 462 "-legacy-gradient": { 463 "comment": "added collection of legacy gradient syntaxes", 464 "syntax": "<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>" 465 }, 466 "-legacy-linear-gradient": { 467 "comment": "like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient", 468 "syntax": "-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )" 469 }, 470 "-legacy-repeating-linear-gradient": { 471 "comment": "like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient", 472 "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> )" 473 }, 474 "-legacy-linear-gradient-arguments": { 475 "comment": "like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient", 476 "syntax": "[ <angle> | <side-or-corner> ]? , <color-stop-list>" 477 }, 478 "-legacy-radial-gradient": { 479 "comment": "deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients", 480 "syntax": "-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )" 481 }, 482 "-legacy-repeating-radial-gradient": { 483 "comment": "deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients", 484 "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> )" 485 }, 486 "-legacy-radial-gradient-arguments": { 487 "comment": "deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients", 488 "syntax": "[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>" 489 }, 490 "-legacy-radial-gradient-size": { 491 "comment": "before a standard it contains 2 extra keywords (`contain` and `cover`) https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltsize", 492 "syntax": "closest-side | closest-corner | farthest-side | farthest-corner | contain | cover" 493 }, 494 "-legacy-radial-gradient-shape": { 495 "comment": "define to double sure it doesn't extends in future https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltshape", 496 "syntax": "circle | ellipse" 497 }, 498 "-non-standard-font": { 499 "comment": "non standard fonts", 500 "references": [ 501 "https://webkit.org/blog/3709/using-the-system-font-in-web-content/" 502 ], 503 "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" 504 }, 505 "-non-standard-color": { 506 "comment": "non standard colors", 507 "references": [ 508 "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", 509 "https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Mozilla_Color_Preference_Extensions" 510 ], 511 "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" 512 }, 513 "-non-standard-image-rendering": { 514 "comment": "non-standard keywords http://phrogz.net/tmp/canvas_image_zoom.html", 515 "syntax": "optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast" 516 }, 517 "-non-standard-overflow": { 518 "comment": "non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow", 519 "syntax": "-moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable" 520 }, 521 "-non-standard-width": { 522 "comment": "non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width", 523 "syntax": "fill-available | min-intrinsic | intrinsic | -moz-available | -moz-fit-content | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content" 524 }, 525 "-webkit-gradient()": { 526 "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 )", 527 "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>]* )" 528 }, 529 "-webkit-gradient-color-stop": { 530 "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/", 531 "syntax": "from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )" 532 }, 533 "-webkit-gradient-point": { 534 "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/", 535 "syntax": "[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]" 536 }, 537 "-webkit-gradient-radius": { 538 "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/", 539 "syntax": "<length> | <percentage>" 540 }, 541 "-webkit-gradient-type": { 542 "comment": "first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/", 543 "syntax": "linear | radial" 544 }, 545 "-webkit-mask-box-repeat": { 546 "comment": "missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image", 547 "syntax": "repeat | stretch | round" 548 }, 549 "-webkit-mask-clip-style": { 550 "comment": "missed; there is no enough information about `-webkit-mask-clip` property, but looks like all those keywords are working", 551 "syntax": "border | border-box | padding | padding-box | content | content-box | text" 552 }, 553 "-ms-filter-function-list": { 554 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter", 555 "syntax": "<-ms-filter-function>+" 556 }, 557 "-ms-filter-function": { 558 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter", 559 "syntax": "<-ms-filter-function-progid> | <-ms-filter-function-legacy>" 560 }, 561 "-ms-filter-function-progid": { 562 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter", 563 "syntax": "'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]" 564 }, 565 "-ms-filter-function-legacy": { 566 "comment": "https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter", 567 "syntax": "<ident-token> | <function-token> <any-value>? )" 568 }, 569 "-ms-filter": { 570 "syntax": "<string>" 571 }, 572 "age": { 573 "comment": "https://www.w3.org/TR/css3-speech/#voice-family", 574 "syntax": "child | young | old" 575 }, 576 "attr-name": { 577 "syntax": "<wq-name>" 578 }, 579 "attr-fallback": { 580 "syntax": "<any-value>" 581 }, 582 "border-radius": { 583 "comment": "missed, https://drafts.csswg.org/css-backgrounds-3/#the-border-radius", 584 "syntax": "<length-percentage>{1,2}" 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": "missed -> https://drafts.csswg.org/css-content/#typedef-content-list (document-url, <target> and leader() is omitted util stabilization)", 592 "syntax": "[ <string> | contents | <image> | <quote> | <target> | <leader()> | <attr()> | counter( <ident>, <'list-style-type'>? ) ]+" 593 }, 594 "element()": { 595 "comment": "https://drafts.csswg.org/css-gcpm/#element-syntax & https://drafts.csswg.org/css-images-4/#element-notation", 596 "syntax": "element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )" 597 }, 598 "generic-voice": { 599 "comment": "https://www.w3.org/TR/css3-speech/#voice-family", 600 "syntax": "[ <age>? <gender> <integer>? ]" 601 }, 602 "gender": { 603 "comment": "https://www.w3.org/TR/css3-speech/#voice-family", 604 "syntax": "male | female | neutral" 605 }, 606 "generic-family": { 607 "comment": "added -apple-system", 608 "references": [ 609 "https://webkit.org/blog/3709/using-the-system-font-in-web-content/" 610 ], 611 "syntax": "| -apple-system" 612 }, 613 "gradient": { 614 "comment": "added legacy syntaxes support", 615 "syntax": "| <-legacy-gradient>" 616 }, 617 "left": { 618 "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", 619 "syntax": "<length> | auto" 620 }, 621 "mask-image": { 622 "comment": "missed; https://drafts.fxtf.org/css-masking-1/#the-mask-image", 623 "syntax": "<mask-reference>#" 624 }, 625 "name-repeat": { 626 "comment": "missed, and looks like obsolete, keep it as is since other property syntaxes should be changed too; https://www.w3.org/TR/2015/WD-css-grid-1-20150917/#typedef-name-repeat", 627 "syntax": "repeat( [ <positive-integer> | auto-fill ], <line-names>+)" 628 }, 629 "named-color": { 630 "comment": "added non standard color names", 631 "syntax": "| <-non-standard-color>" 632 }, 633 "paint": { 634 "comment": "used by SVG https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint", 635 "syntax": "none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke" 636 }, 637 "page-size": { 638 "comment": "https://www.w3.org/TR/css-page-3/#typedef-page-size-page-size", 639 "syntax": "A5 | A4 | A3 | B5 | B4 | JIS-B5 | JIS-B4 | letter | legal | ledger" 640 }, 641 "ratio": { 642 "comment": "missed, https://drafts.csswg.org/mediaqueries-4/#typedef-ratio", 643 "syntax": "<integer> / <integer>" 644 }, 645 "right": { 646 "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", 647 "syntax": "<length> | auto" 648 }, 649 "shape": { 650 "comment": "missed spaces in function body and add backwards compatible syntax", 651 "syntax": "rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )" 652 }, 653 "svg-length": { 654 "comment": "All coordinates and lengths in SVG can be specified with or without a unit identifier", 655 "references": [ 656 "https://www.w3.org/TR/SVG11/coords.html#Units" 657 ], 658 "syntax": "<percentage> | <length> | <number>" 659 }, 660 "svg-writing-mode": { 661 "comment": "SVG specific keywords (deprecated for CSS)", 662 "references": [ 663 "https://developer.mozilla.org/en/docs/Web/CSS/writing-mode", 664 "https://www.w3.org/TR/SVG/text.html#WritingModeProperty" 665 ], 666 "syntax": "lr-tb | rl-tb | tb-rl | lr | rl | tb" 667 }, 668 "top": { 669 "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", 670 "syntax": "<length> | auto" 671 }, 672 "track-group": { 673 "comment": "used by old grid-columns and grid-rows syntax v0", 674 "syntax": "'(' [ <string>* <track-minmax> <string>* ]+ ')' [ '[' <positive-integer> ']' ]? | <track-minmax>" 675 }, 676 "track-list-v0": { 677 "comment": "used by old grid-columns and grid-rows syntax v0", 678 "syntax": "[ <string>* <track-group> <string>* ]+ | none" 679 }, 680 "track-minmax": { 681 "comment": "used by old grid-columns and grid-rows syntax v0", 682 "syntax": "minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth> | fit-content" 683 }, 684 "x": { 685 "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", 686 "syntax": "<number>" 687 }, 688 "y": { 689 "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", 690 "syntax": "<number>" 691 }, 692 "declaration": { 693 "comment": "missed, restored by https://drafts.csswg.org/css-syntax", 694 "syntax": "<ident-token> : <declaration-value>? [ '!' important ]?" 695 }, 696 "declaration-list": { 697 "comment": "missed, restored by https://drafts.csswg.org/css-syntax", 698 "syntax": "[ <declaration>? ';' ]* <declaration>?" 699 }, 700 "url": { 701 "comment": "https://drafts.csswg.org/css-values-4/#urls", 702 "syntax": "url( <string> <url-modifier>* ) | <url-token>" 703 }, 704 "url-modifier": { 705 "comment": "https://drafts.csswg.org/css-values-4/#typedef-url-modifier", 706 "syntax": "<ident> | <function-token> <any-value> )" 707 }, 708 "number-zero-one": { 709 "syntax": "<number [0,1]>" 710 }, 711 "number-one-or-greater": { 712 "syntax": "<number [1,∞]>" 713 }, 714 "positive-integer": { 715 "syntax": "<integer [0,∞]>" 716 }, 717 "-non-standard-display": { 718 "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" 719 } 720 } 721} 722