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