@webref/css 5.4.4 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/CSS.json +416 -21
  3. package/README.md +4 -4
  4. package/SVG.json +42 -35
  5. package/compat.json +111 -75
  6. package/compositing.json +101 -12
  7. package/css-align.json +237 -29
  8. package/css-anchor.json +177 -19
  9. package/css-animations-2.json +37 -15
  10. package/css-animations.json +155 -31
  11. package/css-backgrounds-4.json +107 -32
  12. package/css-backgrounds.json +426 -59
  13. package/css-box.json +243 -20
  14. package/css-break.json +292 -11
  15. package/css-cascade-6.json +22 -13
  16. package/css-cascade.json +50 -15
  17. package/css-color-5.json +320 -35
  18. package/css-color-adjust.json +75 -8
  19. package/css-color.json +1100 -61
  20. package/css-conditional-4.json +11 -6
  21. package/css-conditional-5.json +38 -19
  22. package/css-conditional.json +28 -15
  23. package/css-contain-3.json +101 -26
  24. package/css-contain.json +71 -6
  25. package/css-content.json +263 -30
  26. package/css-counter-styles.json +455 -18
  27. package/css-display.json +250 -19
  28. package/css-easing.json +137 -25
  29. package/css-env.json +61 -6
  30. package/css-exclusions.json +65 -6
  31. package/css-extensions.json +20 -12
  32. package/css-flexbox.json +132 -11
  33. package/css-fonts-5.json +255 -13
  34. package/css-fonts.json +886 -74
  35. package/css-gcpm-4.json +30 -5
  36. package/css-gcpm.json +76 -15
  37. package/css-grid-3.json +10 -9
  38. package/css-grid.json +442 -42
  39. package/css-highlight-api.json +13 -5
  40. package/css-images-4.json +192 -67
  41. package/css-images.json +152 -33
  42. package/css-inline.json +525 -16
  43. package/css-layout-api.json +20 -0
  44. package/css-line-grid.json +80 -7
  45. package/css-lists.json +140 -19
  46. package/css-logical.json +125 -50
  47. package/css-masking.json +330 -47
  48. package/css-multicol-2.json +32 -5
  49. package/css-multicol.json +84 -13
  50. package/css-namespaces.json +15 -10
  51. package/css-nav.json +62 -7
  52. package/css-nesting.json +15 -0
  53. package/css-overflow-4.json +83 -10
  54. package/css-overflow.json +239 -18
  55. package/css-overscroll.json +110 -9
  56. package/css-page-floats.json +188 -16
  57. package/css-page.json +262 -67
  58. package/css-paint-api.json +8 -5
  59. package/css-position.json +269 -16
  60. package/css-properties-values-api.json +9 -7
  61. package/css-pseudo.json +67 -0
  62. package/css-regions.json +8 -7
  63. package/css-rhythm.json +69 -10
  64. package/css-round-display.json +47 -10
  65. package/css-ruby.json +136 -8
  66. package/css-scoping.json +27 -0
  67. package/css-scroll-anchoring.json +20 -5
  68. package/css-scroll-snap-2.json +272 -10
  69. package/css-scroll-snap.json +218 -29
  70. package/css-scrollbars.json +41 -6
  71. package/css-shadow-parts.json +8 -5
  72. package/css-shapes-2.json +190 -43
  73. package/css-shapes.json +130 -36
  74. package/css-size-adjust.json +26 -5
  75. package/css-sizing-4.json +404 -23
  76. package/css-sizing.json +231 -12
  77. package/css-speech.json +619 -35
  78. package/css-syntax.json +193 -92
  79. package/css-tables.json +10 -9
  80. package/css-text-4.json +800 -40
  81. package/css-text-decor-4.json +394 -23
  82. package/css-text-decor.json +159 -14
  83. package/css-text.json +371 -20
  84. package/css-transforms-2.json +177 -40
  85. package/css-transforms.json +137 -45
  86. package/css-transitions.json +33 -14
  87. package/css-ui.json +436 -42
  88. package/css-values-5.json +99 -14
  89. package/css-values.json +653 -146
  90. package/css-variables.json +12 -7
  91. package/css-view-transitions.json +45 -7
  92. package/css-will-change.json +36 -7
  93. package/css-writing-modes.json +141 -10
  94. package/fill-stroke.json +290 -35
  95. package/filter-effects-2.json +6 -5
  96. package/filter-effects.json +109 -45
  97. package/fullscreen.json +15 -0
  98. package/mathml-core.json +10 -9
  99. package/mediaqueries-5.json +505 -52
  100. package/mediaqueries.json +307 -40
  101. package/motion.json +99 -16
  102. package/package.json +1 -1
  103. package/scroll-animations.json +225 -24
  104. package/selectors.json +368 -30
  105. package/svg-strokes.json +8 -7
  106. package/upgrade-insecure-requests.json +26 -0
  107. package/html.json +0 -19
@@ -3,8 +3,8 @@
3
3
  "title": "CSS Backgrounds and Borders Module Level 3",
4
4
  "url": "https://drafts.csswg.org/css-backgrounds-3/"
5
5
  },
6
- "properties": {
7
- "background-color": {
6
+ "properties": [
7
+ {
8
8
  "name": "background-color",
9
9
  "value": "<color>",
10
10
  "initial": "transparent",
@@ -19,7 +19,7 @@
19
19
  "backgroundColor"
20
20
  ]
21
21
  },
22
- "background-image": {
22
+ {
23
23
  "name": "background-image",
24
24
  "value": "<bg-image>#",
25
25
  "initial": "none",
@@ -29,12 +29,20 @@
29
29
  "computedValue": "computed <image>",
30
30
  "canonicalOrder": "per grammar",
31
31
  "animationType": "discrete",
32
+ "values": [
33
+ {
34
+ "name": "none",
35
+ "prose": "A value of none counts as an image layer but draws nothing. An image that is empty (zero width or zero height), that fails to download, or that cannot be displayed (e.g., because it is not in a supported image format) likewise counts as a layer but draws nothing.",
36
+ "type": "value",
37
+ "value": "none"
38
+ }
39
+ ],
32
40
  "styleDeclaration": [
33
41
  "background-image",
34
42
  "backgroundImage"
35
43
  ]
36
44
  },
37
- "background-repeat": {
45
+ {
38
46
  "name": "background-repeat",
39
47
  "value": "<repeat-style>#",
40
48
  "initial": "repeat",
@@ -44,12 +52,50 @@
44
52
  "computedValue": "list, each item a pair of keywords, one per dimension",
45
53
  "canonicalOrder": "per grammar",
46
54
  "animationType": "discrete",
55
+ "values": [
56
+ {
57
+ "name": "repeat-x",
58
+ "prose": "Computes to repeat no-repeat.",
59
+ "type": "value",
60
+ "value": "repeat-x"
61
+ },
62
+ {
63
+ "name": "repeat-y",
64
+ "prose": "Computes to no-repeat repeat.",
65
+ "type": "value",
66
+ "value": "repeat-y"
67
+ },
68
+ {
69
+ "name": "repeat",
70
+ "prose": "The image is repeated in this direction as often as needed to cover the background painting area.",
71
+ "type": "value",
72
+ "value": "repeat"
73
+ },
74
+ {
75
+ "name": "space",
76
+ "prose": "The image is repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area. The first and last images touch the edges of the area. If the background painting area is larger than the background positioning area, then the pattern repeats to fill the background painting area. The value of background-position for this direction is ignored, unless there is not enough space for two copies of the image in this direction, in which case only one image is placed and background-position determines its position in this direction.",
77
+ "type": "value",
78
+ "value": "space"
79
+ },
80
+ {
81
+ "name": "round",
82
+ "prose": "The image is repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does. See the formula under background-size. If the background painting area is larger than the background positioning area, then the pattern repeats to fill the background painting area.",
83
+ "type": "value",
84
+ "value": "round"
85
+ },
86
+ {
87
+ "name": "no-repeat",
88
+ "prose": "The image is placed once and not repeated in this direction.",
89
+ "type": "value",
90
+ "value": "no-repeat"
91
+ }
92
+ ],
47
93
  "styleDeclaration": [
48
94
  "background-repeat",
49
95
  "backgroundRepeat"
50
96
  ]
51
97
  },
52
- "background-attachment": {
98
+ {
53
99
  "name": "background-attachment",
54
100
  "value": "<attachment>#",
55
101
  "initial": "scroll",
@@ -59,12 +105,32 @@
59
105
  "computedValue": "list, each item the keyword as specified",
60
106
  "canonicalOrder": "per grammar",
61
107
  "animationType": "discrete",
108
+ "values": [
109
+ {
110
+ "name": "fixed",
111
+ "prose": "The background is fixed with regard to the viewport. In paged media where there is no viewport, a fixed background is fixed with respect to the page box and therefore replicated on every page.",
112
+ "type": "value",
113
+ "value": "fixed"
114
+ },
115
+ {
116
+ "name": "local",
117
+ "prose": "The background is fixed with regard to the element’s contents: if the element has a scrolling mechanism, the background scrolls with the element’s contents, and the background painting area and background positioning area are relative to the scrollable area of the element rather than to the border framing them. Because the scrollable area does not include the border area, for scrollable elements the border-box value of background-clip may be treated the same as padding-box.",
118
+ "type": "value",
119
+ "value": "local"
120
+ },
121
+ {
122
+ "name": "scroll",
123
+ "prose": "The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element’s border.)",
124
+ "type": "value",
125
+ "value": "scroll"
126
+ }
127
+ ],
62
128
  "styleDeclaration": [
63
129
  "background-attachment",
64
130
  "backgroundAttachment"
65
131
  ]
66
132
  },
67
- "background-position": {
133
+ {
68
134
  "name": "background-position",
69
135
  "value": "<bg-position>#",
70
136
  "initial": "0% 0%",
@@ -74,12 +140,56 @@
74
140
  "computedValue": "list, each item a pair of offsets (horizontal and vertical) from the top left origin each given as a computed <length-percentage> value",
75
141
  "canonicalOrder": "per grammar",
76
142
  "animationType": "repeatable list",
143
+ "values": [
144
+ {
145
+ "name": "<percentage>",
146
+ "prose": "A percentage for the horizontal offset is relative to (width of background positioning area - width of background image). A percentage for the vertical offset is relative to (height of background positioning area - height of background image), where the size of the image is the size given by background-size. For example, with a value pair of 0% 0%, the upper left corner of the image is aligned with the upper left corner of, usually, the box’s padding edge. A value pair of 100% 100% places the lower right corner of the image in the lower right corner of the area. With a value pair of 75% 50%, the point 75% across and 50% down the image is to be placed at the point 75% across and 50% down the area. Diagram of the meaning of background-position: 75% 50%.",
147
+ "type": "value",
148
+ "value": "<percentage>"
149
+ },
150
+ {
151
+ "name": "<length>",
152
+ "prose": "A length value gives a fixed length as the offset. For example, with a value pair of 2cm 1cm, the upper left corner of the image is placed 2cm to the right and 1cm below the upper left corner of the background positioning area.",
153
+ "type": "value",
154
+ "value": "<length>"
155
+ },
156
+ {
157
+ "name": "top",
158
+ "prose": "Computes to 0% for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.",
159
+ "type": "value",
160
+ "value": "top"
161
+ },
162
+ {
163
+ "name": "right",
164
+ "prose": "Computes to 100% for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.",
165
+ "type": "value",
166
+ "value": "right"
167
+ },
168
+ {
169
+ "name": "bottom",
170
+ "prose": "Computes to 100% for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.",
171
+ "type": "value",
172
+ "value": "bottom"
173
+ },
174
+ {
175
+ "name": "left",
176
+ "prose": "Computes to 0% for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.",
177
+ "type": "value",
178
+ "value": "left"
179
+ },
180
+ {
181
+ "name": "center",
182
+ "prose": "Computes to 50% (left 50%) for the horizontal position if the horizontal position is not otherwise specified, or 50% (top 50%) for the vertical position if it is.",
183
+ "type": "value",
184
+ "value": "center"
185
+ }
186
+ ],
77
187
  "styleDeclaration": [
78
188
  "background-position",
79
189
  "backgroundPosition"
80
190
  ]
81
191
  },
82
- "background-clip": {
192
+ {
83
193
  "name": "background-clip",
84
194
  "value": "<box>#",
85
195
  "initial": "border-box",
@@ -89,12 +199,32 @@
89
199
  "computedValue": "list, each item a keyword as specified",
90
200
  "canonicalOrder": "per grammar",
91
201
  "animationType": "repeatable list",
202
+ "values": [
203
+ {
204
+ "name": "border-box",
205
+ "prose": "The background is painted within (clipped to) the border box.",
206
+ "type": "value",
207
+ "value": "border-box"
208
+ },
209
+ {
210
+ "name": "padding-box",
211
+ "prose": "The background is painted within (clipped to) the padding box.",
212
+ "type": "value",
213
+ "value": "padding-box"
214
+ },
215
+ {
216
+ "name": "content-box",
217
+ "prose": "The background is painted within (clipped to) the content box.",
218
+ "type": "value",
219
+ "value": "content-box"
220
+ }
221
+ ],
92
222
  "styleDeclaration": [
93
223
  "background-clip",
94
224
  "backgroundClip"
95
225
  ]
96
226
  },
97
- "background-origin": {
227
+ {
98
228
  "name": "background-origin",
99
229
  "value": "<box>#",
100
230
  "initial": "padding-box",
@@ -104,12 +234,32 @@
104
234
  "computedValue": "list, each item a keyword as specified",
105
235
  "canonicalOrder": "per grammar",
106
236
  "animationType": "repeatable list",
237
+ "values": [
238
+ {
239
+ "name": "padding-box",
240
+ "prose": "The position is relative to the padding box. (For single boxes 0 0 is the upper left corner of the padding edge, 100% 100% is the lower right corner.)",
241
+ "type": "value",
242
+ "value": "padding-box"
243
+ },
244
+ {
245
+ "name": "border-box",
246
+ "prose": "The position is relative to the border box.",
247
+ "type": "value",
248
+ "value": "border-box"
249
+ },
250
+ {
251
+ "name": "content-box",
252
+ "prose": "The position is relative to the content box.",
253
+ "type": "value",
254
+ "value": "content-box"
255
+ }
256
+ ],
107
257
  "styleDeclaration": [
108
258
  "background-origin",
109
259
  "backgroundOrigin"
110
260
  ]
111
261
  },
112
- "background-size": {
262
+ {
113
263
  "name": "background-size",
114
264
  "value": "<bg-size>#",
115
265
  "initial": "auto",
@@ -119,12 +269,38 @@
119
269
  "computedValue": "list, each item a pair of sizes (one per axis) each represented as either a keyword or a computed <length-percentage> value",
120
270
  "canonicalOrder": "per grammar",
121
271
  "animationType": "repeatable list",
272
+ "values": [
273
+ {
274
+ "name": "contain",
275
+ "prose": "Scale the image, while preserving its natural aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.",
276
+ "type": "value",
277
+ "value": "contain"
278
+ },
279
+ {
280
+ "name": "cover",
281
+ "prose": "Scale the image, while preserving its natural aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.",
282
+ "type": "value",
283
+ "value": "cover"
284
+ },
285
+ {
286
+ "name": "<length-percentage [0,∞]>",
287
+ "prose": "The first value gives the width of the corresponding image, the second value its height. If only one value is given the second is assumed to be auto. A percentage is relative to the background positioning area. An auto value for one dimension is resolved by using the image’s natural aspect ratio and the size of the other dimension, or failing that, using the image’s natural size, or failing that, treating it as 100%. If both values are auto then the natural width and/or height of the image should be used, if any, the missing dimension (if any) behaving as auto as described above. If the image has neither natural size, its size is determined as for contain. Negative values are invalid.",
288
+ "type": "value",
289
+ "value": "<length-percentage [0,∞]>"
290
+ },
291
+ {
292
+ "name": "auto",
293
+ "prose": "The first value gives the width of the corresponding image, the second value its height. If only one value is given the second is assumed to be auto. A percentage is relative to the background positioning area. An auto value for one dimension is resolved by using the image’s natural aspect ratio and the size of the other dimension, or failing that, using the image’s natural size, or failing that, treating it as 100%. If both values are auto then the natural width and/or height of the image should be used, if any, the missing dimension (if any) behaving as auto as described above. If the image has neither natural size, its size is determined as for contain. Negative values are invalid.",
294
+ "type": "value",
295
+ "value": "auto"
296
+ }
297
+ ],
122
298
  "styleDeclaration": [
123
299
  "background-size",
124
300
  "backgroundSize"
125
301
  ]
126
302
  },
127
- "background": {
303
+ {
128
304
  "name": "background",
129
305
  "value": "[<bg-layer># ,]? <final-bg-layer>",
130
306
  "initial": "see individual properties",
@@ -138,7 +314,7 @@
138
314
  "background"
139
315
  ]
140
316
  },
141
- "border-top-color": {
317
+ {
142
318
  "name": "border-top-color",
143
319
  "value": "<color>",
144
320
  "initial": "currentColor",
@@ -153,7 +329,7 @@
153
329
  "borderTopColor"
154
330
  ]
155
331
  },
156
- "border-right-color": {
332
+ {
157
333
  "name": "border-right-color",
158
334
  "value": "<color>",
159
335
  "initial": "currentColor",
@@ -168,7 +344,7 @@
168
344
  "borderRightColor"
169
345
  ]
170
346
  },
171
- "border-bottom-color": {
347
+ {
172
348
  "name": "border-bottom-color",
173
349
  "value": "<color>",
174
350
  "initial": "currentColor",
@@ -183,7 +359,7 @@
183
359
  "borderBottomColor"
184
360
  ]
185
361
  },
186
- "border-left-color": {
362
+ {
187
363
  "name": "border-left-color",
188
364
  "value": "<color>",
189
365
  "initial": "currentColor",
@@ -198,7 +374,7 @@
198
374
  "borderLeftColor"
199
375
  ]
200
376
  },
201
- "border-color": {
377
+ {
202
378
  "name": "border-color",
203
379
  "value": "<color>{1,4}",
204
380
  "initial": "(see individual properties)",
@@ -213,7 +389,7 @@
213
389
  "borderColor"
214
390
  ]
215
391
  },
216
- "border-top-style": {
392
+ {
217
393
  "name": "border-top-style",
218
394
  "value": "<line-style>",
219
395
  "initial": "none",
@@ -228,7 +404,7 @@
228
404
  "borderTopStyle"
229
405
  ]
230
406
  },
231
- "border-right-style": {
407
+ {
232
408
  "name": "border-right-style",
233
409
  "value": "<line-style>",
234
410
  "initial": "none",
@@ -243,7 +419,7 @@
243
419
  "borderRightStyle"
244
420
  ]
245
421
  },
246
- "border-bottom-style": {
422
+ {
247
423
  "name": "border-bottom-style",
248
424
  "value": "<line-style>",
249
425
  "initial": "none",
@@ -258,7 +434,7 @@
258
434
  "borderBottomStyle"
259
435
  ]
260
436
  },
261
- "border-left-style": {
437
+ {
262
438
  "name": "border-left-style",
263
439
  "value": "<line-style>",
264
440
  "initial": "none",
@@ -273,7 +449,7 @@
273
449
  "borderLeftStyle"
274
450
  ]
275
451
  },
276
- "border-style": {
452
+ {
277
453
  "name": "border-style",
278
454
  "value": "<line-style>{1,4}",
279
455
  "initial": "(see individual properties)",
@@ -288,7 +464,7 @@
288
464
  "borderStyle"
289
465
  ]
290
466
  },
291
- "border-top-width": {
467
+ {
292
468
  "name": "border-top-width",
293
469
  "value": "<line-width>",
294
470
  "initial": "medium",
@@ -303,7 +479,7 @@
303
479
  "borderTopWidth"
304
480
  ]
305
481
  },
306
- "border-right-width": {
482
+ {
307
483
  "name": "border-right-width",
308
484
  "value": "<line-width>",
309
485
  "initial": "medium",
@@ -318,7 +494,7 @@
318
494
  "borderRightWidth"
319
495
  ]
320
496
  },
321
- "border-bottom-width": {
497
+ {
322
498
  "name": "border-bottom-width",
323
499
  "value": "<line-width>",
324
500
  "initial": "medium",
@@ -333,7 +509,7 @@
333
509
  "borderBottomWidth"
334
510
  ]
335
511
  },
336
- "border-left-width": {
512
+ {
337
513
  "name": "border-left-width",
338
514
  "value": "<line-width>",
339
515
  "initial": "medium",
@@ -348,7 +524,7 @@
348
524
  "borderLeftWidth"
349
525
  ]
350
526
  },
351
- "border-width": {
527
+ {
352
528
  "name": "border-width",
353
529
  "value": "<line-width>{1,4}",
354
530
  "initial": "(see individual properties)",
@@ -363,7 +539,7 @@
363
539
  "borderWidth"
364
540
  ]
365
541
  },
366
- "border-top": {
542
+ {
367
543
  "name": "border-top",
368
544
  "value": "<line-width> || <line-style> || <color>",
369
545
  "initial": "See individual properties",
@@ -378,7 +554,7 @@
378
554
  "borderTop"
379
555
  ]
380
556
  },
381
- "border-right": {
557
+ {
382
558
  "name": "border-right",
383
559
  "value": "<line-width> || <line-style> || <color>",
384
560
  "initial": "See individual properties",
@@ -393,7 +569,7 @@
393
569
  "borderRight"
394
570
  ]
395
571
  },
396
- "border-bottom": {
572
+ {
397
573
  "name": "border-bottom",
398
574
  "value": "<line-width> || <line-style> || <color>",
399
575
  "initial": "See individual properties",
@@ -408,7 +584,7 @@
408
584
  "borderBottom"
409
585
  ]
410
586
  },
411
- "border-left": {
587
+ {
412
588
  "name": "border-left",
413
589
  "value": "<line-width> || <line-style> || <color>",
414
590
  "initial": "See individual properties",
@@ -423,7 +599,7 @@
423
599
  "borderLeft"
424
600
  ]
425
601
  },
426
- "border": {
602
+ {
427
603
  "name": "border",
428
604
  "value": "<line-width> || <line-style> || <color>",
429
605
  "initial": "See individual properties",
@@ -437,7 +613,7 @@
437
613
  "border"
438
614
  ]
439
615
  },
440
- "border-top-left-radius": {
616
+ {
441
617
  "name": "border-top-left-radius",
442
618
  "value": "<length-percentage [0,∞]>{1,2}",
443
619
  "initial": "0",
@@ -452,7 +628,7 @@
452
628
  "borderTopLeftRadius"
453
629
  ]
454
630
  },
455
- "border-top-right-radius": {
631
+ {
456
632
  "name": "border-top-right-radius",
457
633
  "value": "<length-percentage [0,∞]>{1,2}",
458
634
  "initial": "0",
@@ -467,7 +643,7 @@
467
643
  "borderTopRightRadius"
468
644
  ]
469
645
  },
470
- "border-bottom-right-radius": {
646
+ {
471
647
  "name": "border-bottom-right-radius",
472
648
  "value": "<length-percentage [0,∞]>{1,2}",
473
649
  "initial": "0",
@@ -482,7 +658,7 @@
482
658
  "borderBottomRightRadius"
483
659
  ]
484
660
  },
485
- "border-bottom-left-radius": {
661
+ {
486
662
  "name": "border-bottom-left-radius",
487
663
  "value": "<length-percentage [0,∞]>{1,2}",
488
664
  "initial": "0",
@@ -497,7 +673,7 @@
497
673
  "borderBottomLeftRadius"
498
674
  ]
499
675
  },
500
- "border-radius": {
676
+ {
501
677
  "name": "border-radius",
502
678
  "value": "<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?",
503
679
  "initial": "see individual properties",
@@ -512,7 +688,7 @@
512
688
  "borderRadius"
513
689
  ]
514
690
  },
515
- "border-image-source": {
691
+ {
516
692
  "name": "border-image-source",
517
693
  "value": "none | <image>",
518
694
  "initial": "none",
@@ -527,7 +703,7 @@
527
703
  "borderImageSource"
528
704
  ]
529
705
  },
530
- "border-image-slice": {
706
+ {
531
707
  "name": "border-image-slice",
532
708
  "value": "[<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill?",
533
709
  "initial": "100%",
@@ -537,12 +713,32 @@
537
713
  "computedValue": "four values, each either a number or percentage; plus a fill keyword if specified",
538
714
  "canonicalOrder": "per grammar",
539
715
  "animationType": "by computed value",
716
+ "values": [
717
+ {
718
+ "name": "<percentage [0,∞]>",
719
+ "prose": "Percentages are relative to the size of the image: the width of the image for the horizontal offsets, the height for vertical offsets.",
720
+ "type": "value",
721
+ "value": "<percentage [0,∞]>"
722
+ },
723
+ {
724
+ "name": "<number [0,∞]>",
725
+ "prose": "Numbers represent pixels in the image (if the image is a raster image) or vector coordinates (if the image is a vector image).",
726
+ "type": "value",
727
+ "value": "<number [0,∞]>"
728
+ },
729
+ {
730
+ "name": "fill",
731
+ "prose": "The fill keyword, if present, causes the middle part of the border-image to be preserved. (By default it is discarded, i.e., treated as empty.)",
732
+ "type": "value",
733
+ "value": "fill"
734
+ }
735
+ ],
540
736
  "styleDeclaration": [
541
737
  "border-image-slice",
542
738
  "borderImageSlice"
543
739
  ]
544
740
  },
545
- "border-image-width": {
741
+ {
546
742
  "name": "border-image-width",
547
743
  "value": "[ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}",
548
744
  "initial": "1",
@@ -552,12 +748,32 @@
552
748
  "computedValue": "four values, each either a number, the keyword auto, or a computed <length-percentage> value",
553
749
  "canonicalOrder": "per grammar",
554
750
  "animationType": "by computed value",
751
+ "values": [
752
+ {
753
+ "name": "<length-percentage [0,∞]>",
754
+ "prose": "Percentages refer to the size of the border image area: the width of the area for horizontal offsets, the height for vertical offsets.",
755
+ "type": "value",
756
+ "value": "<length-percentage [0,∞]>"
757
+ },
758
+ {
759
+ "name": "<number [0,∞]>",
760
+ "prose": "Numbers represent multiples of the corresponding computed border-width.",
761
+ "type": "value",
762
+ "value": "<number [0,∞]>"
763
+ },
764
+ {
765
+ "name": "auto",
766
+ "prose": "If auto is specified then the border image width is the natural width or height (whichever is applicable) of the corresponding image slice (see border-image-slice). If the image does not have the required natural dimension then the corresponding computed border-width is used instead.",
767
+ "type": "value",
768
+ "value": "auto"
769
+ }
770
+ ],
555
771
  "styleDeclaration": [
556
772
  "border-image-width",
557
773
  "borderImageWidth"
558
774
  ]
559
775
  },
560
- "border-image-outset": {
776
+ {
561
777
  "name": "border-image-outset",
562
778
  "value": "[ <length [0,∞]> | <number [0,∞]> ]{1,4}",
563
779
  "initial": "0",
@@ -572,7 +788,7 @@
572
788
  "borderImageOutset"
573
789
  ]
574
790
  },
575
- "border-image-repeat": {
791
+ {
576
792
  "name": "border-image-repeat",
577
793
  "value": "[ stretch | repeat | round | space ]{1,2}",
578
794
  "initial": "stretch",
@@ -582,12 +798,38 @@
582
798
  "computedValue": "two keywords, one per axis",
583
799
  "canonicalOrder": "per grammar",
584
800
  "animationType": "discrete",
801
+ "values": [
802
+ {
803
+ "name": "stretch",
804
+ "prose": "The image is stretched to fill the area.",
805
+ "type": "value",
806
+ "value": "stretch"
807
+ },
808
+ {
809
+ "name": "repeat",
810
+ "prose": "The image is tiled (repeated) to fill the area.",
811
+ "type": "value",
812
+ "value": "repeat"
813
+ },
814
+ {
815
+ "name": "round",
816
+ "prose": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.",
817
+ "type": "value",
818
+ "value": "round"
819
+ },
820
+ {
821
+ "name": "space",
822
+ "prose": "The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.",
823
+ "type": "value",
824
+ "value": "space"
825
+ }
826
+ ],
585
827
  "styleDeclaration": [
586
828
  "border-image-repeat",
587
829
  "borderImageRepeat"
588
830
  ]
589
831
  },
590
- "border-image": {
832
+ {
591
833
  "name": "border-image",
592
834
  "value": "<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>",
593
835
  "initial": "See individual properties",
@@ -602,7 +844,7 @@
602
844
  "borderImage"
603
845
  ]
604
846
  },
605
- "box-shadow": {
847
+ {
606
848
  "name": "box-shadow",
607
849
  "value": "none | <shadow>#",
608
850
  "initial": "none",
@@ -612,46 +854,171 @@
612
854
  "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",
613
855
  "canonicalOrder": "per grammar",
614
856
  "animationType": "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",
857
+ "values": [
858
+ {
859
+ "name": "none",
860
+ "prose": "The box-shadow property attaches one or more drop-shadows to the box. The property accepts either the none value, which indicates no shadows, or a comma-separated list of shadows, ordered front to back.",
861
+ "type": "value",
862
+ "value": "none"
863
+ },
864
+ {
865
+ "name": "<color>",
866
+ "prose": "Specifies the color of the shadow. If the color is absent, it defaults to currentColor.",
867
+ "type": "value",
868
+ "value": "<color>"
869
+ },
870
+ {
871
+ "name": "inset",
872
+ "prose": "If present, the inset keyword changes the drop shadow from an outer box-shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner box-shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it).",
873
+ "type": "value",
874
+ "value": "inset"
875
+ }
876
+ ],
615
877
  "styleDeclaration": [
616
878
  "box-shadow",
617
879
  "boxShadow"
618
880
  ]
619
881
  }
620
- },
621
- "atrules": {},
622
- "valuespaces": {
623
- "<bg-image>": {
882
+ ],
883
+ "atrules": [],
884
+ "selectors": [],
885
+ "values": [
886
+ {
887
+ "name": "<bg-image>",
888
+ "type": "type",
624
889
  "value": "<image> | none"
625
890
  },
626
- "<repeat-style>": {
891
+ {
892
+ "name": "<repeat-style>",
893
+ "type": "type",
627
894
  "value": "repeat-x | repeat-y | [repeat | space | round | no-repeat]{1,2}"
628
895
  },
629
- "<attachment>": {
896
+ {
897
+ "name": "<attachment>",
898
+ "type": "type",
630
899
  "value": "scroll | fixed | local"
631
900
  },
632
- "<bg-position>": {
901
+ {
902
+ "name": "<bg-position>",
903
+ "type": "type",
633
904
  "value": "[ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ center | [ left | right ] <length-percentage>? ] && [ center | [ top | bottom ] <length-percentage>? ]"
634
905
  },
635
- "<box>": {
906
+ {
907
+ "name": "<box>",
908
+ "type": "type",
636
909
  "value": "border-box | padding-box | content-box"
637
910
  },
638
- "<bg-size>": {
911
+ {
912
+ "name": "<bg-size>",
913
+ "type": "type",
639
914
  "value": "[ <length-percentage [0,∞]> | auto ]{1,2} | cover | contain"
640
915
  },
641
- "<bg-layer>": {
916
+ {
917
+ "name": "<bg-layer>",
918
+ "type": "type",
642
919
  "value": "<bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box>"
643
920
  },
644
- "<final-bg-layer>": {
921
+ {
922
+ "name": "<final-bg-layer>",
923
+ "type": "type",
645
924
  "value": "<'background-color'> || <bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box>"
646
925
  },
647
- "<line-style>": {
648
- "value": "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset"
926
+ {
927
+ "name": "<line-style>",
928
+ "type": "type",
929
+ "value": "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset",
930
+ "values": [
931
+ {
932
+ "name": "none",
933
+ "prose": "No border. Color and width are ignored (i.e., the border has width 0). Note this means that the initial value of border-image-width will also resolve to zero.",
934
+ "type": "value",
935
+ "value": "none"
936
+ },
937
+ {
938
+ "name": "hidden",
939
+ "prose": "Same as none, but has different behavior in the border conflict resolution rules for border-collapsed tables [CSS2].",
940
+ "type": "value",
941
+ "value": "hidden"
942
+ },
943
+ {
944
+ "name": "dotted",
945
+ "prose": "A series of round dots.",
946
+ "type": "value",
947
+ "value": "dotted"
948
+ },
949
+ {
950
+ "name": "dashed",
951
+ "prose": "A series of square-ended dashes.",
952
+ "type": "value",
953
+ "value": "dashed"
954
+ },
955
+ {
956
+ "name": "solid",
957
+ "prose": "A single line segment.",
958
+ "type": "value",
959
+ "value": "solid"
960
+ },
961
+ {
962
+ "name": "double",
963
+ "prose": "Two parallel solid lines with some space between them. (The thickness of the lines is not specified, but the sum of the lines and the space must equal border-width.)",
964
+ "type": "value",
965
+ "value": "double"
966
+ },
967
+ {
968
+ "name": "groove",
969
+ "prose": "Looks as if it were carved in the canvas. (This is typically achieved by creating a “shadow” from two colors that are slightly lighter and darker than the border-color.)",
970
+ "type": "value",
971
+ "value": "groove"
972
+ },
973
+ {
974
+ "name": "ridge",
975
+ "prose": "Looks as if it were coming out of the canvas.",
976
+ "type": "value",
977
+ "value": "ridge"
978
+ },
979
+ {
980
+ "name": "inset",
981
+ "prose": "Looks as if the content on the inside of the border is sunken into the canvas. Treated as ridge in the collapsing border model. [CSS2]",
982
+ "type": "value",
983
+ "value": "inset"
984
+ },
985
+ {
986
+ "name": "outset",
987
+ "prose": "Looks as if the content on the inside of the border is coming out of the canvas. Treated as groove in the collapsing border model. [CSS2]",
988
+ "type": "value",
989
+ "value": "outset"
990
+ }
991
+ ]
649
992
  },
650
- "<line-width>": {
651
- "value": "<length [0,∞]> | thin | medium | thick"
993
+ {
994
+ "name": "<line-width>",
995
+ "type": "type",
996
+ "value": "<length [0,∞]> | thin | medium | thick",
997
+ "values": [
998
+ {
999
+ "name": "thin",
1000
+ "prose": "Negative values are invalid. The thin, medium, and thick keywords are equivalent to 1px, 3px, and 5px, respectively.",
1001
+ "type": "value",
1002
+ "value": "thin"
1003
+ },
1004
+ {
1005
+ "name": "medium",
1006
+ "prose": "Negative values are invalid. The thin, medium, and thick keywords are equivalent to 1px, 3px, and 5px, respectively.",
1007
+ "type": "value",
1008
+ "value": "medium"
1009
+ },
1010
+ {
1011
+ "name": "thick",
1012
+ "prose": "Negative values are invalid. The thin, medium, and thick keywords are equivalent to 1px, 3px, and 5px, respectively.",
1013
+ "type": "value",
1014
+ "value": "thick"
1015
+ }
1016
+ ]
652
1017
  },
653
- "<shadow>": {
1018
+ {
1019
+ "name": "<shadow>",
1020
+ "type": "type",
654
1021
  "value": "<color>? && [<length>{2} <length [0,∞]>? <length>?] && inset?"
655
1022
  }
656
- }
1023
+ ]
657
1024
  }