@webref/css 6.1.0 → 6.1.1

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.
package/css-align.json CHANGED
@@ -199,8 +199,9 @@
199
199
  },
200
200
  {
201
201
  "name": "legacy",
202
- "value": "legacy",
203
- "type": "value"
202
+ "prose": "This keyword causes the value to effectively inherit into descendants. If the legacy keyword appears on its own (without an accompanying left, right, or center keyword): if the inherited value of justify-items includes the legacy keyword, this value computes to the inherited value; otherwise it computes to normal. When justify-self:auto references the value of justify-items, only the alignment keyword, not the legacy keyword, is referenced by it. It exists to implement the legacy alignment behavior of HTML’s <center> element and align attribute.",
203
+ "type": "value",
204
+ "value": "legacy"
204
205
  }
205
206
  ],
206
207
  "styleDeclaration": [
@@ -50,22 +50,23 @@
50
50
  "values": [
51
51
  {
52
52
  "name": "auto",
53
- "value": "auto",
54
- "type": "value"
53
+ "prose": "The animation’s timeline is a DocumentTimeline, more specifically the default document timeline.",
54
+ "type": "value",
55
+ "value": "auto"
55
56
  },
56
57
  {
57
58
  "name": "none",
58
59
  "prose": "The animation is not associated with a timeline.",
59
60
  "type": "value",
60
61
  "value": "none"
62
+ },
63
+ {
64
+ "name": "<timeline-name>",
65
+ "value": "<custom-ident> | <string>",
66
+ "type": "value"
61
67
  }
62
68
  ]
63
69
  },
64
- {
65
- "name": "<timeline-name>",
66
- "value": "<custom-ident> | <string>",
67
- "type": "type"
68
- },
69
70
  {
70
71
  "name": "<single-animation>",
71
72
  "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>",
package/css-fonts.json CHANGED
@@ -158,7 +158,7 @@
158
158
  "value": "italic"
159
159
  },
160
160
  {
161
- "name": "oblique <angle [−90deg,90deg]>?",
161
+ "name": "oblique <angle [-90deg,90deg]>?",
162
162
  "prose": "Controls matching against an oblique face. Positive angles represent a clockwise slant; negative angles represent a counter-clockwise slant. The lack of an <angle> represents 14deg. (Note that a font might internally provide its own mapping for \"oblique\", but the mapping within the font is disregarded.) Fractional and negative values are accepted; however, values less than -90deg or values greater than 90deg are invalid. If no oblique faces exist, and font-synthesis-style has the value auto, a synthetic oblique face will be generated.",
163
163
  "type": "value",
164
164
  "value": "oblique <angle [-90deg,90deg]>?"
@@ -227,8 +227,9 @@
227
227
  },
228
228
  {
229
229
  "name": "<number [0,∞]>",
230
- "value": "<number [0,∞]>",
231
- "type": "value"
230
+ "prose": "Specifies the aspect value used in the calculation below to calculate the adjusted font size: c = ( a / a' ) s where: s = font-size value a = aspect value as specified by the 'font-size-adjust' property a' = aspect value of actual font c = adjusted font-size to use Negative values are invalid. This value applies to any font that is selected but in typical usage it should be based on the aspect value of the first font in the font-family list. If this is specified accurately, the (a/a') term in the formula above is effectively 1 for the first font and no adjustment occurs. If the value is specified inaccurately, text rendered using the first font in the family list will display differently in older user agents that don’t support font-size-adjust.",
231
+ "type": "value",
232
+ "value": "<number [0,∞]>"
232
233
  }
233
234
  ],
234
235
  "styleDeclaration": [
package/css-gcpm-4.json CHANGED
@@ -23,8 +23,8 @@
23
23
  "atrules": [],
24
24
  "selectors": [
25
25
  {
26
- "name": ":nth-of-page(n)",
27
- "prose": "The element is the nth matched element on the page."
26
+ "name": ":nth-of-page()",
27
+ "value": ":nth-of-page(n)"
28
28
  },
29
29
  {
30
30
  "name": ":first-of-page",
package/css-grid.json CHANGED
@@ -344,7 +344,7 @@
344
344
  "value": "<custom-ident>"
345
345
  },
346
346
  {
347
- "name": "[ <integer [−∞,−1]> | <integer [1,∞]> ] && <custom-ident>?",
347
+ "name": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?",
348
348
  "prose": "Contributes the Nth grid line to the grid item’s placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid. If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position. An <integer> value of zero makes the declaration invalid.",
349
349
  "type": "value",
350
350
  "value": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?"
@@ -392,7 +392,7 @@
392
392
  "value": "<custom-ident>"
393
393
  },
394
394
  {
395
- "name": "[ <integer [−∞,−1]> | <integer [1,∞]> ] && <custom-ident>?",
395
+ "name": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?",
396
396
  "prose": "Contributes the Nth grid line to the grid item’s placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid. If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position. An <integer> value of zero makes the declaration invalid.",
397
397
  "type": "value",
398
398
  "value": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?"
@@ -440,7 +440,7 @@
440
440
  "value": "<custom-ident>"
441
441
  },
442
442
  {
443
- "name": "[ <integer [−∞,−1]> | <integer [1,∞]> ] && <custom-ident>?",
443
+ "name": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?",
444
444
  "prose": "Contributes the Nth grid line to the grid item’s placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid. If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position. An <integer> value of zero makes the declaration invalid.",
445
445
  "type": "value",
446
446
  "value": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?"
@@ -488,7 +488,7 @@
488
488
  "value": "<custom-ident>"
489
489
  },
490
490
  {
491
- "name": "[ <integer [−∞,−1]> | <integer [1,∞]> ] && <custom-ident>?",
491
+ "name": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?",
492
492
  "prose": "Contributes the Nth grid line to the grid item’s placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid. If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position. An <integer> value of zero makes the declaration invalid.",
493
493
  "type": "value",
494
494
  "value": "[ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?"
@@ -7,8 +7,8 @@
7
7
  "atrules": [],
8
8
  "selectors": [
9
9
  {
10
- "name": "::highlight(<custom-highlight-name>)",
11
- "prose": "The ::highlight(<custom-highlight-name>) pseudo-element (also known as the custom highlight pseudo-element) represents the portion of a document that is being contained or partially contained in all the ranges of the registered custom highlight with the custom highlight name <custom-highlight-name>, if any. <custom-highlight-name> must be a valid CSS <ident-token>."
10
+ "name": "::highlight()",
11
+ "value": "::highlight(<custom-highlight-name>)"
12
12
  }
13
13
  ],
14
14
  "values": [
package/css-images.json CHANGED
@@ -114,7 +114,7 @@
114
114
  "values": [
115
115
  {
116
116
  "name": "auto",
117
- "prose": "The scaling algorithm is UA dependent.",
117
+ "prose": "The scaling algorithm is UA-dependent.",
118
118
  "type": "value",
119
119
  "value": "auto"
120
120
  },
@@ -138,15 +138,9 @@
138
138
  },
139
139
  {
140
140
  "name": "crisp-edges",
141
- "prose": "The image is scaled in a way that preserves contrast and edges, and which does not smooth colors or introduce blur to the image in the process. The image must be scaled with the nearest neighbor algorithm: treating the original image’s pixel grid as a literal grid of rectangles, scale those to the desired size, then each pixel of the final image takes its color solely from the nearest pixel of the scaled original image.",
141
+ "prose": "The image is scaled in a way that preserves contrast and edges, and which does not smooth colors or introduce blur to the image in the process. The image may be scaled using nearest neighbor, but may instead be scaled with a UA-defined algorithm. The only requirement is that the algorithm must not blur edges or blend colors from the source image; but it can, for example, intelligently detect diagonal or curved lines and render them as such rather than as jagged-looking \"giant pixels\".",
142
142
  "type": "value",
143
143
  "value": "crisp-edges"
144
- },
145
- {
146
- "name": "nearest neighbor",
147
- "prose": "The image must be scaled with the nearest neighbor algorithm: treating the original image’s pixel grid as a literal grid of rectangles, scale those to the desired size, then each pixel of the final image takes its color solely from the nearest pixel of the scaled original image.",
148
- "type": "value",
149
- "value": "nearest neighbor"
150
144
  }
151
145
  ],
152
146
  "styleDeclaration": [
@@ -183,7 +177,7 @@
183
177
  "name": "radial-gradient()",
184
178
  "prose": "The radial-gradient() notation specifies a radial gradient by indicating the center of the gradient (where the 0% ellipse will be) and the size and shape of the ending shape (the 100% ellipse). Color stops are given as a list, just as for linear-gradient(). Starting from the gradient center and progressing towards (and potentially beyond) the ending shape, uniformly-scaled concentric ellipses are drawn and colored according to the specified color stops.",
185
179
  "type": "function",
186
- "value": "radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )",
180
+ "value": "radial-gradient( [ <rg-ending-shape> || <rg-size> ]? [ at <position> ]? , <color-stop-list> )",
187
181
  "values": [
188
182
  {
189
183
  "name": "<position>",
@@ -192,61 +186,24 @@
192
186
  "value": "<position>"
193
187
  },
194
188
  {
195
- "name": "<ending-shape>",
196
- "prose": "Can be either circle or ellipse; determines whether the gradient’s ending shape is a circle or an ellipse, respectively. If <ending-shape> is omitted, the ending shape defaults to a circle if the <size> is a single <length>, and to an ellipse otherwise.",
197
- "type": "value",
198
- "value": "<ending-shape>",
199
- "values": [
200
- {
201
- "name": "circle",
202
- "type": "value",
203
- "value": "circle"
204
- },
205
- {
206
- "name": "ellipse",
207
- "type": "value",
208
- "value": "ellipse"
209
- }
210
- ]
211
- },
212
- {
213
- "name": "<size>",
214
- "prose": "Determines the size of the gradient’s ending shape. If omitted it defaults to farthest-corner. It can be given explicitly or by keyword. For the purpose of the keyword definitions, consider the gradient box edges as extending infinitely in both directions, rather than being finite line segments. If the ending-shape is an ellipse, its axises are aligned with the horizontal and vertical axises. Both circle and ellipse gradients accept the following <extent-keyword> values: If <ending-shape> is specified as circle or is omitted, the <size> may be given explicitly as: If <ending-shape> is specified as ellipse or is omitted, <size> may instead be given explicitly as:",
189
+ "name": "<rg-ending-shape>",
190
+ "prose": "Can be either circle or ellipse; determines whether the gradient’s ending shape is a circle or an ellipse, respectively. If <rg-ending-shape> is omitted, the ending shape defaults to a circle if the <rg-size> is a single <length>, and to an ellipse otherwise.",
215
191
  "type": "value",
216
- "value": "<extent-keyword> | <length [0,∞]> | <length-percentage [0,∞]>{2}",
217
- "values": [
218
- {
219
- "name": "closest-side",
220
- "prose": "The ending shape is sized so that it exactly meets the side of the gradient box closest to the gradient’s center. If the shape is an ellipse, it exactly meets the closest side in each dimension.",
221
- "type": "value",
222
- "value": "closest-side"
223
- },
224
- {
225
- "name": "farthest-side",
226
- "prose": "Same as closest-side, except the ending shape is sized based on the farthest side(s).",
227
- "type": "value",
228
- "value": "farthest-side"
229
- },
230
- {
231
- "name": "closest-corner",
232
- "prose": "The ending shape is sized so that it passes through the corner of the gradient box closest to the gradient’s center. If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.",
233
- "type": "value",
234
- "value": "closest-corner"
235
- },
236
- {
237
- "name": "farthest-corner",
238
- "prose": "Same as closest-corner, except the ending shape is sized based on the farthest corner. If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.",
239
- "type": "value",
240
- "value": "farthest-corner"
241
- }
242
- ]
192
+ "value": "<rg-ending-shape>"
243
193
  },
244
194
  {
245
- "name": "<extent-keyword>",
246
- "prose": "Both circle and ellipse gradients accept the following <extent-keyword> values:",
195
+ "name": "<rg-size>",
196
+ "prose": "Determines the size of the gradient’s ending shape. If omitted it defaults to farthest-corner. It can be given explicitly or by keyword. For the purpose of the keyword definitions, consider the gradient box edges as extending infinitely in both directions, rather than being finite line segments. If the ending-shape is an ellipse, its axises are aligned with the horizontal and vertical axises. Both circle and ellipse gradients accept the following <rg-extent-keyword> values: If <rg-ending-shape> is specified as circle or is omitted, the <rg-size> may be given explicitly as: If <rg-ending-shape> is specified as ellipse or is omitted, <rg-size> may instead be given explicitly as:",
247
197
  "type": "value",
248
- "value": "closest-corner | closest-side | farthest-corner | farthest-side"
249
- },
198
+ "value": "<rg-size>"
199
+ }
200
+ ]
201
+ },
202
+ {
203
+ "name": "<rg-size>",
204
+ "type": "type",
205
+ "value": "<rg-extent-keyword> | <length [0,∞]> | <length-percentage [0,∞]>{2}",
206
+ "values": [
250
207
  {
251
208
  "name": "<length [0,∞]>",
252
209
  "prose": "Gives the radius of the circle explicitly. Negative values are invalid.",
@@ -261,6 +218,54 @@
261
218
  }
262
219
  ]
263
220
  },
221
+ {
222
+ "name": "<rg-extent-keyword>",
223
+ "type": "type",
224
+ "value": "closest-corner | closest-side | farthest-corner | farthest-side",
225
+ "values": [
226
+ {
227
+ "name": "closest-side",
228
+ "prose": "The ending shape is sized so that it exactly meets the side of the gradient box closest to the gradient’s center. If the shape is an ellipse, it exactly meets the closest side in each dimension.",
229
+ "type": "value",
230
+ "value": "closest-side"
231
+ },
232
+ {
233
+ "name": "farthest-side",
234
+ "prose": "Same as closest-side, except the ending shape is sized based on the farthest side(s).",
235
+ "type": "value",
236
+ "value": "farthest-side"
237
+ },
238
+ {
239
+ "name": "closest-corner",
240
+ "prose": "The ending shape is sized so that it passes through the corner of the gradient box closest to the gradient’s center. If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.",
241
+ "type": "value",
242
+ "value": "closest-corner"
243
+ },
244
+ {
245
+ "name": "farthest-corner",
246
+ "prose": "Same as closest-corner, except the ending shape is sized based on the farthest corner. If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.",
247
+ "type": "value",
248
+ "value": "farthest-corner"
249
+ }
250
+ ]
251
+ },
252
+ {
253
+ "name": "<rg-ending-shape>",
254
+ "type": "type",
255
+ "value": "circle | ellipse",
256
+ "values": [
257
+ {
258
+ "name": "circle",
259
+ "type": "value",
260
+ "value": "circle"
261
+ },
262
+ {
263
+ "name": "ellipse",
264
+ "type": "value",
265
+ "value": "ellipse"
266
+ }
267
+ ]
268
+ },
264
269
  {
265
270
  "name": "repeating-linear-gradient()",
266
271
  "prose": "In addition to linear-gradient() and radial-gradient(), this specification defines repeating-linear-gradient() and repeating-radial-gradient() values. These notations take the same values and are interpreted the same as their respective non-repeating siblings defined previously.",
@@ -278,60 +283,16 @@
278
283
  "value": "<position>"
279
284
  },
280
285
  {
281
- "name": "<ending-shape>",
282
- "prose": "Can be either circle or ellipse; determines whether the gradient’s ending shape is a circle or an ellipse, respectively. If <ending-shape> is omitted, the ending shape defaults to a circle if the <size> is a single <length>, and to an ellipse otherwise.",
283
- "type": "value",
284
- "value": "<ending-shape>",
285
- "values": [
286
- {
287
- "name": "circle",
288
- "type": "value",
289
- "value": "circle"
290
- },
291
- {
292
- "name": "ellipse",
293
- "type": "value",
294
- "value": "ellipse"
295
- }
296
- ]
297
- },
298
- {
299
- "name": "<size>",
300
- "prose": "Determines the size of the gradient’s ending shape. If omitted it defaults to farthest-corner. It can be given explicitly or by keyword. For the purpose of the keyword definitions, consider the gradient box edges as extending infinitely in both directions, rather than being finite line segments. If the ending-shape is an ellipse, its axises are aligned with the horizontal and vertical axises. Both circle and ellipse gradients accept the following <extent-keyword> values: If <ending-shape> is specified as circle or is omitted, the <size> may be given explicitly as: If <ending-shape> is specified as ellipse or is omitted, <size> may instead be given explicitly as:",
286
+ "name": "<rg-ending-shape>",
287
+ "prose": "Can be either circle or ellipse; determines whether the gradient’s ending shape is a circle or an ellipse, respectively. If <rg-ending-shape> is omitted, the ending shape defaults to a circle if the <rg-size> is a single <length>, and to an ellipse otherwise.",
301
288
  "type": "value",
302
- "value": "<extent-keyword> | <length [0,∞]> | <length-percentage [0,∞]>{2}",
303
- "values": [
304
- {
305
- "name": "closest-side",
306
- "prose": "The ending shape is sized so that it exactly meets the side of the gradient box closest to the gradient’s center. If the shape is an ellipse, it exactly meets the closest side in each dimension.",
307
- "type": "value",
308
- "value": "closest-side"
309
- },
310
- {
311
- "name": "farthest-side",
312
- "prose": "Same as closest-side, except the ending shape is sized based on the farthest side(s).",
313
- "type": "value",
314
- "value": "farthest-side"
315
- },
316
- {
317
- "name": "closest-corner",
318
- "prose": "The ending shape is sized so that it passes through the corner of the gradient box closest to the gradient’s center. If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.",
319
- "type": "value",
320
- "value": "closest-corner"
321
- },
322
- {
323
- "name": "farthest-corner",
324
- "prose": "Same as closest-corner, except the ending shape is sized based on the farthest corner. If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.",
325
- "type": "value",
326
- "value": "farthest-corner"
327
- }
328
- ]
289
+ "value": "<rg-ending-shape>"
329
290
  },
330
291
  {
331
- "name": "<extent-keyword>",
332
- "prose": "Both circle and ellipse gradients accept the following <extent-keyword> values:",
292
+ "name": "<rg-size>",
293
+ "prose": "Determines the size of the gradient’s ending shape. If omitted it defaults to farthest-corner. It can be given explicitly or by keyword. For the purpose of the keyword definitions, consider the gradient box edges as extending infinitely in both directions, rather than being finite line segments. If the ending-shape is an ellipse, its axises are aligned with the horizontal and vertical axises. Both circle and ellipse gradients accept the following <rg-extent-keyword> values: If <rg-ending-shape> is specified as circle or is omitted, the <rg-size> may be given explicitly as: If <rg-ending-shape> is specified as ellipse or is omitted, <rg-size> may instead be given explicitly as:",
333
294
  "type": "value",
334
- "value": "closest-corner | closest-side | farthest-corner | farthest-side"
295
+ "value": "<rg-size>"
335
296
  }
336
297
  ]
337
298
  },
package/css-sizing.json CHANGED
@@ -297,8 +297,9 @@
297
297
  },
298
298
  {
299
299
  "name": "border-box",
300
- "value": "border-box",
301
- "type": "value"
300
+ "prose": "Sizes specified on sizing properties as <length-percentage> represent the box’s visually-apparent sizes, including the borders/padding (but not margin): they are applied to the border box. The padding and border of the box are laid out and drawn inside the specified width and height, with the content box sized to fill the remaining space, floored at zero. The content width and height are calculated by subtracting the border and padding widths of the respective sides from the specified <length-percentage>. As the content width and height cannot be negative, this computation is floored at zero. Used values, as exposed for instance through getComputedStyle(), also refer to the border box.",
301
+ "type": "value",
302
+ "value": "border-box"
302
303
  }
303
304
  ],
304
305
  "styleDeclaration": [
package/css-speech.json CHANGED
@@ -525,8 +525,9 @@
525
525
  "values": [
526
526
  {
527
527
  "name": "<family-name>",
528
- "value": "<family-name>",
529
- "type": "value"
528
+ "prose": "Values are specific voice instances (e.g., Mike, comedian, mary, carlos2, \"valley girl\"). Like font-family names, voice names must either be given quoted as strings, or unquoted as a sequence of one or more identifiers. If a sequence of identifiers is given as a voice name, the computed value is the name converted to a string by joining all the identifiers in the sequence by single spaces. Voice names that happen to be the same as the gender keywords (male, female and neutral) or that happen to match the CSS-wide keywords or preserve must be quoted to disambiguate with these keywords. The keyword default is reserved for future use and must also be quoted when used as voice names. It is recommended to quote voice names that contain white space, digits, or punctuation characters other than hyphens—even if these voice names are valid in unquoted form—in order to improve code clarity. For example: voice-family: \"john doe\", \"Henry the-8th\";",
529
+ "type": "value",
530
+ "value": "<family-name>"
530
531
  },
531
532
  {
532
533
  "name": "<age>",
@@ -649,9 +649,9 @@
649
649
  {
650
650
  "msg": "Dangling value",
651
651
  "name": "auto",
652
- "value": "auto",
653
- "pureSyntax": false,
652
+ "prose": "The UA chooses a trim amount that ensures that if two identical underlined elements appear side-by-side they do not appear to have a single underline. (This is important in Chinese, where underlining is a form of punctuation.) text-decoration-skip-inset: auto for <u>石井</u><u>艾俐俐</u>",
654
653
  "type": "value",
654
+ "value": "auto",
655
655
  "for": "text-decoration-skip-inset"
656
656
  },
657
657
  {
@@ -159,8 +159,9 @@
159
159
  },
160
160
  {
161
161
  "name": "view-box",
162
- "value": "view-box",
163
- "type": "value"
162
+ "prose": "Uses the nearest SVG viewport as reference box. If a viewBox attribute is specified for the SVG viewport creating element: The reference box is positioned at the origin of the coordinate system established by the viewBox attribute. The dimension of the reference box is set to the width and height values of the viewBox attribute.",
163
+ "type": "value",
164
+ "value": "view-box"
164
165
  }
165
166
  ],
166
167
  "styleDeclaration": [
@@ -41,20 +41,20 @@
41
41
  "prose": "This pseudo-element is the grouping container of all the other view-transition pseudo-elements. Its originating element is the document’s document element. The following is added to the HTML user agent style sheet: html::view-transition { position: fixed; inset: 0; }"
42
42
  },
43
43
  {
44
- "name": "::view-transition-group( <pt-name-selector> )",
45
- "prose": "One of these pseudo-elements exists for each view-transition-name in a view transition, and holds the rest of the pseudo-elements corresponding to this view-transition-name. Its originating element is the ::view-transition pseudo-element. The following is added to the HTML user agent style sheet: html::view-transition-group(*) { position: absolute; top: 0; left: 0; animation-duration: 0.25s; animation-fill-mode: both; } The selector for this and subsequently defined pseudo-elements is likely to change to indicate position in the pseudo-tree hierarchy."
44
+ "name": "::view-transition-group()",
45
+ "value": "::view-transition-group( <pt-name-selector> )"
46
46
  },
47
47
  {
48
- "name": "::view-transition-image-pair( <pt-name-selector> )",
49
- "prose": "One of these pseudo-elements exists for each view-transition-name being in a view transition, and holds the images of the old and new elements. Its originating element is the ::view-transition-group() pseudo-element with the same transition-name. The following is added to the HTML user agent style sheet: html::view-transition-image-pair(*) { position: absolute; inset: 0; animation-duration: inherit; animation-fill-mode: inherit; }"
48
+ "name": "::view-transition-image-pair()",
49
+ "value": "::view-transition-image-pair( <pt-name-selector> )"
50
50
  },
51
51
  {
52
- "name": "::view-transition-old( <pt-name-selector> )",
53
- "prose": "One of these pseudo-elements exists for each element in the old DOM being animated by the view transition, and is a replaced element displaying the old element’s snapshot image. It has natural dimensions equal to the snapshot’s size. Its originating element is the ::view-transition-image-pair() pseudo-element with the same transition-name. The following is added to the HTML user agent style sheet: html::view-transition-old(*) { position: absolute; inset-block-start: 0; inline-size: 100%; block-size: auto; animation-duration: inherit; animation-fill-mode: inherit; }"
52
+ "name": "::view-transition-old()",
53
+ "value": "::view-transition-old( <pt-name-selector> )"
54
54
  },
55
55
  {
56
- "name": "::view-transition-new( <pt-name-selector> )",
57
- "prose": "Identical to ::view-transition-old(), except it deals with the new element instead."
56
+ "name": "::view-transition-new()",
57
+ "value": "::view-transition-new( <pt-name-selector> )"
58
58
  }
59
59
  ],
60
60
  "values": [
package/fill-stroke.json CHANGED
@@ -356,8 +356,9 @@
356
356
  "values": [
357
357
  {
358
358
  "name": "<number>",
359
- "value": "<number>",
360
- "type": "value"
359
+ "prose": "Specifies the limit on the join’s size as a ratio of its diagonal to the stroke-width. Values less than 1 are invalid (and make the declaration invalid). For a miter linejoin, the length of the diagonal is calculated from the angle between the two segments as stroke-width / sin(θ/2). The linejoin is clipped perpendicular to the line bisecting the angle between the two path segments. For an arcs linejoin, the length of the diagonal is calculated along a circular arc that is tangent to the line bisecting the angle between the two segments at the point the two segments intersect and passes through the end point of the join. The linejoin is clipped perpendicular to this arc.",
360
+ "type": "value",
361
+ "value": "<number>"
361
362
  }
362
363
  ],
363
364
  "styleDeclaration": [
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.1.0",
4
+ "version": "6.1.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/w3c/webref.git"
@@ -12,6 +12,6 @@
12
12
  "license": "MIT",
13
13
  "main": "index.js",
14
14
  "peerDependencies": {
15
- "css-tree": "^2.2.1"
15
+ "css-tree": "^2.3.0"
16
16
  }
17
17
  }
@@ -6,12 +6,12 @@
6
6
  "properties": [
7
7
  {
8
8
  "name": "scroll-timeline-name",
9
- "value": "none | <custom-ident>",
9
+ "value": "none | <custom-ident>#",
10
10
  "initial": "none",
11
11
  "appliesTo": "scroll containers",
12
12
  "inherited": "no",
13
13
  "percentages": "n/a",
14
- "computedValue": "the specified keyword",
14
+ "computedValue": "the keyword none or a list of <custom-ident>s",
15
15
  "canonicalOrder": "per grammar",
16
16
  "animationType": "not animatable",
17
17
  "styleDeclaration": [
@@ -21,12 +21,12 @@
21
21
  },
22
22
  {
23
23
  "name": "scroll-timeline-axis",
24
- "value": "block | inline | vertical | horizontal",
24
+ "value": "[ block | inline | vertical | horizontal ]#",
25
25
  "initial": "block",
26
26
  "appliesTo": "scroll containers",
27
27
  "inherited": "no",
28
28
  "percentages": "n/a",
29
- "computedValue": "the specified keyword",
29
+ "computedValue": "a list of the keywords specified",
30
30
  "canonicalOrder": "per grammar",
31
31
  "animationType": "not animatable",
32
32
  "values": [
@@ -74,7 +74,7 @@
74
74
  },
75
75
  {
76
76
  "name": "scroll-timeline",
77
- "value": "<'scroll-timeline-name'> || <'scroll-timeline-axis'>",
77
+ "value": "[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#",
78
78
  "initial": "see individual properties",
79
79
  "appliesTo": "scroll containers",
80
80
  "inherited": "no",
@@ -186,7 +186,7 @@
186
186
  },
187
187
  {
188
188
  "name": "view-timeline",
189
- "value": "[ <'view-timeline-name'> || <'view-timeline-axis'> ]#",
189
+ "value": "[ <'view-timeline-name'> <'view-timeline-axis'>? ]#",
190
190
  "initial": "see individual properties",
191
191
  "appliesTo": "all elements",
192
192
  "inherited": "see individual properties",
@@ -260,7 +260,7 @@
260
260
  },
261
261
  {
262
262
  "name": "animation-delay-end",
263
- "value": "[ <time> | <timeline-range-name> <percentage> ]",
263
+ "value": "[ <time> | <timeline-range-name> <percentage> ]#",
264
264
  "initial": "0s",
265
265
  "appliesTo": "all elements",
266
266
  "inherited": "no",
@@ -293,7 +293,7 @@
293
293
  "values": [
294
294
  {
295
295
  "name": "scroll()",
296
- "prose": "The scroll() functional notation can be used as a value of animation-timeline and specifies a scroll progress timeline. Its syntax is",
296
+ "prose": "The scroll() functional notation can be used as a <single-animation-timeline> value in animation-timeline and specifies a scroll progress timeline. Its syntax is",
297
297
  "type": "function",
298
298
  "value": "scroll( [ <scroller> || <axis> ]? )",
299
299
  "values": [
@@ -345,6 +345,12 @@
345
345
  "type": "type",
346
346
  "value": "root | nearest"
347
347
  },
348
+ {
349
+ "name": "view()",
350
+ "prose": "The view() functional notation can be used as a <single-animation-timeline> value in animation-timeline and specifies a view progress timeline in reference to the nearest ancestor scroll container. Its syntax is",
351
+ "type": "function",
352
+ "value": "view( [ <axis> || <'view-timeline-inset'> ]? )"
353
+ },
348
354
  {
349
355
  "name": "<timeline-range-name>",
350
356
  "prose": "A named timeline range is a named segment of an animation timeline. The start of the segment is represented as 0% progress through the range; the end of the segment is represented as 100% progress through the range. Multiple named timeline ranges can be attached to a given timeline, and multiple such ranges can overlap. For example, the contain range of a view progress timeline overlaps with its cover range. Named timeline ranges are represented by the <timeline-range-name> value type, which indicates a CSS identifier representing one of the predefined named timeline ranges.",
package/selectors.json CHANGED
@@ -16,7 +16,7 @@
16
16
  },
17
17
  {
18
18
  "name": ":not()",
19
- "prose": "The negation pseudo-class, :not(), is a functional pseudo-class taking a selector list as an argument. It represents an element that is not represented by its argument."
19
+ "prose": "The negation pseudo-class, :not(), is a functional pseudo-class taking a <complex-real-selector-list> as an argument. It represents an element that is not represented by its argument."
20
20
  },
21
21
  {
22
22
  "name": ":where()",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  {
26
26
  "name": ":has()",
27
- "prose": "The relational pseudo-class, :has(), is a functional pseudo-class taking a <forgiving-relative-selector-list> as an argument. It represents an element if any of the relative selectors would match at least one element when anchored against this element."
27
+ "prose": "The relational pseudo-class, :has(), is a functional pseudo-class taking a <relative-selector-list> as an argument. It represents an element if any of the relative selectors would match at least one element when anchored against this element."
28
28
  },
29
29
  {
30
30
  "name": ":defined",
@@ -68,23 +68,23 @@
68
68
  },
69
69
  {
70
70
  "name": ":hover",
71
- "prose": "The :hover pseudo-class applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element. Interactive user agents that cannot detect hovering due to hardware limitations (e.g., a pen device that does not detect hovering) are still conforming; the selector will simply never match in such a UA."
71
+ "prose": "The :hover pseudo-class applies while the user designates an element (or pseudo-element) with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element. Interactive user agents that cannot detect hovering due to hardware limitations (e.g., a pen device that does not detect hovering) are still conforming; the selector will simply never match in such a UA."
72
72
  },
73
73
  {
74
74
  "name": ":active",
75
- "prose": "The :active pseudo-class applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it. On systems with more than one mouse button, :active applies only to the primary or primary activation button (typically the \"left\" mouse button), and any aliases thereof."
75
+ "prose": "The :active pseudo-class applies while an element is being “activated” by the user, as defined by the host language; for example, while a hyperlink is being triggered."
76
76
  },
77
77
  {
78
78
  "name": ":focus",
79
- "prose": "The :focus pseudo-class applies while an element has the focus (accepts keyboard or mouse events, or other forms of input)."
79
+ "prose": "The :focus pseudo-class applies while an element (or pseudo-element) has the focus (accepts keyboard or other forms of input)."
80
80
  },
81
81
  {
82
82
  "name": ":focus-visible",
83
- "prose": "While the :focus pseudo-class always matches the currently-focused element, UAs only sometimes visibly indicate focus (such as by drawing a “focus ring”), instead using a variety of heuristics to visibly indicate the focus only when it would be most helpful to the user. The :focus-visible pseudo-class matches a focused element in these situations only, allowing authors to change the appearance of the focus indicator without changing when a focus indicator appears."
83
+ "prose": "While the :focus pseudo-class always matches the currently-focused element, UAs only sometimes visibly indicate focus (such as by drawing a “focus ring”), instead using a variety of heuristics to visibly indicate the focus only when it would be most helpful to the user. The :focus-visible pseudo-class matches a focused element (or pseudo-element) in these situations only, allowing authors to change the appearance of the focus indicator without changing when a focus indicator appears."
84
84
  },
85
85
  {
86
86
  "name": ":focus-within",
87
- "prose": "The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus."
87
+ "prose": "The :focus-within pseudo-class applies to any element (or pseudo-element) for which the :focus pseudo class applies, as well as to an element (or pseudo-element) whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus."
88
88
  },
89
89
  {
90
90
  "name": ":current",
@@ -232,11 +232,11 @@
232
232
  },
233
233
  {
234
234
  "name": ":nth-child()",
235
- "prose": "The :nth-child(An+B [of S]? ) pseudo-class notation represents elements that are among An+Bth elements from the list composed of their inclusive siblings that match the selector list S, which is a <complex-selector-list> parsed as a forgiving selector list. If S is omitted, it defaults to *|*."
235
+ "value": ":nth-child(An+B [of S]? )"
236
236
  },
237
237
  {
238
238
  "name": ":nth-last-child()",
239
- "prose": "The :nth-last-child(An+B [of S]? ) pseudo-class notation represents elements that are among An+Bth elements from the list composed of their inclusive siblings that match the selector list S, counting backwards from the end. S is <complex-selector-list> parsed as a forgiving selector list. If S is omitted, it defaults to *|*."
239
+ "value": ":nth-last-child(An+B [of S]? )"
240
240
  },
241
241
  {
242
242
  "name": ":first-child",
@@ -252,11 +252,11 @@
252
252
  },
253
253
  {
254
254
  "name": ":nth-of-type()",
255
- "prose": "The :nth-of-type(An+B) pseudo-class notation represents the same elements that would be matched by :nth-child(|An+B| of S), where S is a type selector and namespace prefix matching the element in question. For example, when considering whether an HTML img element matches this pseudo-class, the S in question is html|img (assuming an appropriate html namespace is declared)."
255
+ "value": ":nth-of-type(An+B)"
256
256
  },
257
257
  {
258
258
  "name": ":nth-last-of-type()",
259
- "prose": "The :nth-last-of-type(An+B) pseudo-class notation represents the same elements that would be matched by :nth-last-child(|An+B| of S), where S is a type selector and namespace prefix matching the element in question. For example, when considering whether an HTML img element matches this pseudo-class, the S in question is html|img (assuming an appropriate html namespace is declared)."
259
+ "value": ":nth-last-of-type(An+B)"
260
260
  },
261
261
  {
262
262
  "name": ":first-of-type",
@@ -288,11 +288,11 @@
288
288
  },
289
289
  {
290
290
  "name": ":nth-col()",
291
- "prose": "The :nth-col(An+B) pseudo-class notation represents a cell element belonging to a column that has An+B-1 columns before it, for any positive integer or zero value of n. Column membership is determined based on the semantics of the document language only: whether and how the elements are presented is not considered. If a cell element belongs to more than one column, it is represented by a selector indicating any of those columns."
291
+ "value": ":nth-col(An+B)"
292
292
  },
293
293
  {
294
294
  "name": ":nth-last-col()",
295
- "prose": "The :nth-last-col(An+B) pseudo-class notation represents a cell element belonging to a column that has An+B-1 columns after it, for any positive integer or zero value of n. Column membership is determined based on the semantics of the document language only: whether and how the elements are presented is not considered. If a cell element belongs to more than one column, it is represented by a selector indicating any of those columns."
295
+ "value": ":nth-last-col(An+B)"
296
296
  }
297
297
  ],
298
298
  "values": [
@@ -306,6 +306,11 @@
306
306
  "type": "type",
307
307
  "value": "<complex-selector>#"
308
308
  },
309
+ {
310
+ "name": "<complex-real-selector-list>",
311
+ "type": "type",
312
+ "value": "<complex-real-selector>#"
313
+ },
309
314
  {
310
315
  "name": "<compound-selector-list>",
311
316
  "type": "type",
@@ -321,9 +326,24 @@
321
326
  "type": "type",
322
327
  "value": "<relative-selector>#"
323
328
  },
329
+ {
330
+ "name": "<relative-real-selector-list>",
331
+ "type": "type",
332
+ "value": "<relative-real-selector>#"
333
+ },
334
+ {
335
+ "name": "<complex-selector-unit>",
336
+ "type": "type",
337
+ "value": "[ <compound-selector>? <pseudo-compound-selector>* ]!"
338
+ },
324
339
  {
325
340
  "name": "<complex-selector>",
326
341
  "type": "type",
342
+ "value": "<complex-selector-unit> [ <combinator>? <complex-selector-unit> ]*"
343
+ },
344
+ {
345
+ "name": "<complex-real-selector>",
346
+ "type": "type",
327
347
  "value": "<compound-selector> [ <combinator>? <compound-selector> ]*"
328
348
  },
329
349
  {
@@ -331,10 +351,20 @@
331
351
  "type": "type",
332
352
  "value": "<combinator>? <complex-selector>"
333
353
  },
354
+ {
355
+ "name": "<relative-real-selector>",
356
+ "type": "type",
357
+ "value": "<combinator>? <complex-real-selector>"
358
+ },
334
359
  {
335
360
  "name": "<compound-selector>",
336
361
  "type": "type",
337
- "value": "[ <type-selector>? <subclass-selector>* [ <pseudo-element-selector> <pseudo-class-selector>* ]* ]!"
362
+ "value": "[ <type-selector>? <subclass-selector>* ]!"
363
+ },
364
+ {
365
+ "name": "<pseudo-compound-selector>",
366
+ "type": "type",
367
+ "value": "<pseudo-element-selector> <pseudo-class-selector>*"
338
368
  },
339
369
  {
340
370
  "name": "<simple-selector>",
@@ -410,11 +440,6 @@
410
440
  "name": "<forgiving-selector-list>",
411
441
  "prose": "The <forgiving-selector-list> production instead parses each selector in the list individually, simply ignoring ones that fail to parse, so the remaining selectors can still be used.",
412
442
  "type": "type"
413
- },
414
- {
415
- "name": "<forgiving-relative-selector-list>",
416
- "prose": "<forgiving-relative-selector-list> is identical to <forgiving-selector-list>, except it parses its components as <relative-selector> rather than <complex-selector>.",
417
- "type": "type"
418
443
  }
419
444
  ]
420
445
  }