properties.schema.json 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. {
  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. }