@webref/css 6.4.2 → 6.4.3

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.
@@ -4,6 +4,35 @@
4
4
  "url": "https://drafts.csswg.org/css-animations-2/"
5
5
  },
6
6
  "properties": [
7
+ {
8
+ "name": "animation-duration",
9
+ "value": "[ auto | <time [0s,∞]> ]#",
10
+ "initial": "auto",
11
+ "appliesTo": "all elements",
12
+ "inherited": "no",
13
+ "percentages": "N/A",
14
+ "computedValue": "list, each item either a time or the keyword auto",
15
+ "canonicalOrder": "per grammar",
16
+ "animationType": "not animatable",
17
+ "values": [
18
+ {
19
+ "name": "auto",
20
+ "prose": "For time-driven animations, equivalent to 0s. For scroll-driven animations, equivalent to the duration necessary to fill the timeline in consideration of animation-range, animation-delay, and animation-iteration-count. See Scroll-linked Animations § 4.1 Finite Timeline Calculations.",
21
+ "type": "value",
22
+ "value": "auto"
23
+ },
24
+ {
25
+ "name": "<time [0s,∞]>",
26
+ "prose": "For time-driven animations, specifies the length of time that an animation takes to complete one cycle. A negative <time> is invalid. If the <time> is 0s, like the initial value, the keyframes of the animation have no effect, but the animation itself still occurs instantaneously. Specifically, start and end events are fired; if animation-fill-mode is set to backwards or both, the first frame of the animation, as defined by animation-direction, will be displayed during the animation-delay. After the animation-delay the last frame of the animation, as defined by animation-direction, will be displayed if animation-fill-mode is set to forwards or both. If animation-fill-mode is set to none the animation will have no visible effect. For scroll-driven animations, treated as auto.",
27
+ "type": "value",
28
+ "value": "<time [0s,∞]>"
29
+ }
30
+ ],
31
+ "styleDeclaration": [
32
+ "animation-duration",
33
+ "animationDuration"
34
+ ]
35
+ },
7
36
  {
8
37
  "name": "animation-composition",
9
38
  "value": "<single-animation-composition>#",
@@ -82,7 +111,7 @@
82
111
  },
83
112
  {
84
113
  "name": "<single-animation>",
85
- "value": "<time> || <easing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ] || <single-animation-timeline>",
114
+ "value": "<time [0s,∞]> || <easing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ] || <single-animation-timeline>",
86
115
  "type": "type"
87
116
  }
88
117
  ]
@@ -296,7 +296,7 @@
296
296
  },
297
297
  {
298
298
  "name": "<single-animation>",
299
- "value": "<time> || <easing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ]",
299
+ "value": "<time [0s,∞]> || <easing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ]",
300
300
  "type": "type"
301
301
  }
302
302
  ]
@@ -482,6 +482,120 @@
482
482
  "border-clip-left",
483
483
  "borderClipLeft"
484
484
  ]
485
+ },
486
+ {
487
+ "name": "box-shadow-color",
488
+ "value": "<color>#",
489
+ "initial": "currentcolor",
490
+ "appliesTo": "all elements",
491
+ "inherited": "no",
492
+ "percentages": "N/A",
493
+ "computedValue": "list, each item a computed color",
494
+ "canonicalOrder": "per grammar",
495
+ "animatable": "by computed value",
496
+ "styleDeclaration": [
497
+ "box-shadow-color",
498
+ "boxShadowColor"
499
+ ]
500
+ },
501
+ {
502
+ "name": "box-shadow-offset",
503
+ "value": "[ none | <length>{2} ]#",
504
+ "initial": "none",
505
+ "appliesTo": "all elements",
506
+ "inherited": "no",
507
+ "percentages": "N/A",
508
+ "computedValue": "either none or a list, each item a pair of offsets (horizontal and vertical) from the element‘s box",
509
+ "canonicalOrder": "per grammar",
510
+ "animatable": "by computed value",
511
+ "styleDeclaration": [
512
+ "box-shadow-offset",
513
+ "boxShadowOffset"
514
+ ]
515
+ },
516
+ {
517
+ "name": "box-shadow-blur",
518
+ "value": "<length [0,∞]>#",
519
+ "initial": "0",
520
+ "appliesTo": "all elements",
521
+ "inherited": "no",
522
+ "percentages": "N/A",
523
+ "computedValue": "list, each item a <length>",
524
+ "canonicalOrder": "per grammar",
525
+ "animatable": "by computed value",
526
+ "styleDeclaration": [
527
+ "box-shadow-blur",
528
+ "boxShadowBlur"
529
+ ]
530
+ },
531
+ {
532
+ "name": "box-shadow-spread",
533
+ "value": "<length>#",
534
+ "initial": "0",
535
+ "appliesTo": "all elements",
536
+ "inherited": "no",
537
+ "percentages": "N/A",
538
+ "computedValue": "list, each item a <length>",
539
+ "canonicalOrder": "per grammar",
540
+ "animatable": "by computed value",
541
+ "styleDeclaration": [
542
+ "box-shadow-spread",
543
+ "boxShadowSpread"
544
+ ]
545
+ },
546
+ {
547
+ "name": "box-shadow-position",
548
+ "value": "[ outset | inset ]#",
549
+ "initial": "outset",
550
+ "appliesTo": "all elements",
551
+ "inherited": "no",
552
+ "percentages": "N/A",
553
+ "computedValue": "list, each item one of the keywords",
554
+ "canonicalOrder": "per grammar",
555
+ "animatable": "by computed value",
556
+ "values": [
557
+ {
558
+ "name": "outset",
559
+ "prose": "Causes the drop shadow to be an outer box-shadow. That means, one that shadows the box onto the canvas, as if it were lifted above the canvas.",
560
+ "type": "value",
561
+ "value": "outset"
562
+ },
563
+ {
564
+ "name": "outer box-shadow",
565
+ "type": "value",
566
+ "value": "outer box-shadow"
567
+ },
568
+ {
569
+ "name": "inset",
570
+ "prose": "Causes the drop shadow to be an inner box-shadow. That means, one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it.",
571
+ "type": "value",
572
+ "value": "inset"
573
+ },
574
+ {
575
+ "name": "inner box-shadow",
576
+ "type": "value",
577
+ "value": "inner box-shadow"
578
+ }
579
+ ],
580
+ "styleDeclaration": [
581
+ "box-shadow-position",
582
+ "boxShadowPosition"
583
+ ]
584
+ },
585
+ {
586
+ "name": "box-shadow",
587
+ "value": "<spread-shadow>#",
588
+ "initial": "none",
589
+ "appliesTo": "all elements",
590
+ "inherited": "no",
591
+ "percentages": "N/A",
592
+ "computedValue": "either the keyword none or a list, each item consisting of four absolute lengths plus a computed color and optionally also a inset keyword",
593
+ "canonicalOrder": "per grammar",
594
+ "animatable": "by computed value, treating none as a zero-item list and appending blank shadows (transparent 0 0 0 0) with a corresponding inset keyword as needed to match the longer list if the shorter list is otherwise compatible with the longer one",
595
+ "styleDeclaration": [
596
+ "box-shadow",
597
+ "boxShadow"
598
+ ]
485
599
  }
486
600
  ],
487
601
  "atrules": [],
@@ -511,6 +625,11 @@
511
625
  "value": "border"
512
626
  }
513
627
  ]
628
+ },
629
+ {
630
+ "name": "<spread-shadow>",
631
+ "type": "type",
632
+ "value": "<'box-shadow-color'>? && [ <'box-shadow-offset'> [ <'box-shadow-blur'> <'box-shadow-spread'>? ]? ] && <'box-shadow-position'>?"
514
633
  }
515
634
  ]
516
635
  }
@@ -937,7 +937,7 @@
937
937
  {
938
938
  "name": "<final-bg-layer>",
939
939
  "type": "type",
940
- "value": "<'background-color'> || <bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box>"
940
+ "value": "<bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box> || <'background-color'>"
941
941
  },
942
942
  {
943
943
  "name": "<line-style>",
package/css-display.json CHANGED
@@ -304,13 +304,13 @@
304
304
  "values": [
305
305
  {
306
306
  "name": "contents",
307
- "prose": "The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes and text runs as normal. For the purposes of box generation and layout, the element must be treated as if it had been replaced in the element tree by its contents (including both its source-document children and its pseudo-elements, such as ::before and ::after pseudo-elements, which are generated before/after the element’s children as normal). This value computes to display: none on replaced elements and other elements whose rendering is not entirely controlled by CSS; see Appendix B: Effects of display: contents on Unusual Elements for details.",
307
+ "prose": "The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes and text sequences as normal. For the purposes of box generation and layout, the element must be treated as if it had been replaced in the element tree by its contents (including both its source-document children and its pseudo-elements, such as ::before and ::after pseudo-elements, which are generated before/after the element’s children as normal). This value computes to display: none on replaced elements and other elements whose rendering is not entirely controlled by CSS; see Appendix B: Effects of display: contents on Unusual Elements for details.",
308
308
  "type": "value",
309
309
  "value": "contents"
310
310
  },
311
311
  {
312
312
  "name": "none",
313
- "prose": "The element and its descendants generate no boxes or text runs. Similarly, if a text node is defined to behave as display: none, it generates no text runs.",
313
+ "prose": "The element and its descendants generate no boxes or text sequences. Similarly, if a text node is defined to behave as display: none, it generates no text sequences.",
314
314
  "type": "value",
315
315
  "value": "none"
316
316
  }
package/css-text-4.json CHANGED
@@ -115,13 +115,13 @@
115
115
  },
116
116
  {
117
117
  "name": "space",
118
- "prose": "Instances of U+200B ZERO WIDTH SPACE within the text run children of this element are replaced by U+0020 SPACE.",
118
+ "prose": "Instances of U+200B ZERO WIDTH SPACE within the child text of this element are replaced by U+0020 SPACE.",
119
119
  "type": "value",
120
120
  "value": "space"
121
121
  },
122
122
  {
123
123
  "name": "ideographic-space",
124
- "prose": "Instances of U+200B ZERO WIDTH SPACE within the text run children of this element are replaced by U+3000 IDEOGRAPHIC SPACE.",
124
+ "prose": "Instances of U+200B ZERO WIDTH SPACE within the child text of this element are replaced by U+3000 IDEOGRAPHIC SPACE.",
125
125
  "type": "value",
126
126
  "value": "ideographic-space"
127
127
  }
@@ -133,7 +133,7 @@
133
133
  },
134
134
  {
135
135
  "name": "white-space",
136
- "value": "normal | pre | nowrap | pre-wrap | pre-line | <white-space-collapse> || <text-wrap> || <text-space-trim>",
136
+ "value": "normal | pre | nowrap | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap'> || <'text-space-trim'>",
137
137
  "initial": "normal",
138
138
  "appliesTo": "text",
139
139
  "inherited": "yes",
package/css-values.json CHANGED
@@ -50,23 +50,123 @@
50
50
  {
51
51
  "name": "url()",
52
52
  "prose": "The <url> type, written with the url() and src() functions, represents a URL, which is a pointer to a resource.",
53
- "type": "function"
53
+ "type": "function",
54
+ "value": "url( <string> <url-modifier>* ) | <url-token>"
54
55
  },
55
56
  {
56
57
  "name": "src()",
57
58
  "prose": "The <url> type, written with the url() and src() functions, represents a URL, which is a pointer to a resource.",
58
- "type": "function"
59
+ "type": "function",
60
+ "value": "src( <string> <url-modifier>* )"
59
61
  },
60
62
  {
61
63
  "name": "<url>",
62
64
  "type": "type",
63
- "value": "url( <string> <url-modifier>* ) | src( <string> <url-modifier>* )"
65
+ "value": "<url()> | <src()>"
64
66
  },
65
67
  {
66
68
  "name": "<url-modifier>",
67
69
  "prose": "<url>s support specifying additional <url-modifier>s, which change the meaning or the interpretation of the URL somehow. A <url-modifier> is either an <ident> or a functional notation.",
68
70
  "type": "type"
69
71
  },
72
+ {
73
+ "name": "<request-url-modifier>",
74
+ "prose": "The <request-url-modifier>s represent <url-modifier>s that affect the resource’s request. Each <request-url-modifier> has a request modifier steps which accepts a request.",
75
+ "type": "type",
76
+ "value": "<crossorigin-modifier> | <integrity-modifier> | <referrerpolicy-modifier>",
77
+ "values": [
78
+ {
79
+ "name": "<crossorigin-modifier>",
80
+ "value": "crossorigin(anonymous | use-credentials)",
81
+ "type": "type"
82
+ },
83
+ {
84
+ "name": "crossorigin()",
85
+ "prose": "<crossorigin-modifier> = crossorigin(anonymous | use-credentials)",
86
+ "type": "function"
87
+ },
88
+ {
89
+ "name": "anonymous",
90
+ "prose": "<crossorigin-modifier> = crossorigin(anonymous | use-credentials)",
91
+ "type": "value",
92
+ "value": "anonymous"
93
+ },
94
+ {
95
+ "name": "use-credentials",
96
+ "prose": "<crossorigin-modifier> = crossorigin(anonymous | use-credentials)",
97
+ "type": "value",
98
+ "value": "use-credentials"
99
+ },
100
+ {
101
+ "name": "<integrity-modifier>",
102
+ "value": "integrity(<string>)",
103
+ "type": "type"
104
+ },
105
+ {
106
+ "name": "integrity()",
107
+ "prose": "<integrity-modifier> = integrity(<string>)",
108
+ "type": "function"
109
+ },
110
+ {
111
+ "name": "<referrerpolicy-modifier>",
112
+ "value": "referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
113
+ "type": "type"
114
+ },
115
+ {
116
+ "name": "referrerpolicy()",
117
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
118
+ "type": "function"
119
+ },
120
+ {
121
+ "name": "no-referrer",
122
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
123
+ "type": "value",
124
+ "value": "no-referrer"
125
+ },
126
+ {
127
+ "name": "no-referrer-when-downgrade",
128
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
129
+ "type": "value",
130
+ "value": "no-referrer-when-downgrade"
131
+ },
132
+ {
133
+ "name": "same-origin",
134
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
135
+ "type": "value",
136
+ "value": "same-origin"
137
+ },
138
+ {
139
+ "name": "origin",
140
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
141
+ "type": "value",
142
+ "value": "origin"
143
+ },
144
+ {
145
+ "name": "strict-origin",
146
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
147
+ "type": "value",
148
+ "value": "strict-origin"
149
+ },
150
+ {
151
+ "name": "origin-when-cross-origin",
152
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
153
+ "type": "value",
154
+ "value": "origin-when-cross-origin"
155
+ },
156
+ {
157
+ "name": "strict-origin-when-cross-origin",
158
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
159
+ "type": "value",
160
+ "value": "strict-origin-when-cross-origin"
161
+ },
162
+ {
163
+ "name": "unsafe-url",
164
+ "prose": "<referrerpolicy-modifier> = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)",
165
+ "type": "value",
166
+ "value": "unsafe-url"
167
+ }
168
+ ]
169
+ },
70
170
  {
71
171
  "name": "<integer>",
72
172
  "prose": "Integer values are denoted by <integer>.",
@@ -37,8 +37,7 @@
37
37
  "atrules": [],
38
38
  "selectors": [
39
39
  {
40
- "name": "::view-transition",
41
- "prose": "A tree-abiding pseudo-element that is also a pseudo-element root. Its originating element is the document’s document element. Its containing block is the snapshot root. The following is added to the HTML user agent style sheet: html::view-transition { position: fixed; inset: 0; }"
40
+ "name": "::view-transition"
42
41
  },
43
42
  {
44
43
  "name": "::view-transition-group()",
package/html.json CHANGED
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "name": "<source-size-list>",
12
12
  "type": "type",
13
- "value": "[ <source-size># , ]? <source-size-value>"
13
+ "value": "<source-size>#? , <source-size-value>"
14
14
  },
15
15
  {
16
16
  "name": "<source-size>",
package/motion.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "properties": [
7
7
  {
8
8
  "name": "offset-path",
9
- "value": "none | <ray()> | <url> | [ <basic-shape> && <coord-box>? ] | <coord-box>",
9
+ "value": "none | <offset-path> || <coord-box>",
10
10
  "initial": "none",
11
11
  "appliesTo": "transformable elements",
12
12
  "inherited": "no",
@@ -18,9 +18,39 @@
18
18
  "values": [
19
19
  {
20
20
  "name": "none",
21
- "prose": "No offset path gets created. When offset-path is none, offset-distance and offset-rotate have no effect.",
21
+ "prose": "The element does not have an offset transform.",
22
22
  "type": "value",
23
23
  "value": "none"
24
+ },
25
+ {
26
+ "name": "<offset-path> || <coord-box>",
27
+ "prose": "The element has an offset transform, defined by some offset path. See § 2.7 Calculating The Offset Transform for details on how to calculate the offset transform. All the usual effects of having a transform apply (such as creating a stacking context, etc.) See CSS Transforms 1 § 2 The Transform Rendering Model for details. If <offset-path> is omitted, it defaults to inset(0 round X), where X is the value of border-radius on the element that establishes the containing block for this element. If <coord-box> is omitted, it defaults to border-box. See the specific values (below) for the interpretation of each component.",
28
+ "type": "value",
29
+ "value": "<offset-path> || <coord-box>"
30
+ },
31
+ {
32
+ "name": "<ray()>",
33
+ "prose": "The offset path is a line extending from the offset starting position at some angle. See § 2.1.1 The ray() Function for details. The <coord-box> provides the reference box for the ray.",
34
+ "type": "value",
35
+ "value": "<ray()>"
36
+ },
37
+ {
38
+ "name": "<url>",
39
+ "prose": "A URL reference to an SVG shape element. The offset path is the referenced element’s equivalent path. [SVG2] If the URL does not reference a shape element (because it references a different element, or resolves to a non-SVG document, or doesn’t resolve at all, etc) this behaves as path(\"m 0 0\") (a <basic-shape>) instead. The <coord-box> defines the viewport and user coordinate system for the shape element, with the origin (the 0,0 point) at the top left corner, and units being 1px in size.",
40
+ "type": "value",
41
+ "value": "<url>"
42
+ },
43
+ {
44
+ "name": "<basic-shape>",
45
+ "prose": "The offset path is the equivalent path of the <basic-shape> function. If circle() or ellipse() is used, and an explicit center position is not given, they default to using the offset starting position, rather than their standard default. The <coord-box> provides the [=/reference box=] for the <basic-shape>.",
46
+ "type": "value",
47
+ "value": "<basic-shape>"
48
+ },
49
+ {
50
+ "name": "<coord-box>",
51
+ "prose": "Defines the box that the <offset-path> sizes into. In CSS contexts, the boxes being referenced are from the element that establishes the containing block for this element. In SVG contexts, all values behave as view-box.",
52
+ "type": "value",
53
+ "value": "<coord-box>"
24
54
  }
25
55
  ],
26
56
  "styleDeclaration": [
@@ -34,7 +64,7 @@
34
64
  "initial": "0",
35
65
  "appliesTo": "transformable elements",
36
66
  "inherited": "no",
37
- "percentages": "refer to the total path length",
67
+ "percentages": "relative to the offset path length",
38
68
  "computedValue": "a computed <length-percentage> value",
39
69
  "canonicalOrder": "per grammar",
40
70
  "animationType": "by computed value",
@@ -58,13 +88,13 @@
58
88
  "values": [
59
89
  {
60
90
  "name": "auto",
61
- "prose": "The initial position is the top-left corner of the box.",
91
+ "prose": "The offset starting position is the top-left corner of the box.",
62
92
  "type": "value",
63
93
  "value": "auto"
64
94
  },
65
95
  {
66
96
  "name": "<position>",
67
- "prose": "The initial position is the result of using the <position> to position a 0x0 object area within the box’s containing block.",
97
+ "prose": "The offset starting position is the result of using the <position> to position a 0x0 object area within the box’s containing block.",
68
98
  "type": "value",
69
99
  "value": "<position>"
70
100
  }
@@ -118,19 +148,19 @@
118
148
  "values": [
119
149
  {
120
150
  "name": "auto",
121
- "prose": "Indicates that the object is rotated (over time if offset-distance is animated) by the angle of the direction (i.e., directional tangent vector) of the offset path, relative to the positive x-axis. If specified in combination with <angle>, the computed value of <angle> is added to the computed value of auto.",
151
+ "prose": "The offset transform will have a rotation component equal to the difference between the offset path’s direction at the offset position and the direction of the positive X axis (that is, a line going toward the right). See SVG’s direction of a path for details on how to calculate this. If specified with an <angle>, the angle is added to the rotation component.",
122
152
  "type": "value",
123
153
  "value": "auto"
124
154
  },
125
155
  {
126
156
  "name": "reverse",
127
- "prose": "Indicates that the object is rotated (over time if offset-distance is animated) by the angle of the direction (i.e., directional tangent vector) of the offset path, relative to the positive x-axis, plus 180 degrees. If specified in combination with <angle>, the computed value of <angle> is added to the computed value of reverse.",
157
+ "prose": "Identical to auto, but adds an additional 180deg to the rotation.",
128
158
  "type": "value",
129
159
  "value": "reverse"
130
160
  },
131
161
  {
132
162
  "name": "<angle>",
133
- "prose": "Indicates that the box has a constant clockwise rotation transformation applied to it by the specified rotation angle. See definitions of auto or reverse if specified in combination with either one of the keywords.",
163
+ "prose": "When specified on its own, adds a rotation component to the offset transform of the specified angle. (That is, offset-rotate: 45deg; is similar to transform: rotate(45deg); it’s just ordered to be part of the offset transform.)",
134
164
  "type": "value",
135
165
  "value": "<angle>"
136
166
  }
@@ -158,6 +188,11 @@
158
188
  "atrules": [],
159
189
  "selectors": [],
160
190
  "values": [
191
+ {
192
+ "name": "<offset-path>",
193
+ "type": "type",
194
+ "value": "<ray()> | <url> | <basic-shape>"
195
+ },
161
196
  {
162
197
  "name": "ray()",
163
198
  "type": "function",
@@ -165,7 +200,7 @@
165
200
  "values": [
166
201
  {
167
202
  "name": "<angle>",
168
- "prose": "The offset path is a line segment that starts from the initial position and proceeds in the direction defined by the specified <angle>. As with gradient functions, <angle> values are interpreted as bearing angles, with 0deg pointing up and positive angles representing clockwise rotation. This is also the initial direction.",
203
+ "prose": "The offset path is a single line segment that starts from the offset starting position and proceeds in the direction defined by the specified <angle>. (Its length is determined by the other arguments.) As with gradient functions, <angle> values are interpreted as bearing angles, with 0deg pointing up and positive angles representing clockwise rotation.",
169
204
  "type": "value",
170
205
  "value": "<angle>"
171
206
  },
@@ -177,7 +212,7 @@
177
212
  },
178
213
  {
179
214
  "name": "contain",
180
- "prose": "The used value of offset-distance is clamped so that the box is entirely contained within the path. If no offset-distance would lead to the box being enclosed by the path, the path size is minimally increased so that such an offset-distance exists. Not clear what this actually means. See Issue 363.",
215
+ "prose": "The length of the offset path is reduced so that the element stays within the containing block even at offset-distance: 100%. Specifically, the path’s length is reduced by half the width or half the height of the element’s border box, whichever is larger, and floored at zero.",
181
216
  "type": "value",
182
217
  "value": "contain"
183
218
  }
@@ -190,31 +225,31 @@
190
225
  "values": [
191
226
  {
192
227
  "name": "closest-side",
193
- "prose": "The distance from the initial position to whichever side of the containing block is closest.",
228
+ "prose": "The distance from the ray’s starting point to whichever side of the containing block is closest.",
194
229
  "type": "value",
195
230
  "value": "closest-side"
196
231
  },
197
232
  {
198
233
  "name": "closest-corner",
199
- "prose": "The distance from the initial position to whichever corner of the containing block is closest.",
234
+ "prose": "The distance from the ray’s starting point to whichever corner of the containing block is closest.",
200
235
  "type": "value",
201
236
  "value": "closest-corner"
202
237
  },
203
238
  {
204
239
  "name": "farthest-side",
205
- "prose": "The distance from the initial position to whichever side of the containing block is farthest.",
240
+ "prose": "The distance from the ray’s starting point to whichever side of the containing block is farthest.",
206
241
  "type": "value",
207
242
  "value": "farthest-side"
208
243
  },
209
244
  {
210
245
  "name": "farthest-corner",
211
- "prose": "The distance from the initial position to whichever corner of the containing block is farthest.",
246
+ "prose": "The distance from the ray’s starting point to whichever corner of the containing block is farthest.",
212
247
  "type": "value",
213
248
  "value": "farthest-corner"
214
249
  },
215
250
  {
216
251
  "name": "sides",
217
- "prose": "The distance from the initial position to the point where the offset path intersects the containing block’s boundary. If the initial position is on the containing block’s boundary, or outside its bounds entirely, the distance is zero.",
252
+ "prose": "The distance from the ray’s starting point to the point where the offset path intersects the containing block’s boundary. If the ray’s starting point is on the containing block’s boundary, or outside its bounds entirely, the distance is zero.",
218
253
  "type": "value",
219
254
  "value": "sides"
220
255
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webref/css",
3
3
  "description": "CSS definitions of the web platform",
4
- "version": "6.4.2",
4
+ "version": "6.4.3",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/w3c/webref.git"
@@ -65,6 +65,12 @@
65
65
  "prose": "Specifies to use the document viewport as the scroll container.",
66
66
  "type": "value",
67
67
  "value": "root"
68
+ },
69
+ {
70
+ "name": "self",
71
+ "prose": "Specifies to use the element’s own principal box as the scroll container. If the principal box is not a scroll container, then the scroll progress timeline is inactive.",
72
+ "type": "value",
73
+ "value": "self"
68
74
  }
69
75
  ],
70
76
  "styleDeclaration": [
@@ -148,6 +154,12 @@
148
154
  "prose": "Specifies to use the document viewport as the scroll container.",
149
155
  "type": "value",
150
156
  "value": "root"
157
+ },
158
+ {
159
+ "name": "self",
160
+ "prose": "Specifies to use the element’s own principal box as the scroll container. If the principal box is not a scroll container, then the scroll progress timeline is inactive.",
161
+ "type": "value",
162
+ "value": "self"
151
163
  }
152
164
  ],
153
165
  "styleDeclaration": [
@@ -201,7 +213,7 @@
201
213
  },
202
214
  {
203
215
  "name": "animation-range",
204
- "value": "[ <'animation-range-start'> <'animation-range-end'>? | <timeline-range-name> ]#",
216
+ "value": "[ <'animation-range-start'> <'animation-range-end'>? ]#",
205
217
  "initial": "see individual properties",
206
218
  "appliesTo": "see individual properties",
207
219
  "inherited": "see individual properties",
@@ -216,26 +228,32 @@
216
228
  },
217
229
  {
218
230
  "name": "animation-range-start",
219
- "value": "[ normal | <timeline-range-name> <percentage> ]#",
231
+ "value": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",
220
232
  "initial": "normal",
221
233
  "appliesTo": "all elements",
222
234
  "inherited": "no",
223
- "percentages": "relative to the specified named timeline range",
235
+ "percentages": "relative to the specified named timeline range if one was specified, else to the entire timeline",
224
236
  "computedValue": "list, each item either the keyword normal or a timeline range and progress percentage",
225
237
  "canonicalOrder": "per grammar",
226
238
  "animationType": "not animatable",
227
239
  "values": [
228
240
  {
229
241
  "name": "normal",
230
- "prose": "The start of the active phase is determined as normal.",
242
+ "prose": "The start of the animation’s active interval is determined as normal.",
231
243
  "type": "value",
232
244
  "value": "normal"
233
245
  },
234
246
  {
235
- "name": "<timeline-range-name> <percentage>",
236
- "prose": "The active phase starts at the specified point on the timeline, plus any applicable start delay.",
247
+ "name": "<length-percentage>",
248
+ "prose": "The active interval starts at the specified point on the timeline measuring from the start of the timeline, plus any applicable start delay.",
237
249
  "type": "value",
238
- "value": "<timeline-range-name> <percentage>"
250
+ "value": "<length-percentage>"
251
+ },
252
+ {
253
+ "name": "<timeline-range-name> <length-percentage>?",
254
+ "prose": "The active interval starts at the specified point on the timeline measuring from the start of the specified named timeline range, plus any applicable start delay.",
255
+ "type": "value",
256
+ "value": "<timeline-range-name> <length-percentage>?"
239
257
  }
240
258
  ],
241
259
  "styleDeclaration": [
@@ -245,26 +263,32 @@
245
263
  },
246
264
  {
247
265
  "name": "animation-range-end",
248
- "value": "[ normal | <timeline-range-name> <percentage> ]#",
266
+ "value": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",
249
267
  "initial": "normal",
250
268
  "appliesTo": "all elements",
251
269
  "inherited": "no",
252
- "percentages": "relative to the specified named timeline range",
270
+ "percentages": "relative to the specified named timeline range if one was specified, else to the entire timeline",
253
271
  "computedValue": "list, each item either the keyword normal or a timeline range and progress percentage",
254
272
  "canonicalOrder": "per grammar",
255
273
  "animationType": "not animatable",
256
274
  "values": [
257
275
  {
258
276
  "name": "normal",
259
- "prose": "The end time of the animation is determined as normal.",
277
+ "prose": "The end of the animation’s active interval is determined as normal.",
260
278
  "type": "value",
261
279
  "value": "normal"
262
280
  },
263
281
  {
264
- "name": "<timeline-range-name> <percentage>",
265
- "prose": "The end time of the animation is at the specified point on the timeline minus any applicable end delay, or at the end of the animation duration, whichever comes first.",
282
+ "name": "<length-percentage>",
283
+ "prose": "The active interval ends at the specified point on the timeline measuring from the start of the timeline, minus any applicable end delay.",
266
284
  "type": "value",
267
- "value": "<timeline-range-name> <percentage>"
285
+ "value": "<length-percentage>"
286
+ },
287
+ {
288
+ "name": "<timeline-range-name> <length-percentage>?",
289
+ "prose": "The active interval ends at the specified point on the timeline measuring from the start of the specified named timeline range, minus any applicable end delay.",
290
+ "type": "value",
291
+ "value": "<timeline-range-name> <length-percentage>?"
268
292
  }
269
293
  ],
270
294
  "styleDeclaration": [
@@ -317,6 +341,12 @@
317
341
  "prose": "Specifies to use the document viewport as the scroll container.",
318
342
  "type": "value",
319
343
  "value": "root"
344
+ },
345
+ {
346
+ "name": "self",
347
+ "prose": "Specifies to use the element’s own principal box as the scroll container. If the principal box is not a scroll container, then the scroll progress timeline is inactive.",
348
+ "type": "value",
349
+ "value": "self"
320
350
  }
321
351
  ]
322
352
  },
@@ -328,7 +358,7 @@
328
358
  {
329
359
  "name": "<scroller>",
330
360
  "type": "type",
331
- "value": "root | nearest"
361
+ "value": "root | nearest | self"
332
362
  },
333
363
  {
334
364
  "name": "view()",
@@ -346,7 +376,7 @@
346
376
  {
347
377
  "msg": "Missing definition",
348
378
  "name": "<keyframe-selector>",
349
- "value": "from | to | <percentage> | <timeline-range-name> <percentage>"
379
+ "value": "from | to | <percentage [0,100]> | <timeline-range-name> <percentage>"
350
380
  },
351
381
  {
352
382
  "msg": "Dangling value",