|
40 | 40 | "atrules": [], |
41 | 41 | "selectors": [], |
42 | 42 | "values": [ |
| 43 | + { |
| 44 | + "name": "<boolean-expr[]>", |
| 45 | + "prose": "Several contexts (such as @media, @supports, if(), ...) specify conditions, and allow combining those conditions with boolean logic (and/or/not/grouping). Because they use the same non-trivial recursive syntax structure, the special <boolean-expr[]> production represents this pattern generically.", |
| 46 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-boolean-expr", |
| 47 | + "type": "type" |
| 48 | + }, |
| 49 | + { |
| 50 | + "name": "<syntax>", |
| 51 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-syntax", |
| 52 | + "type": "type", |
| 53 | + "value": "'*' | <syntax-component> [ <syntax-combinator> <syntax-component> ]* | <syntax-string>" |
| 54 | + }, |
| 55 | + { |
| 56 | + "name": "<syntax-component>", |
| 57 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-syntax-component", |
| 58 | + "type": "type", |
| 59 | + "value": "<syntax-single-component> <syntax-multiplier>? | '<' transform-list '>'" |
| 60 | + }, |
| 61 | + { |
| 62 | + "name": "<syntax-single-component>", |
| 63 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-syntax-single-component", |
| 64 | + "type": "type", |
| 65 | + "value": "'<' <syntax-type-name> '>' | <ident>" |
| 66 | + }, |
| 67 | + { |
| 68 | + "name": "<syntax-type-name>", |
| 69 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-syntax-type-name", |
| 70 | + "type": "type", |
| 71 | + "value": "angle | color | custom-ident | image | integer | length | length-percentage | number | percentage | resolution | string | time | url | transform-function" |
| 72 | + }, |
| 73 | + { |
| 74 | + "name": "<syntax-combinator>", |
| 75 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-syntax-combinator", |
| 76 | + "type": "type", |
| 77 | + "value": "'|'" |
| 78 | + }, |
| 79 | + { |
| 80 | + "name": "<syntax-multiplier>", |
| 81 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-syntax-multiplier", |
| 82 | + "type": "type", |
| 83 | + "value": "[ '#' | '+' ]" |
| 84 | + }, |
| 85 | + { |
| 86 | + "name": "<syntax-string>", |
| 87 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-syntax-string", |
| 88 | + "type": "type", |
| 89 | + "value": "<string>" |
| 90 | + }, |
43 | 91 | { |
44 | 92 | "name": "<request-url-modifier>", |
45 | 93 | "prose": "<request-url-modifier>s are <url-modifier>s that affect the <url>’s resource request by applying associated URL request modifier steps. See CSS Values 4 § 4.5.4 URL Processing Model.", |
|
282 | 330 | }, |
283 | 331 | { |
284 | 332 | "name": "progress()", |
285 | | - "prose": "The progress() functional notation returns a <number> value representing the position of one calculation (the progress value) between two other calculations (the progress start value and progress end value). The argument calculations can resolve to any <number>, <dimension>, or <percentage>, but must have a consistent type or else the function is invalid. The result will be a <number>, made consistent with the consistent type of the arguments.", |
| 333 | + "prose": "The progress() functional notation returns a <number> value representing the position of one calculation (the progress value) between two other calculations (the progress start value and progress end value). progress() is a math function.", |
286 | 334 | "href": "https://www.w3.org/TR/css-values-5/#funcdef-progress", |
287 | 335 | "type": "function" |
288 | 336 | }, |
289 | 337 | { |
290 | 338 | "name": "<progress()>", |
291 | 339 | "href": "https://www.w3.org/TR/css-values-5/#typedef-progress-fn", |
292 | 340 | "type": "type", |
293 | | - "value": "progress(<calc-sum> from <calc-sum> to <calc-sum>)" |
| 341 | + "value": "progress(<calc-sum>, <calc-sum>, <calc-sum>)" |
294 | 342 | }, |
295 | 343 | { |
296 | 344 | "name": "media-progress()", |
|
302 | 350 | "name": "<media-progress()>", |
303 | 351 | "href": "https://www.w3.org/TR/css-values-5/#typedef-media-progress", |
304 | 352 | "type": "type", |
305 | | - "value": "media-progress(<media-feature> from <calc-sum> to <calc-sum>)" |
| 353 | + "value": "media-progress(<mf-name>, <calc-sum>, <calc-sum>)" |
306 | 354 | }, |
307 | 355 | { |
308 | 356 | "name": "container-progress()", |
|
314 | 362 | "name": "<container-progress()>", |
315 | 363 | "href": "https://www.w3.org/TR/css-values-5/#typedef-container-progress", |
316 | 364 | "type": "type", |
317 | | - "value": "container-progress(<size-feature> [ of <container-name> ]? from <calc-sum> to <calc-sum>)" |
| 365 | + "value": "container-progress(<mf-name> [ of <container-name> ]?, <calc-sum>, <calc-sum>)" |
318 | 366 | }, |
319 | 367 | { |
320 | 368 | "name": "<progress>", |
|
387 | 435 | "name": "<mix()>", |
388 | 436 | "href": "https://www.w3.org/TR/css-values-5/#typedef-mix", |
389 | 437 | "type": "type", |
390 | | - "value": "mix( <progress> , <whole-value> , <whole-value> ) | mix( <progress> && of <'animation-name'> )" |
| 438 | + "value": "mix( <progress> , <whole-value> , <whole-value> ) | mix( <progress> && of <keyframes-name> )" |
391 | 439 | }, |
392 | 440 | { |
393 | 441 | "name": "first-valid()", |
|
401 | 449 | "type": "type", |
402 | 450 | "value": "first-valid( <declaration-value># )" |
403 | 451 | }, |
| 452 | + { |
| 453 | + "name": "if()", |
| 454 | + "prose": "The if() notation is an arbitrary substitution function that represents conditional values. Its argument consists of an ordered semi-colon–separated list of statements, each consisting of a condition followed by a colon followed by a value. An if() notation represents the value corresponding to the first condition in its argument list to be true; if no condition matches, then the if() notation represents an empty token stream.", |
| 455 | + "href": "https://www.w3.org/TR/css-values-5/#funcdef-if", |
| 456 | + "type": "function", |
| 457 | + "values": [ |
| 458 | + { |
| 459 | + "name": "else", |
| 460 | + "prose": "The else keyword represents a condition that is always true.", |
| 461 | + "href": "https://www.w3.org/TR/css-values-5/#valdef-if-else", |
| 462 | + "type": "value", |
| 463 | + "value": "else" |
| 464 | + } |
| 465 | + ] |
| 466 | + }, |
| 467 | + { |
| 468 | + "name": "<if()>", |
| 469 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-if", |
| 470 | + "type": "type", |
| 471 | + "value": "if( [ <if-condition> : <declaration-value>? ; ]* <if-condition> : <declaration-value>? ;? )" |
| 472 | + }, |
| 473 | + { |
| 474 | + "name": "<if-condition>", |
| 475 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-if-condition", |
| 476 | + "type": "type", |
| 477 | + "value": "<boolean-expr[ <if-test> ]> | else" |
| 478 | + }, |
| 479 | + { |
| 480 | + "name": "<if-test>", |
| 481 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-if-test", |
| 482 | + "type": "type", |
| 483 | + "value": "supports( [ <supports-condition> | <ident> : <declaration-value> ] ) | media( <media-query> ) | style( <style-query> )" |
| 484 | + }, |
404 | 485 | { |
405 | 486 | "name": "toggle()", |
406 | 487 | "prose": "The toggle() expression allows descendant elements to cycle over a list of values instead of inheriting the same value.", |
|
413 | 494 | "type": "type", |
414 | 495 | "value": "toggle( <whole-value># )" |
415 | 496 | }, |
| 497 | + { |
| 498 | + "name": "inherit()", |
| 499 | + "prose": "Like the inherit keyword, the inherit() functional notation resolves to the computed value of a property on the parent. Rather than resolving to the value of the same property, however, it resolves to the tokenized computed value of the property specified as its first argument. Its second argument, if present, is used as a fallback in case the first argument resolves to the guaranteed-invalid value.", |
| 500 | + "href": "https://www.w3.org/TR/css-values-5/#funcdef-inherit", |
| 501 | + "type": "function" |
| 502 | + }, |
| 503 | + { |
| 504 | + "name": "<inherit()>", |
| 505 | + "href": "https://www.w3.org/TR/css-values-5/#typedef-inherit", |
| 506 | + "type": "type", |
| 507 | + "value": "inherit( <custom-property-name>, <declaration-value>? )" |
| 508 | + }, |
416 | 509 | { |
417 | 510 | "name": "attr()", |
418 | 511 | "prose": "The attr() function substitutes the value of an attribute on an element into a property, similar to how the var() function substitutes a custom property value into a function.", |
419 | 512 | "href": "https://www.w3.org/TR/css-values-5/#funcdef-attr", |
420 | 513 | "type": "function", |
421 | | - "value": "attr( <attr-name> <attr-type>? , <declaration-value>?)", |
422 | | - "values": [ |
423 | | - { |
424 | | - "name": "string", |
425 | | - "prose": "The substitution value is a CSS string, whose value is the literal value of the attribute. (No CSS parsing or \"cleanup\" of the value is performed.) No value triggers fallback.", |
426 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-string", |
427 | | - "type": "value", |
428 | | - "value": "string" |
429 | | - }, |
430 | | - { |
431 | | - "name": "ident", |
432 | | - "prose": "The substitution value is a CSS <custom-ident>, whose value is the literal value of the attribute, with leading and trailing ASCII whitespace stripped. (No CSS parsing of the value is performed.) If the attribute value, after trimming, is the empty string, there is instead no substitution value. If the <custom-ident>’s value is a CSS-wide keyword or default, there is instead no substitution value.", |
433 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-ident", |
434 | | - "type": "value", |
435 | | - "value": "ident" |
436 | | - }, |
437 | | - { |
438 | | - "name": "color", |
439 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <hex-color> or a named color ident, the substitution value is that result as a <color>. Otherwise there is no substitution value.", |
440 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-color", |
441 | | - "type": "value", |
442 | | - "value": "color" |
443 | | - }, |
444 | | - { |
445 | | - "name": "number", |
446 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <number-token>, the result is the substitution value. Otherwise, there is no substitution value.", |
447 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-number", |
448 | | - "type": "value", |
449 | | - "value": "number" |
450 | | - }, |
451 | | - { |
452 | | - "name": "percentage", |
453 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <percentage-token>, the result is the substitution value. Otherwise, there is no substitution value.", |
454 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-percentage", |
455 | | - "type": "value", |
456 | | - "value": "percentage" |
457 | | - }, |
458 | | - { |
459 | | - "name": "length", |
460 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <dimension-token> whose unit matches the given type, the result is the substitution value. Otherwise, there is no substitution value.", |
461 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-length", |
462 | | - "type": "value", |
463 | | - "value": "length" |
464 | | - }, |
465 | | - { |
466 | | - "name": "angle", |
467 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <dimension-token> whose unit matches the given type, the result is the substitution value. Otherwise, there is no substitution value.", |
468 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-angle", |
469 | | - "type": "value", |
470 | | - "value": "angle" |
471 | | - }, |
472 | | - { |
473 | | - "name": "time", |
474 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <dimension-token> whose unit matches the given type, the result is the substitution value. Otherwise, there is no substitution value.", |
475 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-time", |
476 | | - "type": "value", |
477 | | - "value": "time" |
478 | | - }, |
479 | | - { |
480 | | - "name": "frequency", |
481 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <dimension-token> whose unit matches the given type, the result is the substitution value. Otherwise, there is no substitution value.", |
482 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-frequency", |
483 | | - "type": "value", |
484 | | - "value": "frequency" |
485 | | - }, |
486 | | - { |
487 | | - "name": "flex", |
488 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <dimension-token> whose unit matches the given type, the result is the substitution value. Otherwise, there is no substitution value.", |
489 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-flex", |
490 | | - "type": "value", |
491 | | - "value": "flex" |
492 | | - }, |
493 | | - { |
494 | | - "name": "<dimension-unit>", |
495 | | - "prose": "Parse a component value from the attribute’s value. If the result is a <number-token>, the substitution value is a dimension with the result’s value, and the given unit. Otherwise, there is no substitution value.", |
496 | | - "href": "https://www.w3.org/TR/css-values-5/#valdef-attr-dimension-unit", |
497 | | - "type": "value", |
498 | | - "value": "<dimension-unit>" |
499 | | - } |
500 | | - ] |
| 514 | + "value": "attr( <attr-name> <syntax>? , <declaration-value>?)" |
501 | 515 | }, |
502 | 516 | { |
503 | 517 | "name": "<attr-name>", |
504 | 518 | "href": "https://www.w3.org/TR/css-values-5/#typedef-attr-name", |
505 | 519 | "type": "type", |
506 | 520 | "value": "[ <ident-token> '|' ]? <ident-token>" |
507 | 521 | }, |
508 | | - { |
509 | | - "name": "<attr-type>", |
510 | | - "href": "https://www.w3.org/TR/css-values-5/#typedef-attr-type", |
511 | | - "type": "type", |
512 | | - "value": "string | ident | color | number | percentage | length | angle | time | frequency | flex | <dimension-unit>" |
513 | | - }, |
514 | | - { |
515 | | - "name": "<dimension-unit>", |
516 | | - "prose": "The <dimension-unit> production matches a literal \"%\" character (that is, a <delim-token> with a value of \"%\") or an ident whose value is any of the CSS units for <length>, <angle>, <time>, <frequency>, or <flex> values (such as px or ms).", |
517 | | - "href": "https://www.w3.org/TR/css-values-5/#typedef-dimension-unit", |
518 | | - "type": "type" |
519 | | - }, |
520 | 522 | { |
521 | 523 | "name": "random()", |
522 | 524 | "prose": "The random() function is a math function that represents a random value between a minimum and maximum value, drawn from a uniform distribution, optionally limiting the possible values to a step between those limits:", |
|
585 | 587 | } |
586 | 588 | ], |
587 | 589 | "warnings": [ |
| 590 | + { |
| 591 | + "msg": "Missing definition", |
| 592 | + "name": "]>", |
| 593 | + "value": "not <boolean-expr-group> | <boolean-expr-group> [ [ and <boolean-expr-group> ]* | [ or <boolean-expr-group> ]* ]" |
| 594 | + }, |
| 595 | + { |
| 596 | + "msg": "Missing definition", |
| 597 | + "name": "<boolean-expr-group>", |
| 598 | + "value": "<test> | ( <boolean-expr[ <test> ]> ) | <general-enclosed>" |
| 599 | + }, |
588 | 600 | { |
589 | 601 | "msg": "Missing definition", |
590 | 602 | "name": "progress-function()", |
|
0 commit comments