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