tairitsu-style 0.5.0

Type-safe CSS property builders for Tairitsu framework
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
// Auto-generated by build.rs from css_data/css_properties.json
// DO NOT EDIT manually - your changes will be overwritten
//
// This file is generated during the build process.
// To add or modify CSS properties, edit css_data/css_properties.json
// and run `cargo build` to regenerate this file.
//
// Generated from CSS properties data version: 2.0.0
// Source: MDN Web Docs and CSS Specifications
// Last updated: 2024-12-15
// Total properties: 403

use super::category::CssCategory;

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum CssProperty {
    // Animation properties
    Animation,
    AnimationComposition,
    AnimationDelay,
    AnimationDirection,
    AnimationDuration,
    AnimationFillMode,
    AnimationIterationCount,
    AnimationName,
    AnimationPlayState,
    AnimationRange,
    AnimationRangeEnd,
    AnimationRangeStart,
    AnimationTimeline,
    AnimationTimingFunction,

    // BoxModel properties
    AspectRatio,
    BlockSize,
    Border,
    BorderBottom,
    BorderBottomLeftRadius,
    BorderBottomRightRadius,
    BorderColor,
    BorderEndEndRadius,
    BorderEndStartRadius,
    BorderImage,
    BorderImageOutset,
    BorderImageRepeat,
    BorderImageSlice,
    BorderImageSource,
    BorderImageWidth,
    BorderLeft,
    BorderRadius,
    BorderRight,
    BorderStartEndRadius,
    BorderStartStartRadius,
    BorderStyle,
    BorderTop,
    BorderTopLeftRadius,
    BorderTopRightRadius,
    BorderWidth,
    BoxShadow,
    BoxSizing,
    Height,
    InlineSize,
    Margin,
    MarginBlock,
    MarginBlockEnd,
    MarginBlockStart,
    MarginBottom,
    MarginInline,
    MarginInlineEnd,
    MarginInlineStart,
    MarginLeft,
    MarginRight,
    MarginTop,
    MaxBlockSize,
    MaxHeight,
    MaxInlineSize,
    MaxWidth,
    MinBlockSize,
    MinHeight,
    MinInlineSize,
    MinWidth,
    Padding,
    PaddingBlock,
    PaddingBlockEnd,
    PaddingBlockStart,
    PaddingBottom,
    PaddingInline,
    PaddingInlineEnd,
    PaddingInlineStart,
    PaddingLeft,
    PaddingRight,
    PaddingTop,
    Width,

    // Color properties
    Background,
    BackgroundAttachment,
    BackgroundBlendMode,
    BackgroundClip,
    BackgroundColor,
    BackgroundImage,
    BackgroundOrigin,
    BackgroundPosition,
    BackgroundPositionX,
    BackgroundPositionY,
    BackgroundRepeat,
    BackgroundSize,
    Color,
    ColorAdjust,
    ColorScheme,
    ForcedColorAdjust,
    Opacity,
    PrintColorAdjust,

    // FlexGridGap properties
    ColumnGap,
    Gap,
    RowGap,

    // Flexbox properties
    AlignContent,
    AlignItems,
    AlignSelf,
    Flex,
    FlexBasis,
    FlexDirection,
    FlexFlow,
    FlexGrow,
    FlexShrink,
    FlexWrap,
    JustifyContent,
    JustifyItems,
    JustifySelf,
    Order,
    PlaceContent,
    PlaceItems,
    PlaceSelf,

    // GeneratedContent properties
    Content,
    Quotes,
    SetContent,

    // Grid properties
    Grid,
    GridArea,
    GridAutoColumns,
    GridAutoFlow,
    GridAutoRows,
    GridColumn,
    GridColumnEnd,
    GridColumnStart,
    GridRow,
    GridRowEnd,
    GridRowStart,
    GridTemplate,
    GridTemplateAreas,
    GridTemplateColumns,
    GridTemplateRows,

    // Hardware properties
    WillChange,

    // Houdini properties
    ColorInterpolation,
    ColorInterpolationFilters,
    PaintOrder,
    ShapeRendering,
    VectorEffect,

    // Interaction properties
    AccentColor,
    CaretColor,
    Cursor,
    Outline,
    OutlineColor,
    OutlineOffset,
    OutlineStyle,
    OutlineWidth,
    OverscrollBehavior,
    OverscrollBehaviorBlock,
    OverscrollBehaviorInline,
    OverscrollBehaviorX,
    OverscrollBehaviorY,
    PointerEvents,
    Resize,
    ScrollBehavior,
    ScrollMargin,
    ScrollMarginBlock,
    ScrollMarginBlockEnd,
    ScrollMarginBlockStart,
    ScrollMarginBottom,
    ScrollMarginInline,
    ScrollMarginInlineEnd,
    ScrollMarginInlineStart,
    ScrollMarginLeft,
    ScrollMarginRight,
    ScrollMarginTop,
    ScrollPadding,
    ScrollPaddingBlock,
    ScrollPaddingBlockEnd,
    ScrollPaddingBlockStart,
    ScrollPaddingBottom,
    ScrollPaddingInline,
    ScrollPaddingInlineEnd,
    ScrollPaddingInlineStart,
    ScrollPaddingLeft,
    ScrollPaddingRight,
    ScrollPaddingTop,
    ScrollSnapAlign,
    ScrollSnapStop,
    ScrollSnapType,
    UserSelect,

    // Layout properties
    AnchorName,
    Bottom,
    Clear,
    Display,
    Float,
    Inset,
    InsetBlock,
    InsetBlockEnd,
    InsetBlockStart,
    InsetInline,
    InsetInlineEnd,
    InsetInlineStart,
    Isolation,
    Left,
    Overflow,
    OverflowBlock,
    OverflowInline,
    OverflowX,
    OverflowY,
    Position,
    PositionAnchor,
    PositionArea,
    PositionTryOptions,
    Right,
    Top,
    Visibility,
    ZIndex,

    // List properties
    CounterIncrement,
    CounterReset,
    CounterSet,
    ListStyle,
    ListStyleImage,
    ListStylePosition,
    ListStyleType,
    MarkerEnd,
    MarkerMid,
    MarkerStart,

    // Miscellaneous properties
    BlockEllipsis,
    ColumnCount,
    ColumnFill,
    ColumnRule,
    ColumnRuleColor,
    ColumnRuleStyle,
    ColumnRuleWidth,
    ColumnSpan,
    ColumnWidth,
    Columns,
    Contain,
    Container,
    ContainerName,
    ContainerType,
    ContentVisibility,
    Continue,
    Direction,
    FieldSizing,
    FloatOffset,
    ImageOrientation,
    ImageRendering,
    MaxLines,
    MixBlendMode,
    ObjectFit,
    ObjectPosition,
    ObjectViewBox,
    RubyAlign,
    RubyMerge,
    RubyPosition,
    ShapeImageThreshold,
    ShapeMargin,
    ShapeOutside,
    TabSize,
    TextRendering,
    TextSpacingCollapse,
    TextSpacingTrim,
    UnicodeBidi,
    VerticalAlign,
    ViewTransitionName,
    Zoom,

    // MotionPath properties
    Offset,
    OffsetAnchor,
    OffsetDistance,
    OffsetPath,
    OffsetPosition,
    OffsetRotate,

    // Paged properties
    Orphans,
    Page,
    PageBreakAfter,
    PageBreakBefore,
    PageBreakInside,
    PageOrientation,
    Widows,

    // ScrollDriven properties
    ScrollTimeline,
    ScrollTimelineAxis,
    ScrollTimelineName,
    ViewTimeline,
    ViewTimelineAxis,
    ViewTimelineInset,
    ViewTimelineName,

    // Svg properties
    AlignmentBaseline,
    BaselineShift,
    ColorRendering,
    DominantBaseline,
    Fill,
    FillOpacity,
    FillRule,
    InitialLetter,
    InitialLetterAlign,
    ShapeInside,
    ShapeSubtract,
    Stroke,
    StrokeDashCorner,
    StrokeDashJustified,
    StrokeDasharray,
    StrokeDashoffset,
    StrokeLinecap,
    StrokeLinejoin,
    StrokeMiterlimit,
    StrokeOpacity,
    StrokeWidth,

    // Table properties
    BorderCollapse,
    BorderSpacing,
    CaptionSide,
    EmptyCells,
    TableLayout,

    // Transform properties
    BackfaceVisibility,
    Perspective,
    PerspectiveOrigin,
    Rotate,
    Scale,
    Transform,
    TransformBox,
    TransformOrigin,
    TransformStyle,
    Translate,

    // Transition properties
    Transition,
    TransitionBehavior,
    TransitionDelay,
    TransitionDuration,
    TransitionProperty,
    TransitionTimingFunction,

    // Typography properties
    Font,
    FontFamily,
    FontFeatureSettings,
    FontLanguageOverride,
    FontPalette,
    FontSize,
    FontSizeAdjust,
    FontStretch,
    FontStyle,
    FontSynthesis,
    FontSynthesisSmallCaps,
    FontSynthesisStyle,
    FontSynthesisWeight,
    FontVariant,
    FontVariantAlternates,
    FontVariantCaps,
    FontVariantEastAsian,
    FontVariantLigatures,
    FontVariantNumeric,
    FontVariantPosition,
    FontWeight,
    GlyphOrientationVertical,
    HangingPunctuation,
    HyphenateCharacter,
    HyphenateLimitChars,
    Hyphens,
    LetterSpacing,
    LineBreak,
    LineHeight,
    LineHeightStep,
    OverflowWrap,
    TextAlign,
    TextAlignAll,
    TextAlignLast,
    TextCombineUpright,
    TextDecoration,
    TextDecorationColor,
    TextDecorationLine,
    TextDecorationSkip,
    TextDecorationSkipInk,
    TextDecorationStyle,
    TextDecorationThickness,
    TextEmphasis,
    TextEmphasisColor,
    TextEmphasisPosition,
    TextEmphasisStyle,
    TextIndent,
    TextJustify,
    TextOrientation,
    TextOverflow,
    TextShadow,
    TextSizeAdjust,
    TextTransform,
    TextUnderlineOffset,
    TextUnderlinePosition,
    TextWrap,
    TextWrapMode,
    TextWrapStyle,
    WhiteSpace,
    WhiteSpaceCollapse,
    WordBreak,
    WordSpacing,
    WordWrap,
    WritingMode,

    // Visual properties
    BackdropFilter,
    ClipPath,
    ClipRule,
    Filter,
    Mask,
    MaskBorder,
    MaskBorderOutset,
    MaskBorderRepeat,
    MaskBorderSlice,
    MaskBorderSource,
    MaskBorderWidth,
    MaskClip,
    MaskComposite,
    MaskImage,
    MaskMode,
    MaskOrigin,
    MaskPosition,
    MaskPositionX,
    MaskPositionY,
    MaskRepeat,
    MaskSize,
    MaskType,
}

impl CssProperty {
    /// Get the CSS property name as a string.
    #[inline]
    pub fn as_str(&self) -> &'static str {
        match self {
            CssProperty::Animation => "animation",
            CssProperty::AnimationComposition => "animation-composition",
            CssProperty::AnimationDelay => "animation-delay",
            CssProperty::AnimationDirection => "animation-direction",
            CssProperty::AnimationDuration => "animation-duration",
            CssProperty::AnimationFillMode => "animation-fill-mode",
            CssProperty::AnimationIterationCount => "animation-iteration-count",
            CssProperty::AnimationName => "animation-name",
            CssProperty::AnimationPlayState => "animation-play-state",
            CssProperty::AnimationRange => "animation-range",
            CssProperty::AnimationRangeEnd => "animation-range-end",
            CssProperty::AnimationRangeStart => "animation-range-start",
            CssProperty::AnimationTimeline => "animation-timeline",
            CssProperty::AnimationTimingFunction => "animation-timing-function",
            CssProperty::AspectRatio => "aspect-ratio",
            CssProperty::BlockSize => "block-size",
            CssProperty::Border => "border",
            CssProperty::BorderBottom => "border-bottom",
            CssProperty::BorderBottomLeftRadius => "border-bottom-left-radius",
            CssProperty::BorderBottomRightRadius => "border-bottom-right-radius",
            CssProperty::BorderColor => "border-color",
            CssProperty::BorderEndEndRadius => "border-end-end-radius",
            CssProperty::BorderEndStartRadius => "border-end-start-radius",
            CssProperty::BorderImage => "border-image",
            CssProperty::BorderImageOutset => "border-image-outset",
            CssProperty::BorderImageRepeat => "border-image-repeat",
            CssProperty::BorderImageSlice => "border-image-slice",
            CssProperty::BorderImageSource => "border-image-source",
            CssProperty::BorderImageWidth => "border-image-width",
            CssProperty::BorderLeft => "border-left",
            CssProperty::BorderRadius => "border-radius",
            CssProperty::BorderRight => "border-right",
            CssProperty::BorderStartEndRadius => "border-start-end-radius",
            CssProperty::BorderStartStartRadius => "border-start-start-radius",
            CssProperty::BorderStyle => "border-style",
            CssProperty::BorderTop => "border-top",
            CssProperty::BorderTopLeftRadius => "border-top-left-radius",
            CssProperty::BorderTopRightRadius => "border-top-right-radius",
            CssProperty::BorderWidth => "border-width",
            CssProperty::BoxShadow => "box-shadow",
            CssProperty::BoxSizing => "box-sizing",
            CssProperty::Height => "height",
            CssProperty::InlineSize => "inline-size",
            CssProperty::Margin => "margin",
            CssProperty::MarginBlock => "margin-block",
            CssProperty::MarginBlockEnd => "margin-block-end",
            CssProperty::MarginBlockStart => "margin-block-start",
            CssProperty::MarginBottom => "margin-bottom",
            CssProperty::MarginInline => "margin-inline",
            CssProperty::MarginInlineEnd => "margin-inline-end",
            CssProperty::MarginInlineStart => "margin-inline-start",
            CssProperty::MarginLeft => "margin-left",
            CssProperty::MarginRight => "margin-right",
            CssProperty::MarginTop => "margin-top",
            CssProperty::MaxBlockSize => "max-block-size",
            CssProperty::MaxHeight => "max-height",
            CssProperty::MaxInlineSize => "max-inline-size",
            CssProperty::MaxWidth => "max-width",
            CssProperty::MinBlockSize => "min-block-size",
            CssProperty::MinHeight => "min-height",
            CssProperty::MinInlineSize => "min-inline-size",
            CssProperty::MinWidth => "min-width",
            CssProperty::Padding => "padding",
            CssProperty::PaddingBlock => "padding-block",
            CssProperty::PaddingBlockEnd => "padding-block-end",
            CssProperty::PaddingBlockStart => "padding-block-start",
            CssProperty::PaddingBottom => "padding-bottom",
            CssProperty::PaddingInline => "padding-inline",
            CssProperty::PaddingInlineEnd => "padding-inline-end",
            CssProperty::PaddingInlineStart => "padding-inline-start",
            CssProperty::PaddingLeft => "padding-left",
            CssProperty::PaddingRight => "padding-right",
            CssProperty::PaddingTop => "padding-top",
            CssProperty::Width => "width",
            CssProperty::Background => "background",
            CssProperty::BackgroundAttachment => "background-attachment",
            CssProperty::BackgroundBlendMode => "background-blend-mode",
            CssProperty::BackgroundClip => "background-clip",
            CssProperty::BackgroundColor => "background-color",
            CssProperty::BackgroundImage => "background-image",
            CssProperty::BackgroundOrigin => "background-origin",
            CssProperty::BackgroundPosition => "background-position",
            CssProperty::BackgroundPositionX => "background-position-x",
            CssProperty::BackgroundPositionY => "background-position-y",
            CssProperty::BackgroundRepeat => "background-repeat",
            CssProperty::BackgroundSize => "background-size",
            CssProperty::Color => "color",
            CssProperty::ColorAdjust => "color-adjust",
            CssProperty::ColorScheme => "color-scheme",
            CssProperty::ForcedColorAdjust => "forced-color-adjust",
            CssProperty::Opacity => "opacity",
            CssProperty::PrintColorAdjust => "print-color-adjust",
            CssProperty::ColumnGap => "column-gap",
            CssProperty::Gap => "gap",
            CssProperty::RowGap => "row-gap",
            CssProperty::AlignContent => "align-content",
            CssProperty::AlignItems => "align-items",
            CssProperty::AlignSelf => "align-self",
            CssProperty::Flex => "flex",
            CssProperty::FlexBasis => "flex-basis",
            CssProperty::FlexDirection => "flex-direction",
            CssProperty::FlexFlow => "flex-flow",
            CssProperty::FlexGrow => "flex-grow",
            CssProperty::FlexShrink => "flex-shrink",
            CssProperty::FlexWrap => "flex-wrap",
            CssProperty::JustifyContent => "justify-content",
            CssProperty::JustifyItems => "justify-items",
            CssProperty::JustifySelf => "justify-self",
            CssProperty::Order => "order",
            CssProperty::PlaceContent => "place-content",
            CssProperty::PlaceItems => "place-items",
            CssProperty::PlaceSelf => "place-self",
            CssProperty::Content => "content",
            CssProperty::Quotes => "quotes",
            CssProperty::SetContent => "set-content",
            CssProperty::Grid => "grid",
            CssProperty::GridArea => "grid-area",
            CssProperty::GridAutoColumns => "grid-auto-columns",
            CssProperty::GridAutoFlow => "grid-auto-flow",
            CssProperty::GridAutoRows => "grid-auto-rows",
            CssProperty::GridColumn => "grid-column",
            CssProperty::GridColumnEnd => "grid-column-end",
            CssProperty::GridColumnStart => "grid-column-start",
            CssProperty::GridRow => "grid-row",
            CssProperty::GridRowEnd => "grid-row-end",
            CssProperty::GridRowStart => "grid-row-start",
            CssProperty::GridTemplate => "grid-template",
            CssProperty::GridTemplateAreas => "grid-template-areas",
            CssProperty::GridTemplateColumns => "grid-template-columns",
            CssProperty::GridTemplateRows => "grid-template-rows",
            CssProperty::WillChange => "will-change",
            CssProperty::ColorInterpolation => "color-interpolation",
            CssProperty::ColorInterpolationFilters => "color-interpolation-filters",
            CssProperty::PaintOrder => "paint-order",
            CssProperty::ShapeRendering => "shape-rendering",
            CssProperty::VectorEffect => "vector-effect",
            CssProperty::AccentColor => "accent-color",
            CssProperty::CaretColor => "caret-color",
            CssProperty::Cursor => "cursor",
            CssProperty::Outline => "outline",
            CssProperty::OutlineColor => "outline-color",
            CssProperty::OutlineOffset => "outline-offset",
            CssProperty::OutlineStyle => "outline-style",
            CssProperty::OutlineWidth => "outline-width",
            CssProperty::OverscrollBehavior => "overscroll-behavior",
            CssProperty::OverscrollBehaviorBlock => "overscroll-behavior-block",
            CssProperty::OverscrollBehaviorInline => "overscroll-behavior-inline",
            CssProperty::OverscrollBehaviorX => "overscroll-behavior-x",
            CssProperty::OverscrollBehaviorY => "overscroll-behavior-y",
            CssProperty::PointerEvents => "pointer-events",
            CssProperty::Resize => "resize",
            CssProperty::ScrollBehavior => "scroll-behavior",
            CssProperty::ScrollMargin => "scroll-margin",
            CssProperty::ScrollMarginBlock => "scroll-margin-block",
            CssProperty::ScrollMarginBlockEnd => "scroll-margin-block-end",
            CssProperty::ScrollMarginBlockStart => "scroll-margin-block-start",
            CssProperty::ScrollMarginBottom => "scroll-margin-bottom",
            CssProperty::ScrollMarginInline => "scroll-margin-inline",
            CssProperty::ScrollMarginInlineEnd => "scroll-margin-inline-end",
            CssProperty::ScrollMarginInlineStart => "scroll-margin-inline-start",
            CssProperty::ScrollMarginLeft => "scroll-margin-left",
            CssProperty::ScrollMarginRight => "scroll-margin-right",
            CssProperty::ScrollMarginTop => "scroll-margin-top",
            CssProperty::ScrollPadding => "scroll-padding",
            CssProperty::ScrollPaddingBlock => "scroll-padding-block",
            CssProperty::ScrollPaddingBlockEnd => "scroll-padding-block-end",
            CssProperty::ScrollPaddingBlockStart => "scroll-padding-block-start",
            CssProperty::ScrollPaddingBottom => "scroll-padding-bottom",
            CssProperty::ScrollPaddingInline => "scroll-padding-inline",
            CssProperty::ScrollPaddingInlineEnd => "scroll-padding-inline-end",
            CssProperty::ScrollPaddingInlineStart => "scroll-padding-inline-start",
            CssProperty::ScrollPaddingLeft => "scroll-padding-left",
            CssProperty::ScrollPaddingRight => "scroll-padding-right",
            CssProperty::ScrollPaddingTop => "scroll-padding-top",
            CssProperty::ScrollSnapAlign => "scroll-snap-align",
            CssProperty::ScrollSnapStop => "scroll-snap-stop",
            CssProperty::ScrollSnapType => "scroll-snap-type",
            CssProperty::UserSelect => "user-select",
            CssProperty::AnchorName => "anchor-name",
            CssProperty::Bottom => "bottom",
            CssProperty::Clear => "clear",
            CssProperty::Display => "display",
            CssProperty::Float => "float",
            CssProperty::Inset => "inset",
            CssProperty::InsetBlock => "inset-block",
            CssProperty::InsetBlockEnd => "inset-block-end",
            CssProperty::InsetBlockStart => "inset-block-start",
            CssProperty::InsetInline => "inset-inline",
            CssProperty::InsetInlineEnd => "inset-inline-end",
            CssProperty::InsetInlineStart => "inset-inline-start",
            CssProperty::Isolation => "isolation",
            CssProperty::Left => "left",
            CssProperty::Overflow => "overflow",
            CssProperty::OverflowBlock => "overflow-block",
            CssProperty::OverflowInline => "overflow-inline",
            CssProperty::OverflowX => "overflow-x",
            CssProperty::OverflowY => "overflow-y",
            CssProperty::Position => "position",
            CssProperty::PositionAnchor => "position-anchor",
            CssProperty::PositionArea => "position-area",
            CssProperty::PositionTryOptions => "position-try-options",
            CssProperty::Right => "right",
            CssProperty::Top => "top",
            CssProperty::Visibility => "visibility",
            CssProperty::ZIndex => "z-index",
            CssProperty::CounterIncrement => "counter-increment",
            CssProperty::CounterReset => "counter-reset",
            CssProperty::CounterSet => "counter-set",
            CssProperty::ListStyle => "list-style",
            CssProperty::ListStyleImage => "list-style-image",
            CssProperty::ListStylePosition => "list-style-position",
            CssProperty::ListStyleType => "list-style-type",
            CssProperty::MarkerEnd => "marker-end",
            CssProperty::MarkerMid => "marker-mid",
            CssProperty::MarkerStart => "marker-start",
            CssProperty::BlockEllipsis => "block-ellipsis",
            CssProperty::ColumnCount => "column-count",
            CssProperty::ColumnFill => "column-fill",
            CssProperty::ColumnRule => "column-rule",
            CssProperty::ColumnRuleColor => "column-rule-color",
            CssProperty::ColumnRuleStyle => "column-rule-style",
            CssProperty::ColumnRuleWidth => "column-rule-width",
            CssProperty::ColumnSpan => "column-span",
            CssProperty::ColumnWidth => "column-width",
            CssProperty::Columns => "columns",
            CssProperty::Contain => "contain",
            CssProperty::Container => "container",
            CssProperty::ContainerName => "container-name",
            CssProperty::ContainerType => "container-type",
            CssProperty::ContentVisibility => "content-visibility",
            CssProperty::Continue => "continue",
            CssProperty::Direction => "direction",
            CssProperty::FieldSizing => "field-sizing",
            CssProperty::FloatOffset => "float-offset",
            CssProperty::ImageOrientation => "image-orientation",
            CssProperty::ImageRendering => "image-rendering",
            CssProperty::MaxLines => "max-lines",
            CssProperty::MixBlendMode => "mix-blend-mode",
            CssProperty::ObjectFit => "object-fit",
            CssProperty::ObjectPosition => "object-position",
            CssProperty::ObjectViewBox => "object-view-box",
            CssProperty::RubyAlign => "ruby-align",
            CssProperty::RubyMerge => "ruby-merge",
            CssProperty::RubyPosition => "ruby-position",
            CssProperty::ShapeImageThreshold => "shape-image-threshold",
            CssProperty::ShapeMargin => "shape-margin",
            CssProperty::ShapeOutside => "shape-outside",
            CssProperty::TabSize => "tab-size",
            CssProperty::TextRendering => "text-rendering",
            CssProperty::TextSpacingCollapse => "text-spacing-collapse",
            CssProperty::TextSpacingTrim => "text-spacing-trim",
            CssProperty::UnicodeBidi => "unicode-bidi",
            CssProperty::VerticalAlign => "vertical-align",
            CssProperty::ViewTransitionName => "view-transition-name",
            CssProperty::Zoom => "zoom",
            CssProperty::Offset => "offset",
            CssProperty::OffsetAnchor => "offset-anchor",
            CssProperty::OffsetDistance => "offset-distance",
            CssProperty::OffsetPath => "offset-path",
            CssProperty::OffsetPosition => "offset-position",
            CssProperty::OffsetRotate => "offset-rotate",
            CssProperty::Orphans => "orphans",
            CssProperty::Page => "page",
            CssProperty::PageBreakAfter => "page-break-after",
            CssProperty::PageBreakBefore => "page-break-before",
            CssProperty::PageBreakInside => "page-break-inside",
            CssProperty::PageOrientation => "page-orientation",
            CssProperty::Widows => "widows",
            CssProperty::ScrollTimeline => "scroll-timeline",
            CssProperty::ScrollTimelineAxis => "scroll-timeline-axis",
            CssProperty::ScrollTimelineName => "scroll-timeline-name",
            CssProperty::ViewTimeline => "view-timeline",
            CssProperty::ViewTimelineAxis => "view-timeline-axis",
            CssProperty::ViewTimelineInset => "view-timeline-inset",
            CssProperty::ViewTimelineName => "view-timeline-name",
            CssProperty::AlignmentBaseline => "alignment-baseline",
            CssProperty::BaselineShift => "baseline-shift",
            CssProperty::ColorRendering => "color-rendering",
            CssProperty::DominantBaseline => "dominant-baseline",
            CssProperty::Fill => "fill",
            CssProperty::FillOpacity => "fill-opacity",
            CssProperty::FillRule => "fill-rule",
            CssProperty::InitialLetter => "initial-letter",
            CssProperty::InitialLetterAlign => "initial-letter-align",
            CssProperty::ShapeInside => "shape-inside",
            CssProperty::ShapeSubtract => "shape-subtract",
            CssProperty::Stroke => "stroke",
            CssProperty::StrokeDashCorner => "stroke-dash-corner",
            CssProperty::StrokeDashJustified => "stroke-dash-justified",
            CssProperty::StrokeDasharray => "stroke-dasharray",
            CssProperty::StrokeDashoffset => "stroke-dashoffset",
            CssProperty::StrokeLinecap => "stroke-linecap",
            CssProperty::StrokeLinejoin => "stroke-linejoin",
            CssProperty::StrokeMiterlimit => "stroke-miterlimit",
            CssProperty::StrokeOpacity => "stroke-opacity",
            CssProperty::StrokeWidth => "stroke-width",
            CssProperty::BorderCollapse => "border-collapse",
            CssProperty::BorderSpacing => "border-spacing",
            CssProperty::CaptionSide => "caption-side",
            CssProperty::EmptyCells => "empty-cells",
            CssProperty::TableLayout => "table-layout",
            CssProperty::BackfaceVisibility => "backface-visibility",
            CssProperty::Perspective => "perspective",
            CssProperty::PerspectiveOrigin => "perspective-origin",
            CssProperty::Rotate => "rotate",
            CssProperty::Scale => "scale",
            CssProperty::Transform => "transform",
            CssProperty::TransformBox => "transform-box",
            CssProperty::TransformOrigin => "transform-origin",
            CssProperty::TransformStyle => "transform-style",
            CssProperty::Translate => "translate",
            CssProperty::Transition => "transition",
            CssProperty::TransitionBehavior => "transition-behavior",
            CssProperty::TransitionDelay => "transition-delay",
            CssProperty::TransitionDuration => "transition-duration",
            CssProperty::TransitionProperty => "transition-property",
            CssProperty::TransitionTimingFunction => "transition-timing-function",
            CssProperty::Font => "font",
            CssProperty::FontFamily => "font-family",
            CssProperty::FontFeatureSettings => "font-feature-settings",
            CssProperty::FontLanguageOverride => "font-language-override",
            CssProperty::FontPalette => "font-palette",
            CssProperty::FontSize => "font-size",
            CssProperty::FontSizeAdjust => "font-size-adjust",
            CssProperty::FontStretch => "font-stretch",
            CssProperty::FontStyle => "font-style",
            CssProperty::FontSynthesis => "font-synthesis",
            CssProperty::FontSynthesisSmallCaps => "font-synthesis-small-caps",
            CssProperty::FontSynthesisStyle => "font-synthesis-style",
            CssProperty::FontSynthesisWeight => "font-synthesis-weight",
            CssProperty::FontVariant => "font-variant",
            CssProperty::FontVariantAlternates => "font-variant-alternates",
            CssProperty::FontVariantCaps => "font-variant-caps",
            CssProperty::FontVariantEastAsian => "font-variant-east-asian",
            CssProperty::FontVariantLigatures => "font-variant-ligatures",
            CssProperty::FontVariantNumeric => "font-variant-numeric",
            CssProperty::FontVariantPosition => "font-variant-position",
            CssProperty::FontWeight => "font-weight",
            CssProperty::GlyphOrientationVertical => "glyph-orientation-vertical",
            CssProperty::HangingPunctuation => "hanging-punctuation",
            CssProperty::HyphenateCharacter => "hyphenate-character",
            CssProperty::HyphenateLimitChars => "hyphenate-limit-chars",
            CssProperty::Hyphens => "hyphens",
            CssProperty::LetterSpacing => "letter-spacing",
            CssProperty::LineBreak => "line-break",
            CssProperty::LineHeight => "line-height",
            CssProperty::LineHeightStep => "line-height-step",
            CssProperty::OverflowWrap => "overflow-wrap",
            CssProperty::TextAlign => "text-align",
            CssProperty::TextAlignAll => "text-align-all",
            CssProperty::TextAlignLast => "text-align-last",
            CssProperty::TextCombineUpright => "text-combine-upright",
            CssProperty::TextDecoration => "text-decoration",
            CssProperty::TextDecorationColor => "text-decoration-color",
            CssProperty::TextDecorationLine => "text-decoration-line",
            CssProperty::TextDecorationSkip => "text-decoration-skip",
            CssProperty::TextDecorationSkipInk => "text-decoration-skip-ink",
            CssProperty::TextDecorationStyle => "text-decoration-style",
            CssProperty::TextDecorationThickness => "text-decoration-thickness",
            CssProperty::TextEmphasis => "text-emphasis",
            CssProperty::TextEmphasisColor => "text-emphasis-color",
            CssProperty::TextEmphasisPosition => "text-emphasis-position",
            CssProperty::TextEmphasisStyle => "text-emphasis-style",
            CssProperty::TextIndent => "text-indent",
            CssProperty::TextJustify => "text-justify",
            CssProperty::TextOrientation => "text-orientation",
            CssProperty::TextOverflow => "text-overflow",
            CssProperty::TextShadow => "text-shadow",
            CssProperty::TextSizeAdjust => "text-size-adjust",
            CssProperty::TextTransform => "text-transform",
            CssProperty::TextUnderlineOffset => "text-underline-offset",
            CssProperty::TextUnderlinePosition => "text-underline-position",
            CssProperty::TextWrap => "text-wrap",
            CssProperty::TextWrapMode => "text-wrap-mode",
            CssProperty::TextWrapStyle => "text-wrap-style",
            CssProperty::WhiteSpace => "white-space",
            CssProperty::WhiteSpaceCollapse => "white-space-collapse",
            CssProperty::WordBreak => "word-break",
            CssProperty::WordSpacing => "word-spacing",
            CssProperty::WordWrap => "word-wrap",
            CssProperty::WritingMode => "writing-mode",
            CssProperty::BackdropFilter => "backdrop-filter",
            CssProperty::ClipPath => "clip-path",
            CssProperty::ClipRule => "clip-rule",
            CssProperty::Filter => "filter",
            CssProperty::Mask => "mask",
            CssProperty::MaskBorder => "mask-border",
            CssProperty::MaskBorderOutset => "mask-border-outset",
            CssProperty::MaskBorderRepeat => "mask-border-repeat",
            CssProperty::MaskBorderSlice => "mask-border-slice",
            CssProperty::MaskBorderSource => "mask-border-source",
            CssProperty::MaskBorderWidth => "mask-border-width",
            CssProperty::MaskClip => "mask-clip",
            CssProperty::MaskComposite => "mask-composite",
            CssProperty::MaskImage => "mask-image",
            CssProperty::MaskMode => "mask-mode",
            CssProperty::MaskOrigin => "mask-origin",
            CssProperty::MaskPosition => "mask-position",
            CssProperty::MaskPositionX => "mask-position-x",
            CssProperty::MaskPositionY => "mask-position-y",
            CssProperty::MaskRepeat => "mask-repeat",
            CssProperty::MaskSize => "mask-size",
            CssProperty::MaskType => "mask-type",
        }
    }

    /// Get the category of this CSS property.
    #[inline]
    pub fn category(&self) -> CssCategory {
        match self {
            CssProperty::Animation => CssCategory::Animation,
            CssProperty::AnimationComposition => CssCategory::Animation,
            CssProperty::AnimationDelay => CssCategory::Animation,
            CssProperty::AnimationDirection => CssCategory::Animation,
            CssProperty::AnimationDuration => CssCategory::Animation,
            CssProperty::AnimationFillMode => CssCategory::Animation,
            CssProperty::AnimationIterationCount => CssCategory::Animation,
            CssProperty::AnimationName => CssCategory::Animation,
            CssProperty::AnimationPlayState => CssCategory::Animation,
            CssProperty::AnimationRange => CssCategory::Animation,
            CssProperty::AnimationRangeEnd => CssCategory::Animation,
            CssProperty::AnimationRangeStart => CssCategory::Animation,
            CssProperty::AnimationTimeline => CssCategory::Animation,
            CssProperty::AnimationTimingFunction => CssCategory::Animation,
            CssProperty::AspectRatio => CssCategory::BoxModel,
            CssProperty::BlockSize => CssCategory::BoxModel,
            CssProperty::Border => CssCategory::BoxModel,
            CssProperty::BorderBottom => CssCategory::BoxModel,
            CssProperty::BorderBottomLeftRadius => CssCategory::BoxModel,
            CssProperty::BorderBottomRightRadius => CssCategory::BoxModel,
            CssProperty::BorderColor => CssCategory::BoxModel,
            CssProperty::BorderEndEndRadius => CssCategory::BoxModel,
            CssProperty::BorderEndStartRadius => CssCategory::BoxModel,
            CssProperty::BorderImage => CssCategory::BoxModel,
            CssProperty::BorderImageOutset => CssCategory::BoxModel,
            CssProperty::BorderImageRepeat => CssCategory::BoxModel,
            CssProperty::BorderImageSlice => CssCategory::BoxModel,
            CssProperty::BorderImageSource => CssCategory::BoxModel,
            CssProperty::BorderImageWidth => CssCategory::BoxModel,
            CssProperty::BorderLeft => CssCategory::BoxModel,
            CssProperty::BorderRadius => CssCategory::BoxModel,
            CssProperty::BorderRight => CssCategory::BoxModel,
            CssProperty::BorderStartEndRadius => CssCategory::BoxModel,
            CssProperty::BorderStartStartRadius => CssCategory::BoxModel,
            CssProperty::BorderStyle => CssCategory::BoxModel,
            CssProperty::BorderTop => CssCategory::BoxModel,
            CssProperty::BorderTopLeftRadius => CssCategory::BoxModel,
            CssProperty::BorderTopRightRadius => CssCategory::BoxModel,
            CssProperty::BorderWidth => CssCategory::BoxModel,
            CssProperty::BoxShadow => CssCategory::BoxModel,
            CssProperty::BoxSizing => CssCategory::BoxModel,
            CssProperty::Height => CssCategory::BoxModel,
            CssProperty::InlineSize => CssCategory::BoxModel,
            CssProperty::Margin => CssCategory::BoxModel,
            CssProperty::MarginBlock => CssCategory::BoxModel,
            CssProperty::MarginBlockEnd => CssCategory::BoxModel,
            CssProperty::MarginBlockStart => CssCategory::BoxModel,
            CssProperty::MarginBottom => CssCategory::BoxModel,
            CssProperty::MarginInline => CssCategory::BoxModel,
            CssProperty::MarginInlineEnd => CssCategory::BoxModel,
            CssProperty::MarginInlineStart => CssCategory::BoxModel,
            CssProperty::MarginLeft => CssCategory::BoxModel,
            CssProperty::MarginRight => CssCategory::BoxModel,
            CssProperty::MarginTop => CssCategory::BoxModel,
            CssProperty::MaxBlockSize => CssCategory::BoxModel,
            CssProperty::MaxHeight => CssCategory::BoxModel,
            CssProperty::MaxInlineSize => CssCategory::BoxModel,
            CssProperty::MaxWidth => CssCategory::BoxModel,
            CssProperty::MinBlockSize => CssCategory::BoxModel,
            CssProperty::MinHeight => CssCategory::BoxModel,
            CssProperty::MinInlineSize => CssCategory::BoxModel,
            CssProperty::MinWidth => CssCategory::BoxModel,
            CssProperty::Padding => CssCategory::BoxModel,
            CssProperty::PaddingBlock => CssCategory::BoxModel,
            CssProperty::PaddingBlockEnd => CssCategory::BoxModel,
            CssProperty::PaddingBlockStart => CssCategory::BoxModel,
            CssProperty::PaddingBottom => CssCategory::BoxModel,
            CssProperty::PaddingInline => CssCategory::BoxModel,
            CssProperty::PaddingInlineEnd => CssCategory::BoxModel,
            CssProperty::PaddingInlineStart => CssCategory::BoxModel,
            CssProperty::PaddingLeft => CssCategory::BoxModel,
            CssProperty::PaddingRight => CssCategory::BoxModel,
            CssProperty::PaddingTop => CssCategory::BoxModel,
            CssProperty::Width => CssCategory::BoxModel,
            CssProperty::Background => CssCategory::Color,
            CssProperty::BackgroundAttachment => CssCategory::Color,
            CssProperty::BackgroundBlendMode => CssCategory::Color,
            CssProperty::BackgroundClip => CssCategory::Color,
            CssProperty::BackgroundColor => CssCategory::Color,
            CssProperty::BackgroundImage => CssCategory::Color,
            CssProperty::BackgroundOrigin => CssCategory::Color,
            CssProperty::BackgroundPosition => CssCategory::Color,
            CssProperty::BackgroundPositionX => CssCategory::Color,
            CssProperty::BackgroundPositionY => CssCategory::Color,
            CssProperty::BackgroundRepeat => CssCategory::Color,
            CssProperty::BackgroundSize => CssCategory::Color,
            CssProperty::Color => CssCategory::Color,
            CssProperty::ColorAdjust => CssCategory::Color,
            CssProperty::ColorScheme => CssCategory::Color,
            CssProperty::ForcedColorAdjust => CssCategory::Color,
            CssProperty::Opacity => CssCategory::Color,
            CssProperty::PrintColorAdjust => CssCategory::Color,
            CssProperty::ColumnGap => CssCategory::FlexGridGap,
            CssProperty::Gap => CssCategory::FlexGridGap,
            CssProperty::RowGap => CssCategory::FlexGridGap,
            CssProperty::AlignContent => CssCategory::Flexbox,
            CssProperty::AlignItems => CssCategory::Flexbox,
            CssProperty::AlignSelf => CssCategory::Flexbox,
            CssProperty::Flex => CssCategory::Flexbox,
            CssProperty::FlexBasis => CssCategory::Flexbox,
            CssProperty::FlexDirection => CssCategory::Flexbox,
            CssProperty::FlexFlow => CssCategory::Flexbox,
            CssProperty::FlexGrow => CssCategory::Flexbox,
            CssProperty::FlexShrink => CssCategory::Flexbox,
            CssProperty::FlexWrap => CssCategory::Flexbox,
            CssProperty::JustifyContent => CssCategory::Flexbox,
            CssProperty::JustifyItems => CssCategory::Flexbox,
            CssProperty::JustifySelf => CssCategory::Flexbox,
            CssProperty::Order => CssCategory::Flexbox,
            CssProperty::PlaceContent => CssCategory::Flexbox,
            CssProperty::PlaceItems => CssCategory::Flexbox,
            CssProperty::PlaceSelf => CssCategory::Flexbox,
            CssProperty::Content => CssCategory::GeneratedContent,
            CssProperty::Quotes => CssCategory::GeneratedContent,
            CssProperty::SetContent => CssCategory::GeneratedContent,
            CssProperty::Grid => CssCategory::Grid,
            CssProperty::GridArea => CssCategory::Grid,
            CssProperty::GridAutoColumns => CssCategory::Grid,
            CssProperty::GridAutoFlow => CssCategory::Grid,
            CssProperty::GridAutoRows => CssCategory::Grid,
            CssProperty::GridColumn => CssCategory::Grid,
            CssProperty::GridColumnEnd => CssCategory::Grid,
            CssProperty::GridColumnStart => CssCategory::Grid,
            CssProperty::GridRow => CssCategory::Grid,
            CssProperty::GridRowEnd => CssCategory::Grid,
            CssProperty::GridRowStart => CssCategory::Grid,
            CssProperty::GridTemplate => CssCategory::Grid,
            CssProperty::GridTemplateAreas => CssCategory::Grid,
            CssProperty::GridTemplateColumns => CssCategory::Grid,
            CssProperty::GridTemplateRows => CssCategory::Grid,
            CssProperty::WillChange => CssCategory::Hardware,
            CssProperty::ColorInterpolation => CssCategory::Houdini,
            CssProperty::ColorInterpolationFilters => CssCategory::Houdini,
            CssProperty::PaintOrder => CssCategory::Houdini,
            CssProperty::ShapeRendering => CssCategory::Houdini,
            CssProperty::VectorEffect => CssCategory::Houdini,
            CssProperty::AccentColor => CssCategory::Interaction,
            CssProperty::CaretColor => CssCategory::Interaction,
            CssProperty::Cursor => CssCategory::Interaction,
            CssProperty::Outline => CssCategory::Interaction,
            CssProperty::OutlineColor => CssCategory::Interaction,
            CssProperty::OutlineOffset => CssCategory::Interaction,
            CssProperty::OutlineStyle => CssCategory::Interaction,
            CssProperty::OutlineWidth => CssCategory::Interaction,
            CssProperty::OverscrollBehavior => CssCategory::Interaction,
            CssProperty::OverscrollBehaviorBlock => CssCategory::Interaction,
            CssProperty::OverscrollBehaviorInline => CssCategory::Interaction,
            CssProperty::OverscrollBehaviorX => CssCategory::Interaction,
            CssProperty::OverscrollBehaviorY => CssCategory::Interaction,
            CssProperty::PointerEvents => CssCategory::Interaction,
            CssProperty::Resize => CssCategory::Interaction,
            CssProperty::ScrollBehavior => CssCategory::Interaction,
            CssProperty::ScrollMargin => CssCategory::Interaction,
            CssProperty::ScrollMarginBlock => CssCategory::Interaction,
            CssProperty::ScrollMarginBlockEnd => CssCategory::Interaction,
            CssProperty::ScrollMarginBlockStart => CssCategory::Interaction,
            CssProperty::ScrollMarginBottom => CssCategory::Interaction,
            CssProperty::ScrollMarginInline => CssCategory::Interaction,
            CssProperty::ScrollMarginInlineEnd => CssCategory::Interaction,
            CssProperty::ScrollMarginInlineStart => CssCategory::Interaction,
            CssProperty::ScrollMarginLeft => CssCategory::Interaction,
            CssProperty::ScrollMarginRight => CssCategory::Interaction,
            CssProperty::ScrollMarginTop => CssCategory::Interaction,
            CssProperty::ScrollPadding => CssCategory::Interaction,
            CssProperty::ScrollPaddingBlock => CssCategory::Interaction,
            CssProperty::ScrollPaddingBlockEnd => CssCategory::Interaction,
            CssProperty::ScrollPaddingBlockStart => CssCategory::Interaction,
            CssProperty::ScrollPaddingBottom => CssCategory::Interaction,
            CssProperty::ScrollPaddingInline => CssCategory::Interaction,
            CssProperty::ScrollPaddingInlineEnd => CssCategory::Interaction,
            CssProperty::ScrollPaddingInlineStart => CssCategory::Interaction,
            CssProperty::ScrollPaddingLeft => CssCategory::Interaction,
            CssProperty::ScrollPaddingRight => CssCategory::Interaction,
            CssProperty::ScrollPaddingTop => CssCategory::Interaction,
            CssProperty::ScrollSnapAlign => CssCategory::Interaction,
            CssProperty::ScrollSnapStop => CssCategory::Interaction,
            CssProperty::ScrollSnapType => CssCategory::Interaction,
            CssProperty::UserSelect => CssCategory::Interaction,
            CssProperty::AnchorName => CssCategory::Layout,
            CssProperty::Bottom => CssCategory::Layout,
            CssProperty::Clear => CssCategory::Layout,
            CssProperty::Display => CssCategory::Layout,
            CssProperty::Float => CssCategory::Layout,
            CssProperty::Inset => CssCategory::Layout,
            CssProperty::InsetBlock => CssCategory::Layout,
            CssProperty::InsetBlockEnd => CssCategory::Layout,
            CssProperty::InsetBlockStart => CssCategory::Layout,
            CssProperty::InsetInline => CssCategory::Layout,
            CssProperty::InsetInlineEnd => CssCategory::Layout,
            CssProperty::InsetInlineStart => CssCategory::Layout,
            CssProperty::Isolation => CssCategory::Layout,
            CssProperty::Left => CssCategory::Layout,
            CssProperty::Overflow => CssCategory::Layout,
            CssProperty::OverflowBlock => CssCategory::Layout,
            CssProperty::OverflowInline => CssCategory::Layout,
            CssProperty::OverflowX => CssCategory::Layout,
            CssProperty::OverflowY => CssCategory::Layout,
            CssProperty::Position => CssCategory::Layout,
            CssProperty::PositionAnchor => CssCategory::Layout,
            CssProperty::PositionArea => CssCategory::Layout,
            CssProperty::PositionTryOptions => CssCategory::Layout,
            CssProperty::Right => CssCategory::Layout,
            CssProperty::Top => CssCategory::Layout,
            CssProperty::Visibility => CssCategory::Layout,
            CssProperty::ZIndex => CssCategory::Layout,
            CssProperty::CounterIncrement => CssCategory::List,
            CssProperty::CounterReset => CssCategory::List,
            CssProperty::CounterSet => CssCategory::List,
            CssProperty::ListStyle => CssCategory::List,
            CssProperty::ListStyleImage => CssCategory::List,
            CssProperty::ListStylePosition => CssCategory::List,
            CssProperty::ListStyleType => CssCategory::List,
            CssProperty::MarkerEnd => CssCategory::List,
            CssProperty::MarkerMid => CssCategory::List,
            CssProperty::MarkerStart => CssCategory::List,
            CssProperty::BlockEllipsis => CssCategory::Miscellaneous,
            CssProperty::ColumnCount => CssCategory::Miscellaneous,
            CssProperty::ColumnFill => CssCategory::Miscellaneous,
            CssProperty::ColumnRule => CssCategory::Miscellaneous,
            CssProperty::ColumnRuleColor => CssCategory::Miscellaneous,
            CssProperty::ColumnRuleStyle => CssCategory::Miscellaneous,
            CssProperty::ColumnRuleWidth => CssCategory::Miscellaneous,
            CssProperty::ColumnSpan => CssCategory::Miscellaneous,
            CssProperty::ColumnWidth => CssCategory::Miscellaneous,
            CssProperty::Columns => CssCategory::Miscellaneous,
            CssProperty::Contain => CssCategory::Miscellaneous,
            CssProperty::Container => CssCategory::Miscellaneous,
            CssProperty::ContainerName => CssCategory::Miscellaneous,
            CssProperty::ContainerType => CssCategory::Miscellaneous,
            CssProperty::ContentVisibility => CssCategory::Miscellaneous,
            CssProperty::Continue => CssCategory::Miscellaneous,
            CssProperty::Direction => CssCategory::Miscellaneous,
            CssProperty::FieldSizing => CssCategory::Miscellaneous,
            CssProperty::FloatOffset => CssCategory::Miscellaneous,
            CssProperty::ImageOrientation => CssCategory::Miscellaneous,
            CssProperty::ImageRendering => CssCategory::Miscellaneous,
            CssProperty::MaxLines => CssCategory::Miscellaneous,
            CssProperty::MixBlendMode => CssCategory::Miscellaneous,
            CssProperty::ObjectFit => CssCategory::Miscellaneous,
            CssProperty::ObjectPosition => CssCategory::Miscellaneous,
            CssProperty::ObjectViewBox => CssCategory::Miscellaneous,
            CssProperty::RubyAlign => CssCategory::Miscellaneous,
            CssProperty::RubyMerge => CssCategory::Miscellaneous,
            CssProperty::RubyPosition => CssCategory::Miscellaneous,
            CssProperty::ShapeImageThreshold => CssCategory::Miscellaneous,
            CssProperty::ShapeMargin => CssCategory::Miscellaneous,
            CssProperty::ShapeOutside => CssCategory::Miscellaneous,
            CssProperty::TabSize => CssCategory::Miscellaneous,
            CssProperty::TextRendering => CssCategory::Miscellaneous,
            CssProperty::TextSpacingCollapse => CssCategory::Miscellaneous,
            CssProperty::TextSpacingTrim => CssCategory::Miscellaneous,
            CssProperty::UnicodeBidi => CssCategory::Miscellaneous,
            CssProperty::VerticalAlign => CssCategory::Miscellaneous,
            CssProperty::ViewTransitionName => CssCategory::Miscellaneous,
            CssProperty::Zoom => CssCategory::Miscellaneous,
            CssProperty::Offset => CssCategory::MotionPath,
            CssProperty::OffsetAnchor => CssCategory::MotionPath,
            CssProperty::OffsetDistance => CssCategory::MotionPath,
            CssProperty::OffsetPath => CssCategory::MotionPath,
            CssProperty::OffsetPosition => CssCategory::MotionPath,
            CssProperty::OffsetRotate => CssCategory::MotionPath,
            CssProperty::Orphans => CssCategory::Paged,
            CssProperty::Page => CssCategory::Paged,
            CssProperty::PageBreakAfter => CssCategory::Paged,
            CssProperty::PageBreakBefore => CssCategory::Paged,
            CssProperty::PageBreakInside => CssCategory::Paged,
            CssProperty::PageOrientation => CssCategory::Paged,
            CssProperty::Widows => CssCategory::Paged,
            CssProperty::ScrollTimeline => CssCategory::ScrollDriven,
            CssProperty::ScrollTimelineAxis => CssCategory::ScrollDriven,
            CssProperty::ScrollTimelineName => CssCategory::ScrollDriven,
            CssProperty::ViewTimeline => CssCategory::ScrollDriven,
            CssProperty::ViewTimelineAxis => CssCategory::ScrollDriven,
            CssProperty::ViewTimelineInset => CssCategory::ScrollDriven,
            CssProperty::ViewTimelineName => CssCategory::ScrollDriven,
            CssProperty::AlignmentBaseline => CssCategory::Svg,
            CssProperty::BaselineShift => CssCategory::Svg,
            CssProperty::ColorRendering => CssCategory::Svg,
            CssProperty::DominantBaseline => CssCategory::Svg,
            CssProperty::Fill => CssCategory::Svg,
            CssProperty::FillOpacity => CssCategory::Svg,
            CssProperty::FillRule => CssCategory::Svg,
            CssProperty::InitialLetter => CssCategory::Svg,
            CssProperty::InitialLetterAlign => CssCategory::Svg,
            CssProperty::ShapeInside => CssCategory::Svg,
            CssProperty::ShapeSubtract => CssCategory::Svg,
            CssProperty::Stroke => CssCategory::Svg,
            CssProperty::StrokeDashCorner => CssCategory::Svg,
            CssProperty::StrokeDashJustified => CssCategory::Svg,
            CssProperty::StrokeDasharray => CssCategory::Svg,
            CssProperty::StrokeDashoffset => CssCategory::Svg,
            CssProperty::StrokeLinecap => CssCategory::Svg,
            CssProperty::StrokeLinejoin => CssCategory::Svg,
            CssProperty::StrokeMiterlimit => CssCategory::Svg,
            CssProperty::StrokeOpacity => CssCategory::Svg,
            CssProperty::StrokeWidth => CssCategory::Svg,
            CssProperty::BorderCollapse => CssCategory::Table,
            CssProperty::BorderSpacing => CssCategory::Table,
            CssProperty::CaptionSide => CssCategory::Table,
            CssProperty::EmptyCells => CssCategory::Table,
            CssProperty::TableLayout => CssCategory::Table,
            CssProperty::BackfaceVisibility => CssCategory::Transform,
            CssProperty::Perspective => CssCategory::Transform,
            CssProperty::PerspectiveOrigin => CssCategory::Transform,
            CssProperty::Rotate => CssCategory::Transform,
            CssProperty::Scale => CssCategory::Transform,
            CssProperty::Transform => CssCategory::Transform,
            CssProperty::TransformBox => CssCategory::Transform,
            CssProperty::TransformOrigin => CssCategory::Transform,
            CssProperty::TransformStyle => CssCategory::Transform,
            CssProperty::Translate => CssCategory::Transform,
            CssProperty::Transition => CssCategory::Transition,
            CssProperty::TransitionBehavior => CssCategory::Transition,
            CssProperty::TransitionDelay => CssCategory::Transition,
            CssProperty::TransitionDuration => CssCategory::Transition,
            CssProperty::TransitionProperty => CssCategory::Transition,
            CssProperty::TransitionTimingFunction => CssCategory::Transition,
            CssProperty::Font => CssCategory::Typography,
            CssProperty::FontFamily => CssCategory::Typography,
            CssProperty::FontFeatureSettings => CssCategory::Typography,
            CssProperty::FontLanguageOverride => CssCategory::Typography,
            CssProperty::FontPalette => CssCategory::Typography,
            CssProperty::FontSize => CssCategory::Typography,
            CssProperty::FontSizeAdjust => CssCategory::Typography,
            CssProperty::FontStretch => CssCategory::Typography,
            CssProperty::FontStyle => CssCategory::Typography,
            CssProperty::FontSynthesis => CssCategory::Typography,
            CssProperty::FontSynthesisSmallCaps => CssCategory::Typography,
            CssProperty::FontSynthesisStyle => CssCategory::Typography,
            CssProperty::FontSynthesisWeight => CssCategory::Typography,
            CssProperty::FontVariant => CssCategory::Typography,
            CssProperty::FontVariantAlternates => CssCategory::Typography,
            CssProperty::FontVariantCaps => CssCategory::Typography,
            CssProperty::FontVariantEastAsian => CssCategory::Typography,
            CssProperty::FontVariantLigatures => CssCategory::Typography,
            CssProperty::FontVariantNumeric => CssCategory::Typography,
            CssProperty::FontVariantPosition => CssCategory::Typography,
            CssProperty::FontWeight => CssCategory::Typography,
            CssProperty::GlyphOrientationVertical => CssCategory::Typography,
            CssProperty::HangingPunctuation => CssCategory::Typography,
            CssProperty::HyphenateCharacter => CssCategory::Typography,
            CssProperty::HyphenateLimitChars => CssCategory::Typography,
            CssProperty::Hyphens => CssCategory::Typography,
            CssProperty::LetterSpacing => CssCategory::Typography,
            CssProperty::LineBreak => CssCategory::Typography,
            CssProperty::LineHeight => CssCategory::Typography,
            CssProperty::LineHeightStep => CssCategory::Typography,
            CssProperty::OverflowWrap => CssCategory::Typography,
            CssProperty::TextAlign => CssCategory::Typography,
            CssProperty::TextAlignAll => CssCategory::Typography,
            CssProperty::TextAlignLast => CssCategory::Typography,
            CssProperty::TextCombineUpright => CssCategory::Typography,
            CssProperty::TextDecoration => CssCategory::Typography,
            CssProperty::TextDecorationColor => CssCategory::Typography,
            CssProperty::TextDecorationLine => CssCategory::Typography,
            CssProperty::TextDecorationSkip => CssCategory::Typography,
            CssProperty::TextDecorationSkipInk => CssCategory::Typography,
            CssProperty::TextDecorationStyle => CssCategory::Typography,
            CssProperty::TextDecorationThickness => CssCategory::Typography,
            CssProperty::TextEmphasis => CssCategory::Typography,
            CssProperty::TextEmphasisColor => CssCategory::Typography,
            CssProperty::TextEmphasisPosition => CssCategory::Typography,
            CssProperty::TextEmphasisStyle => CssCategory::Typography,
            CssProperty::TextIndent => CssCategory::Typography,
            CssProperty::TextJustify => CssCategory::Typography,
            CssProperty::TextOrientation => CssCategory::Typography,
            CssProperty::TextOverflow => CssCategory::Typography,
            CssProperty::TextShadow => CssCategory::Typography,
            CssProperty::TextSizeAdjust => CssCategory::Typography,
            CssProperty::TextTransform => CssCategory::Typography,
            CssProperty::TextUnderlineOffset => CssCategory::Typography,
            CssProperty::TextUnderlinePosition => CssCategory::Typography,
            CssProperty::TextWrap => CssCategory::Typography,
            CssProperty::TextWrapMode => CssCategory::Typography,
            CssProperty::TextWrapStyle => CssCategory::Typography,
            CssProperty::WhiteSpace => CssCategory::Typography,
            CssProperty::WhiteSpaceCollapse => CssCategory::Typography,
            CssProperty::WordBreak => CssCategory::Typography,
            CssProperty::WordSpacing => CssCategory::Typography,
            CssProperty::WordWrap => CssCategory::Typography,
            CssProperty::WritingMode => CssCategory::Typography,
            CssProperty::BackdropFilter => CssCategory::Visual,
            CssProperty::ClipPath => CssCategory::Visual,
            CssProperty::ClipRule => CssCategory::Visual,
            CssProperty::Filter => CssCategory::Visual,
            CssProperty::Mask => CssCategory::Visual,
            CssProperty::MaskBorder => CssCategory::Visual,
            CssProperty::MaskBorderOutset => CssCategory::Visual,
            CssProperty::MaskBorderRepeat => CssCategory::Visual,
            CssProperty::MaskBorderSlice => CssCategory::Visual,
            CssProperty::MaskBorderSource => CssCategory::Visual,
            CssProperty::MaskBorderWidth => CssCategory::Visual,
            CssProperty::MaskClip => CssCategory::Visual,
            CssProperty::MaskComposite => CssCategory::Visual,
            CssProperty::MaskImage => CssCategory::Visual,
            CssProperty::MaskMode => CssCategory::Visual,
            CssProperty::MaskOrigin => CssCategory::Visual,
            CssProperty::MaskPosition => CssCategory::Visual,
            CssProperty::MaskPositionX => CssCategory::Visual,
            CssProperty::MaskPositionY => CssCategory::Visual,
            CssProperty::MaskRepeat => CssCategory::Visual,
            CssProperty::MaskSize => CssCategory::Visual,
            CssProperty::MaskType => CssCategory::Visual,
        }
    }

    /// Check if this property is a shorthand property.
    #[inline]
    pub fn is_shorthand(&self) -> bool {
        match self {
            CssProperty::Animation => true,
            CssProperty::AnimationComposition => false,
            CssProperty::AnimationDelay => false,
            CssProperty::AnimationDirection => false,
            CssProperty::AnimationDuration => false,
            CssProperty::AnimationFillMode => false,
            CssProperty::AnimationIterationCount => false,
            CssProperty::AnimationName => false,
            CssProperty::AnimationPlayState => false,
            CssProperty::AnimationRange => true,
            CssProperty::AnimationRangeEnd => false,
            CssProperty::AnimationRangeStart => false,
            CssProperty::AnimationTimeline => false,
            CssProperty::AnimationTimingFunction => false,
            CssProperty::AspectRatio => false,
            CssProperty::BlockSize => false,
            CssProperty::Border => true,
            CssProperty::BorderBottom => true,
            CssProperty::BorderBottomLeftRadius => false,
            CssProperty::BorderBottomRightRadius => false,
            CssProperty::BorderColor => true,
            CssProperty::BorderEndEndRadius => false,
            CssProperty::BorderEndStartRadius => false,
            CssProperty::BorderImage => true,
            CssProperty::BorderImageOutset => false,
            CssProperty::BorderImageRepeat => false,
            CssProperty::BorderImageSlice => false,
            CssProperty::BorderImageSource => false,
            CssProperty::BorderImageWidth => false,
            CssProperty::BorderLeft => true,
            CssProperty::BorderRadius => true,
            CssProperty::BorderRight => true,
            CssProperty::BorderStartEndRadius => false,
            CssProperty::BorderStartStartRadius => false,
            CssProperty::BorderStyle => true,
            CssProperty::BorderTop => true,
            CssProperty::BorderTopLeftRadius => false,
            CssProperty::BorderTopRightRadius => false,
            CssProperty::BorderWidth => true,
            CssProperty::BoxShadow => false,
            CssProperty::BoxSizing => false,
            CssProperty::Height => false,
            CssProperty::InlineSize => false,
            CssProperty::Margin => true,
            CssProperty::MarginBlock => true,
            CssProperty::MarginBlockEnd => false,
            CssProperty::MarginBlockStart => false,
            CssProperty::MarginBottom => false,
            CssProperty::MarginInline => true,
            CssProperty::MarginInlineEnd => false,
            CssProperty::MarginInlineStart => false,
            CssProperty::MarginLeft => false,
            CssProperty::MarginRight => false,
            CssProperty::MarginTop => false,
            CssProperty::MaxBlockSize => false,
            CssProperty::MaxHeight => false,
            CssProperty::MaxInlineSize => false,
            CssProperty::MaxWidth => false,
            CssProperty::MinBlockSize => false,
            CssProperty::MinHeight => false,
            CssProperty::MinInlineSize => false,
            CssProperty::MinWidth => false,
            CssProperty::Padding => true,
            CssProperty::PaddingBlock => true,
            CssProperty::PaddingBlockEnd => false,
            CssProperty::PaddingBlockStart => false,
            CssProperty::PaddingBottom => false,
            CssProperty::PaddingInline => true,
            CssProperty::PaddingInlineEnd => false,
            CssProperty::PaddingInlineStart => false,
            CssProperty::PaddingLeft => false,
            CssProperty::PaddingRight => false,
            CssProperty::PaddingTop => false,
            CssProperty::Width => false,
            CssProperty::Background => true,
            CssProperty::BackgroundAttachment => false,
            CssProperty::BackgroundBlendMode => false,
            CssProperty::BackgroundClip => false,
            CssProperty::BackgroundColor => false,
            CssProperty::BackgroundImage => false,
            CssProperty::BackgroundOrigin => false,
            CssProperty::BackgroundPosition => true,
            CssProperty::BackgroundPositionX => false,
            CssProperty::BackgroundPositionY => false,
            CssProperty::BackgroundRepeat => true,
            CssProperty::BackgroundSize => false,
            CssProperty::Color => false,
            CssProperty::ColorAdjust => false,
            CssProperty::ColorScheme => false,
            CssProperty::ForcedColorAdjust => false,
            CssProperty::Opacity => false,
            CssProperty::PrintColorAdjust => false,
            CssProperty::ColumnGap => false,
            CssProperty::Gap => true,
            CssProperty::RowGap => false,
            CssProperty::AlignContent => false,
            CssProperty::AlignItems => false,
            CssProperty::AlignSelf => false,
            CssProperty::Flex => true,
            CssProperty::FlexBasis => false,
            CssProperty::FlexDirection => false,
            CssProperty::FlexFlow => true,
            CssProperty::FlexGrow => false,
            CssProperty::FlexShrink => false,
            CssProperty::FlexWrap => false,
            CssProperty::JustifyContent => false,
            CssProperty::JustifyItems => false,
            CssProperty::JustifySelf => false,
            CssProperty::Order => false,
            CssProperty::PlaceContent => true,
            CssProperty::PlaceItems => true,
            CssProperty::PlaceSelf => true,
            CssProperty::Content => false,
            CssProperty::Quotes => false,
            CssProperty::SetContent => false,
            CssProperty::Grid => true,
            CssProperty::GridArea => true,
            CssProperty::GridAutoColumns => false,
            CssProperty::GridAutoFlow => false,
            CssProperty::GridAutoRows => false,
            CssProperty::GridColumn => true,
            CssProperty::GridColumnEnd => false,
            CssProperty::GridColumnStart => false,
            CssProperty::GridRow => true,
            CssProperty::GridRowEnd => false,
            CssProperty::GridRowStart => false,
            CssProperty::GridTemplate => true,
            CssProperty::GridTemplateAreas => false,
            CssProperty::GridTemplateColumns => false,
            CssProperty::GridTemplateRows => false,
            CssProperty::WillChange => false,
            CssProperty::ColorInterpolation => false,
            CssProperty::ColorInterpolationFilters => false,
            CssProperty::PaintOrder => false,
            CssProperty::ShapeRendering => false,
            CssProperty::VectorEffect => false,
            CssProperty::AccentColor => false,
            CssProperty::CaretColor => false,
            CssProperty::Cursor => false,
            CssProperty::Outline => true,
            CssProperty::OutlineColor => false,
            CssProperty::OutlineOffset => false,
            CssProperty::OutlineStyle => false,
            CssProperty::OutlineWidth => false,
            CssProperty::OverscrollBehavior => true,
            CssProperty::OverscrollBehaviorBlock => false,
            CssProperty::OverscrollBehaviorInline => false,
            CssProperty::OverscrollBehaviorX => false,
            CssProperty::OverscrollBehaviorY => false,
            CssProperty::PointerEvents => false,
            CssProperty::Resize => false,
            CssProperty::ScrollBehavior => false,
            CssProperty::ScrollMargin => true,
            CssProperty::ScrollMarginBlock => true,
            CssProperty::ScrollMarginBlockEnd => false,
            CssProperty::ScrollMarginBlockStart => false,
            CssProperty::ScrollMarginBottom => false,
            CssProperty::ScrollMarginInline => true,
            CssProperty::ScrollMarginInlineEnd => false,
            CssProperty::ScrollMarginInlineStart => false,
            CssProperty::ScrollMarginLeft => false,
            CssProperty::ScrollMarginRight => false,
            CssProperty::ScrollMarginTop => false,
            CssProperty::ScrollPadding => true,
            CssProperty::ScrollPaddingBlock => true,
            CssProperty::ScrollPaddingBlockEnd => false,
            CssProperty::ScrollPaddingBlockStart => false,
            CssProperty::ScrollPaddingBottom => false,
            CssProperty::ScrollPaddingInline => true,
            CssProperty::ScrollPaddingInlineEnd => false,
            CssProperty::ScrollPaddingInlineStart => false,
            CssProperty::ScrollPaddingLeft => false,
            CssProperty::ScrollPaddingRight => false,
            CssProperty::ScrollPaddingTop => false,
            CssProperty::ScrollSnapAlign => false,
            CssProperty::ScrollSnapStop => false,
            CssProperty::ScrollSnapType => false,
            CssProperty::UserSelect => false,
            CssProperty::AnchorName => false,
            CssProperty::Bottom => false,
            CssProperty::Clear => false,
            CssProperty::Display => false,
            CssProperty::Float => false,
            CssProperty::Inset => true,
            CssProperty::InsetBlock => true,
            CssProperty::InsetBlockEnd => false,
            CssProperty::InsetBlockStart => false,
            CssProperty::InsetInline => true,
            CssProperty::InsetInlineEnd => false,
            CssProperty::InsetInlineStart => false,
            CssProperty::Isolation => false,
            CssProperty::Left => false,
            CssProperty::Overflow => false,
            CssProperty::OverflowBlock => false,
            CssProperty::OverflowInline => false,
            CssProperty::OverflowX => false,
            CssProperty::OverflowY => false,
            CssProperty::Position => false,
            CssProperty::PositionAnchor => false,
            CssProperty::PositionArea => false,
            CssProperty::PositionTryOptions => false,
            CssProperty::Right => false,
            CssProperty::Top => false,
            CssProperty::Visibility => false,
            CssProperty::ZIndex => false,
            CssProperty::CounterIncrement => false,
            CssProperty::CounterReset => false,
            CssProperty::CounterSet => false,
            CssProperty::ListStyle => true,
            CssProperty::ListStyleImage => false,
            CssProperty::ListStylePosition => false,
            CssProperty::ListStyleType => false,
            CssProperty::MarkerEnd => false,
            CssProperty::MarkerMid => false,
            CssProperty::MarkerStart => false,
            CssProperty::BlockEllipsis => false,
            CssProperty::ColumnCount => false,
            CssProperty::ColumnFill => false,
            CssProperty::ColumnRule => true,
            CssProperty::ColumnRuleColor => false,
            CssProperty::ColumnRuleStyle => false,
            CssProperty::ColumnRuleWidth => false,
            CssProperty::ColumnSpan => false,
            CssProperty::ColumnWidth => false,
            CssProperty::Columns => true,
            CssProperty::Contain => false,
            CssProperty::Container => true,
            CssProperty::ContainerName => false,
            CssProperty::ContainerType => false,
            CssProperty::ContentVisibility => false,
            CssProperty::Continue => false,
            CssProperty::Direction => false,
            CssProperty::FieldSizing => false,
            CssProperty::FloatOffset => false,
            CssProperty::ImageOrientation => false,
            CssProperty::ImageRendering => false,
            CssProperty::MaxLines => false,
            CssProperty::MixBlendMode => false,
            CssProperty::ObjectFit => false,
            CssProperty::ObjectPosition => false,
            CssProperty::ObjectViewBox => false,
            CssProperty::RubyAlign => false,
            CssProperty::RubyMerge => false,
            CssProperty::RubyPosition => false,
            CssProperty::ShapeImageThreshold => false,
            CssProperty::ShapeMargin => false,
            CssProperty::ShapeOutside => false,
            CssProperty::TabSize => false,
            CssProperty::TextRendering => false,
            CssProperty::TextSpacingCollapse => false,
            CssProperty::TextSpacingTrim => false,
            CssProperty::UnicodeBidi => false,
            CssProperty::VerticalAlign => false,
            CssProperty::ViewTransitionName => false,
            CssProperty::Zoom => false,
            CssProperty::Offset => true,
            CssProperty::OffsetAnchor => false,
            CssProperty::OffsetDistance => false,
            CssProperty::OffsetPath => false,
            CssProperty::OffsetPosition => false,
            CssProperty::OffsetRotate => false,
            CssProperty::Orphans => false,
            CssProperty::Page => false,
            CssProperty::PageBreakAfter => false,
            CssProperty::PageBreakBefore => false,
            CssProperty::PageBreakInside => false,
            CssProperty::PageOrientation => false,
            CssProperty::Widows => false,
            CssProperty::ScrollTimeline => true,
            CssProperty::ScrollTimelineAxis => false,
            CssProperty::ScrollTimelineName => false,
            CssProperty::ViewTimeline => true,
            CssProperty::ViewTimelineAxis => false,
            CssProperty::ViewTimelineInset => false,
            CssProperty::ViewTimelineName => false,
            CssProperty::AlignmentBaseline => false,
            CssProperty::BaselineShift => false,
            CssProperty::ColorRendering => false,
            CssProperty::DominantBaseline => false,
            CssProperty::Fill => false,
            CssProperty::FillOpacity => false,
            CssProperty::FillRule => false,
            CssProperty::InitialLetter => false,
            CssProperty::InitialLetterAlign => false,
            CssProperty::ShapeInside => false,
            CssProperty::ShapeSubtract => false,
            CssProperty::Stroke => false,
            CssProperty::StrokeDashCorner => false,
            CssProperty::StrokeDashJustified => false,
            CssProperty::StrokeDasharray => false,
            CssProperty::StrokeDashoffset => false,
            CssProperty::StrokeLinecap => false,
            CssProperty::StrokeLinejoin => false,
            CssProperty::StrokeMiterlimit => false,
            CssProperty::StrokeOpacity => false,
            CssProperty::StrokeWidth => false,
            CssProperty::BorderCollapse => false,
            CssProperty::BorderSpacing => false,
            CssProperty::CaptionSide => false,
            CssProperty::EmptyCells => false,
            CssProperty::TableLayout => false,
            CssProperty::BackfaceVisibility => false,
            CssProperty::Perspective => false,
            CssProperty::PerspectiveOrigin => false,
            CssProperty::Rotate => false,
            CssProperty::Scale => false,
            CssProperty::Transform => false,
            CssProperty::TransformBox => false,
            CssProperty::TransformOrigin => false,
            CssProperty::TransformStyle => false,
            CssProperty::Translate => false,
            CssProperty::Transition => true,
            CssProperty::TransitionBehavior => false,
            CssProperty::TransitionDelay => false,
            CssProperty::TransitionDuration => false,
            CssProperty::TransitionProperty => false,
            CssProperty::TransitionTimingFunction => false,
            CssProperty::Font => true,
            CssProperty::FontFamily => false,
            CssProperty::FontFeatureSettings => false,
            CssProperty::FontLanguageOverride => false,
            CssProperty::FontPalette => false,
            CssProperty::FontSize => false,
            CssProperty::FontSizeAdjust => false,
            CssProperty::FontStretch => false,
            CssProperty::FontStyle => false,
            CssProperty::FontSynthesis => true,
            CssProperty::FontSynthesisSmallCaps => false,
            CssProperty::FontSynthesisStyle => false,
            CssProperty::FontSynthesisWeight => false,
            CssProperty::FontVariant => true,
            CssProperty::FontVariantAlternates => false,
            CssProperty::FontVariantCaps => false,
            CssProperty::FontVariantEastAsian => false,
            CssProperty::FontVariantLigatures => false,
            CssProperty::FontVariantNumeric => false,
            CssProperty::FontVariantPosition => false,
            CssProperty::FontWeight => false,
            CssProperty::GlyphOrientationVertical => false,
            CssProperty::HangingPunctuation => false,
            CssProperty::HyphenateCharacter => false,
            CssProperty::HyphenateLimitChars => false,
            CssProperty::Hyphens => false,
            CssProperty::LetterSpacing => false,
            CssProperty::LineBreak => false,
            CssProperty::LineHeight => false,
            CssProperty::LineHeightStep => false,
            CssProperty::OverflowWrap => false,
            CssProperty::TextAlign => false,
            CssProperty::TextAlignAll => false,
            CssProperty::TextAlignLast => false,
            CssProperty::TextCombineUpright => false,
            CssProperty::TextDecoration => true,
            CssProperty::TextDecorationColor => false,
            CssProperty::TextDecorationLine => false,
            CssProperty::TextDecorationSkip => false,
            CssProperty::TextDecorationSkipInk => false,
            CssProperty::TextDecorationStyle => false,
            CssProperty::TextDecorationThickness => false,
            CssProperty::TextEmphasis => true,
            CssProperty::TextEmphasisColor => false,
            CssProperty::TextEmphasisPosition => false,
            CssProperty::TextEmphasisStyle => false,
            CssProperty::TextIndent => false,
            CssProperty::TextJustify => false,
            CssProperty::TextOrientation => false,
            CssProperty::TextOverflow => false,
            CssProperty::TextShadow => false,
            CssProperty::TextSizeAdjust => false,
            CssProperty::TextTransform => false,
            CssProperty::TextUnderlineOffset => false,
            CssProperty::TextUnderlinePosition => false,
            CssProperty::TextWrap => false,
            CssProperty::TextWrapMode => false,
            CssProperty::TextWrapStyle => false,
            CssProperty::WhiteSpace => false,
            CssProperty::WhiteSpaceCollapse => false,
            CssProperty::WordBreak => false,
            CssProperty::WordSpacing => false,
            CssProperty::WordWrap => false,
            CssProperty::WritingMode => false,
            CssProperty::BackdropFilter => false,
            CssProperty::ClipPath => false,
            CssProperty::ClipRule => false,
            CssProperty::Filter => false,
            CssProperty::Mask => true,
            CssProperty::MaskBorder => true,
            CssProperty::MaskBorderOutset => false,
            CssProperty::MaskBorderRepeat => false,
            CssProperty::MaskBorderSlice => false,
            CssProperty::MaskBorderSource => false,
            CssProperty::MaskBorderWidth => false,
            CssProperty::MaskClip => false,
            CssProperty::MaskComposite => false,
            CssProperty::MaskImage => false,
            CssProperty::MaskMode => false,
            CssProperty::MaskOrigin => false,
            CssProperty::MaskPosition => false,
            CssProperty::MaskPositionX => false,
            CssProperty::MaskPositionY => false,
            CssProperty::MaskRepeat => false,
            CssProperty::MaskSize => false,
            CssProperty::MaskType => false,
        }
    }

    /// Check if this property is experimental/non-standard.
    #[inline]
    pub fn is_experimental(&self) -> bool {
        match self {
            CssProperty::Animation => false,
            CssProperty::AnimationComposition => false,
            CssProperty::AnimationDelay => false,
            CssProperty::AnimationDirection => false,
            CssProperty::AnimationDuration => false,
            CssProperty::AnimationFillMode => false,
            CssProperty::AnimationIterationCount => false,
            CssProperty::AnimationName => false,
            CssProperty::AnimationPlayState => false,
            CssProperty::AnimationRange => true,
            CssProperty::AnimationRangeEnd => true,
            CssProperty::AnimationRangeStart => true,
            CssProperty::AnimationTimeline => true,
            CssProperty::AnimationTimingFunction => false,
            CssProperty::AspectRatio => false,
            CssProperty::BlockSize => false,
            CssProperty::Border => false,
            CssProperty::BorderBottom => false,
            CssProperty::BorderBottomLeftRadius => false,
            CssProperty::BorderBottomRightRadius => false,
            CssProperty::BorderColor => false,
            CssProperty::BorderEndEndRadius => false,
            CssProperty::BorderEndStartRadius => false,
            CssProperty::BorderImage => false,
            CssProperty::BorderImageOutset => false,
            CssProperty::BorderImageRepeat => false,
            CssProperty::BorderImageSlice => false,
            CssProperty::BorderImageSource => false,
            CssProperty::BorderImageWidth => false,
            CssProperty::BorderLeft => false,
            CssProperty::BorderRadius => false,
            CssProperty::BorderRight => false,
            CssProperty::BorderStartEndRadius => false,
            CssProperty::BorderStartStartRadius => false,
            CssProperty::BorderStyle => false,
            CssProperty::BorderTop => false,
            CssProperty::BorderTopLeftRadius => false,
            CssProperty::BorderTopRightRadius => false,
            CssProperty::BorderWidth => false,
            CssProperty::BoxShadow => false,
            CssProperty::BoxSizing => false,
            CssProperty::Height => false,
            CssProperty::InlineSize => false,
            CssProperty::Margin => false,
            CssProperty::MarginBlock => false,
            CssProperty::MarginBlockEnd => false,
            CssProperty::MarginBlockStart => false,
            CssProperty::MarginBottom => false,
            CssProperty::MarginInline => false,
            CssProperty::MarginInlineEnd => false,
            CssProperty::MarginInlineStart => false,
            CssProperty::MarginLeft => false,
            CssProperty::MarginRight => false,
            CssProperty::MarginTop => false,
            CssProperty::MaxBlockSize => false,
            CssProperty::MaxHeight => false,
            CssProperty::MaxInlineSize => false,
            CssProperty::MaxWidth => false,
            CssProperty::MinBlockSize => false,
            CssProperty::MinHeight => false,
            CssProperty::MinInlineSize => false,
            CssProperty::MinWidth => false,
            CssProperty::Padding => false,
            CssProperty::PaddingBlock => false,
            CssProperty::PaddingBlockEnd => false,
            CssProperty::PaddingBlockStart => false,
            CssProperty::PaddingBottom => false,
            CssProperty::PaddingInline => false,
            CssProperty::PaddingInlineEnd => false,
            CssProperty::PaddingInlineStart => false,
            CssProperty::PaddingLeft => false,
            CssProperty::PaddingRight => false,
            CssProperty::PaddingTop => false,
            CssProperty::Width => false,
            CssProperty::Background => false,
            CssProperty::BackgroundAttachment => false,
            CssProperty::BackgroundBlendMode => false,
            CssProperty::BackgroundClip => false,
            CssProperty::BackgroundColor => false,
            CssProperty::BackgroundImage => false,
            CssProperty::BackgroundOrigin => false,
            CssProperty::BackgroundPosition => false,
            CssProperty::BackgroundPositionX => false,
            CssProperty::BackgroundPositionY => false,
            CssProperty::BackgroundRepeat => false,
            CssProperty::BackgroundSize => false,
            CssProperty::Color => false,
            CssProperty::ColorAdjust => false,
            CssProperty::ColorScheme => false,
            CssProperty::ForcedColorAdjust => false,
            CssProperty::Opacity => false,
            CssProperty::PrintColorAdjust => false,
            CssProperty::ColumnGap => false,
            CssProperty::Gap => false,
            CssProperty::RowGap => false,
            CssProperty::AlignContent => false,
            CssProperty::AlignItems => false,
            CssProperty::AlignSelf => false,
            CssProperty::Flex => false,
            CssProperty::FlexBasis => false,
            CssProperty::FlexDirection => false,
            CssProperty::FlexFlow => false,
            CssProperty::FlexGrow => false,
            CssProperty::FlexShrink => false,
            CssProperty::FlexWrap => false,
            CssProperty::JustifyContent => false,
            CssProperty::JustifyItems => false,
            CssProperty::JustifySelf => false,
            CssProperty::Order => false,
            CssProperty::PlaceContent => false,
            CssProperty::PlaceItems => false,
            CssProperty::PlaceSelf => false,
            CssProperty::Content => false,
            CssProperty::Quotes => false,
            CssProperty::SetContent => true,
            CssProperty::Grid => false,
            CssProperty::GridArea => false,
            CssProperty::GridAutoColumns => false,
            CssProperty::GridAutoFlow => false,
            CssProperty::GridAutoRows => false,
            CssProperty::GridColumn => false,
            CssProperty::GridColumnEnd => false,
            CssProperty::GridColumnStart => false,
            CssProperty::GridRow => false,
            CssProperty::GridRowEnd => false,
            CssProperty::GridRowStart => false,
            CssProperty::GridTemplate => false,
            CssProperty::GridTemplateAreas => false,
            CssProperty::GridTemplateColumns => false,
            CssProperty::GridTemplateRows => false,
            CssProperty::WillChange => false,
            CssProperty::ColorInterpolation => false,
            CssProperty::ColorInterpolationFilters => false,
            CssProperty::PaintOrder => false,
            CssProperty::ShapeRendering => false,
            CssProperty::VectorEffect => false,
            CssProperty::AccentColor => false,
            CssProperty::CaretColor => false,
            CssProperty::Cursor => false,
            CssProperty::Outline => false,
            CssProperty::OutlineColor => false,
            CssProperty::OutlineOffset => false,
            CssProperty::OutlineStyle => false,
            CssProperty::OutlineWidth => false,
            CssProperty::OverscrollBehavior => false,
            CssProperty::OverscrollBehaviorBlock => false,
            CssProperty::OverscrollBehaviorInline => false,
            CssProperty::OverscrollBehaviorX => false,
            CssProperty::OverscrollBehaviorY => false,
            CssProperty::PointerEvents => false,
            CssProperty::Resize => false,
            CssProperty::ScrollBehavior => false,
            CssProperty::ScrollMargin => false,
            CssProperty::ScrollMarginBlock => false,
            CssProperty::ScrollMarginBlockEnd => false,
            CssProperty::ScrollMarginBlockStart => false,
            CssProperty::ScrollMarginBottom => false,
            CssProperty::ScrollMarginInline => false,
            CssProperty::ScrollMarginInlineEnd => false,
            CssProperty::ScrollMarginInlineStart => false,
            CssProperty::ScrollMarginLeft => false,
            CssProperty::ScrollMarginRight => false,
            CssProperty::ScrollMarginTop => false,
            CssProperty::ScrollPadding => false,
            CssProperty::ScrollPaddingBlock => false,
            CssProperty::ScrollPaddingBlockEnd => false,
            CssProperty::ScrollPaddingBlockStart => false,
            CssProperty::ScrollPaddingBottom => false,
            CssProperty::ScrollPaddingInline => false,
            CssProperty::ScrollPaddingInlineEnd => false,
            CssProperty::ScrollPaddingInlineStart => false,
            CssProperty::ScrollPaddingLeft => false,
            CssProperty::ScrollPaddingRight => false,
            CssProperty::ScrollPaddingTop => false,
            CssProperty::ScrollSnapAlign => false,
            CssProperty::ScrollSnapStop => false,
            CssProperty::ScrollSnapType => false,
            CssProperty::UserSelect => false,
            CssProperty::AnchorName => true,
            CssProperty::Bottom => false,
            CssProperty::Clear => false,
            CssProperty::Display => false,
            CssProperty::Float => false,
            CssProperty::Inset => false,
            CssProperty::InsetBlock => false,
            CssProperty::InsetBlockEnd => false,
            CssProperty::InsetBlockStart => false,
            CssProperty::InsetInline => false,
            CssProperty::InsetInlineEnd => false,
            CssProperty::InsetInlineStart => false,
            CssProperty::Isolation => false,
            CssProperty::Left => false,
            CssProperty::Overflow => false,
            CssProperty::OverflowBlock => false,
            CssProperty::OverflowInline => false,
            CssProperty::OverflowX => false,
            CssProperty::OverflowY => false,
            CssProperty::Position => false,
            CssProperty::PositionAnchor => true,
            CssProperty::PositionArea => true,
            CssProperty::PositionTryOptions => true,
            CssProperty::Right => false,
            CssProperty::Top => false,
            CssProperty::Visibility => false,
            CssProperty::ZIndex => false,
            CssProperty::CounterIncrement => false,
            CssProperty::CounterReset => false,
            CssProperty::CounterSet => false,
            CssProperty::ListStyle => false,
            CssProperty::ListStyleImage => false,
            CssProperty::ListStylePosition => false,
            CssProperty::ListStyleType => false,
            CssProperty::MarkerEnd => false,
            CssProperty::MarkerMid => false,
            CssProperty::MarkerStart => false,
            CssProperty::BlockEllipsis => true,
            CssProperty::ColumnCount => false,
            CssProperty::ColumnFill => false,
            CssProperty::ColumnRule => false,
            CssProperty::ColumnRuleColor => false,
            CssProperty::ColumnRuleStyle => false,
            CssProperty::ColumnRuleWidth => false,
            CssProperty::ColumnSpan => false,
            CssProperty::ColumnWidth => false,
            CssProperty::Columns => false,
            CssProperty::Contain => false,
            CssProperty::Container => false,
            CssProperty::ContainerName => false,
            CssProperty::ContainerType => false,
            CssProperty::ContentVisibility => false,
            CssProperty::Continue => true,
            CssProperty::Direction => false,
            CssProperty::FieldSizing => true,
            CssProperty::FloatOffset => true,
            CssProperty::ImageOrientation => false,
            CssProperty::ImageRendering => false,
            CssProperty::MaxLines => true,
            CssProperty::MixBlendMode => false,
            CssProperty::ObjectFit => false,
            CssProperty::ObjectPosition => false,
            CssProperty::ObjectViewBox => true,
            CssProperty::RubyAlign => false,
            CssProperty::RubyMerge => true,
            CssProperty::RubyPosition => false,
            CssProperty::ShapeImageThreshold => false,
            CssProperty::ShapeMargin => false,
            CssProperty::ShapeOutside => false,
            CssProperty::TabSize => false,
            CssProperty::TextRendering => false,
            CssProperty::TextSpacingCollapse => true,
            CssProperty::TextSpacingTrim => true,
            CssProperty::UnicodeBidi => false,
            CssProperty::VerticalAlign => false,
            CssProperty::ViewTransitionName => true,
            CssProperty::Zoom => false,
            CssProperty::Offset => false,
            CssProperty::OffsetAnchor => false,
            CssProperty::OffsetDistance => false,
            CssProperty::OffsetPath => false,
            CssProperty::OffsetPosition => false,
            CssProperty::OffsetRotate => false,
            CssProperty::Orphans => false,
            CssProperty::Page => false,
            CssProperty::PageBreakAfter => false,
            CssProperty::PageBreakBefore => false,
            CssProperty::PageBreakInside => false,
            CssProperty::PageOrientation => true,
            CssProperty::Widows => false,
            CssProperty::ScrollTimeline => true,
            CssProperty::ScrollTimelineAxis => true,
            CssProperty::ScrollTimelineName => true,
            CssProperty::ViewTimeline => true,
            CssProperty::ViewTimelineAxis => true,
            CssProperty::ViewTimelineInset => true,
            CssProperty::ViewTimelineName => true,
            CssProperty::AlignmentBaseline => false,
            CssProperty::BaselineShift => false,
            CssProperty::ColorRendering => false,
            CssProperty::DominantBaseline => false,
            CssProperty::Fill => false,
            CssProperty::FillOpacity => false,
            CssProperty::FillRule => false,
            CssProperty::InitialLetter => false,
            CssProperty::InitialLetterAlign => false,
            CssProperty::ShapeInside => true,
            CssProperty::ShapeSubtract => true,
            CssProperty::Stroke => false,
            CssProperty::StrokeDashCorner => false,
            CssProperty::StrokeDashJustified => true,
            CssProperty::StrokeDasharray => false,
            CssProperty::StrokeDashoffset => false,
            CssProperty::StrokeLinecap => false,
            CssProperty::StrokeLinejoin => false,
            CssProperty::StrokeMiterlimit => false,
            CssProperty::StrokeOpacity => false,
            CssProperty::StrokeWidth => false,
            CssProperty::BorderCollapse => false,
            CssProperty::BorderSpacing => false,
            CssProperty::CaptionSide => false,
            CssProperty::EmptyCells => false,
            CssProperty::TableLayout => false,
            CssProperty::BackfaceVisibility => false,
            CssProperty::Perspective => false,
            CssProperty::PerspectiveOrigin => false,
            CssProperty::Rotate => false,
            CssProperty::Scale => false,
            CssProperty::Transform => false,
            CssProperty::TransformBox => false,
            CssProperty::TransformOrigin => false,
            CssProperty::TransformStyle => false,
            CssProperty::Translate => false,
            CssProperty::Transition => false,
            CssProperty::TransitionBehavior => false,
            CssProperty::TransitionDelay => false,
            CssProperty::TransitionDuration => false,
            CssProperty::TransitionProperty => false,
            CssProperty::TransitionTimingFunction => false,
            CssProperty::Font => false,
            CssProperty::FontFamily => false,
            CssProperty::FontFeatureSettings => false,
            CssProperty::FontLanguageOverride => false,
            CssProperty::FontPalette => false,
            CssProperty::FontSize => false,
            CssProperty::FontSizeAdjust => false,
            CssProperty::FontStretch => false,
            CssProperty::FontStyle => false,
            CssProperty::FontSynthesis => false,
            CssProperty::FontSynthesisSmallCaps => false,
            CssProperty::FontSynthesisStyle => false,
            CssProperty::FontSynthesisWeight => false,
            CssProperty::FontVariant => false,
            CssProperty::FontVariantAlternates => false,
            CssProperty::FontVariantCaps => false,
            CssProperty::FontVariantEastAsian => false,
            CssProperty::FontVariantLigatures => false,
            CssProperty::FontVariantNumeric => false,
            CssProperty::FontVariantPosition => false,
            CssProperty::FontWeight => false,
            CssProperty::GlyphOrientationVertical => false,
            CssProperty::HangingPunctuation => false,
            CssProperty::HyphenateCharacter => false,
            CssProperty::HyphenateLimitChars => false,
            CssProperty::Hyphens => false,
            CssProperty::LetterSpacing => false,
            CssProperty::LineBreak => false,
            CssProperty::LineHeight => false,
            CssProperty::LineHeightStep => true,
            CssProperty::OverflowWrap => false,
            CssProperty::TextAlign => false,
            CssProperty::TextAlignAll => false,
            CssProperty::TextAlignLast => false,
            CssProperty::TextCombineUpright => false,
            CssProperty::TextDecoration => false,
            CssProperty::TextDecorationColor => false,
            CssProperty::TextDecorationLine => false,
            CssProperty::TextDecorationSkip => true,
            CssProperty::TextDecorationSkipInk => false,
            CssProperty::TextDecorationStyle => false,
            CssProperty::TextDecorationThickness => false,
            CssProperty::TextEmphasis => false,
            CssProperty::TextEmphasisColor => false,
            CssProperty::TextEmphasisPosition => false,
            CssProperty::TextEmphasisStyle => false,
            CssProperty::TextIndent => false,
            CssProperty::TextJustify => false,
            CssProperty::TextOrientation => false,
            CssProperty::TextOverflow => false,
            CssProperty::TextShadow => false,
            CssProperty::TextSizeAdjust => false,
            CssProperty::TextTransform => false,
            CssProperty::TextUnderlineOffset => false,
            CssProperty::TextUnderlinePosition => false,
            CssProperty::TextWrap => false,
            CssProperty::TextWrapMode => false,
            CssProperty::TextWrapStyle => false,
            CssProperty::WhiteSpace => false,
            CssProperty::WhiteSpaceCollapse => true,
            CssProperty::WordBreak => false,
            CssProperty::WordSpacing => false,
            CssProperty::WordWrap => false,
            CssProperty::WritingMode => false,
            CssProperty::BackdropFilter => false,
            CssProperty::ClipPath => false,
            CssProperty::ClipRule => false,
            CssProperty::Filter => false,
            CssProperty::Mask => false,
            CssProperty::MaskBorder => false,
            CssProperty::MaskBorderOutset => false,
            CssProperty::MaskBorderRepeat => false,
            CssProperty::MaskBorderSlice => false,
            CssProperty::MaskBorderSource => false,
            CssProperty::MaskBorderWidth => false,
            CssProperty::MaskClip => false,
            CssProperty::MaskComposite => false,
            CssProperty::MaskImage => false,
            CssProperty::MaskMode => false,
            CssProperty::MaskOrigin => false,
            CssProperty::MaskPosition => false,
            CssProperty::MaskPositionX => true,
            CssProperty::MaskPositionY => true,
            CssProperty::MaskRepeat => false,
            CssProperty::MaskSize => false,
            CssProperty::MaskType => false,
        }
    }

    /// Get the MDN documentation URL for this property.
    #[inline]
    pub fn mdn_url(&self) -> &'static str {
        match self {
            CssProperty::Animation => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation",
            CssProperty::AnimationComposition => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-composition",
            CssProperty::AnimationDelay => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-delay",
            CssProperty::AnimationDirection => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction",
            CssProperty::AnimationDuration => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-duration",
            CssProperty::AnimationFillMode => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode",
            CssProperty::AnimationIterationCount => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-iteration-count",
            CssProperty::AnimationName => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-name",
            CssProperty::AnimationPlayState => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-play-state",
            CssProperty::AnimationRange => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-range",
            CssProperty::AnimationRangeEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-range-end",
            CssProperty::AnimationRangeStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-range-start",
            CssProperty::AnimationTimeline => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timeline",
            CssProperty::AnimationTimingFunction => "https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function",
            CssProperty::AspectRatio => "https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio",
            CssProperty::BlockSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/block-size",
            CssProperty::Border => "https://developer.mozilla.org/en-US/docs/Web/CSS/border",
            CssProperty::BorderBottom => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom",
            CssProperty::BorderBottomLeftRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius",
            CssProperty::BorderBottomRightRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",
            CssProperty::BorderColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-color",
            CssProperty::BorderEndEndRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-end-end-radius",
            CssProperty::BorderEndStartRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-end-start-radius",
            CssProperty::BorderImage => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-image",
            CssProperty::BorderImageOutset => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-image-outset",
            CssProperty::BorderImageRepeat => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-image-repeat",
            CssProperty::BorderImageSlice => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-image-slice",
            CssProperty::BorderImageSource => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-image-source",
            CssProperty::BorderImageWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-image-width",
            CssProperty::BorderLeft => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-left",
            CssProperty::BorderRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius",
            CssProperty::BorderRight => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-right",
            CssProperty::BorderStartEndRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-start-end-radius",
            CssProperty::BorderStartStartRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-start-start-radius",
            CssProperty::BorderStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-style",
            CssProperty::BorderTop => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-top",
            CssProperty::BorderTopLeftRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius",
            CssProperty::BorderTopRightRadius => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-right-radius",
            CssProperty::BorderWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-width",
            CssProperty::BoxShadow => "https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow",
            CssProperty::BoxSizing => "https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing",
            CssProperty::Height => "https://developer.mozilla.org/en-US/docs/Web/CSS/height",
            CssProperty::InlineSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size",
            CssProperty::Margin => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin",
            CssProperty::MarginBlock => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-block",
            CssProperty::MarginBlockEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-block-end",
            CssProperty::MarginBlockStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-block-start",
            CssProperty::MarginBottom => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom",
            CssProperty::MarginInline => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline",
            CssProperty::MarginInlineEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-end",
            CssProperty::MarginInlineStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-start",
            CssProperty::MarginLeft => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left",
            CssProperty::MarginRight => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right",
            CssProperty::MarginTop => "https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top",
            CssProperty::MaxBlockSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size",
            CssProperty::MaxHeight => "https://developer.mozilla.org/en-US/docs/Web/CSS/max-height",
            CssProperty::MaxInlineSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size",
            CssProperty::MaxWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/max-width",
            CssProperty::MinBlockSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size",
            CssProperty::MinHeight => "https://developer.mozilla.org/en-US/docs/Web/CSS/min-height",
            CssProperty::MinInlineSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size",
            CssProperty::MinWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/min-width",
            CssProperty::Padding => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding",
            CssProperty::PaddingBlock => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-block",
            CssProperty::PaddingBlockEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-block-end",
            CssProperty::PaddingBlockStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-block-start",
            CssProperty::PaddingBottom => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom",
            CssProperty::PaddingInline => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline",
            CssProperty::PaddingInlineEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-end",
            CssProperty::PaddingInlineStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-start",
            CssProperty::PaddingLeft => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left",
            CssProperty::PaddingRight => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right",
            CssProperty::PaddingTop => "https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top",
            CssProperty::Width => "https://developer.mozilla.org/en-US/docs/Web/CSS/width",
            CssProperty::Background => "https://developer.mozilla.org/en-US/docs/Web/CSS/background",
            CssProperty::BackgroundAttachment => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-attachment",
            CssProperty::BackgroundBlendMode => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-blend-mode",
            CssProperty::BackgroundClip => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip",
            CssProperty::BackgroundColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-color",
            CssProperty::BackgroundImage => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-image",
            CssProperty::BackgroundOrigin => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-origin",
            CssProperty::BackgroundPosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-position",
            CssProperty::BackgroundPositionX => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-position-x",
            CssProperty::BackgroundPositionY => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-position-y",
            CssProperty::BackgroundRepeat => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-repeat",
            CssProperty::BackgroundSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/background-size",
            CssProperty::Color => "https://developer.mozilla.org/en-US/docs/Web/CSS/color",
            CssProperty::ColorAdjust => "https://developer.mozilla.org/en-US/docs/Web/CSS/color-adjust",
            CssProperty::ColorScheme => "https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme",
            CssProperty::ForcedColorAdjust => "https://developer.mozilla.org/en-US/docs/Web/CSS/forced-color-adjust",
            CssProperty::Opacity => "https://developer.mozilla.org/en-US/docs/Web/CSS/opacity",
            CssProperty::PrintColorAdjust => "https://developer.mozilla.org/en-US/docs/Web/CSS/print-color-adjust",
            CssProperty::ColumnGap => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap",
            CssProperty::Gap => "https://developer.mozilla.org/en-US/docs/Web/CSS/gap",
            CssProperty::RowGap => "https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap",
            CssProperty::AlignContent => "https://developer.mozilla.org/en-US/docs/Web/CSS/align-content",
            CssProperty::AlignItems => "https://developer.mozilla.org/en-US/docs/Web/CSS/align-items",
            CssProperty::AlignSelf => "https://developer.mozilla.org/en-US/docs/Web/CSS/align-self",
            CssProperty::Flex => "https://developer.mozilla.org/en-US/docs/Web/CSS/flex",
            CssProperty::FlexBasis => "https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis",
            CssProperty::FlexDirection => "https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction",
            CssProperty::FlexFlow => "https://developer.mozilla.org/en-US/docs/Web/CSS/flex-flow",
            CssProperty::FlexGrow => "https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow",
            CssProperty::FlexShrink => "https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink",
            CssProperty::FlexWrap => "https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap",
            CssProperty::JustifyContent => "https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content",
            CssProperty::JustifyItems => "https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items",
            CssProperty::JustifySelf => "https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self",
            CssProperty::Order => "https://developer.mozilla.org/en-US/docs/Web/CSS/order",
            CssProperty::PlaceContent => "https://developer.mozilla.org/en-US/docs/Web/CSS/place-content",
            CssProperty::PlaceItems => "https://developer.mozilla.org/en-US/docs/Web/CSS/place-items",
            CssProperty::PlaceSelf => "https://developer.mozilla.org/en-US/docs/Web/CSS/place-self",
            CssProperty::Content => "https://developer.mozilla.org/en-US/docs/Web/CSS/content",
            CssProperty::Quotes => "https://developer.mozilla.org/en-US/docs/Web/CSS/quotes",
            CssProperty::SetContent => "https://developer.mozilla.org/en-US/docs/Web/CSS/set-content",
            CssProperty::Grid => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid",
            CssProperty::GridArea => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area",
            CssProperty::GridAutoColumns => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns",
            CssProperty::GridAutoFlow => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow",
            CssProperty::GridAutoRows => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows",
            CssProperty::GridColumn => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column",
            CssProperty::GridColumnEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end",
            CssProperty::GridColumnStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start",
            CssProperty::GridRow => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row",
            CssProperty::GridRowEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end",
            CssProperty::GridRowStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start",
            CssProperty::GridTemplate => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template",
            CssProperty::GridTemplateAreas => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas",
            CssProperty::GridTemplateColumns => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns",
            CssProperty::GridTemplateRows => "https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows",
            CssProperty::WillChange => "https://developer.mozilla.org/en-US/docs/Web/CSS/will-change",
            CssProperty::ColorInterpolation => "https://developer.mozilla.org/en-US/docs/Web/CSS/color-interpolation",
            CssProperty::ColorInterpolationFilters => "https://developer.mozilla.org/en-US/docs/Web/CSS/color-interpolation-filters",
            CssProperty::PaintOrder => "https://developer.mozilla.org/en-US/docs/Web/CSS/paint-order",
            CssProperty::ShapeRendering => "https://developer.mozilla.org/en-US/docs/Web/CSS/shape-rendering",
            CssProperty::VectorEffect => "https://developer.mozilla.org/en-US/docs/Web/CSS/vector-effect",
            CssProperty::AccentColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/accent-color",
            CssProperty::CaretColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/caret-color",
            CssProperty::Cursor => "https://developer.mozilla.org/en-US/docs/Web/CSS/cursor",
            CssProperty::Outline => "https://developer.mozilla.org/en-US/docs/Web/CSS/outline",
            CssProperty::OutlineColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/outline-color",
            CssProperty::OutlineOffset => "https://developer.mozilla.org/en-US/docs/Web/CSS/outline-offset",
            CssProperty::OutlineStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/outline-style",
            CssProperty::OutlineWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/outline-width",
            CssProperty::OverscrollBehavior => "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior",
            CssProperty::OverscrollBehaviorBlock => "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior-block",
            CssProperty::OverscrollBehaviorInline => "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior-inline",
            CssProperty::OverscrollBehaviorX => "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior-x",
            CssProperty::OverscrollBehaviorY => "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior-y",
            CssProperty::PointerEvents => "https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events",
            CssProperty::Resize => "https://developer.mozilla.org/en-US/docs/Web/CSS/resize",
            CssProperty::ScrollBehavior => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior",
            CssProperty::ScrollMargin => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin",
            CssProperty::ScrollMarginBlock => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-block",
            CssProperty::ScrollMarginBlockEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-block-end",
            CssProperty::ScrollMarginBlockStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-block-start",
            CssProperty::ScrollMarginBottom => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-bottom",
            CssProperty::ScrollMarginInline => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-inline",
            CssProperty::ScrollMarginInlineEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-inline-end",
            CssProperty::ScrollMarginInlineStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-inline-start",
            CssProperty::ScrollMarginLeft => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-left",
            CssProperty::ScrollMarginRight => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-right",
            CssProperty::ScrollMarginTop => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin-top",
            CssProperty::ScrollPadding => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding",
            CssProperty::ScrollPaddingBlock => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-block",
            CssProperty::ScrollPaddingBlockEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-block-end",
            CssProperty::ScrollPaddingBlockStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-block-start",
            CssProperty::ScrollPaddingBottom => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-bottom",
            CssProperty::ScrollPaddingInline => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-inline",
            CssProperty::ScrollPaddingInlineEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-inline-end",
            CssProperty::ScrollPaddingInlineStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-inline-start",
            CssProperty::ScrollPaddingLeft => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-left",
            CssProperty::ScrollPaddingRight => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-right",
            CssProperty::ScrollPaddingTop => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-padding-top",
            CssProperty::ScrollSnapAlign => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-align",
            CssProperty::ScrollSnapStop => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-stop",
            CssProperty::ScrollSnapType => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type",
            CssProperty::UserSelect => "https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",
            CssProperty::AnchorName => "https://developer.mozilla.org/en-US/docs/Web/CSS/anchor-name",
            CssProperty::Bottom => "https://developer.mozilla.org/en-US/docs/Web/CSS/bottom",
            CssProperty::Clear => "https://developer.mozilla.org/en-US/docs/Web/CSS/clear",
            CssProperty::Display => "https://developer.mozilla.org/en-US/docs/Web/CSS/display",
            CssProperty::Float => "https://developer.mozilla.org/en-US/docs/Web/CSS/float",
            CssProperty::Inset => "https://developer.mozilla.org/en-US/docs/Web/CSS/inset",
            CssProperty::InsetBlock => "https://developer.mozilla.org/en-US/docs/Web/CSS/inset-block",
            CssProperty::InsetBlockEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/inset-block-end",
            CssProperty::InsetBlockStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/inset-block-start",
            CssProperty::InsetInline => "https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline",
            CssProperty::InsetInlineEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-end",
            CssProperty::InsetInlineStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-start",
            CssProperty::Isolation => "https://developer.mozilla.org/en-US/docs/Web/CSS/isolation",
            CssProperty::Left => "https://developer.mozilla.org/en-US/docs/Web/CSS/left",
            CssProperty::Overflow => "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",
            CssProperty::OverflowBlock => "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-block",
            CssProperty::OverflowInline => "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-inline",
            CssProperty::OverflowX => "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-x",
            CssProperty::OverflowY => "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-y",
            CssProperty::Position => "https://developer.mozilla.org/en-US/docs/Web/CSS/position",
            CssProperty::PositionAnchor => "https://developer.mozilla.org/en-US/docs/Web/CSS/position-anchor",
            CssProperty::PositionArea => "https://developer.mozilla.org/en-US/docs/Web/CSS/position-area",
            CssProperty::PositionTryOptions => "https://developer.mozilla.org/en-US/docs/Web/CSS/position-try-options",
            CssProperty::Right => "https://developer.mozilla.org/en-US/docs/Web/CSS/right",
            CssProperty::Top => "https://developer.mozilla.org/en-US/docs/Web/CSS/top",
            CssProperty::Visibility => "https://developer.mozilla.org/en-US/docs/Web/CSS/visibility",
            CssProperty::ZIndex => "https://developer.mozilla.org/en-US/docs/Web/CSS/z-index",
            CssProperty::CounterIncrement => "https://developer.mozilla.org/en-US/docs/Web/CSS/counter-increment",
            CssProperty::CounterReset => "https://developer.mozilla.org/en-US/docs/Web/CSS/counter-reset",
            CssProperty::CounterSet => "https://developer.mozilla.org/en-US/docs/Web/CSS/counter-set",
            CssProperty::ListStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/list-style",
            CssProperty::ListStyleImage => "https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-image",
            CssProperty::ListStylePosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-position",
            CssProperty::ListStyleType => "https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type",
            CssProperty::MarkerEnd => "https://developer.mozilla.org/en-US/docs/Web/CSS/marker-end",
            CssProperty::MarkerMid => "https://developer.mozilla.org/en-US/docs/Web/CSS/marker-mid",
            CssProperty::MarkerStart => "https://developer.mozilla.org/en-US/docs/Web/CSS/marker-start",
            CssProperty::BlockEllipsis => "https://developer.mozilla.org/en-US/docs/Web/CSS/block-ellipsis",
            CssProperty::ColumnCount => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-count",
            CssProperty::ColumnFill => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-fill",
            CssProperty::ColumnRule => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule",
            CssProperty::ColumnRuleColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule-color",
            CssProperty::ColumnRuleStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule-style",
            CssProperty::ColumnRuleWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule-width",
            CssProperty::ColumnSpan => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-span",
            CssProperty::ColumnWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/column-width",
            CssProperty::Columns => "https://developer.mozilla.org/en-US/docs/Web/CSS/columns",
            CssProperty::Contain => "https://developer.mozilla.org/en-US/docs/Web/CSS/contain",
            CssProperty::Container => "https://developer.mozilla.org/en-US/docs/Web/CSS/container",
            CssProperty::ContainerName => "https://developer.mozilla.org/en-US/docs/Web/CSS/container-name",
            CssProperty::ContainerType => "https://developer.mozilla.org/en-US/docs/Web/CSS/container-type",
            CssProperty::ContentVisibility => "https://developer.mozilla.org/en-US/docs/Web/CSS/content-visibility",
            CssProperty::Continue => "https://developer.mozilla.org/en-US/docs/Web/CSS/continue",
            CssProperty::Direction => "https://developer.mozilla.org/en-US/docs/Web/CSS/direction",
            CssProperty::FieldSizing => "https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing",
            CssProperty::FloatOffset => "https://developer.mozilla.org/en-US/docs/Web/CSS/float-offset",
            CssProperty::ImageOrientation => "https://developer.mozilla.org/en-US/docs/Web/CSS/image-orientation",
            CssProperty::ImageRendering => "https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering",
            CssProperty::MaxLines => "https://developer.mozilla.org/en-US/docs/Web/CSS/max-lines",
            CssProperty::MixBlendMode => "https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode",
            CssProperty::ObjectFit => "https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit",
            CssProperty::ObjectPosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/object-position",
            CssProperty::ObjectViewBox => "https://developer.mozilla.org/en-US/docs/Web/CSS/object-view-box",
            CssProperty::RubyAlign => "https://developer.mozilla.org/en-US/docs/Web/CSS/ruby-align",
            CssProperty::RubyMerge => "https://developer.mozilla.org/en-US/docs/Web/CSS/ruby-merge",
            CssProperty::RubyPosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/ruby-position",
            CssProperty::ShapeImageThreshold => "https://developer.mozilla.org/en-US/docs/Web/CSS/shape-image-threshold",
            CssProperty::ShapeMargin => "https://developer.mozilla.org/en-US/docs/Web/CSS/shape-margin",
            CssProperty::ShapeOutside => "https://developer.mozilla.org/en-US/docs/Web/CSS/shape-outside",
            CssProperty::TabSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/tab-size",
            CssProperty::TextRendering => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-rendering",
            CssProperty::TextSpacingCollapse => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-spacing-collapse",
            CssProperty::TextSpacingTrim => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-spacing-trim",
            CssProperty::UnicodeBidi => "https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",
            CssProperty::VerticalAlign => "https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align",
            CssProperty::ViewTransitionName => "https://developer.mozilla.org/en-US/docs/Web/CSS/view-transition-name",
            CssProperty::Zoom => "https://developer.mozilla.org/en-US/docs/Web/CSS/zoom",
            CssProperty::Offset => "https://developer.mozilla.org/en-US/docs/Web/CSS/offset",
            CssProperty::OffsetAnchor => "https://developer.mozilla.org/en-US/docs/Web/CSS/offset-anchor",
            CssProperty::OffsetDistance => "https://developer.mozilla.org/en-US/docs/Web/CSS/offset-distance",
            CssProperty::OffsetPath => "https://developer.mozilla.org/en-US/docs/Web/CSS/offset-path",
            CssProperty::OffsetPosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/offset-position",
            CssProperty::OffsetRotate => "https://developer.mozilla.org/en-US/docs/Web/CSS/offset-rotate",
            CssProperty::Orphans => "https://developer.mozilla.org/en-US/docs/Web/CSS/orphans",
            CssProperty::Page => "https://developer.mozilla.org/en-US/docs/Web/CSS/page",
            CssProperty::PageBreakAfter => "https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after",
            CssProperty::PageBreakBefore => "https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-before",
            CssProperty::PageBreakInside => "https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-inside",
            CssProperty::PageOrientation => "https://developer.mozilla.org/en-US/docs/Web/CSS/page-orientation",
            CssProperty::Widows => "https://developer.mozilla.org/en-US/docs/Web/CSS/widows",
            CssProperty::ScrollTimeline => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-timeline",
            CssProperty::ScrollTimelineAxis => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-timeline-axis",
            CssProperty::ScrollTimelineName => "https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-timeline-name",
            CssProperty::ViewTimeline => "https://developer.mozilla.org/en-US/docs/Web/CSS/view-timeline",
            CssProperty::ViewTimelineAxis => "https://developer.mozilla.org/en-US/docs/Web/CSS/view-timeline-axis",
            CssProperty::ViewTimelineInset => "https://developer.mozilla.org/en-US/docs/Web/CSS/view-timeline-inset",
            CssProperty::ViewTimelineName => "https://developer.mozilla.org/en-US/docs/Web/CSS/view-timeline-name",
            CssProperty::AlignmentBaseline => "https://developer.mozilla.org/en-US/docs/Web/CSS/alignment-baseline",
            CssProperty::BaselineShift => "https://developer.mozilla.org/en-US/docs/Web/CSS/baseline-shift",
            CssProperty::ColorRendering => "https://developer.mozilla.org/en-US/docs/Web/CSS/color-rendering",
            CssProperty::DominantBaseline => "https://developer.mozilla.org/en-US/docs/Web/CSS/dominant-baseline",
            CssProperty::Fill => "https://developer.mozilla.org/en-US/docs/Web/CSS/fill",
            CssProperty::FillOpacity => "https://developer.mozilla.org/en-US/docs/Web/CSS/fill-opacity",
            CssProperty::FillRule => "https://developer.mozilla.org/en-US/docs/Web/CSS/fill-rule",
            CssProperty::InitialLetter => "https://developer.mozilla.org/en-US/docs/Web/CSS/initial-letter",
            CssProperty::InitialLetterAlign => "https://developer.mozilla.org/en-US/docs/Web/CSS/initial-letter-align",
            CssProperty::ShapeInside => "https://developer.mozilla.org/en-US/docs/Web/CSS/shape-inside",
            CssProperty::ShapeSubtract => "https://developer.mozilla.org/en-US/docs/Web/CSS/shape-subtract",
            CssProperty::Stroke => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke",
            CssProperty::StrokeDashCorner => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-dash-corner",
            CssProperty::StrokeDashJustified => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-dash-justified",
            CssProperty::StrokeDasharray => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-dasharray",
            CssProperty::StrokeDashoffset => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-dashoffset",
            CssProperty::StrokeLinecap => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-linecap",
            CssProperty::StrokeLinejoin => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-linejoin",
            CssProperty::StrokeMiterlimit => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-miterlimit",
            CssProperty::StrokeOpacity => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-opacity",
            CssProperty::StrokeWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-width",
            CssProperty::BorderCollapse => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-collapse",
            CssProperty::BorderSpacing => "https://developer.mozilla.org/en-US/docs/Web/CSS/border-spacing",
            CssProperty::CaptionSide => "https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side",
            CssProperty::EmptyCells => "https://developer.mozilla.org/en-US/docs/Web/CSS/empty-cells",
            CssProperty::TableLayout => "https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout",
            CssProperty::BackfaceVisibility => "https://developer.mozilla.org/en-US/docs/Web/CSS/backface-visibility",
            CssProperty::Perspective => "https://developer.mozilla.org/en-US/docs/Web/CSS/perspective",
            CssProperty::PerspectiveOrigin => "https://developer.mozilla.org/en-US/docs/Web/CSS/perspective-origin",
            CssProperty::Rotate => "https://developer.mozilla.org/en-US/docs/Web/CSS/rotate",
            CssProperty::Scale => "https://developer.mozilla.org/en-US/docs/Web/CSS/scale",
            CssProperty::Transform => "https://developer.mozilla.org/en-US/docs/Web/CSS/transform",
            CssProperty::TransformBox => "https://developer.mozilla.org/en-US/docs/Web/CSS/transform-box",
            CssProperty::TransformOrigin => "https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin",
            CssProperty::TransformStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/transform-style",
            CssProperty::Translate => "https://developer.mozilla.org/en-US/docs/Web/CSS/translate",
            CssProperty::Transition => "https://developer.mozilla.org/en-US/docs/Web/CSS/transition",
            CssProperty::TransitionBehavior => "https://developer.mozilla.org/en-US/docs/Web/CSS/transition-behavior",
            CssProperty::TransitionDelay => "https://developer.mozilla.org/en-US/docs/Web/CSS/transition-delay",
            CssProperty::TransitionDuration => "https://developer.mozilla.org/en-US/docs/Web/CSS/transition-duration",
            CssProperty::TransitionProperty => "https://developer.mozilla.org/en-US/docs/Web/CSS/transition-property",
            CssProperty::TransitionTimingFunction => "https://developer.mozilla.org/en-US/docs/Web/CSS/transition-timing-function",
            CssProperty::Font => "https://developer.mozilla.org/en-US/docs/Web/CSS/font",
            CssProperty::FontFamily => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-family",
            CssProperty::FontFeatureSettings => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings",
            CssProperty::FontLanguageOverride => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-language-override",
            CssProperty::FontPalette => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-palette",
            CssProperty::FontSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-size",
            CssProperty::FontSizeAdjust => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-size-adjust",
            CssProperty::FontStretch => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch",
            CssProperty::FontStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-style",
            CssProperty::FontSynthesis => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-synthesis",
            CssProperty::FontSynthesisSmallCaps => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-synthesis-small-caps",
            CssProperty::FontSynthesisStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-synthesis-style",
            CssProperty::FontSynthesisWeight => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-synthesis-weight",
            CssProperty::FontVariant => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant",
            CssProperty::FontVariantAlternates => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-alternates",
            CssProperty::FontVariantCaps => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-caps",
            CssProperty::FontVariantEastAsian => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-east-asian",
            CssProperty::FontVariantLigatures => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-ligatures",
            CssProperty::FontVariantNumeric => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-numeric",
            CssProperty::FontVariantPosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-position",
            CssProperty::FontWeight => "https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight",
            CssProperty::GlyphOrientationVertical => "https://developer.mozilla.org/en-US/docs/Web/CSS/glyph-orientation-vertical",
            CssProperty::HangingPunctuation => "https://developer.mozilla.org/en-US/docs/Web/CSS/hanging-punctuation",
            CssProperty::HyphenateCharacter => "https://developer.mozilla.org/en-US/docs/Web/CSS/hyphenate-character",
            CssProperty::HyphenateLimitChars => "https://developer.mozilla.org/en-US/docs/Web/CSS/hyphenate-limit-chars",
            CssProperty::Hyphens => "https://developer.mozilla.org/en-US/docs/Web/CSS/hyphens",
            CssProperty::LetterSpacing => "https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing",
            CssProperty::LineBreak => "https://developer.mozilla.org/en-US/docs/Web/CSS/line-break",
            CssProperty::LineHeight => "https://developer.mozilla.org/en-US/docs/Web/CSS/line-height",
            CssProperty::LineHeightStep => "https://developer.mozilla.org/en-US/docs/Web/CSS/line-height-step",
            CssProperty::OverflowWrap => "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap",
            CssProperty::TextAlign => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-align",
            CssProperty::TextAlignAll => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-align-all",
            CssProperty::TextAlignLast => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-align-last",
            CssProperty::TextCombineUpright => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-combine-upright",
            CssProperty::TextDecoration => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration",
            CssProperty::TextDecorationColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-color",
            CssProperty::TextDecorationLine => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line",
            CssProperty::TextDecorationSkip => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-skip",
            CssProperty::TextDecorationSkipInk => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-skip-ink",
            CssProperty::TextDecorationStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-style",
            CssProperty::TextDecorationThickness => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-thickness",
            CssProperty::TextEmphasis => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-emphasis",
            CssProperty::TextEmphasisColor => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-emphasis-color",
            CssProperty::TextEmphasisPosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-emphasis-position",
            CssProperty::TextEmphasisStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-emphasis-style",
            CssProperty::TextIndent => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-indent",
            CssProperty::TextJustify => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-justify",
            CssProperty::TextOrientation => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-orientation",
            CssProperty::TextOverflow => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow",
            CssProperty::TextShadow => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow",
            CssProperty::TextSizeAdjust => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-size-adjust",
            CssProperty::TextTransform => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform",
            CssProperty::TextUnderlineOffset => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-underline-offset",
            CssProperty::TextUnderlinePosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-underline-position",
            CssProperty::TextWrap => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-wrap",
            CssProperty::TextWrapMode => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-wrap-mode",
            CssProperty::TextWrapStyle => "https://developer.mozilla.org/en-US/docs/Web/CSS/text-wrap-style",
            CssProperty::WhiteSpace => "https://developer.mozilla.org/en-US/docs/Web/CSS/white-space",
            CssProperty::WhiteSpaceCollapse => "https://developer.mozilla.org/en-US/docs/Web/CSS/white-space-collapse",
            CssProperty::WordBreak => "https://developer.mozilla.org/en-US/docs/Web/CSS/word-break",
            CssProperty::WordSpacing => "https://developer.mozilla.org/en-US/docs/Web/CSS/word-spacing",
            CssProperty::WordWrap => "https://developer.mozilla.org/en-US/docs/Web/CSS/word-wrap",
            CssProperty::WritingMode => "https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode",
            CssProperty::BackdropFilter => "https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter",
            CssProperty::ClipPath => "https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path",
            CssProperty::ClipRule => "https://developer.mozilla.org/en-US/docs/Web/CSS/clip-rule",
            CssProperty::Filter => "https://developer.mozilla.org/en-US/docs/Web/CSS/filter",
            CssProperty::Mask => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask",
            CssProperty::MaskBorder => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-border",
            CssProperty::MaskBorderOutset => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-border-outset",
            CssProperty::MaskBorderRepeat => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-border-repeat",
            CssProperty::MaskBorderSlice => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-border-slice",
            CssProperty::MaskBorderSource => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-border-source",
            CssProperty::MaskBorderWidth => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-border-width",
            CssProperty::MaskClip => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-clip",
            CssProperty::MaskComposite => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-composite",
            CssProperty::MaskImage => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image",
            CssProperty::MaskMode => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-mode",
            CssProperty::MaskOrigin => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-origin",
            CssProperty::MaskPosition => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-position",
            CssProperty::MaskPositionX => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-position-x",
            CssProperty::MaskPositionY => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-position-y",
            CssProperty::MaskRepeat => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-repeat",
            CssProperty::MaskSize => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-size",
            CssProperty::MaskType => "https://developer.mozilla.org/en-US/docs/Web/CSS/mask-type",
        }
    }
}

#[derive(Debug, Clone, PartialEq)]
pub enum Property {
    Known(CssProperty),
    Custom(String),
}

impl Property {
    /// Get the property name as a string.
    pub fn as_str(&self) -> &str {
        match self {
            Property::Known(prop) => prop.as_str(),
            Property::Custom(s) => s.as_str(),
        }
    }

    /// Get the category of this property.
    pub fn category(&self) -> Option<CssCategory> {
        match self {
            Property::Known(prop) => Some(prop.category()),
            Property::Custom(_) => None,
        }
    }
}

impl From<CssProperty> for Property {
    #[inline]
    fn from(prop: CssProperty) -> Self {
        Property::Known(prop)
    }
}

impl From<String> for Property {
    #[inline]
    fn from(s: String) -> Self {
        Property::Custom(s)
    }
}

impl From<&str> for Property {
    #[inline]
    fn from(s: &str) -> Self {
        Property::Custom(s.to_string())
    }
}

impl std::fmt::Display for CssProperty {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{}", self.as_str())
    }
}

impl std::fmt::Display for Property {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{}", self.as_str())
    }
}