Implement feature flag for CSS Typed OM
[WebKit-https.git] / Source / WebCore / css / CSSProperties.json
1 {
2     "instructions": [
3         "CSS Properties",
4         "",
5         "Some properties are used internally, but are not part of CSS. They are used to get",
6         "HTML4 compatibility in the rendering engine.",
7         "",
8         "Microsoft extensions are documented here:",
9         "http://msdn.microsoft.com/workshop/author/css/reference/attributes.asp",
10         "",
11         "1. Possible Keys",
12         "",
13         "Keys that control CSS behavior:",
14         "",
15         "* inherited:",
16         "Whether the property is inherited.",
17         "",
18         "* animatable:",
19         "Indicates that this CSS property is an animation / transition property.",
20         "It must have corresponding methods on the Animation class.",
21         "",
22         "Keys that control code generation:",
23         "",
24         "* initial:",
25         "Overrides the method name on RenderStyle to get the initial value for",
26         "the property. By default, \"initial\" + PropertyId is used (e.g.",
27         "initialBorderCollapse()).",
28         "",
29         "* getter:",
30         "Overrides the method name on RenderStyle to get the current value for",
31         "the property. By default, the PropertyId with first letter lowercased",
32         "is used (e.g. borderCollapse()).",
33         "",
34         "* setter:",
35         "Overrides the method name on RenderStyle to set the current value for",
36         "the property. By default, \"set\" + PropertyId is used (e.g.",
37         "setBorderCollapse()).",
38         "",
39         "* name-for-methods:",
40         "Overrides the getter / setter / initial method names on RenderStyle.",
41         "For example, '\"name-for-methods\": \"OverflowWrap\"' will use",
42         "\"overflowWrap() / setOverflowWrap() / initialOverflowWrap()\".",
43         "",
44         "* converter:",
45         "The name of the converter helper function in css/StyleBuilderConverter.h",
46         "to use. The converter helper function takes ",
47         "If converting the input CSSValue into the setter method argument type",
48         "is not trivial (i.e. the CSSPrimitiveValue cannot be implicitly converted",
49         "to the expected type), then you can indicate that a converter helper",
50         "function in css/StyleBuilderConverter.h should be used.",
51         "",
52         "* conditional-converter:",
53         "Similar to property converter, but the converter function returns a",
54         "WTF::Optional<> to indicate if the property setter should be called",
55         "or not.",
56         "",
57         "* custom:",
58         "A string that is \"All\", \"Initial\", \"Inherit\", or \"Value\" or some combination",
59         "of the latter three separated by '|' (e.g. \"Inherit|Value\"). These options",
60         "are described as follows:",
61         "",
62         "All - the CSS property requires special handling to set its initial value,",
63         "inherit value, and its value. Prefer this option over listing the individual",
64         "options.",
65         "",
66         "Initial - the CSS property requires special handling to set its initial value.",
67         "",
68         "Inherit - the CSS property requires special handling to set its inherit value.",
69         "",
70         "Value - the CSS property requires special handling to set its value, and a",
71         "regular converter helper cannot be used.",
72         "",
73         "The custom code for the property should be located in css/StyleBuilderCustom.h",
74         "and named applyValue[CSSPropertyName]().",
75         "",
76         "* svg:",
77         "Indicates that this is an SVG CSS property and that the corresponding",
78         "methods are on SVGRenderStyle instead of RenderStyle.",
79         "",
80         "* auto-functions:",
81         "Indicates that this CSS property requires handling of \"auto\" and has",
82         "corresponding hasAutoXXX() / setHasAutoXXX() methods on RenderStyle.",
83         "",
84         "* visited-link-color-support:",
85         "Indicates that this CSS property is a color property with a",
86         "\"setVisitedLinkXXX()\" setter on RenderStyle to be called when",
87         "StyleResolver::applyPropertyToVisitedLinkStyle() return true.",
88         "The regular setter on RenderStyle will only be called if",
89         "StyleResolver::applyPropertyToRegularStyle() returns true.",
90         "",
91         "* no-default-color:",
92         "Should only be used with \"VisitedLinkColorSupport\". It indicates that when",
93         "setting the inherited value, it will not fallback to using the parent's",
94         "\"color\" property if the inherited color is invalid.",
95         "",
96         "* fone-property:",
97         "Indicates that this CSS property is font-related. It must have corresponding",
98         "methods on the FontDescription class.",
99         "",
100         "* fill-layer-property:",
101         "Indicates that this CSS property is a FillLayer property. It must have",
102         "corresponding methods on the FillLayer class.",
103         "",
104         "* skip-builder:",
105         "Ignore this property in the StyleBuilder.",
106         "",
107         "* longhands:",
108         "Indicated the array longhand property names associated with this shorthand",
109         "property. Shorthand properties should not use the StyleBuilder. An",
110         "ASSERT_NOT_REACHED() will be generated for this property in the StyleBuilder.",
111         "property1, property2, ... are the longhands for this shorthand property. A",
112         "corresponding \"StylePropertyShorthand propertyIdShorthand()\" function will be",
113         "generated in StylePropertyShorthandFunctions.h header.",
114         "",
115         "* high-priority:",
116         "Whether the property needs to be applied before non-high-priority properties",
117         "in CSS cascading order.",
118         "",
119         "* aliases:",
120         "An array of the alternative names for this property.",
121         "",
122         "* enable-if:",
123         "Indicates that code should only be generated for this property/value if the",
124         "specified macro define is enabled. Prefix the macro define with '!' to",
125         "generate code when the macro define is not enabled.",
126         "",
127         "2. Lesser known capabilities of this file format",
128         "",
129         "Conditional CSS keyword value:",
130         "",
131         "Typically the value of key \"values\" is an array of strings that represent the",
132         "CSS keyword values that are recognized by a CSS property. This array may also",
133         "contain objects of the form:",
134         "",
135         "    {",
136         "        \"value\": \"awesome\",",
137         "        \"enable-if\": \"ENABLE_AWESOME_FEATURE\"",
138         "    }",
139         "",
140         "The key \"value\" is the name of the conditional keyword and key \"enable-if\"",
141         "describes the code generation criterion. See the documentation for \"enable-if\"",
142         "above for more details.",
143         "",
144         "Conditonal CSS property definition:",
145         "",
146         "A CSS property can have more than one definition so long as the key \"enable-if\"",
147         "differs in each definition. For example, ",
148         "",
149         "    \"awesome-property\": [",
150         "        {",
151         "            \"inherited\": true,",
152         "            ...,",
153         "            \"codegen-properties\": {",
154         "                ...",
155         "                \"enable-if\": \"ENABLE_AWESOME_FEATURE\"",
156         "            }",
157         "        },",
158         "        {",
159         "            \"inherited\": false,",
160         "            ...,",
161         "            \"codegen-properties\": {",
162         "                ...",
163         "                \"enable-if\": \"!ENABLE_AWESOME_FEATURE\"",
164         "            }",
165         "        },",
166         "        ...",
167         "    ],",
168         "",
169         "The first definition in parse order whose \"enable-if\" criterion evaluates",
170         "to true is chosen for code generation."
171     ],
172     "properties": {
173         "caret-color" : {
174             "inherited": true,
175             "codegen-properties": {
176                 "initial": "invalidColor",
177                 "visited-link-color-support": true
178             },
179             "specification": {
180                 "category": "css-ui",
181                 "url": "https://drafts.csswg.org/css-ui-3/#propdef-caret-color"
182             }
183         },
184         "color": {
185             "inherited": true,
186             "codegen-properties": {
187                 "visited-link-color-support": true,
188                 "no-default-color": true,
189                 "high-priority": true
190             },
191             "status": {
192                 "comment": "All the values from CSS Color Level 3 are supported, as well as the 8- and 4-digit forms of hex color, and the color() function."
193             },
194             "specification": {
195                 "category": "css-color",
196                 "url": "https://www.w3.org/TR/css-color-4/#the-color-property"
197             }
198         },
199         "direction": {
200             "inherited": true,
201             "values": [
202                 "ltr",
203                 "rtl"
204             ],
205             "codegen-properties": {
206                 "custom": "Value",
207                 "high-priority": true
208             },
209             "specification": {
210                 "category": "css-writing-modes",
211                 "url": "https://www.w3.org/TR/css-writing-modes-3/#propdef-direction"
212             }
213         },
214         "display": {
215             "values": [
216                 "inline",
217                 "block",
218                 {
219                     "value": "flow",
220                     "status": "not implemented",
221                     "url": "https://www.w3.org/TR/css-display-3/#valdef-display-flow"
222                 },
223                 {
224                     "value": "flow-root",
225                     "status": "not implemented",
226                     "url": "https://www.w3.org/TR/css-display-3/#valdef-display-flow-root"
227                 },
228                 "list-item",
229                 {
230                     "value": "compact",
231                     "url": "https://www.w3.org/TR/REC-CSS2/visuren.html#compact"
232                 },
233                 "inline-block",
234                 {
235                     "value": "run-in",
236                     "status": "removed",
237                     "url": "https://www.w3.org/TR/css-display-3/#valdef-display-run-in",
238                     "comment": "Removed in https://trac.webkit.org/r163560"
239                 },
240                 "table",
241                 "inline-table",
242                 "table-row-group",
243                 "table-header-group",
244                 "table-footer-group",
245                 "table-row",
246                 "table-column-group",
247                 "table-column",
248                 "table-cell",
249                 "table-caption",
250                 {
251                     "value": "-webkit-box",
252                     "url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/"
253                 },
254                 {
255                     "value": "-webkit-inline-box",
256                     "url": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/"
257                 },
258                 {
259                     "value": "flex",
260                     "url": "https://www.w3.org/TR/css-flexbox-1/#valdef-display-flex"
261                 },
262                 "-webkit-flex",
263                 {
264                     "value": "inline-flex",
265                     "url": "https://www.w3.org/TR/css-flexbox-1/#valdef-display-inline-flex"
266                 },
267                 "-webkit-inline-flex",
268                 {
269                     "value": "contents",
270                     "url": "https://www.w3.org/TR/css-display-3/#valdef-display-contents"
271                 },
272                 "none",
273                 {
274                     "value": "grid",
275                     "url": "https://www.w3.org/TR/css-grid/#valdef-display-grid"
276                 },
277                 {  
278                     "value": "inline-grid",
279                     "url": "https://www.w3.org/TR/css-grid/#valdef-display-inline-grid"
280                 }
281             ],
282             "codegen-properties": {
283                 "custom": "Inherit|Value",
284                 "high-priority": true
285             },
286             "specification": {
287                 "category": "css-display",
288                 "url": "https://www.w3.org/TR/css-display-3/#the-display-properties"
289             }
290         },
291         "font-family": {
292             "inherited": true,
293             "codegen-properties": {
294                 "custom": "All",
295                 "high-priority": true
296             },
297             "specification": {
298                 "category": "css-fonts",
299                 "url": "https://www.w3.org/TR/css-fonts-3/#font-family-prop"
300             }
301         },
302         "font-size": {
303             "inherited": true,
304             "codegen-properties": {
305                 "custom": "All",
306                 "high-priority": true
307             },
308             "specification": {
309                 "category": "css-fonts",
310                 "url": "https://www.w3.org/TR/css-fonts-3/#font-size-prop"
311             }
312         },
313         "font-style": {
314             "inherited": true,
315             "values": [
316                 "normal",
317                 "italic",
318                 "oblique"
319             ],
320             "codegen-properties": {
321                 "custom": "All",
322                 "font-property": true,
323                 "high-priority": true
324             },
325             "specification": {
326                 "category": "css-fonts",
327                 "url": "https://www.w3.org/TR/css-fonts-3/#font-style-prop"
328             }
329         },
330         "font-weight": {
331             "inherited": true,
332             "codegen-properties": {
333                 "name-for-methods": "Weight",
334                 "font-property": true,
335                 "high-priority": true,
336                 "converter": "FontWeight"
337             },
338             "specification": {
339                 "category": "css-fonts",
340                 "url": "https://www.w3.org/TR/css-fonts-3/#font-weight-prop"
341             }
342         },
343         "font-stretch": {
344             "inherited": true,
345             "values": [
346                 "normal",
347                 "ultra-condensed",
348                 "extra-condensed",
349                 "condensed",
350                 "semi-condensed",
351                 "semi-expanded",
352                 "expanded",
353                 "extra-expanded",
354                 "ultra-expanded"
355             ],
356             "codegen-properties": {
357                 "name-for-methods": "Stretch",
358                 "font-property": true,
359                 "high-priority": true,
360                 "converter": "FontStretch"
361             },
362             "specification": {
363                 "category": "css-fonts",
364                 "url": "https://www.w3.org/TR/css-fonts-3/#font-stretch-prop"
365             }
366         },
367         "text-rendering": {
368             "inherited": true,
369             "values": [
370                 "auto",
371                 "optimizespeed",
372                 "optimizelegibility",
373                 "geometricprecision"
374             ],
375             "codegen-properties": {
376                 "name-for-methods": "TextRenderingMode",
377                 "font-property": true,
378                 "high-priority": true
379             },
380             "specification": {
381                 "category": "svg",
382                 "url": "https://www.w3.org/TR/SVG11/painting.html#TextRenderingProperty"
383             }
384         },
385         "font-feature-settings": {
386             "inherited": true,
387             "codegen-properties": {
388                 "name-for-methods": "FeatureSettings",
389                 "converter": "FontFeatureSettings",
390                 "custom": "Initial|Inherit",
391                 "font-property": true,
392                 "high-priority": true
393             },
394             "specification": {
395                 "category": "css-fonts",
396                 "url": "https://www.w3.org/TR/css-fonts-3/#font-rend-desc"
397             }
398         },
399         "font-variation-settings": {
400             "inherited": true,
401             "codegen-properties": {
402                 "name-for-methods": "VariationSettings",
403                 "converter": "FontVariationSettings",
404                 "custom": "Initial|Inherit",
405                 "font-property": true,
406                 "high-priority": true,
407                 "enable-if": "ENABLE_VARIATION_FONTS"
408             },
409             "specification": {
410                 "category": "css-fonts-4",
411                 "url": "https://drafts.csswg.org/css-fonts-4/#font-variation-settings-def"
412             }
413         },
414         "-webkit-font-kerning": {
415             "inherited": true,
416             "values": [
417                 "auto",
418                 "normal",
419                 "none"
420             ],
421             "codegen-properties": {
422                 "aliases": [
423                     "font-kerning"
424                 ],
425                 "name-for-methods": "Kerning",
426                 "font-property": true,
427                 "high-priority": true
428             },
429             "specification": {
430                 "category": "css-fonts",
431                 "url": "https://drafts.csswg.org/css-fonts-3/#font-kerning-prop"
432             }
433         },
434         "-webkit-font-smoothing": {
435             "inherited": true,
436             "values": [
437                 "auto",
438                 "none",
439                 "antialiased",
440                 "subpixel-antialiased"
441             ],
442             "codegen-properties": {
443                 "font-property": true,
444                 "high-priority": true
445             },
446             "status": "non-standard"
447         },
448         "font-variant-ligatures": {
449             "inherited": true,
450             "codegen-properties": {
451                 "name-for-methods": "VariantLigatures",
452                 "custom": "All",
453                 "font-property": true,
454                 "high-priority": true
455             },
456             "specification": {
457                 "category": "css-fonts",
458                 "url": "https://drafts.csswg.org/css-fonts-3/#font-variant-ligatures-prop"
459             }
460         },
461         "font-variant-position": {
462             "inherited": true,
463             "values": [
464                 "normal",
465                 "sub",
466                 "super"
467             ],
468             "codegen-properties": {
469                 "name-for-methods": "VariantPosition",
470                 "font-property": true,
471                 "high-priority": true
472             },
473             "status": {
474                 "status": "in development",
475                 "enabled-by-default": true
476             },
477             "specification": {
478                 "category": "css-fonts",
479                 "url": "https://drafts.csswg.org/css-fonts-3/#propdef-font-variant-position"
480             }
481         },
482         "font-variant-caps": {
483             "inherited": true,
484             "values": [
485                 "normal",
486                 "small-caps",
487                 "all-small-caps",
488                 "petite-caps",
489                 "all-petite-caps",
490                 "unicase",
491                 "titling-caps"
492             ],
493             "codegen-properties": {
494                 "name-for-methods": "VariantCaps",
495                 "font-property": true,
496                 "high-priority": true
497             },
498             "specification": {
499                 "category": "css-fonts",
500                 "url": "https://drafts.csswg.org/css-fonts-3/#font-variant-caps-prop"
501             }
502         },
503         "font-variant-numeric": {
504             "inherited": true,
505             "codegen-properties": {
506                 "name-for-methods": "VariantNumeric",
507                 "custom": "All",
508                 "font-property": true,
509                 "high-priority": true
510             },
511             "specification": {
512                 "category": "css-fonts",
513                 "url": "https://drafts.csswg.org/css-fonts-3/#font-variant-numeric-prop"
514             }
515         },
516         "font-variant-alternates": {
517             "inherited": true,
518             "values": [
519                 "normal",
520                 "historical-forms"
521             ],
522             "codegen-properties": {
523                 "name-for-methods": "VariantAlternates",
524                 "font-property": true,
525                 "high-priority": true
526             },
527             "specification": {
528                 "category": "css-fonts",
529                 "url": "https://drafts.csswg.org/css-fonts-3/#font-variant-alternates-prop"
530             }
531         },
532         "font-variant-east-asian": {
533             "inherited": true,
534             "codegen-properties": {
535                 "name-for-methods": "VariantEastAsian",
536                 "custom": "All",
537                 "font-property": true,
538                 "high-priority": true
539             },
540             "specification": {
541                 "category": "css-fonts",
542                 "url": "https://drafts.csswg.org/css-fonts-3/#font-variant-east-asian-prop"
543             }
544         },
545         "font-synthesis": {
546             "inherited": true,
547             "codegen-properties": {
548                 "converter": "FontSynthesis",
549                 "font-property": true,
550                 "high-priority": true
551             },
552             "specification": {
553                 "category": "css-fonts",
554                 "url": "https://drafts.csswg.org/css-fonts-3/#font-synthesis-prop"
555             }
556         },
557         "font-optical-sizing": {
558             "inherited": true,
559             "values": [
560                 "auto",
561                 "none"
562             ],
563             "codegen-properties": {
564                 "name-for-methods": "OpticalSizing",
565                 "font-property": true,
566                 "high-priority": true,
567                 "enable-if": "ENABLE_VARIATION_FONTS"
568             },
569             "specification": {
570                 "category": "css-fonts-4",
571                 "url": "https://drafts.csswg.org/css-fonts-4/#font-optical-sizing-def"
572             }
573         },
574         "font": {
575             "inherited": true,
576             "codegen-properties": {
577                 "longhands": [
578                               "font-family",
579                               "font-size",
580                               "font-style",
581                               "font-variant-caps",
582                               "font-weight",
583                               "font-stretch",
584                               "line-height"
585                               ]
586             },
587             "specification": {
588                 "category": "css-fonts",
589                 "url": "https://www.w3.org/TR/css-fonts-3/#font-prop"
590             }
591         },
592         "font-variant": {
593             "inherited": true,
594             "codegen-properties": {
595                 "longhands": [
596                               "font-variant-ligatures",
597                               "font-variant-position",
598                               "font-variant-caps",
599                               "font-variant-numeric",
600                               "font-variant-alternates",
601                               "font-variant-east-asian"
602                               ]
603             },
604             "specification": {
605                 "category": "css-fonts",
606                 "url": "https://www.w3.org/TR/css-fonts-3/#propdef-font-variant"
607             }
608         },
609         "-webkit-locale": {
610             "inherited": true,
611             "codegen-properties": {
612                 "custom": "Value",
613                 "font-property": true,
614                 "high-priority": true
615             },
616             "status": "non-standard"
617         },
618         "-webkit-text-orientation": {
619             "inherited": true,
620             "values": [
621                 "sideways",
622                 {
623                     "value": "sideways-right",
624                     "status": "deprecated"
625                 },
626                 {
627                     "value": "vertical-right",
628                     "status": "non-standard"
629                 },
630                 "mixed",
631                 "upright"
632             ],
633             "codegen-properties": {
634                 "aliases": [
635                     "-epub-text-orientation"
636                 ],
637                 "custom": "Value",
638                 "high-priority": true
639             },
640             "specification": {
641                 "category": "css-writing-modes",
642                 "url": "https://www.w3.org/TR/css-writing-modes-3/#text-orientation"
643             }
644         },
645         "-webkit-text-size-adjust": {
646             "inherited": true,
647             "codegen-properties": {
648                 "custom": "Value",
649                 "high-priority": true,
650                 "enable-if": "ENABLE_TEXT_AUTOSIZING"
651             },
652             "status": "experimental",
653             "specification": {
654                 "non-canonical-url": "https://drafts.csswg.org/css-size-adjust/#adjustment-control"
655             }
656         },
657         "writing-mode": {
658             "inherited": true,
659             "values": [
660                 {
661                     "value": "lr-tb",
662                     "status": "deprecated"
663                 },
664                 {
665                     "value": "rl-tb",
666                     "status": "deprecated"
667                 },
668                 {
669                     "value": "tb-rl",
670                     "status": "deprecated"
671                 },
672                 {
673                     "value": "lr",
674                     "status": "deprecated"
675                 },
676                 {
677                     "value": "rl",
678                     "status": "deprecated"
679                 },
680                 {
681                     "value": "tb",
682                     "status": "deprecated"
683                 },
684                 {
685                     "value": "horizontal-tb",
686                     "status": "unimplemented"
687                 },
688                 {
689                     "value": "vertical-rl",
690                     "status": "unimplemented"
691                 },
692                 {
693                     "value": "vertical-lr",
694                     "status": "unimplemented"
695                 },
696                 {
697                     "value": "sideways-rl",
698                     "status": "unimplemented"
699                 },
700                 {
701                     "value": "sideways-lr",
702                     "status": "unimplemented"
703                 }
704             ],
705             "codegen-properties": {
706                 "aliases": [
707                     "-webkit-writing-mode",
708                     "-epub-writing-mode"
709                 ],
710                 "custom": "Value",
711                 "high-priority": true
712             },
713             "specification": {
714                 "category": "css-writing-modes",
715                 "non-canonical-url": "https://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode"
716             }
717         },
718         "-webkit-text-zoom": {
719             "inherited": true,
720             "values": [
721                 "normal",
722                 "reset"
723             ],
724             "codegen-properties": {
725                 "custom": "Value",
726                 "high-priority": true
727             },
728             "status": "non-standard",
729             "specification": {
730                 "description": "Used to reset the text zoom level.",
731                 "comment": "Used to reset the size of text affected by the zoom property."
732             }
733         },
734         "zoom": {
735             "codegen-properties": {
736                 "custom": "All",
737                 "high-priority": true
738             },
739             "status": "non-standard",
740             "specification": {
741                 "url": "https://msdn.microsoft.com/en-us/library/ms531189(v=vs.85).aspx"
742             }
743         },
744         "-webkit-ruby-position": {
745             "inherited": true,
746             "values": [
747                 {
748                     "value": "before",
749                     "status": "deprecated"
750                 },
751                 {
752                     "value": "after",
753                     "status": "deprecated"
754                 },
755                 "inter-character",
756                 {
757                     "value": "over",
758                     "status": "unimplemented"
759                 },
760                 {
761                     "value": "under",
762                     "status": "unimplemented"
763                 }
764             ],
765             "codegen-properties": {
766                 "comment": "This is the highest priority property and 'is resolved before all other properties, to ensure that its value can be checked when determining a smart default font size', (<https://trac.webkit.org/browser/trunk/Source/WebCore/ChangeLog?rev=172861>)."
767             },
768             "specification": {
769                 "category": "css-ruby",
770                 "url": "https://www.w3.org/TR/css-ruby-1/#rubypos"
771             }
772         },
773         "alignment-baseline": {
774             "values": [
775                 "auto",
776                 "baseline",
777                 "middle",
778                 "before-edge",
779                 "after-edge",
780                 "central",
781                 "text-before-edge",
782                 "text-after-edge",
783                 "ideographic",
784                 "hanging",
785                 "mathematical"
786             ],
787             "codegen-properties": {
788                 "svg": true
789             },
790             "specification": {
791                 "category": "svg",
792                 "url": "https://www.w3.org/TR/SVG11/text.html#AlignmentBaselineProperty"
793             }
794         },
795         "all": {
796             "codegen-properties": {
797                 "longhands": [
798                     "all"
799                 ]
800             },
801             "specification": {
802                 "category": "css-cascade",
803                 "url": "https://www.w3.org/TR/css-cascade-3/#all-shorthand"
804             }
805         },
806         "animation": {
807             "codegen-properties": {
808                 "aliases": [
809                     "-webkit-animation"
810                 ],
811                 "longhands": [
812                     "animation-name",
813                     "animation-duration",
814                     "animation-timing-function",
815                     "animation-delay",
816                     "animation-iteration-count",
817                     "animation-direction",
818                     "animation-fill-mode",
819                     "animation-play-state"
820                 ]
821             },
822             "specification": {
823                 "category": "css-animations",
824                 "url": "https://www.w3.org/TR/css3-animations/#animation-shorthand-property",
825                 "keywords": ["animation"],
826                 "description": "Used to animate elements"
827             }
828         },
829         "animation-delay": {
830             "animatable": true,
831             "codegen-properties": {
832                 "aliases": [
833                     "-webkit-animation-delay"
834                 ],
835                 "name-for-methods": "Delay"
836             },
837             "specification": {
838                 "category": "css-animations",
839                 "url": "https://www.w3.org/TR/css3-animations/#animation-delay-property"
840             }
841         },
842         "animation-direction": {
843             "values": [
844                 "normal",
845                 "reverse",
846                 "alternate",
847                 "alternate-reverse"
848             ],
849             "animatable": true,
850             "codegen-properties": {
851                 "aliases": [
852                     "-webkit-animation-direction"
853                 ],
854                 "name-for-methods": "Direction"
855             },
856             "specification": {
857                 "category": "css-animations",
858                 "url": "https://www.w3.org/TR/css3-animations/#animation-direction-property"
859             }
860         },
861         "animation-duration": {
862             "animatable": true,
863             "codegen-properties": {
864                 "aliases": [
865                     "-webkit-animation-duration"
866                 ],
867                 "name-for-methods": "Duration"
868             },
869             "specification": {
870                 "category": "css-animations",
871                 "url": "https://www.w3.org/TR/css3-animations/#animation-duration-property",
872                 "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-duration"
873             }
874         },
875         "animation-fill-mode": {
876             "values": [
877                 "forwards",
878                 "backwards",
879                 "both"
880             ],
881             "animatable": true,
882             "codegen-properties": {
883                 "aliases": [
884                     "-webkit-animation-fill-mode"
885                 ],
886                 "name-for-methods": "FillMode"
887             },
888             "specification": {
889                 "category": "css-animations",
890                 "url": "https://www.w3.org/TR/css3-animations/#animation-fill-mode-property"
891             }
892         },
893         "animation-iteration-count": {
894             "animatable": true,
895             "codegen-properties": {
896                 "aliases": [
897                     "-webkit-animation-iteration-count"
898                 ],
899                 "name-for-methods": "IterationCount"
900             },
901             "specification": {
902                 "category": "css-animations",
903                 "url": "https://www.w3.org/TR/css3-animations/#animation-iteration-count-property"
904             }
905         },
906         "animation-name": {
907             "animatable": true,
908             "codegen-properties": {
909                 "aliases": [
910                     "-webkit-animation-name"
911                 ],
912                 "name-for-methods": "Name"
913             },
914             "specification": {
915                 "category": "css-animations",
916                 "url": "https://www.w3.org/TR/css3-animations/#animation-name-property"
917             }
918         },
919         "animation-play-state": {
920             "values": [
921                 "running",
922                 "paused"
923             ],
924             "animatable": true,
925             "codegen-properties": {
926                 "aliases": [
927                     "-webkit-animation-play-state"
928                 ],
929                 "name-for-methods": "PlayState"
930             },
931             "specification": {
932                 "category": "css-animations",
933                 "url": "https://www.w3.org/TR/css3-animations/#animation-play-state-property"
934             }
935         },
936         "animation-timing-function": {
937             "animatable": true,
938             "codegen-properties": {
939                 "aliases": [
940                     "-webkit-animation-timing-function"
941                 ],
942                 "name-for-methods": "TimingFunction"
943             },
944             "specification": {
945                 "category": "css-animations",
946                 "url": "https://www.w3.org/TR/css3-animations/#animation-timing-function-property"
947             }
948         },
949         "background": {
950             "codegen-properties": {
951                 "longhands": [
952                     "background-image",
953                     "background-position-x",
954                     "background-position-y",
955                     "background-size",
956                     "background-repeat-x",
957                     "background-repeat-y",
958                     "background-attachment",
959                     "background-origin",
960                     "background-clip",
961                     "background-color"
962                 ]
963             },
964             "specification": {
965                 "category": "css-backgrounds",
966                 "url": "https://www.w3.org/TR/css3-background/#the-background"
967             }
968         },
969         "background-attachment": {
970             "values": [
971                 "fixed",
972                 "local",
973                 "scroll"
974             ],
975             "codegen-properties": {
976                 "name-for-methods": "Attachment",
977                 "fill-layer-property": true
978             },
979             "specification": {
980                 "category": "css-backgrounds",
981                 "url": "https://www.w3.org/TR/css3-background/#the-background-attachment"
982             }
983         },
984         "background-blend-mode": {
985             "values" : [
986                 "normal",
987                 "multiply",
988                 "screen",
989                 "overlay",
990                 "darken",
991                 "lighten",
992                 "color-dodge",
993                 "color-burn",
994                 "hard-light",
995                 "soft-light",
996                 "difference",
997                 "exclusion",
998                 "hue",
999                 "saturation",
1000                 "color",
1001                 "luminosity"
1002             ],
1003             "codegen-properties": {
1004                 "name-for-methods": "BlendMode",
1005                 "fill-layer-property": true
1006             },
1007             "specification": {
1008                 "category": "css-compositing",
1009                 "url": "https://www.w3.org/TR/compositing-1/#background-blend-mode"
1010             }
1011         },
1012         "background-clip": {
1013             "values": [
1014                 "border-box",
1015                 "padding-box",
1016                 "content-box",
1017                 {
1018                     "value": "-webkit-text",
1019                     "status": "non-standard"
1020                 }
1021             ],
1022             "codegen-properties": {
1023                 "name-for-methods": "Clip",
1024                 "fill-layer-property": true
1025             },
1026             "specification": {
1027                 "category": "css-backgrounds",
1028                 "url": "https://www.w3.org/TR/css3-background/#the-background-clip"
1029             }
1030         },
1031         "background-color": {
1032             "codegen-properties": {
1033                 "visited-link-color-support": true,
1034                 "no-default-color": true
1035             },
1036             "specification": {
1037                 "category": "css-backgrounds",
1038                 "url": "https://www.w3.org/TR/css3-background/#the-background-color"
1039             }
1040         },
1041         "background-image": {
1042             "codegen-properties": {
1043                 "name-for-methods": "Image",
1044                 "fill-layer-property": true
1045             },
1046             "specification": {
1047                 "category": "css-backgrounds",
1048                 "url": "https://www.w3.org/TR/css3-background/#the-background-image"
1049             }
1050         },
1051         "background-origin": {
1052             "codegen-properties": {
1053                 "name-for-methods": "Origin",
1054                 "fill-layer-property": true
1055             },
1056             "specification": {
1057                 "category": "css-backgrounds",
1058                 "url": "https://www.w3.org/TR/css3-background/#the-background-origin"
1059             }
1060         },
1061         "background-position": {
1062             "codegen-properties": {
1063                 "longhands": [
1064                     "background-position-x",
1065                     "background-position-y"
1066                 ]
1067             },
1068             "specification": {
1069                 "category": "css-backgrounds",
1070                 "url": "https://www.w3.org/TR/css3-background/#background-position"
1071             }
1072         },
1073         "background-position-x": {
1074             "codegen-properties": {
1075                 "name-for-methods": "XPosition",
1076                 "fill-layer-property": true
1077             },
1078             "specification": {
1079                 "category": "css-backgrounds",
1080                 "url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-x"
1081             },
1082             "status": {
1083                 "status": "experimental",
1084                 "enabled-by-default": true
1085             }
1086         },
1087         "background-position-y": {
1088             "codegen-properties": {
1089                 "name-for-methods": "YPosition",
1090                 "fill-layer-property": true
1091             },
1092             "specification": {
1093                 "category": "css-backgrounds",
1094                 "url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-y"
1095             },
1096             "status": {
1097                 "status": "experimental",
1098                 "enabled-by-default": true
1099             }
1100         },
1101         "background-repeat": {
1102             "codegen-properties": {
1103                 "longhands": [
1104                     "background-repeat-x",
1105                     "background-repeat-y"
1106                 ]
1107             },
1108             "specification": {
1109                 "category": "css-backgrounds",
1110                 "url": "https://www.w3.org/TR/css3-background/#background-repeat"
1111             }
1112         },
1113         "background-repeat-x": {
1114             "codegen-properties": {
1115                 "name-for-methods": "RepeatX",
1116                 "fill-layer-property": true,
1117                 "internal-only": true
1118             },
1119             "specification": {
1120                 "category": "css-backgrounds"
1121             },
1122             "status": {
1123                 "status": "experimental",
1124                 "enabled-by-default": true
1125             }
1126         },
1127         "background-repeat-y": {
1128             "codegen-properties": {
1129                 "name-for-methods": "RepeatY",
1130                 "fill-layer-property": true,
1131                 "internal-only": true
1132             },
1133             "specification": {
1134                 "category": "css-backgrounds"
1135             },
1136             "status": {
1137                 "status": "experimental",
1138                 "enabled-by-default": true
1139             }
1140         },
1141         "background-size": {
1142             "codegen-properties": {
1143                 "name-for-methods": "Size",
1144                 "fill-layer-property": true
1145             },
1146             "specification": {
1147                 "category": "css-backgrounds",
1148                 "url": "https://www.w3.org/TR/css3-background/#background-size"
1149             }
1150         },
1151         "baseline-shift": {
1152             "codegen-properties": {
1153                 "custom": "Value",
1154                 "svg": true
1155             },
1156             "specification": {
1157                 "category": "svg",
1158                 "url": "https://www.w3.org/TR/SVG11/text.html#BaselineShiftProperty"
1159             }
1160         },
1161         "block-size": {
1162             "codegen-properties": {
1163                 "aliases": [
1164                     "-webkit-logical-height"
1165                 ],
1166                 "skip-builder": true
1167             },
1168             "specification": {
1169                 "category": "css-logical-props",
1170                 "url": "https://www.w3.org/TR/css-logical/#dimension-properties"
1171             }
1172         },
1173         "border": {
1174             "codegen-properties": {
1175                 "longhands": [
1176                     "border-top-color",
1177                     "border-top-style",
1178                     "border-top-width",
1179                     "border-right-color",
1180                     "border-right-style",
1181                     "border-right-width",
1182                     "border-bottom-color",
1183                     "border-bottom-style",
1184                     "border-bottom-width",
1185                     "border-left-color",
1186                     "border-left-style",
1187                     "border-left-width"
1188                 ]
1189             },
1190             "specification": {
1191                 "category": "css-backgrounds",
1192                 "url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
1193             }
1194         },
1195         "border-block-end": {
1196             "codegen-properties": {
1197                 "aliases": [
1198                     "-webkit-border-after"
1199                 ],
1200                 "longhands": [
1201                     "border-block-end-width",
1202                     "border-block-end-style",
1203                     "border-block-end-color"
1204                 ]
1205             },
1206             "specification": {
1207                 "category": "css-logical-props",
1208                 "url": "https://www.w3.org/TR/css-logical/#border-shorthands"
1209             }
1210         },
1211         "border-block-end-color": {
1212             "codegen-properties": {
1213                 "aliases": [
1214                     "-webkit-border-after-color"
1215                 ],
1216                 "skip-builder": true
1217             },
1218             "specification": {
1219                 "category": "css-logical-props",
1220                 "url": "https://www.w3.org/TR/css-logical/#border-color"
1221             }
1222         },
1223         "border-block-end-style": {
1224             "values": [
1225                 "none",
1226                 "hidden",
1227                 "inset",
1228                 "groove",
1229                 "outset",
1230                 "ridge",
1231                 "dotted",
1232                 "dashed",
1233                 "solid",
1234                 "double"
1235             ],
1236             "codegen-properties": {
1237                 "aliases": [
1238                     "-webkit-border-after-style"
1239                 ],
1240                 "skip-builder": true
1241             },
1242             "specification": {
1243                 "category": "css-logical-props",
1244                 "url": "https://www.w3.org/TR/css-logical/#border-style"
1245             }
1246         },
1247         "border-block-end-width": {
1248             "codegen-properties": {
1249                 "aliases": [
1250                     "-webkit-border-after-width"
1251                 ],
1252                 "skip-builder": true
1253             },
1254             "specification": {
1255                 "category": "css-logical-props",
1256                 "url": "https://www.w3.org/TR/css-logical/#border-width"
1257             }
1258         },
1259         "border-block-start": {
1260             "codegen-properties": {
1261                 "aliases": [
1262                     "-webkit-border-before"
1263                 ],
1264                 "longhands": [
1265                     "border-block-start-width",
1266                     "border-block-start-style",
1267                     "border-block-start-color"
1268                 ]
1269             },
1270             "specification": {
1271                 "category": "css-logical-props",
1272                 "url": "https://www.w3.org/TR/css-logical/#border-shorthands"
1273             }
1274         },
1275         "border-block-start-color": {
1276             "codegen-properties": {
1277                 "aliases": [
1278                     "-webkit-border-before-color"
1279                 ],
1280                 "skip-builder": true
1281             },
1282             "specification": {
1283                 "category": "css-logical-props",
1284                 "url": "https://www.w3.org/TR/css-logical/#border-color"
1285             }
1286         },
1287         "border-block-start-style": {
1288             "values": [
1289                 "none",
1290                 "hidden",
1291                 "inset",
1292                 "groove",
1293                 "outset",
1294                 "ridge",
1295                 "dotted",
1296                 "dashed",
1297                 "solid",
1298                 "double"
1299             ],
1300             "codegen-properties": {
1301                 "aliases": [
1302                     "-webkit-border-before-style"
1303                 ],
1304                 "skip-builder": true
1305             },
1306             "specification": {
1307                 "category": "css-logical-props",
1308                 "url": "https://www.w3.org/TR/css-logical/#border-style"
1309             }
1310         },
1311         "border-block-start-width": {
1312             "codegen-properties": {
1313                 "aliases": [
1314                     "-webkit-border-before-width"
1315                 ],
1316                 "skip-builder": true
1317             },
1318             "specification": {
1319                 "category": "css-logical-props",
1320                 "url": "https://www.w3.org/TR/css-logical/#border-width"
1321             }
1322         },
1323         "border-bottom": {
1324             "codegen-properties": {
1325                 "longhands": [
1326                     "border-bottom-width",
1327                     "border-bottom-style",
1328                     "border-bottom-color"
1329                 ]
1330             },
1331             "specification": {
1332                 "category": "css-backgrounds",
1333                 "url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
1334             }
1335         },
1336         "border-bottom-color": {
1337             "codegen-properties": {
1338                 "initial": "invalidColor",
1339                 "visited-link-color-support": true
1340             },
1341             "specification": {
1342                 "category": "css-backgrounds",
1343                 "url": "https://www.w3.org/TR/css3-background/#the-border-color"
1344             }
1345         },
1346         "border-bottom-left-radius": {
1347             "codegen-properties": {
1348                 "aliases": [
1349                     "-webkit-border-bottom-left-radius"
1350                 ],
1351                 "initial": "initialBorderRadius",
1352                 "converter": "Radius"
1353             },
1354             "specification": {
1355                 "category": "css-backgrounds",
1356                 "url": "https://www.w3.org/TR/css3-background/#the-border-radius"
1357             }
1358         },
1359         "border-bottom-right-radius": {
1360             "codegen-properties": {
1361                 "aliases": [
1362                     "-webkit-border-bottom-right-radius"
1363                 ],
1364                 "initial": "initialBorderRadius",
1365                 "converter": "Radius"
1366             },
1367             "specification": {
1368                 "category": "css-backgrounds",
1369                 "url": "https://www.w3.org/TR/css3-background/#the-border-radius"
1370             }
1371         },
1372         "border-bottom-style": {
1373             "values": [
1374                 "none",
1375                 "hidden",
1376                 "inset",
1377                 "groove",
1378                 "outset",
1379                 "ridge",
1380                 "dotted",
1381                 "dashed",
1382                 "solid",
1383                 "double"
1384             ],
1385             "codegen-properties": {
1386                 "initial": "initialBorderStyle"
1387             },
1388             "specification": {
1389                 "category": "css-backgrounds",
1390                 "url": "https://www.w3.org/TR/css3-background/#the-border-style"
1391             }
1392         },
1393         "border-bottom-width": {
1394             "codegen-properties": {
1395                 "initial": "initialBorderWidth",
1396                 "converter": "LineWidth<float>"
1397             },
1398             "specification": {
1399                 "category": "css-backgrounds",
1400                 "url": "https://www.w3.org/TR/css3-background/#the-border-width"
1401             }
1402         },
1403         "border-collapse": {
1404             "values": [
1405                 "collapse",
1406                 "separate"
1407             ],
1408             "inherited": true,
1409             "values": [
1410                 "collapse",
1411                 "separate"
1412             ],
1413             "specification": {
1414                 "category": "css-22",
1415                 "url": "https://www.w3.org/TR/CSS22/tables.html#borders"
1416             }
1417         },
1418         "border-color": {
1419             "codegen-properties": {
1420                 "longhands": [
1421                     "border-top-color",
1422                     "border-right-color",
1423                     "border-bottom-color",
1424                     "border-left-color"
1425                 ]
1426             },
1427             "specification": {
1428                 "category": "css-backgrounds",
1429                 "url": "https://www.w3.org/TR/css3-background/#the-border-color"
1430             }
1431         },
1432         "border-image": {
1433             "codegen-properties": {
1434                 "longhands": [
1435                     "border-image-source",
1436                     "border-image-slice",
1437                     "border-image-width",
1438                     "border-image-outset",
1439                     "border-image-repeat"
1440                 ]
1441             },
1442             "specification": {
1443                 "category": "css-backgrounds",
1444                 "url": "https://www.w3.org/TR/css3-background/#the-border-image"
1445             }
1446         },
1447         "border-image-outset": {
1448             "codegen-properties": {
1449                 "custom": "All"
1450             },
1451             "specification": {
1452                 "category": "css-backgrounds",
1453                 "url": "https://www.w3.org/TR/css3-background/#the-border-image-outset"
1454             }
1455         },
1456         "border-image-repeat": {
1457             "codegen-properties": {
1458                 "custom": "All"
1459             },
1460             "specification": {
1461                 "category": "css-backgrounds",
1462                 "url": "https://www.w3.org/TR/css3-background/#the-border-image-repeat"
1463             }
1464         },
1465         "border-image-slice": {
1466             "codegen-properties": {
1467                 "custom": "All"
1468             },
1469             "specification": {
1470                 "category": "css-backgrounds",
1471                 "url": "https://www.w3.org/TR/css3-background/#the-border-image-slice"
1472             }
1473         },
1474         "border-image-source": {
1475             "codegen-properties": {
1476                 "converter": "StyleImage<CSSPropertyBorderImageSource>"
1477             },
1478             "specification": {
1479                 "category": "css-backgrounds",
1480                 "url": "https://www.w3.org/TR/css3-background/#the-border-image-source"
1481             }
1482         },
1483         "border-image-width": {
1484             "codegen-properties": {
1485                 "custom": "All"
1486             },
1487             "specification": {
1488                 "category": "css-backgrounds",
1489                 "url": "https://www.w3.org/TR/css3-background/#the-border-image-width"
1490             }
1491         },
1492         "border-inline-end": {
1493             "codegen-properties": {
1494                 "aliases": [
1495                     "-webkit-border-end"
1496                 ],
1497                 "longhands": [
1498                     "border-inline-end-width",
1499                     "border-inline-end-style",
1500                     "border-inline-end-color"
1501                 ]
1502             },
1503             "specification": {
1504                 "category": "css-logical-props",
1505                 "url": "https://www.w3.org/TR/css-logical/#border-shorthands"
1506             }
1507         },
1508         "border-inline-end-color": {
1509             "codegen-properties": {
1510                 "aliases": [
1511                     "-webkit-border-end-color"
1512                 ],
1513                 "skip-builder": true
1514             },
1515             "specification": {
1516                 "category": "css-logical-props",
1517                 "url": "https://www.w3.org/TR/css-logical/#border-color"
1518             }
1519         },
1520         "border-inline-end-style": {
1521             "values": [
1522                 "none",
1523                 "hidden",
1524                 "inset",
1525                 "groove",
1526                 "outset",
1527                 "ridge",
1528                 "dotted",
1529                 "dashed",
1530                 "solid",
1531                 "double"
1532             ],
1533             "codegen-properties": {
1534                 "aliases": [
1535                     "-webkit-border-end-style"
1536                 ],
1537                 "skip-builder": true
1538             },
1539             "specification": {
1540                 "category": "css-logical-props",
1541                 "url": "https://www.w3.org/TR/css-logical/#border-style"
1542             }
1543         },
1544         "border-inline-end-width": {
1545             "codegen-properties": {
1546                 "aliases": [
1547                     "-webkit-border-end-width"
1548                 ],
1549                 "skip-builder": true
1550             },
1551             "specification": {
1552                 "category": "css-logical-props",
1553                 "url": "https://www.w3.org/TR/css-logical/#border-width"
1554             }
1555         },
1556         "border-inline-start": {
1557             "codegen-properties": {
1558                 "aliases": [
1559                     "-webkit-border-start"
1560                 ],
1561                 "longhands": [
1562                     "border-inline-start-width",
1563                     "border-inline-start-style",
1564                     "border-inline-start-color"
1565                 ]
1566             },
1567             "specification": {
1568                 "category": "css-logical-props",
1569                 "url": "https://www.w3.org/TR/css-logical/#border-shorthands"
1570             }
1571         },
1572         "border-inline-start-color": {
1573             "codegen-properties": {
1574                 "aliases": [
1575                     "-webkit-border-start-color"
1576                 ],
1577                 "skip-builder": true
1578             },
1579             "specification": {
1580                 "category": "css-logical-props",
1581                 "url": "https://www.w3.org/TR/css-logical/#border-color"
1582             }
1583         },
1584         "border-inline-start-style": {
1585             "values": [
1586                 "none",
1587                 "hidden",
1588                 "inset",
1589                 "groove",
1590                 "outset",
1591                 "ridge",
1592                 "dotted",
1593                 "dashed",
1594                 "solid",
1595                 "double"
1596             ],
1597             "codegen-properties": {
1598                 "aliases": [
1599                     "-webkit-border-start-style"
1600                 ],
1601                 "skip-builder": true
1602             },
1603             "specification": {
1604                 "category": "css-logical-props",
1605                 "url": "https://www.w3.org/TR/css-logical/#border-style"
1606             }
1607         },
1608         "border-inline-start-width": {
1609             "codegen-properties": {
1610                 "aliases": [
1611                     "-webkit-border-start-width"
1612                 ],
1613                 "skip-builder": true
1614             },
1615             "specification": {
1616                 "category": "css-logical-props",
1617                 "url": "https://www.w3.org/TR/css-logical/#border-width"
1618             }
1619         },
1620         "border-left": {
1621             "codegen-properties": {
1622                 "longhands": [
1623                     "border-left-width",
1624                     "border-left-style",
1625                     "border-left-color"
1626                 ]
1627             },
1628             "specification": {
1629                 "category": "css-backgrounds",
1630                 "url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
1631             }
1632         },
1633         "border-left-color": {
1634             "codegen-properties": {
1635                 "initial": "invalidColor",
1636                 "visited-link-color-support": true
1637             },
1638             "specification": {
1639                 "category": "css-backgrounds",
1640                 "url": "https://www.w3.org/TR/css3-background/#the-border-color"
1641             }
1642         },
1643         "border-left-style": {
1644             "values": [
1645                 "none",
1646                 "hidden",
1647                 "inset",
1648                 "groove",
1649                 "outset",
1650                 "ridge",
1651                 "dotted",
1652                 "dashed",
1653                 "solid",
1654                 "double"
1655             ],
1656             "codegen-properties": {
1657                 "initial": "initialBorderStyle"
1658             },
1659             "specification": {
1660                 "category": "css-backgrounds",
1661                 "url": "https://www.w3.org/TR/css3-background/#the-border-style"
1662             }
1663         },
1664         "border-left-width": {
1665             "codegen-properties": {
1666                 "initial": "initialBorderWidth",
1667                 "converter": "LineWidth<float>"
1668             },
1669             "specification": {
1670                 "category": "css-backgrounds",
1671                 "url": "https://www.w3.org/TR/css3-background/#the-border-width"
1672             }
1673         },
1674         "border-radius": {
1675             "codegen-properties": {
1676                 "longhands": [
1677                     "border-top-left-radius",
1678                     "border-top-right-radius",
1679                     "border-bottom-right-radius",
1680                     "border-bottom-left-radius"
1681                 ]
1682             },
1683             "specification": {
1684                 "category": "css-backgrounds",
1685                 "url": "https://www.w3.org/TR/css3-background/#the-border-radius"
1686             }
1687         },
1688         "border-right": {
1689             "codegen-properties": {
1690                 "longhands": [
1691                     "border-right-width",
1692                     "border-right-style",
1693                     "border-right-color"
1694                 ]
1695             },
1696             "specification": {
1697                 "category": "css-backgrounds",
1698                 "url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
1699             }
1700         },
1701         "border-right-color": {
1702             "codegen-properties": {
1703                 "initial": "invalidColor",
1704                 "visited-link-color-support": true
1705             },
1706             "specification": {
1707                 "category": "css-backgrounds",
1708                 "url": "https://www.w3.org/TR/css3-background/#the-border-color"
1709             }
1710         },
1711         "border-right-style": {
1712             "values": [
1713                 "none",
1714                 "hidden",
1715                 "inset",
1716                 "groove",
1717                 "outset",
1718                 "ridge",
1719                 "dotted",
1720                 "dashed",
1721                 "solid",
1722                 "double"
1723             ],
1724             "codegen-properties": {
1725                 "initial": "initialBorderStyle"
1726             },
1727             "specification": {
1728                 "category": "css-backgrounds",
1729                 "url": "https://www.w3.org/TR/css3-background/#the-border-style"
1730             }
1731         },
1732         "border-right-width": {
1733             "codegen-properties": {
1734                 "initial": "initialBorderWidth",
1735                 "converter": "LineWidth<float>"
1736             },
1737             "specification": {
1738                 "category": "css-backgrounds",
1739                 "url": "https://www.w3.org/TR/css3-background/#the-border-width"
1740             }
1741         },
1742         "border-spacing": {
1743             "inherited": true,
1744             "codegen-properties": {
1745                 "longhands": [
1746                     "-webkit-border-horizontal-spacing",
1747                     "-webkit-border-vertical-spacing"
1748                 ]
1749             },
1750             "specification": {
1751                 "category": "css-22",
1752                 "url": "https://www.w3.org/TR/CSS22/tables.html#separated-borders"
1753             }
1754         },
1755         "border-style": {
1756             "codegen-properties": {
1757                 "longhands": [
1758                     "border-top-style",
1759                     "border-right-style",
1760                     "border-bottom-style",
1761                     "border-left-style"
1762                 ]
1763             },
1764             "specification": {
1765                 "category": "css-backgrounds",
1766                 "url": "https://www.w3.org/TR/css3-background/#the-border-style"
1767             }
1768         },
1769         "border-top": {
1770             "codegen-properties": {
1771                 "longhands": [
1772                     "border-top-width",
1773                     "border-top-style",
1774                     "border-top-color"
1775                 ]
1776             },
1777             "specification": {
1778                 "category": "css-backgrounds",
1779                 "url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
1780             }
1781         },
1782         "border-top-color": {
1783             "codegen-properties": {
1784                 "initial": "invalidColor",
1785                 "visited-link-color-support": true
1786             },
1787             "specification": {
1788                 "category": "css-backgrounds",
1789                 "url": "https://www.w3.org/TR/css3-background/#the-border-color"
1790             }
1791         },
1792         "border-top-left-radius": {
1793             "codegen-properties": {
1794                 "aliases": [
1795                     "-webkit-border-top-left-radius"
1796                 ],
1797                 "initial": "initialBorderRadius",
1798                 "converter": "Radius"
1799             },
1800             "specification": {
1801                 "category": "css-backgrounds",
1802                 "url": "https://www.w3.org/TR/css3-background/#the-border-radius"
1803             }
1804         },
1805         "border-top-right-radius": {
1806             "codegen-properties": {
1807                 "aliases": [
1808                     "-webkit-border-top-right-radius"
1809                 ],
1810                 "initial": "initialBorderRadius",
1811                 "converter": "Radius"
1812             },
1813             "specification": {
1814                 "category": "css-backgrounds",
1815                 "url": "https://www.w3.org/TR/css3-background/#the-border-radius"
1816             }
1817         },
1818         "border-top-style": {
1819             "values": [
1820                 "none",
1821                 "hidden",
1822                 "inset",
1823                 "groove",
1824                 "outset",
1825                 "ridge",
1826                 "dotted",
1827                 "dashed",
1828                 "solid",
1829                 "double"
1830             ],
1831             "codegen-properties": {
1832                 "initial": "initialBorderStyle"
1833             },
1834             "specification": {
1835                 "category": "css-backgrounds",
1836                 "url": "https://www.w3.org/TR/css3-background/#the-border-style"
1837             }
1838         },
1839         "border-top-width": {
1840             "codegen-properties": {
1841                 "initial": "initialBorderWidth",
1842                 "converter": "LineWidth<float>"
1843             },
1844             "specification": {
1845                 "category": "css-backgrounds",
1846                 "url": "https://www.w3.org/TR/css3-background/#the-border-width"
1847             }
1848         },
1849         "border-width": {
1850             "codegen-properties": {
1851                 "longhands": [
1852                     "border-top-width",
1853                     "border-right-width",
1854                     "border-bottom-width",
1855                     "border-left-width"
1856                 ]
1857             },
1858             "specification": {
1859                 "category": "css-backgrounds",
1860                 "url": "https://www.w3.org/TR/css3-background/#the-border-width"
1861             }
1862         },
1863         "bottom": {
1864             "codegen-properties": {
1865                 "initial": "initialOffset",
1866                 "converter": "LengthOrAuto"
1867             },
1868             "specification": {
1869                 "category": "css-22",
1870                 "url": "https://www.w3.org/TR/CSS22/visuren.html#propdef-bottom"
1871             }
1872         },
1873         "box-shadow": {
1874             "codegen-properties": {
1875                 "custom": "All"
1876             },
1877             "specification": {
1878                 "category": "css-backgrounds",
1879                 "url": "https://www.w3.org/TR/css3-background/#the-box-shadow"
1880             }
1881         },
1882         "box-sizing": {
1883             "values": [
1884                 "border-box",
1885                 "content-box"
1886             ],
1887             "codegen-properties": {
1888                 "aliases": [
1889                     "-webkit-box-sizing"
1890                 ]
1891             },
1892             "status": {
1893                 "comment": "-webkit-box-sizing worked in Safari 4 and earlier."
1894             },
1895             "specification": {
1896                 "category": "css-ui",
1897                 "url": "https://www.w3.org/TR/css-ui-3/#box-sizing"
1898             }
1899         },
1900         "break-after": {
1901             "values": [
1902                 "auto",
1903                 "avoid",
1904                 "left",
1905                 "right",
1906                 "recto",
1907                 "verso",
1908                 "column",
1909                 "page",
1910                 "avoid-column",
1911                 "avoid-page"
1912             ],
1913             "codegen-properties": {
1914                 "initial": "initialBreakBetween"
1915             },
1916             "specification": {
1917                 "category": "css-break",
1918                 "url": "https://www.w3.org/TR/css-break-3/#break-between"
1919             }
1920         },
1921         "break-before": {
1922             "values": [
1923                 "auto",
1924                 "avoid",
1925                 "left",
1926                 "right",
1927                 "recto",
1928                 "verso",
1929                 "column",
1930                 "page",
1931                 "avoid-column",
1932                 "avoid-page"
1933             ],
1934             "codegen-properties": {
1935                 "initial": "initialBreakBetween"
1936             },
1937             "specification": {
1938                 "category": "css-break",
1939                 "url": "https://www.w3.org/TR/css-break-3/#break-between"
1940             }
1941         },
1942         "break-inside": {
1943             "values": [
1944                 "auto",
1945                 "avoid",
1946                 "avoid-column",
1947                 "avoid-page"
1948             ],
1949             "codegen-properties": {
1950                 "initial": "initialBreakInside"
1951             },
1952             "specification": {
1953                 "category": "css-break",
1954                 "url": "https://www.w3.org/TR/css-break-3/#break-within"
1955             }
1956         },
1957         "buffered-rendering": {
1958             "values": [
1959                 "auto",
1960                 "dynamic",
1961                 "static"
1962             ],
1963             "codegen-properties": {
1964                 "svg": true
1965             },
1966             "specification": {
1967                 "category": "svg",
1968                 "url": "https://www.w3.org/TR/SVGTiny12/painting.html#BufferedRenderingProperty"
1969             }
1970         },
1971         "caption-side": {
1972             "inherited": true,
1973             "values": [
1974                 "left",
1975                 "right",
1976                 "top",
1977                 "bottom"
1978             ],
1979             "codegen-properties": {
1980                 "aliases": [
1981                     "-epub-caption-side"
1982                 ]
1983             },
1984             "specification": {
1985                 "category": "css-22",
1986                 "url": "https://www.w3.org/TR/CSS22/tables.html#propdef-caption-side"
1987             }
1988         },
1989         "clear": {
1990             "values": [
1991                 "none",
1992                 "left",
1993                 "right",
1994                 "both"
1995             ],
1996             "specification": {
1997                 "category": "css-22",
1998                 "url": "https://www.w3.org/TR/CSS22/visuren.html#propdef-clear"
1999             }
2000         },
2001         "clip": {
2002             "codegen-properties": {
2003                 "custom": "All"
2004             },
2005             "specification": {
2006                 "category": "css-22",
2007                 "url": "https://www.w3.org/TR/CSS22/visufx.html#propdef-clip"
2008             }
2009         },
2010         "-webkit-clip-path": {
2011             "codegen-properties": {
2012                 "converter": "ClipPath"
2013             }
2014         },
2015         "clip-path": {
2016             "codegen-properties": {
2017                 "name-for-methods": "ClipperResource",
2018                 "converter": "SVGURIReference",
2019                 "svg": true
2020             },
2021             "specification": {
2022                 "category": "css-masking",
2023                 "url": "https://www.w3.org/TR/css-masking-1/#the-clip-path"
2024             }
2025         },
2026         "clip-rule": {
2027             "inherited": true,
2028             "values": [
2029                 "nonzero",
2030                 "evenodd"
2031             ],
2032             "codegen-properties": {
2033                 "svg": true
2034             },
2035             "specification": {
2036                 "category": "svg",
2037                 "url": "https://www.w3.org/TR/SVG11/masking.html#ClipRuleProperty"
2038             }
2039         },
2040         "color-interpolation": {
2041             "inherited": true,
2042             "values": [
2043                 "auto",
2044                 "srgb",
2045                 "linearrgb"
2046             ],
2047             "codegen-properties": {
2048                 "svg": true
2049             },
2050             "specification": {
2051                 "category": "svg",
2052                 "url": "https://www.w3.org/TR/SVG11/painting.html#ColorInterpolationProperty"
2053             }
2054         },
2055         "color-interpolation-filters": {
2056             "inherited": true,
2057             "values": [
2058                 "auto",
2059                 "srgb",
2060                 "linearrgb"
2061             ],
2062             "codegen-properties": {
2063                 "svg": true
2064             },
2065             "specification": {
2066                 "category": "svg",
2067                 "url": "https://www.w3.org/TR/SVG11/painting.html#ColorInterpolationFiltersProperty"
2068             }
2069         },
2070         "color-profile": {
2071             "codegen-properties": {
2072                 "skip-builder": true,
2073                 "svg": true
2074             },
2075             "status": {
2076                 "status": "not implemented",
2077                 "enabled-by-default": true
2078             },
2079             "specification": {
2080                 "category": "svg",
2081                 "url": "https://www.w3.org/TR/SVG11/color.html#ColorProfileProperty"
2082             }
2083         },
2084         "color-rendering": {
2085             "inherited": true,
2086             "values": [
2087                 "auto",
2088                 "optimizespeed",
2089                 "optimizequality"
2090             ],
2091             "codegen-properties": {
2092                 "svg": true
2093             },
2094             "specification": {
2095                 "category": "svg",
2096                 "url": "https://www.w3.org/TR/SVG11/painting.html#ColorRenderingProperty"
2097             }
2098         },
2099         "content": {
2100             "codegen-properties": {
2101                 "custom": "All"
2102             },
2103             "specification": {
2104                 "category": "css-content",
2105                 "url": "https://www.w3.org/TR/css-content-3/#content-property"
2106             }
2107         },
2108         "counter-increment": {
2109             "codegen-properties": {
2110                 "custom": "All"
2111             },
2112             "specification": {
2113                 "category": "css-lists",
2114                 "url": "https://www.w3.org/TR/css-lists-3/#propdef-counter-increment"
2115             }
2116         },
2117         "counter-reset": {
2118             "codegen-properties": {
2119                 "custom": "All"
2120             },
2121             "specification": {
2122                 "category": "css-lists",
2123                 "url": "https://www.w3.org/TR/css-lists-3/#counter-properties"
2124             }
2125         },
2126         "counter-set": {
2127             "codegen-properties": {
2128                 "skip-codegen": true
2129             },
2130             "status": {
2131                 "status": "not implemented"
2132             },
2133             "specification": {
2134                 "category": "css-lists",
2135                 "url": "https://www.w3.org/TR/css-lists-3/#propdef-counter-set"
2136             }
2137         },
2138         "cursor": {
2139             "values": [
2140                 "context-menu",
2141                 "help",
2142                 "pointer",
2143                 "progress",
2144                 "wait",
2145                 "cell",
2146                 "crosshair",
2147                 "text",
2148                 "vertical-text",
2149                 "alias",
2150                 "copy",
2151                 "move",
2152                 "no-drop",
2153                 "not-allowed",
2154                 "grab",
2155                 {
2156                     "value": "-webkit-grab",
2157                     "status": "non-standard"
2158                 },
2159                 "grabbing",
2160                 {
2161                     "value": "-webkit-grabbing",
2162                     "status": "non-standard"
2163                 },
2164                 "e-resize",
2165                 "n-resize",
2166                 "ne-resize",
2167                 "nw-resize",
2168                 "s-resize",
2169                 "se-resize",
2170                 "sw-resize",
2171                 "w-resize",
2172                 "ew-resize",
2173                 "ns-resize",
2174                 "nesw-resize",
2175                 "nwse-resize",
2176                 "col-resize",
2177                 "row-resize",
2178                 "all-scroll",
2179                 "zoom-in",
2180                 "zoom-out",
2181                 {
2182                     "value": "-webkit-zoom-in",
2183                     "status": "non-standard"
2184                 },
2185                 {
2186                     "value": "-webkit-zoom-out",
2187                     "status": "non-standard"
2188                 }
2189             ],
2190             "inherited": true,
2191             "codegen-properties": {
2192                 "custom": "All"
2193             },
2194             "specification": {
2195                 "category": "css-ui",
2196                 "url": "https://www.w3.org/TR/css-ui-3/#cursor"
2197             }
2198         },
2199         "-webkit-cursor-visibility": {
2200             "inherited": true,
2201             "values": [
2202                 "auto",
2203                 "auto-hide"
2204             ],
2205             "codegen-properties": {
2206                 "enable-if": "ENABLE_CURSOR_VISIBILITY"
2207             },
2208             "status": "non-standard"
2209         },
2210         "cx": {
2211             "codegen-properties": {
2212                 "initial": "initialZeroLength",
2213                 "converter": "Length"
2214             },
2215             "specification": {
2216                 "category": "svg",
2217                 "url": "https://www.w3.org/TR/SVG/shapes.html"
2218             }
2219         },
2220         "cy": {
2221             "codegen-properties": {
2222                 "initial": "initialZeroLength",
2223                 "converter": "Length"
2224             },
2225             "specification": {
2226                 "category": "svg",
2227                 "url": "https://www.w3.org/TR/SVG/shapes.html"
2228             }
2229         },
2230         "dominant-baseline": {
2231             "values": [
2232                 "auto",
2233                 "middle",
2234                 "use-script",
2235                 "no-change",
2236                 "reset-size",
2237                 "central",
2238                 "text-before-edge",
2239                 "text-after-edge",
2240                 "ideographic",
2241                 "hanging",
2242                 "mathematical"
2243             ],
2244             "codegen-properties": {
2245                 "svg": true
2246             },
2247             "specification": {
2248                 "category": "svg",
2249                 "url": "https://www.w3.org/TR/SVG11/text.html#DominantBaselineProperty"
2250             }
2251         },
2252         "empty-cells": {
2253             "inherited": true,
2254             "values": [
2255                 "show",
2256                 "hide"
2257             ],
2258             "specification": {
2259                 "category": "css-22",
2260                 "url": "https://www.w3.org/TR/CSS2/tables.html#empty-cells"
2261             }
2262         },
2263         "enable-background": {
2264             "codegen-properties": {
2265                 "skip-builder": true
2266             },
2267             "status": {
2268                 "status": "not implemented",
2269                 "enabled-by-default": true
2270             },
2271             "specification": {
2272                 "category": "svg"
2273             }
2274         },
2275         "fill": {
2276             "inherited": true,
2277             "codegen-properties": {
2278                 "custom": "All",
2279                 "svg": true
2280             },
2281             "specification": {
2282                 "category": "svg",
2283                 "url": "https://www.w3.org/TR/SVG/painting.html#FillProperty"
2284             }
2285         },
2286         "fill-opacity": {
2287             "inherited": true,
2288             "codegen-properties": {
2289                 "converter": "Opacity",
2290                 "svg": true
2291             },
2292             "specification": {
2293                 "category": "svg",
2294                 "url": "https://www.w3.org/TR/SVG/painting.html#FillOpacityProperty"
2295             }
2296         },
2297         "fill-rule": {
2298             "inherited": true,
2299             "values": [
2300                 "nonzero",
2301                 "evenodd"
2302             ],
2303             "codegen-properties": {
2304                 "svg": true
2305             },
2306             "specification": {
2307                 "category": "svg",
2308                 "url": "https://www.w3.org/TR/SVG/painting.html#FillRuleProperty"
2309             }
2310         },
2311         "float": {
2312             "values": [
2313                 "left",
2314                 "right",
2315                 "none"
2316             ],
2317             "codegen-properties": {
2318                 "name-for-methods": "Floating"
2319             },
2320             "specification": {
2321                 "category": "css-22",
2322                 "url": "https://www.w3.org/TR/CSS22/visuren.html#float-position"
2323             }
2324         },
2325         "flood-color": {
2326             "codegen-properties": {
2327                 "converter": "SVGColor",
2328                 "svg": true
2329             },
2330             "specification": {
2331                 "category": "svg",
2332                 "url": "https://www.w3.org/TR/SVG/filters.html#FloodColorProperty"
2333             }
2334         },
2335         "flood-opacity": {
2336             "codegen-properties": {
2337                 "converter": "Opacity",
2338                 "svg": true
2339             },
2340             "specification": {
2341                 "category": "svg",
2342                 "url": "https://www.w3.org/TR/SVG/filters.html#FloodOpacityProperty"
2343             }
2344         },
2345         "glyph-orientation-horizontal": {
2346             "inherited": true,
2347             "codegen-properties": {
2348                 "converter": "GlyphOrientation",
2349                 "svg": true
2350             },
2351             "specification": {
2352                 "category": "svg",
2353                 "url": "https://www.w3.org/TR/SVG11/text.html#GlyphOrientationHorizontalProperty"
2354             }
2355         },
2356         "glyph-orientation-vertical": {
2357             "inherited": true,
2358             "codegen-properties": {
2359                 "converter": "GlyphOrientationOrAuto",
2360                 "svg": true
2361             },
2362             "specification": {
2363                 "category": "svg",
2364                 "url": "https://www.w3.org/TR/SVG11/text.html#GlyphOrientationVerticalProperty"
2365             }
2366         },
2367         "hanging-punctuation": {
2368             "inherited": true,
2369             "codegen-properties": {
2370                 "converter": "HangingPunctuation"
2371             },
2372             "specification": {
2373                 "category": "css-text",
2374                 "url": "https://www.w3.org/TR/css-text-3/#hanging-punctuation"
2375             }
2376         },
2377         "height": {
2378             "codegen-properties": {
2379                 "initial": "initialSize",
2380                 "converter": "LengthSizing"
2381             },
2382             "specification": {
2383                 "category": "css-22",
2384                 "url": "https://www.w3.org/TR/CSS22/visudet.html#the-height-property"
2385             }
2386         },
2387         "image-orientation": {
2388             "inherited": true,
2389             "codegen-properties": {
2390                 "enable-if": "ENABLE_CSS_IMAGE_ORIENTATION"
2391             },
2392             "status": {
2393                 "status": "under consideration",
2394                 "enabled-by-default": false
2395             },
2396             "specification": {
2397                 "category": "css-images",
2398                 "url": "https://www.w3.org/TR/css3-images/#the-image-orientation"
2399             }
2400         },
2401         "image-rendering": {
2402             "inherited": true,
2403             "values": [
2404                 "auto",
2405                 {
2406                     "value": "optimizespeed",
2407                     "url": "https://www.w3.org/TR/SVG11/painting.html#ImageRenderingProperty"
2408                 },
2409                 {
2410                     "value": "optimizequality",
2411                     "url": "https://www.w3.org/TR/SVG11/painting.html#ImageRenderingProperty"
2412                 },
2413                 {
2414                     "value": "-webkit-crisp-edges",
2415                     "status": "non-standard"
2416                 },
2417                 {
2418                     "value": "-webkit-optimize-contrast",
2419                     "status": "non-standard"
2420                 },
2421                 "crisp-edges",
2422                 "pixelated"
2423             ],
2424             "specification": {
2425                 "category": "css-images",
2426                 "url": "https://drafts.csswg.org/css-images-3/#propdef-image-rendering"
2427             }
2428         },
2429         "image-resolution": {
2430             "inherited": true,
2431             "codegen-properties": {
2432                 "custom": "All",
2433                 "enable-if": "ENABLE_CSS_IMAGE_RESOLUTION"
2434             },
2435             "status": {
2436                 "status": "under consideration",
2437                 "enabled-by-default": false
2438             },
2439             "specification": {
2440                 "category": "css-images",
2441                 "url": "https://www.w3.org/TR/css3-images/#image-resolution"
2442             }
2443         },
2444         "inline-size": {
2445             "codegen-properties": {
2446                 "aliases": [
2447                     "-webkit-logical-width"
2448                 ],
2449                 "skip-builder": true
2450             },
2451             "specification": {
2452                 "category": "css-logical-props",
2453                 "url": "https://www.w3.org/TR/css-logical/#dimension-properties"
2454             }
2455         },
2456         "kerning": {
2457             "inherited": true,
2458             "codegen-properties": {
2459                 "converter": "SVGLengthValue",
2460                 "svg": true
2461             },
2462             "specification": {
2463                 "category": "svg",
2464                 "url": "https://www.w3.org/TR/SVG11/text.html#KerningProperty"
2465             }
2466         },
2467         "left": {
2468             "codegen-properties": {
2469                 "initial": "initialOffset",
2470                 "converter": "LengthOrAuto"
2471             },
2472             "specification": {
2473                 "category": "css-22",
2474                 "url": "https://www.w3.org/TR/CSS22/visuren.html#propdef-left"
2475             }
2476         },
2477         "letter-spacing": {
2478             "inherited": true,
2479             "codegen-properties": {
2480                 "converter": "Spacing"
2481             },
2482             "specification": {
2483                 "category": "css-text",
2484                 "url": "https://www.w3.org/TR/css-text-3/#letter-spacing-property"
2485             }
2486         },
2487         "lighting-color": {
2488             "codegen-properties": {
2489                 "converter": "SVGColor",
2490                 "svg": true
2491             }
2492         },
2493         "line-height": {
2494             "inherited": true,
2495             "codegen-properties": [
2496                 {
2497                     "custom": "All",
2498                     "enable-if": "ENABLE_TEXT_AUTOSIZING"
2499                 },
2500                 {
2501                     "getter": "specifiedLineHeight",
2502                     "conditional-converter": "LineHeight",
2503                     "enable-if": "!ENABLE_TEXT_AUTOSIZING"
2504                 }
2505             ],
2506             "specification": {
2507                 "category": "css-22",
2508                 "url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-line-height"
2509             }
2510         },
2511         "list-style": {
2512             "inherited": true,
2513             "codegen-properties": {
2514                 "longhands": [
2515                     "list-style-type",
2516                     "list-style-position",
2517                     "list-style-image"
2518                 ]
2519             },
2520             "specification": {
2521                 "category": "css-lists",
2522                 "url": "https://www.w3.org/TR/css-lists-3/#list-style-property"
2523             }
2524         },
2525         "list-style-image": {
2526             "inherited": true,
2527             "codegen-properties": {
2528                 "converter": "StyleImage<CSSPropertyListStyleImage>"
2529             },
2530             "specification": {
2531                 "category": "css-lists",
2532                 "url": "https://www.w3.org/TR/css-lists-3/#propdef-list-style-image"
2533             }
2534         },
2535         "list-style-position": {
2536             "inherited": true,
2537             "values": [
2538                 "inside",
2539                 "outside"
2540             ],
2541             "specification": {
2542                 "category": "css-lists",
2543                 "url": "https://www.w3.org/TR/css-lists-3/#propdef-list-style-position"
2544             }
2545         },
2546         "list-style-type": {
2547             "inherited": true,
2548             "values": [
2549                 "disc",
2550                 "circle",
2551                 "square",
2552                 "decimal",
2553                 "decimal-leading-zero",
2554                 "arabic-indic",
2555                 "binary",
2556                 "bengali",
2557                 "cambodian",
2558                 "khmer",
2559                 "devanagari",
2560                 "gujarati",
2561                 "gurmukhi",
2562                 "kannada",
2563                 "lower-hexadecimal",
2564                 "lao",
2565                 "malayalam",
2566                 "mongolian",
2567                 "myanmar",
2568                 "octal",
2569                 "oriya",
2570                 "persian",
2571                 "urdu",
2572                 "telugu",
2573                 "tibetan",
2574                 "thai",
2575                 "upper-hexadecimal",
2576                 "lower-roman",
2577                 "upper-roman",
2578                 "lower-greek",
2579                 "lower-alpha",
2580                 "lower-latin",
2581                 "upper-alpha",
2582                 "upper-latin",
2583                 "afar",
2584                 "ethiopic-halehame-aa-et",
2585                 "ethiopic-halehame-aa-er",
2586                 "amharic",
2587                 "ethiopic-halehame-am-et",
2588                 "amharic-abegede",
2589                 "ethiopic-abegede-am-et",
2590                 "cjk-earthly-branch",
2591                 "cjk-heavenly-stem",
2592                 "ethiopic",
2593                 "ethiopic-halehame-gez",
2594                 "ethiopic-abegede",
2595                 "ethiopic-abegede-gez",
2596                 "hangul-consonant",
2597                 "hangul",
2598                 "lower-norwegian",
2599                 "oromo",
2600                 "ethiopic-halehame-om-et",
2601                 "sidama",
2602                 "ethiopic-halehame-sid-et",
2603                 "somali",
2604                 "ethiopic-halehame-so-et",
2605                 "tigre",
2606                 "ethiopic-halehame-tig",
2607                 "tigrinya-er",
2608                 "ethiopic-halehame-ti-er",
2609                 "tigrinya-er-abegede",
2610                 "ethiopic-abegede-ti-er",
2611                 "tigrinya-et",
2612                 "ethiopic-halehame-ti-et",
2613                 "tigrinya-et-abegede",
2614                 "ethiopic-abegede-ti-et",
2615                 "upper-greek",
2616                 "upper-norwegian",
2617                 "asterisks",
2618                 "footnotes",
2619                 "hebrew",
2620                 "armenian",
2621                 "lower-armenian",
2622                 "upper-armenian",
2623                 "georgian",
2624                 "cjk-ideographic",
2625                 "hiragana",
2626                 "katakana",
2627                 "hiragana-iroha",
2628                 "katakana-iroha",
2629                 "none"
2630             ],
2631             "specification": {
2632                 "category": "css-lists",
2633                 "url": "https://www.w3.org/TR/css-lists-3/#propdef-list-style-type"
2634             }
2635         },
2636         "margin": {
2637             "codegen-properties": {
2638                 "longhands": [
2639                     "margin-top",
2640                     "margin-right",
2641                     "margin-bottom",
2642                     "margin-left"
2643                 ]
2644             },
2645             "specification": {
2646                 "category": "css-22",
2647                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin"
2648             }
2649         },
2650         "margin-block-end": {
2651             "codegen-properties": {
2652                 "aliases": [
2653                     "-webkit-margin-after"
2654                 ],
2655                 "skip-builder": true
2656             },
2657             "specification": {
2658                 "category": "css-logical-props",
2659                 "url": "https://www.w3.org/TR/css-logical/#margin-properties"
2660             }
2661         },
2662         "margin-block-start": {
2663             "codegen-properties": {
2664                 "aliases": [
2665                     "-webkit-margin-before"
2666                 ],
2667                 "skip-builder": true
2668             },
2669             "specification": {
2670                 "category": "css-logical-props",
2671                 "url": "https://www.w3.org/TR/css-logical/#margin-properties"
2672             }
2673         },
2674         "margin-bottom": {
2675             "codegen-properties": {
2676                 "initial": "initialMargin",
2677                 "converter": "LengthOrAuto"
2678             },
2679             "specification": {
2680                 "category": "css-22",
2681                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin-bottom"
2682             }
2683         },
2684         "margin-inline-end": {
2685             "codegen-properties": {
2686                 "aliases": [
2687                     "-webkit-margin-end"
2688                 ],
2689                 "skip-builder": true
2690             },
2691             "specification": {
2692                 "category": "css-logical-props",
2693                 "url": "https://www.w3.org/TR/css-logical/#margin-properties"
2694             }
2695         },
2696         "margin-inline-start": {
2697             "codegen-properties": {
2698                 "aliases": [
2699                     "-webkit-margin-start"
2700                 ],
2701                 "skip-builder": true
2702             },
2703             "specification": {
2704                 "category": "css-logical-props",
2705                 "url": "https://www.w3.org/TR/css-logical/#margin-properties"
2706             }
2707         },
2708         "margin-left": {
2709             "codegen-properties": {
2710                 "initial": "initialMargin",
2711                 "converter": "LengthOrAuto"
2712             },
2713             "specification": {
2714                 "category": "css-22",
2715                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin-left"
2716             }
2717         },
2718         "margin-right": {
2719             "codegen-properties": {
2720                 "initial": "initialMargin",
2721                 "converter": "LengthOrAuto"
2722             },
2723             "specification": {
2724                 "category": "css-22",
2725                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin-right"
2726             }
2727         },
2728         "margin-top": {
2729             "codegen-properties": {
2730                 "initial": "initialMargin",
2731                 "converter": "LengthOrAuto"
2732             },
2733             "specification": {
2734                 "category": "css-22",
2735                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin-top"
2736             }
2737         },
2738         "marker": {
2739             "inherited": true,
2740             "codegen-properties": {
2741                 "longhands": [
2742                     "marker-start",
2743                     "marker-mid",
2744                     "marker-end"
2745                 ]
2746             },
2747             "specification": {
2748                 "category": "svg",
2749                 "url": "https://www.w3.org/TR/SVG/painting.html#MarkerProperty"
2750             }
2751         },
2752         "marker-end": {
2753             "inherited": true,
2754             "codegen-properties": {
2755                 "name-for-methods": "MarkerEndResource",
2756                 "converter": "SVGURIReference",
2757                 "svg": true
2758             },
2759             "specification": {
2760                 "category": "svg",
2761                 "url": "https://www.w3.org/TR/SVG/painting.html#MarkerEndProperty"
2762             }
2763         },
2764         "marker-mid": {
2765             "inherited": true,
2766             "codegen-properties": {
2767                 "name-for-methods": "MarkerMidResource",
2768                 "converter": "SVGURIReference",
2769                 "svg": true
2770             },
2771             "specification": {
2772                 "category": "svg",
2773                 "url": "https://www.w3.org/TR/SVG/painting.html#MarkerMidProperty"
2774             }
2775         },
2776         "marker-start": {
2777             "inherited": true,
2778             "codegen-properties": {
2779                 "name-for-methods": "MarkerStartResource",
2780                 "converter": "SVGURIReference",
2781                 "svg": true
2782             },
2783             "specification": {
2784                 "category": "svg",
2785                 "url": "https://www.w3.org/TR/SVG/painting.html#MarkerStartProperty"
2786             }
2787         },
2788         "mask": {
2789             "codegen-properties": {
2790                 "name-for-methods": "MaskerResource",
2791                 "converter": "SVGURIReference",
2792                 "svg": true
2793             },
2794             "specification": {
2795                 "category": "svg",
2796                 "url": "https://www.w3.org/TR/SVG/masking.html#MaskProperty"
2797             }
2798         },
2799         "mask-type": {
2800             "values": [
2801                 "luminance",
2802                 "alpha"
2803             ],
2804             "codegen-properties": {
2805                 "svg": true
2806             },
2807             "specification": {
2808                 "category": "css-masking",
2809                 "url": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-type"
2810             }
2811         },
2812         "max-block-size": {
2813             "codegen-properties": {
2814                 "aliases": [
2815                     "-webkit-max-logical-height"
2816                 ],
2817                 "skip-builder": true
2818             },
2819             "specification": {
2820                 "category": "css-logical-props",
2821                 "url": "https://www.w3.org/TR/css-logical/#dimension-properties"
2822             }
2823         },
2824         "max-height": {
2825             "codegen-properties": {
2826                 "initial": "initialMaxSize",
2827                 "converter": "LengthMaxSizing"
2828             },
2829             "specification": {
2830                 "category": "css-22",
2831                 "url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-max-height"
2832             }
2833         },
2834         "max-inline-size": {
2835             "codegen-properties": {
2836                 "aliases": [
2837                     "-webkit-max-logical-width"
2838                 ],
2839                 "skip-builder": true
2840             },
2841             "specification": {
2842                 "category": "css-logical-props",
2843                 "url": "https://www.w3.org/TR/css-logical/#dimension-properties"
2844             }
2845         },
2846         "max-width": {
2847             "codegen-properties": {
2848                 "initial": "initialMaxSize",
2849                 "converter": "LengthMaxSizing"
2850             },
2851             "specification": {
2852                 "category": "css-22",
2853                 "url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-max-width"
2854             }
2855         },
2856         "min-block-size": {
2857             "codegen-properties": {
2858                 "aliases": [
2859                     "-webkit-min-logical-height"
2860                 ],
2861                 "skip-builder": true
2862             },
2863             "specification": {
2864                 "category": "css-logical-props",
2865                 "url": "https://www.w3.org/TR/css-logical/#dimension-properties"
2866             }
2867         },
2868         "min-height": {
2869             "codegen-properties": {
2870                 "initial": "initialMinSize",
2871                 "converter": "LengthSizing"
2872             },
2873             "specification": {
2874                 "category": "css-22",
2875                 "url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-min-height"
2876             }
2877         },
2878         "min-inline-size": {
2879             "codegen-properties": {
2880                 "aliases": [
2881                     "-webkit-min-logical-width"
2882                 ],
2883                 "skip-builder": true
2884             },
2885             "specification": {
2886                 "category": "css-logical-props",
2887                 "url": "https://www.w3.org/TR/css-logical/#dimension-properties"
2888             }
2889         },
2890         "min-width": {
2891             "codegen-properties": {
2892                 "initial": "initialMinSize",
2893                 "converter": "LengthSizing"
2894             },
2895             "specification": {
2896                 "category": "css-22",
2897                 "url": "https://www.w3.org/TR/CSS22/visudet.html#propdef-min-width"
2898             }
2899         },
2900         "object-fit": {
2901             "values": [
2902                 "fill",
2903                 "contain",
2904                 "cover",
2905                 "none",
2906                 "scale-down"
2907             ],
2908             "specification": {
2909                 "category": "css-images",
2910                 "url": "https://www.w3.org/TR/css3-images/#object-fit"
2911             }
2912         },
2913         "object-position": {
2914             "codegen-properties": {
2915                 "converter": "ObjectPosition"
2916             },
2917             "specification": {
2918                 "category": "css-images",
2919                 "url": "https://www.w3.org/TR/css3-images/#object-position"
2920             }
2921         },
2922         "opacity": {
2923             "codegen-properties": {
2924                 "aliases": [
2925                     "-webkit-opacity"
2926                 ]
2927             },
2928             "status": {
2929                 "comment": "Honor -webkit-opacity as a synonym for opacity. This was the only syntax that worked in Safari 1.1, and may be in use on some websites and widgets."
2930             },
2931             "specification": {
2932                 "category": "css-color",
2933                 "url": "https://www.w3.org/TR/css3-color/#opacity"
2934             }
2935         },
2936         "orphans": {
2937             "inherited": true,
2938             "codegen-properties": {
2939                 "auto-functions": true
2940             },
2941             "specification": {
2942                 "category": "css-22",
2943                 "url": "https://www.w3.org/TR/CSS22/page.html#propdef-orphans"
2944             }
2945         },
2946         "outline": {
2947             "codegen-properties": {
2948                 "longhands": [
2949                     "outline-color",
2950                     "outline-style",
2951                     "outline-width"
2952                 ]
2953             },
2954             "specification": {
2955                 "category": "css-ui",
2956                 "url": "https://www.w3.org/TR/css-ui-3/#propdef-outline"
2957             }
2958         },
2959         "outline-color": {
2960             "codegen-properties": {
2961                 "initial": "invalidColor",
2962                 "visited-link-color-support": true
2963             },
2964             "specification": {
2965                 "category": "css-ui",
2966                 "url": "https://www.w3.org/TR/css-ui-3/#propdef-outline-color"
2967             }
2968         },
2969         "outline-offset": {
2970             "codegen-properties": {
2971                 "converter": "ComputedLength<float>"
2972             },
2973             "specification": {
2974                 "category": "css-ui",
2975                 "url": "https://www.w3.org/TR/css-ui-3/#propdef-outline-offset"
2976             }
2977         },
2978         "outline-style": {
2979             "values": [
2980                 "auto",
2981                 "none",
2982                 "inset",
2983                 "groove",
2984                 "outset",
2985                 "ridge",
2986                 "dotted",
2987                 "dashed",
2988                 "solid",
2989                 "double"
2990             ],
2991             "codegen-properties": {
2992                 "custom": "All"
2993             },
2994             "specification": {
2995                 "category": "css-ui",
2996                 "url": "https://www.w3.org/TR/css-ui-3/#propdef-outline-style"
2997             }
2998         },
2999         "outline-width": {
3000             "codegen-properties": {
3001                 "converter": "LineWidth<float>"
3002             },
3003             "specification": {
3004                 "category": "css-ui",
3005                 "url": "https://www.w3.org/TR/css-ui-3/#propdef-outline-width"
3006             }
3007         },
3008         "overflow": {
3009             "codegen-properties": {
3010                 "longhands": [
3011                     "overflow-x",
3012                     "overflow-y"
3013                 ]
3014             },
3015             "specification": {
3016                 "category": "css-22",
3017                 "url": "https://www.w3.org/TR/CSS22/visufx.html#propdef-overflow"
3018             }
3019         },
3020         "overflow-wrap": {
3021             "values": [
3022                 "normal",
3023                 "break-word"
3024             ],
3025             "specification": {
3026                 "category": "css-text",
3027                 "url": "https://www.w3.org/TR/css-text-3/#overflow-wrap"
3028             }
3029         },
3030         "overflow-x": {
3031             "values": [
3032                 "visible",
3033                 "hidden",
3034                 "scroll",
3035                 "auto"
3036             ],
3037            &nbs