| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
 | | { |  |   "definitions": { |  |     "propertyList": { |  |       "type": "array", |  |       "minItems": 1, |  |       "uniqueItems": true, |  |       "items": { |  |         "type": "string", |  |         "property-reference": { |  |           "comment": "property-reference is an extension to the JSON schema validator. Here it jumps to the root level of the hierarchy and tests if a value is an existing key there (i.e a defined property). See test/validate-schema.js for implementation details.", |  |           "$data": "/" |  |         } |  |       } |  |     }, |  |     "animationType": { |  |       "enum": [ |  |         "angleBasicShapeOrPath", |  |         "angleOrBasicShapeOrPath", |  |         "basicShapeOtherwiseNo", |  |         "byComputedValueType", |  |         "color", |  |         "discrete", |  |         "eachOfShorthandPropertiesExceptUnicodeBiDiAndDirection", |  |         "filterList", |  |         "fontStretch", |  |         "fontWeight", |  |         "integer", |  |         "length", |  |         "lpc", |  |         "numberOrLength", |  |         "number", |  |         "position", |  |         "rectangle", |  |         "repeatableListOfSimpleListOfLpc", |  |         "shadowList", |  |         "simpleListOfLpc", |  |         "simpleListOfLpcDifferenceLpc", |  |         "transform", |  |         "visibility" |  |       ] |  |     }, |  |     "percentages": { |  |       "enum": [ |  |         "blockSizeOfContainingBlock", |  |         "dependsOnLayoutModel", |  |         "inlineSizeOfContainingBlock", |  |         "lengthsAsPercentages", |  |         "logicalHeightOfContainingBlock", |  |         "logicalWidthOfContainingBlock", |  |         "maxZoomFactor", |  |         "minZoomFactor", |  |         "no", |  |         "referToBorderBox", |  |         "referToContainingBlockHeight", |  |         "referToDimensionOfBorderBox", |  |         "referToDimensionOfContentArea", |  |         "referToElementFontSize", |  |         "referToFlexContainersInnerMainSize", |  |         "referToHeightOfBackgroundPositioningAreaMinusBackgroundImageHeight", |  |         "referToLineBoxWidth", |  |         "referToLineHeight", |  |         "referToParentElementsFontSize", |  |         "referToSizeOfBackgroundPositioningAreaMinusBackgroundImageSize", |  |         "referToSizeOfBorderImage", |  |         "referToSizeOfBoundingBox", |  |         "referToSizeOfContainingBlock", |  |         "referToSizeOfElement", |  |         "referToSizeOfFont", |  |         "referToSizeOfMaskBorderImage", |  |         "referToSizeOfMaskPaintingArea", |  |         "referToTotalPathLength", |  |         "referToWidthAndHeightOfElement", |  |         "referToWidthOfAffectedGlyph", |  |         "referToWidthOfBackgroundPositioningAreaMinusBackgroundImageHeight", |  |         "referToWidthOfContainingBlock", |  |         "referToWidthOrHeightOfBorderImageArea", |  |         "referToReferenceBoxWhenSpecifiedOtherwiseBorderBox", |  |         "regardingHeightOfGeneratedBoxContainingBlockPercentages0", |  |         "regardingHeightOfGeneratedBoxContainingBlockPercentagesNone", |  |         "regardingHeightOfGeneratedBoxContainingBlockPercentagesRelativeToContainingBlock", |  |         "relativeToBackgroundPositioningArea", |  |         "relativeToMaskBorderImageArea", |  |         "relativeToScrollContainerPaddingBoxAxis", |  |         "relativeToTheScrollContainersScrollport", |  |         "relativeToWidthAndHeight" |  |       ] |  |     }, |  |     "computed": { |  |       "enum": [ |  |         "absoluteLength", |  |         "absoluteLength0ForNone", |  |         "absoluteLength0IfColumnRuleStyleNoneOrHidden", |  |         "absoluteLengthOr0IfBorderBottomStyleNoneOrHidden", |  |         "absoluteLengthOr0IfBorderLeftStyleNoneOrHidden", |  |         "absoluteLengthOr0IfBorderRightStyleNoneOrHidden", |  |         "absoluteLengthOr0IfBorderTopStyleNoneOrHidden", |  |         "absoluteLengthOrAsSpecified", |  |         "absoluteLengthOrKeyword", |  |         "absoluteLengthOrNone", |  |         "absoluteLengthOrNormal", |  |         "absoluteLengthOrPercentage", |  |         "absoluteLengthsSpecifiedColorAsSpecified", |  |         "absoluteLengthZeroIfBorderStyleNoneOrHidden", |  |         "absoluteLengthZeroOrLarger", |  |         "absoluteURIOrNone", |  |         "angleRoundedToNextQuarter", |  |         "asAutoOrColor", |  |         "asDefinedForBasicShapeWithAbsoluteURIOtherwiseAsSpecified", |  |         "asLength", |  |         "asSpecified", |  |         "asSpecifiedAppliesToEachProperty", |  |         "asSpecifiedExceptMatchParent", |  |         "asSpecifiedExceptPositionedFloatingAndRootElementsKeywordMaybeDifferent", |  |         "asSpecifiedRelativeToAbsoluteLengths", |  |         "asSpecifiedURLsAbsolute", |  |         "asSpecifiedWithExceptionOfResolution", |  |         "asSpecifiedWithLengthsAbsoluteAndNormalComputingToZeroExceptMultiColumn", |  |         "asSpecifiedWithVarsSubstituted", |  |         "autoOnAbsolutelyPositionedElementsValueOfAlignItemsOnParent", |  |         "autoOrRectangle", |  |         "colorPlusThreeAbsoluteLengths", |  |         "computedColor", |  |         "consistsOfTwoDimensionKeywords", |  |         "consistsOfTwoKeywordsForOriginAndOffsets", |  |         "forLengthAbsoluteValueOtherwisePercentage", |  |         "invertForTranslucentColorRGBAOtherwiseRGB", |  |         "keywordOrNumericalValueBolderLighterTransformedToRealValue", |  |         "keywordPlusIntegerIfDigits", |  |         "lengthAbsolutePercentageAsSpecifiedOtherwiseAuto", |  |         "listEachItemConsistingOfAbsoluteLengthPercentageAndOrigin", |  |         "listEachItemHasTwoKeywordsOnePerDimension", |  |         "listEachItemTwoKeywordsOriginOffsets", |  |         "noneOrImageWithAbsoluteURI", |  |         "normalizedAngle", |  |         "normalOnElementsForPseudosNoneAbsoluteURIStringOrAsSpecified", |  |         "oneToFourPercentagesOrAbsoluteLengthsPlusFill", |  |         "optimumMinAndMaxValueOfAbsoluteLengthPercentageOrNormal", |  |         "optimumValueOfAbsoluteLengthOrNormal", |  |         "percentageAsSpecifiedAbsoluteLengthOrNone", |  |         "percentageAsSpecifiedOrAbsoluteLength", |  |         "percentageAutoOrAbsoluteLength", |  |         "percentageOrAbsoluteLengthPlusKeywords", |  |         "sameAsBoxOffsets", |  |         "sameAsMaxWidthAndMaxHeight", |  |         "sameAsMinWidthAndMinHeight", |  |         "sameAsWidthAndHeight", |  |         "specifiedIntegerOrAbsoluteLength", |  |         "specifiedValueClipped0To1", |  |         "specifiedValueNumberClipped0To1", |  |         "translucentValuesRGBAOtherwiseRGB", |  |         "twoAbsoluteLengthOrPercentages", |  |         "twoAbsoluteLengths" |  |       ] |  |     }, |  |     "appliesto": { |  |       "enum": [ |  |         "absolutelyPositionedElements", |  |         "allElements", |  |         "allElementsAcceptingWidthOrHeight", |  |         "allElementsAndPseudos", |  |         "allElementsButNonReplacedAndTableColumns", |  |         "allElementsButNonReplacedAndTableRows", |  |         "allElementsCreatingNativeWindows", |  |         "allElementsExceptGeneratedContentOrPseudoElements", |  |         "allElementsExceptInternalTableDisplayTypes", |  |         "allElementsExceptNonReplacedInlineElementsTableRowsColumnsRowColumnGroups", |  |         "allElementsExceptTableDisplayTypes", |  |         "allElementsExceptTableElementsWhenCollapse", |  |         "allElementsExceptTableRowColumnGroupsTableRowsColumns", |  |         "allElementsExceptTableRowGroupsRowsColumnGroupsAndColumns", |  |         "allElementsNoEffectIfDisplayNone", |  |         "allElementsSomeValuesNoEffectOnNonInlineElements", |  |         "allElementsSVGContainerElements", |  |         "allElementsSVGContainerGraphicsAndGraphicsReferencingElements", |  |         "allElementsThatCanReferenceImages", |  |         "allElementsUAsNotRequiredWhenCollapse", |  |         "anyElementEffectOnProgressAndMeter", |  |         "beforeAndAfterPseudos", |  |         "blockContainerElements", |  |         "blockContainers", |  |         "blockContainersExceptMultiColumnContainers", |  |         "blockContainersExceptTableWrappers", |  |         "blockContainersFlexContainersGridContainers", |  |         "blockElementsInNormalFlow", |  |         "blockLevelElements", |  |         "blockLevelBoxesAndAbsolutelyPositionedBoxesAndGridItems", |  |         "boxElements", |  |         "childrenOfBoxElements", |  |         "directChildrenOfElementsWithDisplayMozBoxMozInlineBox", |  |         "elementsWithDisplayBoxOrInlineBox", |  |         "elementsWithDisplayMarker", |  |         "elementsWithDisplayMozBoxMozInlineBox", |  |         "elementsWithOverflowNotVisibleAndReplacedElements", |  |         "exclusionElements", |  |         "firstLetterPseudoElementsAndInlineLevelFirstChildren", |  |         "flexContainers", |  |         "flexItemsAndAbsolutelyPositionedFlexContainerChildren", |  |         "flexItemsAndInFlowPseudos", |  |         "flexItemsGridItemsAndAbsolutelyPositionedBoxes", |  |         "floats", |  |         "gridContainers", |  |         "gridItemsAndBoxesWithinGridContainer", |  |         "iframeElements", |  |         "images", |  |         "inFlowBlockLevelElements", |  |         "inFlowChildrenOfBoxElements", |  |         "inlineLevelAndTableCellElements", |  |         "listItems", |  |         "maskElements", |  |         "multicolElements", |  |         "multiColumnElementsFlexContainersGridContainers", |  |         "multilineFlexContainers", |  |         "nonReplacedBlockAndInlineBlockElements", |  |         "nonReplacedBlockElements", |  |         "nonReplacedElements", |  |         "nonReplacedInlineElements", |  |         "positionedElements", |  |         "replacedElements", |  |         "rubyAnnotationsContainers", |  |         "rubyBasesAnnotationsBaseAnnotationContainers", |  |         "sameAsMargin", |  |         "sameAsWidthAndHeight", |  |         "scrollContainers", |  |         "scrollingBoxes", |  |         "tableCaptionElements", |  |         "tableCellElements", |  |         "tableElements", |  |         "textElements", |  |         "textFields", |  |         "transformableElements", |  |         "xulImageElements" |  |       ] |  |     }, |  |     "alsoApplyTo": { |  |       "type": "array", |  |       "minItems": 1, |  |       "uniqueItems": true, |  |       "items": { |  |         "enum": [ |  |           "::first-letter", |  |           "::first-line", |  |           "::placeholder" |  |         ] |  |       } |  |     }, |  |     "order": { |  |       "enum": [ |  |         "canonicalOrder", |  |         "lengthOrPercentageBeforeKeywordIfBothPresent", |  |         "lengthOrPercentageBeforeKeywords", |  |         "oneOrTwoValuesLengthAbsoluteKeywordsPercentages", |  |         "orderOfAppearance", |  |         "percentagesOrLengthsFollowedByFill", |  |         "perGrammar", |  |         "uniqueOrder" |  |       ] |  |     }, |  |     "status": { |  |       "enum": [ |  |         "standard", |  |         "nonstandard", |  |         "experimental", |  |         "obsolete" |  |       ] |  |     }, |  |     "mdn_url": { |  |       "type": "string", |  |       "pattern": "^https://developer.mozilla.org/docs/" |  |     } |  |   }, |  |   "type": "object", |  |   "additionalProperties": { |  |     "type": "object", |  |     "additionalProperties": false, |  |     "required": [ |  |       "syntax", |  |       "media", |  |       "inherited", |  |       "animationType", |  |       "percentages", |  |       "groups", |  |       "initial", |  |       "appliesto", |  |       "computed", |  |       "order", |  |       "status" |  |     ], |  |     "properties": { |  |       "syntax": { |  |         "type": "string" |  |       }, |  |       "media": { |  |         "oneOf": [ |  |           { |  |             "type": "string", |  |             "enum": [ |  |               "all", |  |               "aural", |  |               "continuous", |  |               "interactive", |  |               "none", |  |               "noPracticalMedia", |  |               "paged", |  |               "visual", |  |               "visualInContinuousMediaNoEffectInOverflowColumns" |  |             ] |  |           }, |  |           { |  |             "type": "array", |  |             "minItems": 2, |  |             "uniqueItems": true, |  |             "items": { |  |               "type": "string", |  |               "enum": [ |  |                 "interactive", |  |                 "paged", |  |                 "visual" |  |               ] |  |             } |  |           } |  |         ] |  |       }, |  |       "inherited": { |  |         "type": "boolean" |  |       }, |  |       "animationType": { |  |         "oneOf": [ |  |           { |  |             "$ref": "#/definitions/animationType" |  |           }, |  |           { |  |             "$ref": "#/definitions/propertyList" |  |           } |  |         ] |  |       }, |  |       "percentages": { |  |         "oneOf": [ |  |           { |  |             "$ref": "#/definitions/percentages" |  |           }, |  |           { |  |             "$ref": "#/definitions/propertyList" |  |           } |  |         ] |  |       }, |  |       "groups": { |  |         "type": "array", |  |         "minitems": 1, |  |         "uniqueItems": true, |  |         "items": { |  |           "$ref": "definitions.json#/groupList" |  |         } |  |       }, |  |       "initial": { |  |         "oneOf": [ |  |           { |  |             "type": "string" |  |           }, |  |           { |  |             "$ref": "#/definitions/propertyList" |  |           } |  |         ] |  |       }, |  |       "appliesto": { |  |         "$ref": "#/definitions/appliesto" |  |       }, |  |       "alsoAppliesTo": { |  |         "$ref": "#/definitions/alsoApplyTo" |  |       }, |  |       "computed": { |  |         "oneOf": [ |  |           { |  |             "$ref": "#/definitions/computed" |  |           }, |  |           { |  |             "$ref": "#/definitions/propertyList" |  |           } |  |         ] |  |       }, |  |       "order": { |  |         "$ref": "#/definitions/order" |  |       }, |  |       "stacking": { |  |         "type": "boolean" |  |       }, |  |       "status": { |  |         "$ref": "#/definitions/status" |  |       }, |  |       "mdn_url": { |  |         "$ref": "#/definitions/mdn_url" |  |       } |  |     } |  |   } |  | } | 
 |