Skip to main content

hypersig_style/
generated.rs

1// @generated by tests/generate.rs from data/mdn-data-2.37.2. Do not edit by hand.
2
3use crate::style::Style;
4/// A standard CSS property, or one of the anchor positioning properties.
5#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
6#[non_exhaustive]
7pub enum Property {
8    /// `accent-color`.
9    AccentColor,
10    /// `align-content`.
11    AlignContent,
12    /// `align-items`.
13    AlignItems,
14    /// `align-self`.
15    AlignSelf,
16    /// `alignment-baseline`.
17    AlignmentBaseline,
18    /// `all`.
19    All,
20    /// `anchor-name`.
21    AnchorName,
22    /// `animation`.
23    Animation,
24    /// `animation-composition`.
25    AnimationComposition,
26    /// `animation-delay`.
27    AnimationDelay,
28    /// `animation-direction`.
29    AnimationDirection,
30    /// `animation-duration`.
31    AnimationDuration,
32    /// `animation-fill-mode`.
33    AnimationFillMode,
34    /// `animation-iteration-count`.
35    AnimationIterationCount,
36    /// `animation-name`.
37    AnimationName,
38    /// `animation-play-state`.
39    AnimationPlayState,
40    /// `animation-timing-function`.
41    AnimationTimingFunction,
42    /// `animation-trigger`.
43    AnimationTrigger,
44    /// `appearance`.
45    Appearance,
46    /// `aspect-ratio`.
47    AspectRatio,
48    /// `backdrop-filter`.
49    BackdropFilter,
50    /// `backface-visibility`.
51    BackfaceVisibility,
52    /// `background`.
53    Background,
54    /// `background-attachment`.
55    BackgroundAttachment,
56    /// `background-blend-mode`.
57    BackgroundBlendMode,
58    /// `background-clip`.
59    BackgroundClip,
60    /// `background-color`.
61    BackgroundColor,
62    /// `background-image`.
63    BackgroundImage,
64    /// `background-origin`.
65    BackgroundOrigin,
66    /// `background-position`.
67    BackgroundPosition,
68    /// `background-position-x`.
69    BackgroundPositionX,
70    /// `background-position-y`.
71    BackgroundPositionY,
72    /// `background-repeat`.
73    BackgroundRepeat,
74    /// `background-size`.
75    BackgroundSize,
76    /// `baseline-shift`.
77    BaselineShift,
78    /// `baseline-source`.
79    BaselineSource,
80    /// `block-size`.
81    BlockSize,
82    /// `border`.
83    Border,
84    /// `border-block`.
85    BorderBlock,
86    /// `border-block-color`.
87    BorderBlockColor,
88    /// `border-block-end`.
89    BorderBlockEnd,
90    /// `border-block-end-color`.
91    BorderBlockEndColor,
92    /// `border-block-end-style`.
93    BorderBlockEndStyle,
94    /// `border-block-end-width`.
95    BorderBlockEndWidth,
96    /// `border-block-start`.
97    BorderBlockStart,
98    /// `border-block-start-color`.
99    BorderBlockStartColor,
100    /// `border-block-start-style`.
101    BorderBlockStartStyle,
102    /// `border-block-start-width`.
103    BorderBlockStartWidth,
104    /// `border-block-style`.
105    BorderBlockStyle,
106    /// `border-block-width`.
107    BorderBlockWidth,
108    /// `border-bottom`.
109    BorderBottom,
110    /// `border-bottom-color`.
111    BorderBottomColor,
112    /// `border-bottom-left-radius`.
113    BorderBottomLeftRadius,
114    /// `border-bottom-right-radius`.
115    BorderBottomRightRadius,
116    /// `border-bottom-style`.
117    BorderBottomStyle,
118    /// `border-bottom-width`.
119    BorderBottomWidth,
120    /// `border-collapse`.
121    BorderCollapse,
122    /// `border-color`.
123    BorderColor,
124    /// `border-end-end-radius`.
125    BorderEndEndRadius,
126    /// `border-end-start-radius`.
127    BorderEndStartRadius,
128    /// `border-image`.
129    BorderImage,
130    /// `border-image-outset`.
131    BorderImageOutset,
132    /// `border-image-repeat`.
133    BorderImageRepeat,
134    /// `border-image-slice`.
135    BorderImageSlice,
136    /// `border-image-source`.
137    BorderImageSource,
138    /// `border-image-width`.
139    BorderImageWidth,
140    /// `border-inline`.
141    BorderInline,
142    /// `border-inline-color`.
143    BorderInlineColor,
144    /// `border-inline-end`.
145    BorderInlineEnd,
146    /// `border-inline-end-color`.
147    BorderInlineEndColor,
148    /// `border-inline-end-style`.
149    BorderInlineEndStyle,
150    /// `border-inline-end-width`.
151    BorderInlineEndWidth,
152    /// `border-inline-start`.
153    BorderInlineStart,
154    /// `border-inline-start-color`.
155    BorderInlineStartColor,
156    /// `border-inline-start-style`.
157    BorderInlineStartStyle,
158    /// `border-inline-start-width`.
159    BorderInlineStartWidth,
160    /// `border-inline-style`.
161    BorderInlineStyle,
162    /// `border-inline-width`.
163    BorderInlineWidth,
164    /// `border-left`.
165    BorderLeft,
166    /// `border-left-color`.
167    BorderLeftColor,
168    /// `border-left-style`.
169    BorderLeftStyle,
170    /// `border-left-width`.
171    BorderLeftWidth,
172    /// `border-radius`.
173    BorderRadius,
174    /// `border-right`.
175    BorderRight,
176    /// `border-right-color`.
177    BorderRightColor,
178    /// `border-right-style`.
179    BorderRightStyle,
180    /// `border-right-width`.
181    BorderRightWidth,
182    /// `border-shape`.
183    BorderShape,
184    /// `border-spacing`.
185    BorderSpacing,
186    /// `border-start-end-radius`.
187    BorderStartEndRadius,
188    /// `border-start-start-radius`.
189    BorderStartStartRadius,
190    /// `border-style`.
191    BorderStyle,
192    /// `border-top`.
193    BorderTop,
194    /// `border-top-color`.
195    BorderTopColor,
196    /// `border-top-left-radius`.
197    BorderTopLeftRadius,
198    /// `border-top-right-radius`.
199    BorderTopRightRadius,
200    /// `border-top-style`.
201    BorderTopStyle,
202    /// `border-top-width`.
203    BorderTopWidth,
204    /// `border-width`.
205    BorderWidth,
206    /// `bottom`.
207    Bottom,
208    /// `box-decoration-break`.
209    BoxDecorationBreak,
210    /// `box-shadow`.
211    BoxShadow,
212    /// `box-sizing`.
213    BoxSizing,
214    /// `break-after`.
215    BreakAfter,
216    /// `break-before`.
217    BreakBefore,
218    /// `break-inside`.
219    BreakInside,
220    /// `caption-side`.
221    CaptionSide,
222    /// `caret`.
223    Caret,
224    /// `caret-animation`.
225    CaretAnimation,
226    /// `caret-color`.
227    CaretColor,
228    /// `caret-shape`.
229    CaretShape,
230    /// `clear`.
231    Clear,
232    /// `clip-path`.
233    ClipPath,
234    /// `clip-rule`.
235    ClipRule,
236    /// `color`.
237    Color,
238    /// `color-interpolation-filters`.
239    ColorInterpolationFilters,
240    /// `color-scheme`.
241    ColorScheme,
242    /// `column-count`.
243    ColumnCount,
244    /// `column-fill`.
245    ColumnFill,
246    /// `column-gap`.
247    ColumnGap,
248    /// `column-height`.
249    ColumnHeight,
250    /// `column-rule`.
251    ColumnRule,
252    /// `column-rule-color`.
253    ColumnRuleColor,
254    /// `column-rule-style`.
255    ColumnRuleStyle,
256    /// `column-rule-width`.
257    ColumnRuleWidth,
258    /// `column-span`.
259    ColumnSpan,
260    /// `column-width`.
261    ColumnWidth,
262    /// `column-wrap`.
263    ColumnWrap,
264    /// `columns`.
265    Columns,
266    /// `contain`.
267    Contain,
268    /// `contain-intrinsic-block-size`.
269    ContainIntrinsicBlockSize,
270    /// `contain-intrinsic-height`.
271    ContainIntrinsicHeight,
272    /// `contain-intrinsic-inline-size`.
273    ContainIntrinsicInlineSize,
274    /// `contain-intrinsic-size`.
275    ContainIntrinsicSize,
276    /// `contain-intrinsic-width`.
277    ContainIntrinsicWidth,
278    /// `container`.
279    Container,
280    /// `container-name`.
281    ContainerName,
282    /// `container-type`.
283    ContainerType,
284    /// `content`.
285    Content,
286    /// `content-visibility`.
287    ContentVisibility,
288    /// `corner-block-end-shape`.
289    CornerBlockEndShape,
290    /// `corner-block-start-shape`.
291    CornerBlockStartShape,
292    /// `corner-bottom-left-shape`.
293    CornerBottomLeftShape,
294    /// `corner-bottom-right-shape`.
295    CornerBottomRightShape,
296    /// `corner-bottom-shape`.
297    CornerBottomShape,
298    /// `corner-end-end-shape`.
299    CornerEndEndShape,
300    /// `corner-end-start-shape`.
301    CornerEndStartShape,
302    /// `corner-inline-end-shape`.
303    CornerInlineEndShape,
304    /// `corner-inline-start-shape`.
305    CornerInlineStartShape,
306    /// `corner-left-shape`.
307    CornerLeftShape,
308    /// `corner-right-shape`.
309    CornerRightShape,
310    /// `corner-shape`.
311    CornerShape,
312    /// `corner-start-end-shape`.
313    CornerStartEndShape,
314    /// `corner-start-start-shape`.
315    CornerStartStartShape,
316    /// `corner-top-left-shape`.
317    CornerTopLeftShape,
318    /// `corner-top-right-shape`.
319    CornerTopRightShape,
320    /// `corner-top-shape`.
321    CornerTopShape,
322    /// `counter-increment`.
323    CounterIncrement,
324    /// `counter-reset`.
325    CounterReset,
326    /// `counter-set`.
327    CounterSet,
328    /// `cursor`.
329    Cursor,
330    /// `cx`.
331    Cx,
332    /// `cy`.
333    Cy,
334    /// `d`.
335    D,
336    /// `direction`.
337    Direction,
338    /// `display`.
339    Display,
340    /// `dominant-baseline`.
341    DominantBaseline,
342    /// `dynamic-range-limit`.
343    DynamicRangeLimit,
344    /// `empty-cells`.
345    EmptyCells,
346    /// `fill`.
347    Fill,
348    /// `fill-opacity`.
349    FillOpacity,
350    /// `fill-rule`.
351    FillRule,
352    /// `filter`.
353    Filter,
354    /// `flex`.
355    Flex,
356    /// `flex-basis`.
357    FlexBasis,
358    /// `flex-direction`.
359    FlexDirection,
360    /// `flex-flow`.
361    FlexFlow,
362    /// `flex-grow`.
363    FlexGrow,
364    /// `flex-line-count`.
365    FlexLineCount,
366    /// `flex-shrink`.
367    FlexShrink,
368    /// `flex-wrap`.
369    FlexWrap,
370    /// `float`.
371    Float,
372    /// `flood-color`.
373    FloodColor,
374    /// `flood-opacity`.
375    FloodOpacity,
376    /// `font`.
377    Font,
378    /// `font-family`.
379    FontFamily,
380    /// `font-feature-settings`.
381    FontFeatureSettings,
382    /// `font-kerning`.
383    FontKerning,
384    /// `font-language-override`.
385    FontLanguageOverride,
386    /// `font-optical-sizing`.
387    FontOpticalSizing,
388    /// `font-palette`.
389    FontPalette,
390    /// `font-size`.
391    FontSize,
392    /// `font-size-adjust`.
393    FontSizeAdjust,
394    /// `font-style`.
395    FontStyle,
396    /// `font-synthesis`.
397    FontSynthesis,
398    /// `font-synthesis-small-caps`.
399    FontSynthesisSmallCaps,
400    /// `font-synthesis-style`.
401    FontSynthesisStyle,
402    /// `font-synthesis-weight`.
403    FontSynthesisWeight,
404    /// `font-variant`.
405    FontVariant,
406    /// `font-variant-alternates`.
407    FontVariantAlternates,
408    /// `font-variant-caps`.
409    FontVariantCaps,
410    /// `font-variant-east-asian`.
411    FontVariantEastAsian,
412    /// `font-variant-emoji`.
413    FontVariantEmoji,
414    /// `font-variant-ligatures`.
415    FontVariantLigatures,
416    /// `font-variant-numeric`.
417    FontVariantNumeric,
418    /// `font-variant-position`.
419    FontVariantPosition,
420    /// `font-variation-settings`.
421    FontVariationSettings,
422    /// `font-weight`.
423    FontWeight,
424    /// `forced-color-adjust`.
425    ForcedColorAdjust,
426    /// `frame-sizing`.
427    FrameSizing,
428    /// `gap`.
429    Gap,
430    /// `grid`.
431    Grid,
432    /// `grid-area`.
433    GridArea,
434    /// `grid-auto-columns`.
435    GridAutoColumns,
436    /// `grid-auto-flow`.
437    GridAutoFlow,
438    /// `grid-auto-rows`.
439    GridAutoRows,
440    /// `grid-column`.
441    GridColumn,
442    /// `grid-column-end`.
443    GridColumnEnd,
444    /// `grid-column-start`.
445    GridColumnStart,
446    /// `grid-row`.
447    GridRow,
448    /// `grid-row-end`.
449    GridRowEnd,
450    /// `grid-row-start`.
451    GridRowStart,
452    /// `grid-template`.
453    GridTemplate,
454    /// `grid-template-areas`.
455    GridTemplateAreas,
456    /// `grid-template-columns`.
457    GridTemplateColumns,
458    /// `grid-template-rows`.
459    GridTemplateRows,
460    /// `hanging-punctuation`.
461    HangingPunctuation,
462    /// `height`.
463    Height,
464    /// `hyphenate-character`.
465    HyphenateCharacter,
466    /// `hyphenate-limit-chars`.
467    HyphenateLimitChars,
468    /// `hyphens`.
469    Hyphens,
470    /// `image-orientation`.
471    ImageOrientation,
472    /// `image-rendering`.
473    ImageRendering,
474    /// `initial-letter`.
475    InitialLetter,
476    /// `inline-size`.
477    InlineSize,
478    /// `inset`.
479    Inset,
480    /// `inset-block`.
481    InsetBlock,
482    /// `inset-block-end`.
483    InsetBlockEnd,
484    /// `inset-block-start`.
485    InsetBlockStart,
486    /// `inset-inline`.
487    InsetInline,
488    /// `inset-inline-end`.
489    InsetInlineEnd,
490    /// `inset-inline-start`.
491    InsetInlineStart,
492    /// `interactivity`.
493    Interactivity,
494    /// `interest-delay`.
495    InterestDelay,
496    /// `interest-delay-end`.
497    InterestDelayEnd,
498    /// `interest-delay-start`.
499    InterestDelayStart,
500    /// `isolation`.
501    Isolation,
502    /// `justify-content`.
503    JustifyContent,
504    /// `justify-items`.
505    JustifyItems,
506    /// `justify-self`.
507    JustifySelf,
508    /// `left`.
509    Left,
510    /// `letter-spacing`.
511    LetterSpacing,
512    /// `lighting-color`.
513    LightingColor,
514    /// `line-break`.
515    LineBreak,
516    /// `line-clamp`.
517    LineClamp,
518    /// `line-height`.
519    LineHeight,
520    /// `list-style`.
521    ListStyle,
522    /// `list-style-image`.
523    ListStyleImage,
524    /// `list-style-position`.
525    ListStylePosition,
526    /// `list-style-type`.
527    ListStyleType,
528    /// `margin`.
529    Margin,
530    /// `margin-block`.
531    MarginBlock,
532    /// `margin-block-end`.
533    MarginBlockEnd,
534    /// `margin-block-start`.
535    MarginBlockStart,
536    /// `margin-bottom`.
537    MarginBottom,
538    /// `margin-inline`.
539    MarginInline,
540    /// `margin-inline-end`.
541    MarginInlineEnd,
542    /// `margin-inline-start`.
543    MarginInlineStart,
544    /// `margin-left`.
545    MarginLeft,
546    /// `margin-right`.
547    MarginRight,
548    /// `margin-top`.
549    MarginTop,
550    /// `marker`.
551    Marker,
552    /// `marker-end`.
553    MarkerEnd,
554    /// `marker-mid`.
555    MarkerMid,
556    /// `marker-start`.
557    MarkerStart,
558    /// `mask`.
559    Mask,
560    /// `mask-border`.
561    MaskBorder,
562    /// `mask-border-mode`.
563    MaskBorderMode,
564    /// `mask-border-outset`.
565    MaskBorderOutset,
566    /// `mask-border-repeat`.
567    MaskBorderRepeat,
568    /// `mask-border-slice`.
569    MaskBorderSlice,
570    /// `mask-border-source`.
571    MaskBorderSource,
572    /// `mask-border-width`.
573    MaskBorderWidth,
574    /// `mask-clip`.
575    MaskClip,
576    /// `mask-composite`.
577    MaskComposite,
578    /// `mask-image`.
579    MaskImage,
580    /// `mask-mode`.
581    MaskMode,
582    /// `mask-origin`.
583    MaskOrigin,
584    /// `mask-position`.
585    MaskPosition,
586    /// `mask-repeat`.
587    MaskRepeat,
588    /// `mask-size`.
589    MaskSize,
590    /// `mask-type`.
591    MaskType,
592    /// `math-depth`.
593    MathDepth,
594    /// `math-style`.
595    MathStyle,
596    /// `max-block-size`.
597    MaxBlockSize,
598    /// `max-height`.
599    MaxHeight,
600    /// `max-inline-size`.
601    MaxInlineSize,
602    /// `max-width`.
603    MaxWidth,
604    /// `min-block-size`.
605    MinBlockSize,
606    /// `min-height`.
607    MinHeight,
608    /// `min-inline-size`.
609    MinInlineSize,
610    /// `min-width`.
611    MinWidth,
612    /// `mix-blend-mode`.
613    MixBlendMode,
614    /// `object-fit`.
615    ObjectFit,
616    /// `object-position`.
617    ObjectPosition,
618    /// `offset`.
619    Offset,
620    /// `offset-anchor`.
621    OffsetAnchor,
622    /// `offset-distance`.
623    OffsetDistance,
624    /// `offset-path`.
625    OffsetPath,
626    /// `offset-position`.
627    OffsetPosition,
628    /// `offset-rotate`.
629    OffsetRotate,
630    /// `opacity`.
631    Opacity,
632    /// `order`.
633    Order,
634    /// `orphans`.
635    Orphans,
636    /// `outline`.
637    Outline,
638    /// `outline-color`.
639    OutlineColor,
640    /// `outline-offset`.
641    OutlineOffset,
642    /// `outline-style`.
643    OutlineStyle,
644    /// `outline-width`.
645    OutlineWidth,
646    /// `overflow`.
647    Overflow,
648    /// `overflow-anchor`.
649    OverflowAnchor,
650    /// `overflow-block`.
651    OverflowBlock,
652    /// `overflow-clip-margin`.
653    OverflowClipMargin,
654    /// `overflow-inline`.
655    OverflowInline,
656    /// `overflow-wrap`.
657    OverflowWrap,
658    /// `overflow-x`.
659    OverflowX,
660    /// `overflow-y`.
661    OverflowY,
662    /// `overscroll-behavior`.
663    OverscrollBehavior,
664    /// `overscroll-behavior-block`.
665    OverscrollBehaviorBlock,
666    /// `overscroll-behavior-inline`.
667    OverscrollBehaviorInline,
668    /// `overscroll-behavior-x`.
669    OverscrollBehaviorX,
670    /// `overscroll-behavior-y`.
671    OverscrollBehaviorY,
672    /// `padding`.
673    Padding,
674    /// `padding-block`.
675    PaddingBlock,
676    /// `padding-block-end`.
677    PaddingBlockEnd,
678    /// `padding-block-start`.
679    PaddingBlockStart,
680    /// `padding-bottom`.
681    PaddingBottom,
682    /// `padding-inline`.
683    PaddingInline,
684    /// `padding-inline-end`.
685    PaddingInlineEnd,
686    /// `padding-inline-start`.
687    PaddingInlineStart,
688    /// `padding-left`.
689    PaddingLeft,
690    /// `padding-right`.
691    PaddingRight,
692    /// `padding-top`.
693    PaddingTop,
694    /// `page`.
695    Page,
696    /// `paint-order`.
697    PaintOrder,
698    /// `path-length`.
699    PathLength,
700    /// `perspective`.
701    Perspective,
702    /// `perspective-origin`.
703    PerspectiveOrigin,
704    /// `place-content`.
705    PlaceContent,
706    /// `place-items`.
707    PlaceItems,
708    /// `place-self`.
709    PlaceSelf,
710    /// `pointer-events`.
711    PointerEvents,
712    /// `position`.
713    Position,
714    /// `position-anchor`.
715    PositionAnchor,
716    /// `position-area`.
717    PositionArea,
718    /// `position-try-fallbacks`.
719    PositionTryFallbacks,
720    /// `print-color-adjust`.
721    PrintColorAdjust,
722    /// `quotes`.
723    Quotes,
724    /// `r`.
725    R,
726    /// `reading-flow`.
727    ReadingFlow,
728    /// `reading-order`.
729    ReadingOrder,
730    /// `resize`.
731    Resize,
732    /// `right`.
733    Right,
734    /// `rotate`.
735    Rotate,
736    /// `row-gap`.
737    RowGap,
738    /// `ruby-align`.
739    RubyAlign,
740    /// `ruby-overhang`.
741    RubyOverhang,
742    /// `ruby-position`.
743    RubyPosition,
744    /// `rx`.
745    Rx,
746    /// `ry`.
747    Ry,
748    /// `scale`.
749    Scale,
750    /// `scroll-axis-lock`.
751    ScrollAxisLock,
752    /// `scroll-behavior`.
753    ScrollBehavior,
754    /// `scroll-margin`.
755    ScrollMargin,
756    /// `scroll-margin-block`.
757    ScrollMarginBlock,
758    /// `scroll-margin-block-end`.
759    ScrollMarginBlockEnd,
760    /// `scroll-margin-block-start`.
761    ScrollMarginBlockStart,
762    /// `scroll-margin-bottom`.
763    ScrollMarginBottom,
764    /// `scroll-margin-inline`.
765    ScrollMarginInline,
766    /// `scroll-margin-inline-end`.
767    ScrollMarginInlineEnd,
768    /// `scroll-margin-inline-start`.
769    ScrollMarginInlineStart,
770    /// `scroll-margin-left`.
771    ScrollMarginLeft,
772    /// `scroll-margin-right`.
773    ScrollMarginRight,
774    /// `scroll-margin-top`.
775    ScrollMarginTop,
776    /// `scroll-marker-group`.
777    ScrollMarkerGroup,
778    /// `scroll-padding`.
779    ScrollPadding,
780    /// `scroll-padding-block`.
781    ScrollPaddingBlock,
782    /// `scroll-padding-block-end`.
783    ScrollPaddingBlockEnd,
784    /// `scroll-padding-block-start`.
785    ScrollPaddingBlockStart,
786    /// `scroll-padding-bottom`.
787    ScrollPaddingBottom,
788    /// `scroll-padding-inline`.
789    ScrollPaddingInline,
790    /// `scroll-padding-inline-end`.
791    ScrollPaddingInlineEnd,
792    /// `scroll-padding-inline-start`.
793    ScrollPaddingInlineStart,
794    /// `scroll-padding-left`.
795    ScrollPaddingLeft,
796    /// `scroll-padding-right`.
797    ScrollPaddingRight,
798    /// `scroll-padding-top`.
799    ScrollPaddingTop,
800    /// `scroll-snap-align`.
801    ScrollSnapAlign,
802    /// `scroll-snap-stop`.
803    ScrollSnapStop,
804    /// `scroll-snap-type`.
805    ScrollSnapType,
806    /// `scroll-target-group`.
807    ScrollTargetGroup,
808    /// `scrollbar-color`.
809    ScrollbarColor,
810    /// `scrollbar-gutter`.
811    ScrollbarGutter,
812    /// `scrollbar-width`.
813    ScrollbarWidth,
814    /// `shape-image-threshold`.
815    ShapeImageThreshold,
816    /// `shape-margin`.
817    ShapeMargin,
818    /// `shape-outside`.
819    ShapeOutside,
820    /// `shape-rendering`.
821    ShapeRendering,
822    /// `stop-color`.
823    StopColor,
824    /// `stop-opacity`.
825    StopOpacity,
826    /// `stroke`.
827    Stroke,
828    /// `stroke-dasharray`.
829    StrokeDasharray,
830    /// `stroke-dashoffset`.
831    StrokeDashoffset,
832    /// `stroke-linecap`.
833    StrokeLinecap,
834    /// `stroke-linejoin`.
835    StrokeLinejoin,
836    /// `stroke-miterlimit`.
837    StrokeMiterlimit,
838    /// `stroke-opacity`.
839    StrokeOpacity,
840    /// `stroke-width`.
841    StrokeWidth,
842    /// `tab-size`.
843    TabSize,
844    /// `table-layout`.
845    TableLayout,
846    /// `text-align`.
847    TextAlign,
848    /// `text-align-last`.
849    TextAlignLast,
850    /// `text-anchor`.
851    TextAnchor,
852    /// `text-autospace`.
853    TextAutospace,
854    /// `text-box`.
855    TextBox,
856    /// `text-box-edge`.
857    TextBoxEdge,
858    /// `text-box-trim`.
859    TextBoxTrim,
860    /// `text-combine-upright`.
861    TextCombineUpright,
862    /// `text-decoration`.
863    TextDecoration,
864    /// `text-decoration-color`.
865    TextDecorationColor,
866    /// `text-decoration-inset`.
867    TextDecorationInset,
868    /// `text-decoration-line`.
869    TextDecorationLine,
870    /// `text-decoration-skip-ink`.
871    TextDecorationSkipInk,
872    /// `text-decoration-style`.
873    TextDecorationStyle,
874    /// `text-decoration-thickness`.
875    TextDecorationThickness,
876    /// `text-emphasis`.
877    TextEmphasis,
878    /// `text-emphasis-color`.
879    TextEmphasisColor,
880    /// `text-emphasis-position`.
881    TextEmphasisPosition,
882    /// `text-emphasis-style`.
883    TextEmphasisStyle,
884    /// `text-fit`.
885    TextFit,
886    /// `text-indent`.
887    TextIndent,
888    /// `text-justify`.
889    TextJustify,
890    /// `text-orientation`.
891    TextOrientation,
892    /// `text-overflow`.
893    TextOverflow,
894    /// `text-rendering`.
895    TextRendering,
896    /// `text-shadow`.
897    TextShadow,
898    /// `text-transform`.
899    TextTransform,
900    /// `text-underline-offset`.
901    TextUnderlineOffset,
902    /// `text-underline-position`.
903    TextUnderlinePosition,
904    /// `text-wrap`.
905    TextWrap,
906    /// `text-wrap-mode`.
907    TextWrapMode,
908    /// `text-wrap-style`.
909    TextWrapStyle,
910    /// `timeline-trigger`.
911    TimelineTrigger,
912    /// `timeline-trigger-activation-range`.
913    TimelineTriggerActivationRange,
914    /// `timeline-trigger-activation-range-end`.
915    TimelineTriggerActivationRangeEnd,
916    /// `timeline-trigger-activation-range-start`.
917    TimelineTriggerActivationRangeStart,
918    /// `timeline-trigger-active-range`.
919    TimelineTriggerActiveRange,
920    /// `timeline-trigger-active-range-end`.
921    TimelineTriggerActiveRangeEnd,
922    /// `timeline-trigger-active-range-start`.
923    TimelineTriggerActiveRangeStart,
924    /// `timeline-trigger-name`.
925    TimelineTriggerName,
926    /// `timeline-trigger-source`.
927    TimelineTriggerSource,
928    /// `top`.
929    Top,
930    /// `touch-action`.
931    TouchAction,
932    /// `transform`.
933    Transform,
934    /// `transform-box`.
935    TransformBox,
936    /// `transform-origin`.
937    TransformOrigin,
938    /// `transform-style`.
939    TransformStyle,
940    /// `transition`.
941    Transition,
942    /// `transition-behavior`.
943    TransitionBehavior,
944    /// `transition-delay`.
945    TransitionDelay,
946    /// `transition-duration`.
947    TransitionDuration,
948    /// `transition-property`.
949    TransitionProperty,
950    /// `transition-timing-function`.
951    TransitionTimingFunction,
952    /// `translate`.
953    Translate,
954    /// `trigger-scope`.
955    TriggerScope,
956    /// `unicode-bidi`.
957    UnicodeBidi,
958    /// `user-select`.
959    UserSelect,
960    /// `vector-effect`.
961    VectorEffect,
962    /// `vertical-align`.
963    VerticalAlign,
964    /// `view-transition-class`.
965    ViewTransitionClass,
966    /// `view-transition-name`.
967    ViewTransitionName,
968    /// `view-transition-scope`.
969    ViewTransitionScope,
970    /// `visibility`.
971    Visibility,
972    /// `white-space`.
973    WhiteSpace,
974    /// `white-space-collapse`.
975    WhiteSpaceCollapse,
976    /// `widows`.
977    Widows,
978    /// `width`.
979    Width,
980    /// `will-change`.
981    WillChange,
982    /// `window-drag`.
983    WindowDrag,
984    /// `word-break`.
985    WordBreak,
986    /// `word-spacing`.
987    WordSpacing,
988    /// `word-wrap`.
989    WordWrap,
990    /// `writing-mode`.
991    WritingMode,
992    /// `x`.
993    X,
994    /// `y`.
995    Y,
996    /// `z-index`.
997    ZIndex,
998    /// `zoom`.
999    Zoom,
1000}
1001
1002impl Property {
1003    /// The name as written in a stylesheet.
1004    #[must_use]
1005    #[expect(clippy::too_many_lines, reason = "one arm per property")]
1006    pub fn name(self) -> &'static str {
1007        match self {
1008            Self::AccentColor => "accent-color",
1009            Self::AlignContent => "align-content",
1010            Self::AlignItems => "align-items",
1011            Self::AlignSelf => "align-self",
1012            Self::AlignmentBaseline => "alignment-baseline",
1013            Self::All => "all",
1014            Self::AnchorName => "anchor-name",
1015            Self::Animation => "animation",
1016            Self::AnimationComposition => "animation-composition",
1017            Self::AnimationDelay => "animation-delay",
1018            Self::AnimationDirection => "animation-direction",
1019            Self::AnimationDuration => "animation-duration",
1020            Self::AnimationFillMode => "animation-fill-mode",
1021            Self::AnimationIterationCount => "animation-iteration-count",
1022            Self::AnimationName => "animation-name",
1023            Self::AnimationPlayState => "animation-play-state",
1024            Self::AnimationTimingFunction => "animation-timing-function",
1025            Self::AnimationTrigger => "animation-trigger",
1026            Self::Appearance => "appearance",
1027            Self::AspectRatio => "aspect-ratio",
1028            Self::BackdropFilter => "backdrop-filter",
1029            Self::BackfaceVisibility => "backface-visibility",
1030            Self::Background => "background",
1031            Self::BackgroundAttachment => "background-attachment",
1032            Self::BackgroundBlendMode => "background-blend-mode",
1033            Self::BackgroundClip => "background-clip",
1034            Self::BackgroundColor => "background-color",
1035            Self::BackgroundImage => "background-image",
1036            Self::BackgroundOrigin => "background-origin",
1037            Self::BackgroundPosition => "background-position",
1038            Self::BackgroundPositionX => "background-position-x",
1039            Self::BackgroundPositionY => "background-position-y",
1040            Self::BackgroundRepeat => "background-repeat",
1041            Self::BackgroundSize => "background-size",
1042            Self::BaselineShift => "baseline-shift",
1043            Self::BaselineSource => "baseline-source",
1044            Self::BlockSize => "block-size",
1045            Self::Border => "border",
1046            Self::BorderBlock => "border-block",
1047            Self::BorderBlockColor => "border-block-color",
1048            Self::BorderBlockEnd => "border-block-end",
1049            Self::BorderBlockEndColor => "border-block-end-color",
1050            Self::BorderBlockEndStyle => "border-block-end-style",
1051            Self::BorderBlockEndWidth => "border-block-end-width",
1052            Self::BorderBlockStart => "border-block-start",
1053            Self::BorderBlockStartColor => "border-block-start-color",
1054            Self::BorderBlockStartStyle => "border-block-start-style",
1055            Self::BorderBlockStartWidth => "border-block-start-width",
1056            Self::BorderBlockStyle => "border-block-style",
1057            Self::BorderBlockWidth => "border-block-width",
1058            Self::BorderBottom => "border-bottom",
1059            Self::BorderBottomColor => "border-bottom-color",
1060            Self::BorderBottomLeftRadius => "border-bottom-left-radius",
1061            Self::BorderBottomRightRadius => "border-bottom-right-radius",
1062            Self::BorderBottomStyle => "border-bottom-style",
1063            Self::BorderBottomWidth => "border-bottom-width",
1064            Self::BorderCollapse => "border-collapse",
1065            Self::BorderColor => "border-color",
1066            Self::BorderEndEndRadius => "border-end-end-radius",
1067            Self::BorderEndStartRadius => "border-end-start-radius",
1068            Self::BorderImage => "border-image",
1069            Self::BorderImageOutset => "border-image-outset",
1070            Self::BorderImageRepeat => "border-image-repeat",
1071            Self::BorderImageSlice => "border-image-slice",
1072            Self::BorderImageSource => "border-image-source",
1073            Self::BorderImageWidth => "border-image-width",
1074            Self::BorderInline => "border-inline",
1075            Self::BorderInlineColor => "border-inline-color",
1076            Self::BorderInlineEnd => "border-inline-end",
1077            Self::BorderInlineEndColor => "border-inline-end-color",
1078            Self::BorderInlineEndStyle => "border-inline-end-style",
1079            Self::BorderInlineEndWidth => "border-inline-end-width",
1080            Self::BorderInlineStart => "border-inline-start",
1081            Self::BorderInlineStartColor => "border-inline-start-color",
1082            Self::BorderInlineStartStyle => "border-inline-start-style",
1083            Self::BorderInlineStartWidth => "border-inline-start-width",
1084            Self::BorderInlineStyle => "border-inline-style",
1085            Self::BorderInlineWidth => "border-inline-width",
1086            Self::BorderLeft => "border-left",
1087            Self::BorderLeftColor => "border-left-color",
1088            Self::BorderLeftStyle => "border-left-style",
1089            Self::BorderLeftWidth => "border-left-width",
1090            Self::BorderRadius => "border-radius",
1091            Self::BorderRight => "border-right",
1092            Self::BorderRightColor => "border-right-color",
1093            Self::BorderRightStyle => "border-right-style",
1094            Self::BorderRightWidth => "border-right-width",
1095            Self::BorderShape => "border-shape",
1096            Self::BorderSpacing => "border-spacing",
1097            Self::BorderStartEndRadius => "border-start-end-radius",
1098            Self::BorderStartStartRadius => "border-start-start-radius",
1099            Self::BorderStyle => "border-style",
1100            Self::BorderTop => "border-top",
1101            Self::BorderTopColor => "border-top-color",
1102            Self::BorderTopLeftRadius => "border-top-left-radius",
1103            Self::BorderTopRightRadius => "border-top-right-radius",
1104            Self::BorderTopStyle => "border-top-style",
1105            Self::BorderTopWidth => "border-top-width",
1106            Self::BorderWidth => "border-width",
1107            Self::Bottom => "bottom",
1108            Self::BoxDecorationBreak => "box-decoration-break",
1109            Self::BoxShadow => "box-shadow",
1110            Self::BoxSizing => "box-sizing",
1111            Self::BreakAfter => "break-after",
1112            Self::BreakBefore => "break-before",
1113            Self::BreakInside => "break-inside",
1114            Self::CaptionSide => "caption-side",
1115            Self::Caret => "caret",
1116            Self::CaretAnimation => "caret-animation",
1117            Self::CaretColor => "caret-color",
1118            Self::CaretShape => "caret-shape",
1119            Self::Clear => "clear",
1120            Self::ClipPath => "clip-path",
1121            Self::ClipRule => "clip-rule",
1122            Self::Color => "color",
1123            Self::ColorInterpolationFilters => "color-interpolation-filters",
1124            Self::ColorScheme => "color-scheme",
1125            Self::ColumnCount => "column-count",
1126            Self::ColumnFill => "column-fill",
1127            Self::ColumnGap => "column-gap",
1128            Self::ColumnHeight => "column-height",
1129            Self::ColumnRule => "column-rule",
1130            Self::ColumnRuleColor => "column-rule-color",
1131            Self::ColumnRuleStyle => "column-rule-style",
1132            Self::ColumnRuleWidth => "column-rule-width",
1133            Self::ColumnSpan => "column-span",
1134            Self::ColumnWidth => "column-width",
1135            Self::ColumnWrap => "column-wrap",
1136            Self::Columns => "columns",
1137            Self::Contain => "contain",
1138            Self::ContainIntrinsicBlockSize => "contain-intrinsic-block-size",
1139            Self::ContainIntrinsicHeight => "contain-intrinsic-height",
1140            Self::ContainIntrinsicInlineSize => "contain-intrinsic-inline-size",
1141            Self::ContainIntrinsicSize => "contain-intrinsic-size",
1142            Self::ContainIntrinsicWidth => "contain-intrinsic-width",
1143            Self::Container => "container",
1144            Self::ContainerName => "container-name",
1145            Self::ContainerType => "container-type",
1146            Self::Content => "content",
1147            Self::ContentVisibility => "content-visibility",
1148            Self::CornerBlockEndShape => "corner-block-end-shape",
1149            Self::CornerBlockStartShape => "corner-block-start-shape",
1150            Self::CornerBottomLeftShape => "corner-bottom-left-shape",
1151            Self::CornerBottomRightShape => "corner-bottom-right-shape",
1152            Self::CornerBottomShape => "corner-bottom-shape",
1153            Self::CornerEndEndShape => "corner-end-end-shape",
1154            Self::CornerEndStartShape => "corner-end-start-shape",
1155            Self::CornerInlineEndShape => "corner-inline-end-shape",
1156            Self::CornerInlineStartShape => "corner-inline-start-shape",
1157            Self::CornerLeftShape => "corner-left-shape",
1158            Self::CornerRightShape => "corner-right-shape",
1159            Self::CornerShape => "corner-shape",
1160            Self::CornerStartEndShape => "corner-start-end-shape",
1161            Self::CornerStartStartShape => "corner-start-start-shape",
1162            Self::CornerTopLeftShape => "corner-top-left-shape",
1163            Self::CornerTopRightShape => "corner-top-right-shape",
1164            Self::CornerTopShape => "corner-top-shape",
1165            Self::CounterIncrement => "counter-increment",
1166            Self::CounterReset => "counter-reset",
1167            Self::CounterSet => "counter-set",
1168            Self::Cursor => "cursor",
1169            Self::Cx => "cx",
1170            Self::Cy => "cy",
1171            Self::D => "d",
1172            Self::Direction => "direction",
1173            Self::Display => "display",
1174            Self::DominantBaseline => "dominant-baseline",
1175            Self::DynamicRangeLimit => "dynamic-range-limit",
1176            Self::EmptyCells => "empty-cells",
1177            Self::Fill => "fill",
1178            Self::FillOpacity => "fill-opacity",
1179            Self::FillRule => "fill-rule",
1180            Self::Filter => "filter",
1181            Self::Flex => "flex",
1182            Self::FlexBasis => "flex-basis",
1183            Self::FlexDirection => "flex-direction",
1184            Self::FlexFlow => "flex-flow",
1185            Self::FlexGrow => "flex-grow",
1186            Self::FlexLineCount => "flex-line-count",
1187            Self::FlexShrink => "flex-shrink",
1188            Self::FlexWrap => "flex-wrap",
1189            Self::Float => "float",
1190            Self::FloodColor => "flood-color",
1191            Self::FloodOpacity => "flood-opacity",
1192            Self::Font => "font",
1193            Self::FontFamily => "font-family",
1194            Self::FontFeatureSettings => "font-feature-settings",
1195            Self::FontKerning => "font-kerning",
1196            Self::FontLanguageOverride => "font-language-override",
1197            Self::FontOpticalSizing => "font-optical-sizing",
1198            Self::FontPalette => "font-palette",
1199            Self::FontSize => "font-size",
1200            Self::FontSizeAdjust => "font-size-adjust",
1201            Self::FontStyle => "font-style",
1202            Self::FontSynthesis => "font-synthesis",
1203            Self::FontSynthesisSmallCaps => "font-synthesis-small-caps",
1204            Self::FontSynthesisStyle => "font-synthesis-style",
1205            Self::FontSynthesisWeight => "font-synthesis-weight",
1206            Self::FontVariant => "font-variant",
1207            Self::FontVariantAlternates => "font-variant-alternates",
1208            Self::FontVariantCaps => "font-variant-caps",
1209            Self::FontVariantEastAsian => "font-variant-east-asian",
1210            Self::FontVariantEmoji => "font-variant-emoji",
1211            Self::FontVariantLigatures => "font-variant-ligatures",
1212            Self::FontVariantNumeric => "font-variant-numeric",
1213            Self::FontVariantPosition => "font-variant-position",
1214            Self::FontVariationSettings => "font-variation-settings",
1215            Self::FontWeight => "font-weight",
1216            Self::ForcedColorAdjust => "forced-color-adjust",
1217            Self::FrameSizing => "frame-sizing",
1218            Self::Gap => "gap",
1219            Self::Grid => "grid",
1220            Self::GridArea => "grid-area",
1221            Self::GridAutoColumns => "grid-auto-columns",
1222            Self::GridAutoFlow => "grid-auto-flow",
1223            Self::GridAutoRows => "grid-auto-rows",
1224            Self::GridColumn => "grid-column",
1225            Self::GridColumnEnd => "grid-column-end",
1226            Self::GridColumnStart => "grid-column-start",
1227            Self::GridRow => "grid-row",
1228            Self::GridRowEnd => "grid-row-end",
1229            Self::GridRowStart => "grid-row-start",
1230            Self::GridTemplate => "grid-template",
1231            Self::GridTemplateAreas => "grid-template-areas",
1232            Self::GridTemplateColumns => "grid-template-columns",
1233            Self::GridTemplateRows => "grid-template-rows",
1234            Self::HangingPunctuation => "hanging-punctuation",
1235            Self::Height => "height",
1236            Self::HyphenateCharacter => "hyphenate-character",
1237            Self::HyphenateLimitChars => "hyphenate-limit-chars",
1238            Self::Hyphens => "hyphens",
1239            Self::ImageOrientation => "image-orientation",
1240            Self::ImageRendering => "image-rendering",
1241            Self::InitialLetter => "initial-letter",
1242            Self::InlineSize => "inline-size",
1243            Self::Inset => "inset",
1244            Self::InsetBlock => "inset-block",
1245            Self::InsetBlockEnd => "inset-block-end",
1246            Self::InsetBlockStart => "inset-block-start",
1247            Self::InsetInline => "inset-inline",
1248            Self::InsetInlineEnd => "inset-inline-end",
1249            Self::InsetInlineStart => "inset-inline-start",
1250            Self::Interactivity => "interactivity",
1251            Self::InterestDelay => "interest-delay",
1252            Self::InterestDelayEnd => "interest-delay-end",
1253            Self::InterestDelayStart => "interest-delay-start",
1254            Self::Isolation => "isolation",
1255            Self::JustifyContent => "justify-content",
1256            Self::JustifyItems => "justify-items",
1257            Self::JustifySelf => "justify-self",
1258            Self::Left => "left",
1259            Self::LetterSpacing => "letter-spacing",
1260            Self::LightingColor => "lighting-color",
1261            Self::LineBreak => "line-break",
1262            Self::LineClamp => "line-clamp",
1263            Self::LineHeight => "line-height",
1264            Self::ListStyle => "list-style",
1265            Self::ListStyleImage => "list-style-image",
1266            Self::ListStylePosition => "list-style-position",
1267            Self::ListStyleType => "list-style-type",
1268            Self::Margin => "margin",
1269            Self::MarginBlock => "margin-block",
1270            Self::MarginBlockEnd => "margin-block-end",
1271            Self::MarginBlockStart => "margin-block-start",
1272            Self::MarginBottom => "margin-bottom",
1273            Self::MarginInline => "margin-inline",
1274            Self::MarginInlineEnd => "margin-inline-end",
1275            Self::MarginInlineStart => "margin-inline-start",
1276            Self::MarginLeft => "margin-left",
1277            Self::MarginRight => "margin-right",
1278            Self::MarginTop => "margin-top",
1279            Self::Marker => "marker",
1280            Self::MarkerEnd => "marker-end",
1281            Self::MarkerMid => "marker-mid",
1282            Self::MarkerStart => "marker-start",
1283            Self::Mask => "mask",
1284            Self::MaskBorder => "mask-border",
1285            Self::MaskBorderMode => "mask-border-mode",
1286            Self::MaskBorderOutset => "mask-border-outset",
1287            Self::MaskBorderRepeat => "mask-border-repeat",
1288            Self::MaskBorderSlice => "mask-border-slice",
1289            Self::MaskBorderSource => "mask-border-source",
1290            Self::MaskBorderWidth => "mask-border-width",
1291            Self::MaskClip => "mask-clip",
1292            Self::MaskComposite => "mask-composite",
1293            Self::MaskImage => "mask-image",
1294            Self::MaskMode => "mask-mode",
1295            Self::MaskOrigin => "mask-origin",
1296            Self::MaskPosition => "mask-position",
1297            Self::MaskRepeat => "mask-repeat",
1298            Self::MaskSize => "mask-size",
1299            Self::MaskType => "mask-type",
1300            Self::MathDepth => "math-depth",
1301            Self::MathStyle => "math-style",
1302            Self::MaxBlockSize => "max-block-size",
1303            Self::MaxHeight => "max-height",
1304            Self::MaxInlineSize => "max-inline-size",
1305            Self::MaxWidth => "max-width",
1306            Self::MinBlockSize => "min-block-size",
1307            Self::MinHeight => "min-height",
1308            Self::MinInlineSize => "min-inline-size",
1309            Self::MinWidth => "min-width",
1310            Self::MixBlendMode => "mix-blend-mode",
1311            Self::ObjectFit => "object-fit",
1312            Self::ObjectPosition => "object-position",
1313            Self::Offset => "offset",
1314            Self::OffsetAnchor => "offset-anchor",
1315            Self::OffsetDistance => "offset-distance",
1316            Self::OffsetPath => "offset-path",
1317            Self::OffsetPosition => "offset-position",
1318            Self::OffsetRotate => "offset-rotate",
1319            Self::Opacity => "opacity",
1320            Self::Order => "order",
1321            Self::Orphans => "orphans",
1322            Self::Outline => "outline",
1323            Self::OutlineColor => "outline-color",
1324            Self::OutlineOffset => "outline-offset",
1325            Self::OutlineStyle => "outline-style",
1326            Self::OutlineWidth => "outline-width",
1327            Self::Overflow => "overflow",
1328            Self::OverflowAnchor => "overflow-anchor",
1329            Self::OverflowBlock => "overflow-block",
1330            Self::OverflowClipMargin => "overflow-clip-margin",
1331            Self::OverflowInline => "overflow-inline",
1332            Self::OverflowWrap => "overflow-wrap",
1333            Self::OverflowX => "overflow-x",
1334            Self::OverflowY => "overflow-y",
1335            Self::OverscrollBehavior => "overscroll-behavior",
1336            Self::OverscrollBehaviorBlock => "overscroll-behavior-block",
1337            Self::OverscrollBehaviorInline => "overscroll-behavior-inline",
1338            Self::OverscrollBehaviorX => "overscroll-behavior-x",
1339            Self::OverscrollBehaviorY => "overscroll-behavior-y",
1340            Self::Padding => "padding",
1341            Self::PaddingBlock => "padding-block",
1342            Self::PaddingBlockEnd => "padding-block-end",
1343            Self::PaddingBlockStart => "padding-block-start",
1344            Self::PaddingBottom => "padding-bottom",
1345            Self::PaddingInline => "padding-inline",
1346            Self::PaddingInlineEnd => "padding-inline-end",
1347            Self::PaddingInlineStart => "padding-inline-start",
1348            Self::PaddingLeft => "padding-left",
1349            Self::PaddingRight => "padding-right",
1350            Self::PaddingTop => "padding-top",
1351            Self::Page => "page",
1352            Self::PaintOrder => "paint-order",
1353            Self::PathLength => "path-length",
1354            Self::Perspective => "perspective",
1355            Self::PerspectiveOrigin => "perspective-origin",
1356            Self::PlaceContent => "place-content",
1357            Self::PlaceItems => "place-items",
1358            Self::PlaceSelf => "place-self",
1359            Self::PointerEvents => "pointer-events",
1360            Self::Position => "position",
1361            Self::PositionAnchor => "position-anchor",
1362            Self::PositionArea => "position-area",
1363            Self::PositionTryFallbacks => "position-try-fallbacks",
1364            Self::PrintColorAdjust => "print-color-adjust",
1365            Self::Quotes => "quotes",
1366            Self::R => "r",
1367            Self::ReadingFlow => "reading-flow",
1368            Self::ReadingOrder => "reading-order",
1369            Self::Resize => "resize",
1370            Self::Right => "right",
1371            Self::Rotate => "rotate",
1372            Self::RowGap => "row-gap",
1373            Self::RubyAlign => "ruby-align",
1374            Self::RubyOverhang => "ruby-overhang",
1375            Self::RubyPosition => "ruby-position",
1376            Self::Rx => "rx",
1377            Self::Ry => "ry",
1378            Self::Scale => "scale",
1379            Self::ScrollAxisLock => "scroll-axis-lock",
1380            Self::ScrollBehavior => "scroll-behavior",
1381            Self::ScrollMargin => "scroll-margin",
1382            Self::ScrollMarginBlock => "scroll-margin-block",
1383            Self::ScrollMarginBlockEnd => "scroll-margin-block-end",
1384            Self::ScrollMarginBlockStart => "scroll-margin-block-start",
1385            Self::ScrollMarginBottom => "scroll-margin-bottom",
1386            Self::ScrollMarginInline => "scroll-margin-inline",
1387            Self::ScrollMarginInlineEnd => "scroll-margin-inline-end",
1388            Self::ScrollMarginInlineStart => "scroll-margin-inline-start",
1389            Self::ScrollMarginLeft => "scroll-margin-left",
1390            Self::ScrollMarginRight => "scroll-margin-right",
1391            Self::ScrollMarginTop => "scroll-margin-top",
1392            Self::ScrollMarkerGroup => "scroll-marker-group",
1393            Self::ScrollPadding => "scroll-padding",
1394            Self::ScrollPaddingBlock => "scroll-padding-block",
1395            Self::ScrollPaddingBlockEnd => "scroll-padding-block-end",
1396            Self::ScrollPaddingBlockStart => "scroll-padding-block-start",
1397            Self::ScrollPaddingBottom => "scroll-padding-bottom",
1398            Self::ScrollPaddingInline => "scroll-padding-inline",
1399            Self::ScrollPaddingInlineEnd => "scroll-padding-inline-end",
1400            Self::ScrollPaddingInlineStart => "scroll-padding-inline-start",
1401            Self::ScrollPaddingLeft => "scroll-padding-left",
1402            Self::ScrollPaddingRight => "scroll-padding-right",
1403            Self::ScrollPaddingTop => "scroll-padding-top",
1404            Self::ScrollSnapAlign => "scroll-snap-align",
1405            Self::ScrollSnapStop => "scroll-snap-stop",
1406            Self::ScrollSnapType => "scroll-snap-type",
1407            Self::ScrollTargetGroup => "scroll-target-group",
1408            Self::ScrollbarColor => "scrollbar-color",
1409            Self::ScrollbarGutter => "scrollbar-gutter",
1410            Self::ScrollbarWidth => "scrollbar-width",
1411            Self::ShapeImageThreshold => "shape-image-threshold",
1412            Self::ShapeMargin => "shape-margin",
1413            Self::ShapeOutside => "shape-outside",
1414            Self::ShapeRendering => "shape-rendering",
1415            Self::StopColor => "stop-color",
1416            Self::StopOpacity => "stop-opacity",
1417            Self::Stroke => "stroke",
1418            Self::StrokeDasharray => "stroke-dasharray",
1419            Self::StrokeDashoffset => "stroke-dashoffset",
1420            Self::StrokeLinecap => "stroke-linecap",
1421            Self::StrokeLinejoin => "stroke-linejoin",
1422            Self::StrokeMiterlimit => "stroke-miterlimit",
1423            Self::StrokeOpacity => "stroke-opacity",
1424            Self::StrokeWidth => "stroke-width",
1425            Self::TabSize => "tab-size",
1426            Self::TableLayout => "table-layout",
1427            Self::TextAlign => "text-align",
1428            Self::TextAlignLast => "text-align-last",
1429            Self::TextAnchor => "text-anchor",
1430            Self::TextAutospace => "text-autospace",
1431            Self::TextBox => "text-box",
1432            Self::TextBoxEdge => "text-box-edge",
1433            Self::TextBoxTrim => "text-box-trim",
1434            Self::TextCombineUpright => "text-combine-upright",
1435            Self::TextDecoration => "text-decoration",
1436            Self::TextDecorationColor => "text-decoration-color",
1437            Self::TextDecorationInset => "text-decoration-inset",
1438            Self::TextDecorationLine => "text-decoration-line",
1439            Self::TextDecorationSkipInk => "text-decoration-skip-ink",
1440            Self::TextDecorationStyle => "text-decoration-style",
1441            Self::TextDecorationThickness => "text-decoration-thickness",
1442            Self::TextEmphasis => "text-emphasis",
1443            Self::TextEmphasisColor => "text-emphasis-color",
1444            Self::TextEmphasisPosition => "text-emphasis-position",
1445            Self::TextEmphasisStyle => "text-emphasis-style",
1446            Self::TextFit => "text-fit",
1447            Self::TextIndent => "text-indent",
1448            Self::TextJustify => "text-justify",
1449            Self::TextOrientation => "text-orientation",
1450            Self::TextOverflow => "text-overflow",
1451            Self::TextRendering => "text-rendering",
1452            Self::TextShadow => "text-shadow",
1453            Self::TextTransform => "text-transform",
1454            Self::TextUnderlineOffset => "text-underline-offset",
1455            Self::TextUnderlinePosition => "text-underline-position",
1456            Self::TextWrap => "text-wrap",
1457            Self::TextWrapMode => "text-wrap-mode",
1458            Self::TextWrapStyle => "text-wrap-style",
1459            Self::TimelineTrigger => "timeline-trigger",
1460            Self::TimelineTriggerActivationRange => "timeline-trigger-activation-range",
1461            Self::TimelineTriggerActivationRangeEnd => "timeline-trigger-activation-range-end",
1462            Self::TimelineTriggerActivationRangeStart => "timeline-trigger-activation-range-start",
1463            Self::TimelineTriggerActiveRange => "timeline-trigger-active-range",
1464            Self::TimelineTriggerActiveRangeEnd => "timeline-trigger-active-range-end",
1465            Self::TimelineTriggerActiveRangeStart => "timeline-trigger-active-range-start",
1466            Self::TimelineTriggerName => "timeline-trigger-name",
1467            Self::TimelineTriggerSource => "timeline-trigger-source",
1468            Self::Top => "top",
1469            Self::TouchAction => "touch-action",
1470            Self::Transform => "transform",
1471            Self::TransformBox => "transform-box",
1472            Self::TransformOrigin => "transform-origin",
1473            Self::TransformStyle => "transform-style",
1474            Self::Transition => "transition",
1475            Self::TransitionBehavior => "transition-behavior",
1476            Self::TransitionDelay => "transition-delay",
1477            Self::TransitionDuration => "transition-duration",
1478            Self::TransitionProperty => "transition-property",
1479            Self::TransitionTimingFunction => "transition-timing-function",
1480            Self::Translate => "translate",
1481            Self::TriggerScope => "trigger-scope",
1482            Self::UnicodeBidi => "unicode-bidi",
1483            Self::UserSelect => "user-select",
1484            Self::VectorEffect => "vector-effect",
1485            Self::VerticalAlign => "vertical-align",
1486            Self::ViewTransitionClass => "view-transition-class",
1487            Self::ViewTransitionName => "view-transition-name",
1488            Self::ViewTransitionScope => "view-transition-scope",
1489            Self::Visibility => "visibility",
1490            Self::WhiteSpace => "white-space",
1491            Self::WhiteSpaceCollapse => "white-space-collapse",
1492            Self::Widows => "widows",
1493            Self::Width => "width",
1494            Self::WillChange => "will-change",
1495            Self::WindowDrag => "window-drag",
1496            Self::WordBreak => "word-break",
1497            Self::WordSpacing => "word-spacing",
1498            Self::WordWrap => "word-wrap",
1499            Self::WritingMode => "writing-mode",
1500            Self::X => "x",
1501            Self::Y => "y",
1502            Self::ZIndex => "z-index",
1503            Self::Zoom => "zoom",
1504        }
1505    }
1506
1507    /// How many shorthands stand above this property, so that a shorthand is
1508    /// written before the longhands it sets.
1509    #[expect(clippy::too_many_lines, reason = "one arm per longhand")]
1510    pub(crate) fn rank(self) -> u32 {
1511        match self {
1512            Self::AccentColor
1513            | Self::AlignmentBaseline
1514            | Self::All
1515            | Self::AnchorName
1516            | Self::Animation
1517            | Self::AnimationComposition
1518            | Self::AnimationTrigger
1519            | Self::Appearance
1520            | Self::AspectRatio
1521            | Self::BackdropFilter
1522            | Self::BackfaceVisibility
1523            | Self::Background
1524            | Self::BackgroundBlendMode
1525            | Self::BaselineShift
1526            | Self::BaselineSource
1527            | Self::BlockSize
1528            | Self::Border
1529            | Self::BorderBlock
1530            | Self::BorderBlockEnd
1531            | Self::BorderBlockStart
1532            | Self::BorderBottom
1533            | Self::BorderCollapse
1534            | Self::BorderEndEndRadius
1535            | Self::BorderEndStartRadius
1536            | Self::BorderImage
1537            | Self::BorderInline
1538            | Self::BorderInlineEnd
1539            | Self::BorderInlineStart
1540            | Self::BorderLeft
1541            | Self::BorderRadius
1542            | Self::BorderRight
1543            | Self::BorderShape
1544            | Self::BorderSpacing
1545            | Self::BorderStartEndRadius
1546            | Self::BorderStartStartRadius
1547            | Self::BorderTop
1548            | Self::BoxDecorationBreak
1549            | Self::BoxShadow
1550            | Self::BoxSizing
1551            | Self::BreakAfter
1552            | Self::BreakBefore
1553            | Self::BreakInside
1554            | Self::CaptionSide
1555            | Self::Caret
1556            | Self::Clear
1557            | Self::ClipPath
1558            | Self::ClipRule
1559            | Self::Color
1560            | Self::ColorInterpolationFilters
1561            | Self::ColorScheme
1562            | Self::ColumnFill
1563            | Self::ColumnRule
1564            | Self::ColumnSpan
1565            | Self::ColumnWrap
1566            | Self::Columns
1567            | Self::Contain
1568            | Self::ContainIntrinsicBlockSize
1569            | Self::ContainIntrinsicInlineSize
1570            | Self::ContainIntrinsicSize
1571            | Self::Container
1572            | Self::Content
1573            | Self::ContentVisibility
1574            | Self::CornerBlockEndShape
1575            | Self::CornerBlockStartShape
1576            | Self::CornerBottomShape
1577            | Self::CornerInlineEndShape
1578            | Self::CornerInlineStartShape
1579            | Self::CornerLeftShape
1580            | Self::CornerRightShape
1581            | Self::CornerShape
1582            | Self::CornerTopShape
1583            | Self::CounterIncrement
1584            | Self::CounterReset
1585            | Self::CounterSet
1586            | Self::Cursor
1587            | Self::Cx
1588            | Self::Cy
1589            | Self::D
1590            | Self::Direction
1591            | Self::Display
1592            | Self::DominantBaseline
1593            | Self::DynamicRangeLimit
1594            | Self::EmptyCells
1595            | Self::Fill
1596            | Self::FillOpacity
1597            | Self::FillRule
1598            | Self::Filter
1599            | Self::Flex
1600            | Self::FlexFlow
1601            | Self::FlexLineCount
1602            | Self::Float
1603            | Self::FloodColor
1604            | Self::FloodOpacity
1605            | Self::Font
1606            | Self::FontFeatureSettings
1607            | Self::FontKerning
1608            | Self::FontLanguageOverride
1609            | Self::FontOpticalSizing
1610            | Self::FontPalette
1611            | Self::FontSizeAdjust
1612            | Self::FontSynthesis
1613            | Self::FontSynthesisSmallCaps
1614            | Self::FontSynthesisStyle
1615            | Self::FontSynthesisWeight
1616            | Self::FontVariantAlternates
1617            | Self::FontVariantCaps
1618            | Self::FontVariantEastAsian
1619            | Self::FontVariantEmoji
1620            | Self::FontVariantLigatures
1621            | Self::FontVariantNumeric
1622            | Self::FontVariantPosition
1623            | Self::FontVariationSettings
1624            | Self::ForcedColorAdjust
1625            | Self::FrameSizing
1626            | Self::Gap
1627            | Self::Grid
1628            | Self::GridArea
1629            | Self::GridColumn
1630            | Self::GridRow
1631            | Self::GridTemplate
1632            | Self::HangingPunctuation
1633            | Self::Height
1634            | Self::HyphenateCharacter
1635            | Self::HyphenateLimitChars
1636            | Self::Hyphens
1637            | Self::ImageOrientation
1638            | Self::ImageRendering
1639            | Self::InitialLetter
1640            | Self::InlineSize
1641            | Self::Inset
1642            | Self::InsetBlock
1643            | Self::InsetInline
1644            | Self::Interactivity
1645            | Self::InterestDelay
1646            | Self::Isolation
1647            | Self::LetterSpacing
1648            | Self::LightingColor
1649            | Self::LineBreak
1650            | Self::LineClamp
1651            | Self::ListStyle
1652            | Self::Margin
1653            | Self::MarginBlock
1654            | Self::MarginInline
1655            | Self::Marker
1656            | Self::MarkerEnd
1657            | Self::MarkerMid
1658            | Self::MarkerStart
1659            | Self::Mask
1660            | Self::MaskBorder
1661            | Self::MaskType
1662            | Self::MathDepth
1663            | Self::MathStyle
1664            | Self::MaxBlockSize
1665            | Self::MaxHeight
1666            | Self::MaxInlineSize
1667            | Self::MaxWidth
1668            | Self::MinBlockSize
1669            | Self::MinHeight
1670            | Self::MinInlineSize
1671            | Self::MinWidth
1672            | Self::MixBlendMode
1673            | Self::ObjectFit
1674            | Self::ObjectPosition
1675            | Self::Offset
1676            | Self::Opacity
1677            | Self::Order
1678            | Self::Orphans
1679            | Self::Outline
1680            | Self::OutlineOffset
1681            | Self::Overflow
1682            | Self::OverflowAnchor
1683            | Self::OverflowBlock
1684            | Self::OverflowClipMargin
1685            | Self::OverflowInline
1686            | Self::OverflowWrap
1687            | Self::OverscrollBehavior
1688            | Self::OverscrollBehaviorBlock
1689            | Self::OverscrollBehaviorInline
1690            | Self::Padding
1691            | Self::PaddingBlock
1692            | Self::PaddingInline
1693            | Self::Page
1694            | Self::PaintOrder
1695            | Self::PathLength
1696            | Self::Perspective
1697            | Self::PerspectiveOrigin
1698            | Self::PlaceContent
1699            | Self::PlaceItems
1700            | Self::PlaceSelf
1701            | Self::PointerEvents
1702            | Self::Position
1703            | Self::PositionAnchor
1704            | Self::PositionArea
1705            | Self::PositionTryFallbacks
1706            | Self::PrintColorAdjust
1707            | Self::Quotes
1708            | Self::R
1709            | Self::ReadingFlow
1710            | Self::ReadingOrder
1711            | Self::Resize
1712            | Self::Rotate
1713            | Self::RubyAlign
1714            | Self::RubyOverhang
1715            | Self::RubyPosition
1716            | Self::Rx
1717            | Self::Ry
1718            | Self::Scale
1719            | Self::ScrollAxisLock
1720            | Self::ScrollBehavior
1721            | Self::ScrollMargin
1722            | Self::ScrollMarginBlock
1723            | Self::ScrollMarginInline
1724            | Self::ScrollMarkerGroup
1725            | Self::ScrollPadding
1726            | Self::ScrollPaddingBlock
1727            | Self::ScrollPaddingInline
1728            | Self::ScrollSnapAlign
1729            | Self::ScrollSnapStop
1730            | Self::ScrollSnapType
1731            | Self::ScrollTargetGroup
1732            | Self::ScrollbarColor
1733            | Self::ScrollbarGutter
1734            | Self::ScrollbarWidth
1735            | Self::ShapeImageThreshold
1736            | Self::ShapeMargin
1737            | Self::ShapeOutside
1738            | Self::ShapeRendering
1739            | Self::StopColor
1740            | Self::StopOpacity
1741            | Self::Stroke
1742            | Self::StrokeDasharray
1743            | Self::StrokeDashoffset
1744            | Self::StrokeLinecap
1745            | Self::StrokeLinejoin
1746            | Self::StrokeMiterlimit
1747            | Self::StrokeOpacity
1748            | Self::StrokeWidth
1749            | Self::TabSize
1750            | Self::TableLayout
1751            | Self::TextAlign
1752            | Self::TextAlignLast
1753            | Self::TextAnchor
1754            | Self::TextAutospace
1755            | Self::TextBox
1756            | Self::TextBoxEdge
1757            | Self::TextBoxTrim
1758            | Self::TextCombineUpright
1759            | Self::TextDecoration
1760            | Self::TextDecorationInset
1761            | Self::TextDecorationSkipInk
1762            | Self::TextEmphasis
1763            | Self::TextEmphasisPosition
1764            | Self::TextFit
1765            | Self::TextIndent
1766            | Self::TextJustify
1767            | Self::TextOrientation
1768            | Self::TextOverflow
1769            | Self::TextRendering
1770            | Self::TextShadow
1771            | Self::TextTransform
1772            | Self::TextUnderlineOffset
1773            | Self::TextUnderlinePosition
1774            | Self::TextWrap
1775            | Self::TimelineTrigger
1776            | Self::TouchAction
1777            | Self::Transform
1778            | Self::TransformBox
1779            | Self::TransformOrigin
1780            | Self::TransformStyle
1781            | Self::Transition
1782            | Self::Translate
1783            | Self::TriggerScope
1784            | Self::UnicodeBidi
1785            | Self::UserSelect
1786            | Self::VectorEffect
1787            | Self::VerticalAlign
1788            | Self::ViewTransitionClass
1789            | Self::ViewTransitionName
1790            | Self::ViewTransitionScope
1791            | Self::Visibility
1792            | Self::WhiteSpace
1793            | Self::WhiteSpaceCollapse
1794            | Self::Widows
1795            | Self::Width
1796            | Self::WillChange
1797            | Self::WindowDrag
1798            | Self::WordBreak
1799            | Self::WordSpacing
1800            | Self::WordWrap
1801            | Self::WritingMode
1802            | Self::X
1803            | Self::Y
1804            | Self::ZIndex
1805            | Self::Zoom => 0,
1806            Self::AlignContent
1807            | Self::AlignItems
1808            | Self::AlignSelf
1809            | Self::AnimationDelay
1810            | Self::AnimationDirection
1811            | Self::AnimationDuration
1812            | Self::AnimationFillMode
1813            | Self::AnimationIterationCount
1814            | Self::AnimationName
1815            | Self::AnimationPlayState
1816            | Self::AnimationTimingFunction
1817            | Self::BackgroundAttachment
1818            | Self::BackgroundClip
1819            | Self::BackgroundColor
1820            | Self::BackgroundImage
1821            | Self::BackgroundOrigin
1822            | Self::BackgroundPosition
1823            | Self::BackgroundRepeat
1824            | Self::BackgroundSize
1825            | Self::BorderBlockColor
1826            | Self::BorderBlockStyle
1827            | Self::BorderBlockWidth
1828            | Self::BorderBottomLeftRadius
1829            | Self::BorderBottomRightRadius
1830            | Self::BorderColor
1831            | Self::BorderImageOutset
1832            | Self::BorderImageRepeat
1833            | Self::BorderImageSlice
1834            | Self::BorderImageSource
1835            | Self::BorderImageWidth
1836            | Self::BorderInlineColor
1837            | Self::BorderInlineStyle
1838            | Self::BorderInlineWidth
1839            | Self::BorderStyle
1840            | Self::BorderTopLeftRadius
1841            | Self::BorderTopRightRadius
1842            | Self::BorderWidth
1843            | Self::Bottom
1844            | Self::CaretAnimation
1845            | Self::CaretColor
1846            | Self::CaretShape
1847            | Self::ColumnCount
1848            | Self::ColumnGap
1849            | Self::ColumnHeight
1850            | Self::ColumnRuleColor
1851            | Self::ColumnRuleStyle
1852            | Self::ColumnRuleWidth
1853            | Self::ColumnWidth
1854            | Self::ContainIntrinsicHeight
1855            | Self::ContainIntrinsicWidth
1856            | Self::ContainerName
1857            | Self::ContainerType
1858            | Self::CornerBottomLeftShape
1859            | Self::CornerBottomRightShape
1860            | Self::CornerEndEndShape
1861            | Self::CornerEndStartShape
1862            | Self::CornerStartEndShape
1863            | Self::CornerStartStartShape
1864            | Self::CornerTopLeftShape
1865            | Self::CornerTopRightShape
1866            | Self::FlexBasis
1867            | Self::FlexDirection
1868            | Self::FlexGrow
1869            | Self::FlexShrink
1870            | Self::FlexWrap
1871            | Self::FontFamily
1872            | Self::FontSize
1873            | Self::FontStyle
1874            | Self::FontVariant
1875            | Self::FontWeight
1876            | Self::GridAutoColumns
1877            | Self::GridAutoFlow
1878            | Self::GridAutoRows
1879            | Self::GridColumnEnd
1880            | Self::GridColumnStart
1881            | Self::GridRowEnd
1882            | Self::GridRowStart
1883            | Self::GridTemplateAreas
1884            | Self::GridTemplateColumns
1885            | Self::GridTemplateRows
1886            | Self::InsetBlockEnd
1887            | Self::InsetBlockStart
1888            | Self::InsetInlineEnd
1889            | Self::InsetInlineStart
1890            | Self::InterestDelayEnd
1891            | Self::InterestDelayStart
1892            | Self::JustifyContent
1893            | Self::JustifyItems
1894            | Self::JustifySelf
1895            | Self::Left
1896            | Self::LineHeight
1897            | Self::ListStyleImage
1898            | Self::ListStylePosition
1899            | Self::ListStyleType
1900            | Self::MarginBlockEnd
1901            | Self::MarginBlockStart
1902            | Self::MarginBottom
1903            | Self::MarginInlineEnd
1904            | Self::MarginInlineStart
1905            | Self::MarginLeft
1906            | Self::MarginRight
1907            | Self::MarginTop
1908            | Self::MaskBorderMode
1909            | Self::MaskBorderOutset
1910            | Self::MaskBorderRepeat
1911            | Self::MaskBorderSlice
1912            | Self::MaskBorderSource
1913            | Self::MaskBorderWidth
1914            | Self::MaskClip
1915            | Self::MaskComposite
1916            | Self::MaskImage
1917            | Self::MaskMode
1918            | Self::MaskOrigin
1919            | Self::MaskPosition
1920            | Self::MaskRepeat
1921            | Self::MaskSize
1922            | Self::OffsetAnchor
1923            | Self::OffsetDistance
1924            | Self::OffsetPath
1925            | Self::OffsetPosition
1926            | Self::OffsetRotate
1927            | Self::OutlineColor
1928            | Self::OutlineStyle
1929            | Self::OutlineWidth
1930            | Self::OverflowX
1931            | Self::OverflowY
1932            | Self::OverscrollBehaviorX
1933            | Self::OverscrollBehaviorY
1934            | Self::PaddingBlockEnd
1935            | Self::PaddingBlockStart
1936            | Self::PaddingBottom
1937            | Self::PaddingInlineEnd
1938            | Self::PaddingInlineStart
1939            | Self::PaddingLeft
1940            | Self::PaddingRight
1941            | Self::PaddingTop
1942            | Self::Right
1943            | Self::RowGap
1944            | Self::ScrollMarginBlockEnd
1945            | Self::ScrollMarginBlockStart
1946            | Self::ScrollMarginBottom
1947            | Self::ScrollMarginInlineEnd
1948            | Self::ScrollMarginInlineStart
1949            | Self::ScrollMarginLeft
1950            | Self::ScrollMarginRight
1951            | Self::ScrollMarginTop
1952            | Self::ScrollPaddingBlockEnd
1953            | Self::ScrollPaddingBlockStart
1954            | Self::ScrollPaddingBottom
1955            | Self::ScrollPaddingInlineEnd
1956            | Self::ScrollPaddingInlineStart
1957            | Self::ScrollPaddingLeft
1958            | Self::ScrollPaddingRight
1959            | Self::ScrollPaddingTop
1960            | Self::TextDecorationColor
1961            | Self::TextDecorationLine
1962            | Self::TextDecorationStyle
1963            | Self::TextDecorationThickness
1964            | Self::TextEmphasisColor
1965            | Self::TextEmphasisStyle
1966            | Self::TextWrapMode
1967            | Self::TextWrapStyle
1968            | Self::TimelineTriggerActivationRange
1969            | Self::TimelineTriggerActiveRange
1970            | Self::TimelineTriggerName
1971            | Self::TimelineTriggerSource
1972            | Self::Top
1973            | Self::TransitionBehavior
1974            | Self::TransitionDelay
1975            | Self::TransitionDuration
1976            | Self::TransitionProperty
1977            | Self::TransitionTimingFunction => 1,
1978            _ => 2,
1979        }
1980    }
1981}
1982
1983use crate::value::{Color, Length};
1984
1985impl Style {
1986    /// Sets [`accent-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/accent-color).
1987    #[must_use]
1988    pub fn accent_color(self, value: impl Into<crate::value::AccentColor>) -> Self {
1989        self.with(Property::AccentColor, value.into().to_string())
1990    }
1991
1992    /// Sets [`align-content`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-content).
1993    ///
1994    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
1995    #[must_use]
1996    pub fn align_content(self, value: impl Into<crate::value::AlignContent>) -> Self {
1997        self.with(Property::AlignContent, value.into().to_string())
1998    }
1999
2000    /// Sets [`align-items`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-items).
2001    ///
2002    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2003    #[must_use]
2004    pub fn align_items(self, value: impl Into<crate::value::AlignItems>) -> Self {
2005        self.with(Property::AlignItems, value.into().to_string())
2006    }
2007
2008    /// Sets [`align-self`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/align-self).
2009    ///
2010    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2011    #[must_use]
2012    pub fn align_self(self, value: impl Into<crate::value::AlignSelf>) -> Self {
2013        self.with(Property::AlignSelf, value.into().to_string())
2014    }
2015
2016    /// Sets [`alignment-baseline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/alignment-baseline).
2017    #[must_use]
2018    pub fn alignment_baseline(self, value: impl Into<crate::value::AlignmentBaseline>) -> Self {
2019        self.with(Property::AlignmentBaseline, value.into().to_string())
2020    }
2021
2022    /// Sets [`all`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/all).
2023    #[must_use]
2024    pub fn all(self, value: impl Into<crate::value::All>) -> Self {
2025        self.with(Property::All, value.into().to_string())
2026    }
2027
2028    /// Sets [`anchor-name`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/anchor-name).
2029    ///
2030    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2031    #[must_use]
2032    pub fn anchor_name(self, value: impl Into<crate::value::AnchorName>) -> Self {
2033        self.with(Property::AnchorName, value.into().to_string())
2034    }
2035
2036    /// Sets [`animation`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation).
2037    ///
2038    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2039    #[must_use]
2040    pub fn animation(self, value: impl Into<crate::value::Animation>) -> Self {
2041        self.with(Property::Animation, value.into().to_string())
2042    }
2043
2044    /// Sets [`animation-composition`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-composition).
2045    ///
2046    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2047    #[must_use]
2048    pub fn animation_composition(self, value: impl Into<crate::value::AnimationComposition>) -> Self {
2049        self.with(Property::AnimationComposition, value.into().to_string())
2050    }
2051
2052    /// Sets [`animation-delay`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-delay).
2053    ///
2054    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2055    #[must_use]
2056    pub fn animation_delay(self, value: impl Into<crate::value::AnimationDelay>) -> Self {
2057        self.with(Property::AnimationDelay, value.into().to_string())
2058    }
2059
2060    /// Sets [`animation-direction`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-direction).
2061    ///
2062    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2063    #[must_use]
2064    pub fn animation_direction(self, value: impl Into<crate::value::AnimationDirection>) -> Self {
2065        self.with(Property::AnimationDirection, value.into().to_string())
2066    }
2067
2068    /// Sets [`animation-duration`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-duration).
2069    ///
2070    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2071    #[must_use]
2072    pub fn animation_duration(self, value: impl Into<crate::value::AnimationDuration>) -> Self {
2073        self.with(Property::AnimationDuration, value.into().to_string())
2074    }
2075
2076    /// Sets [`animation-fill-mode`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-fill-mode).
2077    ///
2078    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2079    #[must_use]
2080    pub fn animation_fill_mode(self, value: impl Into<crate::value::AnimationFillMode>) -> Self {
2081        self.with(Property::AnimationFillMode, value.into().to_string())
2082    }
2083
2084    /// Sets [`animation-iteration-count`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-iteration-count).
2085    ///
2086    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2087    #[must_use]
2088    pub fn animation_iteration_count(self, value: impl Into<crate::value::AnimationIterationCount>) -> Self {
2089        self.with(Property::AnimationIterationCount, value.into().to_string())
2090    }
2091
2092    /// Sets [`animation-name`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-name).
2093    ///
2094    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2095    #[must_use]
2096    pub fn animation_name(self, value: impl Into<crate::value::AnimationName>) -> Self {
2097        self.with(Property::AnimationName, value.into().to_string())
2098    }
2099
2100    /// Sets [`animation-play-state`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-play-state).
2101    ///
2102    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2103    #[must_use]
2104    pub fn animation_play_state(self, value: impl Into<crate::value::AnimationPlayState>) -> Self {
2105        self.with(Property::AnimationPlayState, value.into().to_string())
2106    }
2107
2108    /// Sets [`animation-timing-function`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-timing-function).
2109    ///
2110    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2111    #[must_use]
2112    pub fn animation_timing_function(self, value: impl Into<crate::value::AnimationTimingFunction>) -> Self {
2113        self.with(Property::AnimationTimingFunction, value.into().to_string())
2114    }
2115
2116    /// Sets [`animation-trigger`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/animation-trigger).
2117    ///
2118    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2119    #[must_use]
2120    pub fn animation_trigger(self, value: impl Into<crate::value::AnimationTrigger>) -> Self {
2121        self.with(Property::AnimationTrigger, value.into().to_string())
2122    }
2123
2124    /// Sets [`appearance`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/appearance).
2125    #[must_use]
2126    pub fn appearance(self, value: impl Into<crate::value::Appearance>) -> Self {
2127        self.with(Property::Appearance, value.into().to_string())
2128    }
2129
2130    /// Sets [`aspect-ratio`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/aspect-ratio).
2131    ///
2132    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2133    #[must_use]
2134    pub fn aspect_ratio(self, value: impl Into<crate::value::AspectRatio>) -> Self {
2135        self.with(Property::AspectRatio, value.into().to_string())
2136    }
2137
2138    /// Sets [`backdrop-filter`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/backdrop-filter).
2139    ///
2140    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2141    #[must_use]
2142    pub fn backdrop_filter(self, value: impl Into<crate::value::BackdropFilter>) -> Self {
2143        self.with(Property::BackdropFilter, value.into().to_string())
2144    }
2145
2146    /// Sets [`backface-visibility`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/backface-visibility).
2147    #[must_use]
2148    pub fn backface_visibility(self, value: impl Into<crate::value::BackfaceVisibility>) -> Self {
2149        self.with(Property::BackfaceVisibility, value.into().to_string())
2150    }
2151
2152    /// Sets [`background`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background).
2153    ///
2154    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2155    #[must_use]
2156    pub fn background(self, value: impl Into<crate::value::Background>) -> Self {
2157        self.with(Property::Background, value.into().to_string())
2158    }
2159
2160    /// Sets [`background-attachment`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-attachment).
2161    ///
2162    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2163    #[must_use]
2164    pub fn background_attachment(self, value: impl Into<crate::value::BackgroundAttachment>) -> Self {
2165        self.with(Property::BackgroundAttachment, value.into().to_string())
2166    }
2167
2168    /// Sets [`background-blend-mode`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-blend-mode).
2169    ///
2170    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2171    #[must_use]
2172    pub fn background_blend_mode(self, value: impl Into<crate::value::BackgroundBlendMode>) -> Self {
2173        self.with(Property::BackgroundBlendMode, value.into().to_string())
2174    }
2175
2176    /// Sets [`background-clip`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-clip).
2177    ///
2178    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2179    #[must_use]
2180    pub fn background_clip(self, value: impl Into<crate::value::BackgroundClip>) -> Self {
2181        self.with(Property::BackgroundClip, value.into().to_string())
2182    }
2183
2184    /// Sets [`background-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-color).
2185    #[must_use]
2186    pub fn background_color(self, value: impl Into<Color>) -> Self {
2187        self.with(Property::BackgroundColor, value.into().to_string())
2188    }
2189
2190    /// Sets [`background-image`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-image).
2191    ///
2192    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2193    #[must_use]
2194    pub fn background_image(self, value: impl Into<crate::value::BackgroundImage>) -> Self {
2195        self.with(Property::BackgroundImage, value.into().to_string())
2196    }
2197
2198    /// Sets [`background-origin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-origin).
2199    ///
2200    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2201    #[must_use]
2202    pub fn background_origin(self, value: impl Into<crate::value::BackgroundOrigin>) -> Self {
2203        self.with(Property::BackgroundOrigin, value.into().to_string())
2204    }
2205
2206    /// Sets [`background-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position).
2207    ///
2208    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2209    #[must_use]
2210    pub fn background_position(self, value: impl Into<crate::value::BackgroundPosition>) -> Self {
2211        self.with(Property::BackgroundPosition, value.into().to_string())
2212    }
2213
2214    /// Sets [`background-position-x`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-x).
2215    ///
2216    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2217    #[must_use]
2218    pub fn background_position_x(self, value: impl Into<crate::value::BackgroundPositionX>) -> Self {
2219        self.with(Property::BackgroundPositionX, value.into().to_string())
2220    }
2221
2222    /// Sets [`background-position-y`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-y).
2223    ///
2224    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2225    #[must_use]
2226    pub fn background_position_y(self, value: impl Into<crate::value::BackgroundPositionY>) -> Self {
2227        self.with(Property::BackgroundPositionY, value.into().to_string())
2228    }
2229
2230    /// Sets [`background-repeat`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-repeat).
2231    ///
2232    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2233    #[must_use]
2234    pub fn background_repeat(self, value: impl Into<crate::value::BackgroundRepeat>) -> Self {
2235        self.with(Property::BackgroundRepeat, value.into().to_string())
2236    }
2237
2238    /// Sets [`background-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-size).
2239    ///
2240    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2241    #[must_use]
2242    pub fn background_size(self, value: impl Into<crate::value::BackgroundSize>) -> Self {
2243        self.with(Property::BackgroundSize, value.into().to_string())
2244    }
2245
2246    /// Sets [`baseline-shift`]().
2247    #[must_use]
2248    pub fn baseline_shift(self, value: impl Into<crate::value::BaselineShift>) -> Self {
2249        self.with(Property::BaselineShift, value.into().to_string())
2250    }
2251
2252    /// Sets [`baseline-source`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/baseline-source).
2253    #[must_use]
2254    pub fn baseline_source(self, value: impl Into<crate::value::BaselineSource>) -> Self {
2255        self.with(Property::BaselineSource, value.into().to_string())
2256    }
2257
2258    /// Sets [`block-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/block-size).
2259    ///
2260    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2261    #[must_use]
2262    pub fn block_size(self, value: impl Into<crate::value::BlockSize>) -> Self {
2263        self.with(Property::BlockSize, value.into().to_string())
2264    }
2265
2266    /// Sets [`border`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border).
2267    ///
2268    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2269    #[must_use]
2270    pub fn border(self, value: impl Into<crate::value::Border>) -> Self {
2271        self.with(Property::Border, value.into().to_string())
2272    }
2273
2274    /// Sets [`border-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block).
2275    ///
2276    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2277    #[must_use]
2278    pub fn border_block(self, value: impl Into<crate::value::BorderBlock>) -> Self {
2279        self.with(Property::BorderBlock, value.into().to_string())
2280    }
2281
2282    /// Sets [`border-block-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-color).
2283    ///
2284    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2285    #[must_use]
2286    pub fn border_block_color(self, value: impl Into<crate::value::BorderBlockColor>) -> Self {
2287        self.with(Property::BorderBlockColor, value.into().to_string())
2288    }
2289
2290    /// Sets [`border-block-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end).
2291    ///
2292    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2293    #[must_use]
2294    pub fn border_block_end(self, value: impl Into<crate::value::BorderBlockEnd>) -> Self {
2295        self.with(Property::BorderBlockEnd, value.into().to_string())
2296    }
2297
2298    /// Sets [`border-block-end-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-color).
2299    #[must_use]
2300    pub fn border_block_end_color(self, value: impl Into<Color>) -> Self {
2301        self.with(Property::BorderBlockEndColor, value.into().to_string())
2302    }
2303
2304    /// Sets [`border-block-end-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-style).
2305    #[must_use]
2306    pub fn border_block_end_style(self, value: impl Into<crate::value::BorderBlockEndStyle>) -> Self {
2307        self.with(Property::BorderBlockEndStyle, value.into().to_string())
2308    }
2309
2310    /// Sets [`border-block-end-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-end-width).
2311    #[must_use]
2312    pub fn border_block_end_width(self, value: impl Into<crate::value::BorderBlockEndWidth>) -> Self {
2313        self.with(Property::BorderBlockEndWidth, value.into().to_string())
2314    }
2315
2316    /// Sets [`border-block-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start).
2317    ///
2318    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2319    #[must_use]
2320    pub fn border_block_start(self, value: impl Into<crate::value::BorderBlockStart>) -> Self {
2321        self.with(Property::BorderBlockStart, value.into().to_string())
2322    }
2323
2324    /// Sets [`border-block-start-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-color).
2325    #[must_use]
2326    pub fn border_block_start_color(self, value: impl Into<Color>) -> Self {
2327        self.with(Property::BorderBlockStartColor, value.into().to_string())
2328    }
2329
2330    /// Sets [`border-block-start-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-style).
2331    #[must_use]
2332    pub fn border_block_start_style(self, value: impl Into<crate::value::BorderBlockStartStyle>) -> Self {
2333        self.with(Property::BorderBlockStartStyle, value.into().to_string())
2334    }
2335
2336    /// Sets [`border-block-start-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-start-width).
2337    #[must_use]
2338    pub fn border_block_start_width(self, value: impl Into<crate::value::BorderBlockStartWidth>) -> Self {
2339        self.with(Property::BorderBlockStartWidth, value.into().to_string())
2340    }
2341
2342    /// Sets [`border-block-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-style).
2343    ///
2344    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2345    #[must_use]
2346    pub fn border_block_style(self, value: impl Into<crate::value::BorderBlockStyle>) -> Self {
2347        self.with(Property::BorderBlockStyle, value.into().to_string())
2348    }
2349
2350    /// Sets [`border-block-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-block-width).
2351    ///
2352    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2353    #[must_use]
2354    pub fn border_block_width(self, value: impl Into<crate::value::BorderBlockWidth>) -> Self {
2355        self.with(Property::BorderBlockWidth, value.into().to_string())
2356    }
2357
2358    /// Sets [`border-bottom`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom).
2359    ///
2360    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2361    #[must_use]
2362    pub fn border_bottom(self, value: impl Into<crate::value::BorderBottom>) -> Self {
2363        self.with(Property::BorderBottom, value.into().to_string())
2364    }
2365
2366    /// Sets [`border-bottom-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-color).
2367    #[must_use]
2368    pub fn border_bottom_color(self, value: impl Into<Color>) -> Self {
2369        self.with(Property::BorderBottomColor, value.into().to_string())
2370    }
2371
2372    /// Sets [`border-bottom-left-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-left-radius).
2373    ///
2374    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2375    #[must_use]
2376    pub fn border_bottom_left_radius(self, value: impl Into<crate::value::BorderBottomLeftRadius>) -> Self {
2377        self.with(Property::BorderBottomLeftRadius, value.into().to_string())
2378    }
2379
2380    /// Sets [`border-bottom-right-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-right-radius).
2381    ///
2382    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2383    #[must_use]
2384    pub fn border_bottom_right_radius(self, value: impl Into<crate::value::BorderBottomRightRadius>) -> Self {
2385        self.with(Property::BorderBottomRightRadius, value.into().to_string())
2386    }
2387
2388    /// Sets [`border-bottom-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-style).
2389    #[must_use]
2390    pub fn border_bottom_style(self, value: impl Into<crate::value::BorderBottomStyle>) -> Self {
2391        self.with(Property::BorderBottomStyle, value.into().to_string())
2392    }
2393
2394    /// Sets [`border-bottom-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-bottom-width).
2395    #[must_use]
2396    pub fn border_bottom_width(self, value: impl Into<crate::value::BorderBottomWidth>) -> Self {
2397        self.with(Property::BorderBottomWidth, value.into().to_string())
2398    }
2399
2400    /// Sets [`border-collapse`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-collapse).
2401    #[must_use]
2402    pub fn border_collapse(self, value: impl Into<crate::value::BorderCollapse>) -> Self {
2403        self.with(Property::BorderCollapse, value.into().to_string())
2404    }
2405
2406    /// Sets [`border-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-color).
2407    ///
2408    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2409    #[must_use]
2410    pub fn border_color(self, value: impl Into<crate::value::BorderColor>) -> Self {
2411        self.with(Property::BorderColor, value.into().to_string())
2412    }
2413
2414    /// Sets [`border-end-end-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-end-end-radius).
2415    ///
2416    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2417    #[must_use]
2418    pub fn border_end_end_radius(self, value: impl Into<crate::value::BorderEndEndRadius>) -> Self {
2419        self.with(Property::BorderEndEndRadius, value.into().to_string())
2420    }
2421
2422    /// Sets [`border-end-start-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-end-start-radius).
2423    ///
2424    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2425    #[must_use]
2426    pub fn border_end_start_radius(self, value: impl Into<crate::value::BorderEndStartRadius>) -> Self {
2427        self.with(Property::BorderEndStartRadius, value.into().to_string())
2428    }
2429
2430    /// Sets [`border-image`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image).
2431    ///
2432    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2433    #[must_use]
2434    pub fn border_image(self, value: impl Into<crate::value::BorderImage>) -> Self {
2435        self.with(Property::BorderImage, value.into().to_string())
2436    }
2437
2438    /// Sets [`border-image-outset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-outset).
2439    ///
2440    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2441    #[must_use]
2442    pub fn border_image_outset(self, value: impl Into<crate::value::BorderImageOutset>) -> Self {
2443        self.with(Property::BorderImageOutset, value.into().to_string())
2444    }
2445
2446    /// Sets [`border-image-repeat`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-repeat).
2447    ///
2448    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2449    #[must_use]
2450    pub fn border_image_repeat(self, value: impl Into<crate::value::BorderImageRepeat>) -> Self {
2451        self.with(Property::BorderImageRepeat, value.into().to_string())
2452    }
2453
2454    /// Sets [`border-image-slice`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-slice).
2455    ///
2456    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2457    #[must_use]
2458    pub fn border_image_slice(self, value: impl Into<crate::value::BorderImageSlice>) -> Self {
2459        self.with(Property::BorderImageSlice, value.into().to_string())
2460    }
2461
2462    /// Sets [`border-image-source`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-source).
2463    ///
2464    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2465    #[must_use]
2466    pub fn border_image_source(self, value: impl Into<crate::value::BorderImageSource>) -> Self {
2467        self.with(Property::BorderImageSource, value.into().to_string())
2468    }
2469
2470    /// Sets [`border-image-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-image-width).
2471    ///
2472    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2473    #[must_use]
2474    pub fn border_image_width(self, value: impl Into<crate::value::BorderImageWidth>) -> Self {
2475        self.with(Property::BorderImageWidth, value.into().to_string())
2476    }
2477
2478    /// Sets [`border-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline).
2479    ///
2480    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2481    #[must_use]
2482    pub fn border_inline(self, value: impl Into<crate::value::BorderInline>) -> Self {
2483        self.with(Property::BorderInline, value.into().to_string())
2484    }
2485
2486    /// Sets [`border-inline-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-color).
2487    ///
2488    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2489    #[must_use]
2490    pub fn border_inline_color(self, value: impl Into<crate::value::BorderInlineColor>) -> Self {
2491        self.with(Property::BorderInlineColor, value.into().to_string())
2492    }
2493
2494    /// Sets [`border-inline-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end).
2495    ///
2496    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2497    #[must_use]
2498    pub fn border_inline_end(self, value: impl Into<crate::value::BorderInlineEnd>) -> Self {
2499        self.with(Property::BorderInlineEnd, value.into().to_string())
2500    }
2501
2502    /// Sets [`border-inline-end-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-color).
2503    #[must_use]
2504    pub fn border_inline_end_color(self, value: impl Into<Color>) -> Self {
2505        self.with(Property::BorderInlineEndColor, value.into().to_string())
2506    }
2507
2508    /// Sets [`border-inline-end-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-style).
2509    #[must_use]
2510    pub fn border_inline_end_style(self, value: impl Into<crate::value::BorderInlineEndStyle>) -> Self {
2511        self.with(Property::BorderInlineEndStyle, value.into().to_string())
2512    }
2513
2514    /// Sets [`border-inline-end-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-end-width).
2515    #[must_use]
2516    pub fn border_inline_end_width(self, value: impl Into<crate::value::BorderInlineEndWidth>) -> Self {
2517        self.with(Property::BorderInlineEndWidth, value.into().to_string())
2518    }
2519
2520    /// Sets [`border-inline-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start).
2521    ///
2522    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2523    #[must_use]
2524    pub fn border_inline_start(self, value: impl Into<crate::value::BorderInlineStart>) -> Self {
2525        self.with(Property::BorderInlineStart, value.into().to_string())
2526    }
2527
2528    /// Sets [`border-inline-start-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-color).
2529    #[must_use]
2530    pub fn border_inline_start_color(self, value: impl Into<Color>) -> Self {
2531        self.with(Property::BorderInlineStartColor, value.into().to_string())
2532    }
2533
2534    /// Sets [`border-inline-start-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-style).
2535    #[must_use]
2536    pub fn border_inline_start_style(self, value: impl Into<crate::value::BorderInlineStartStyle>) -> Self {
2537        self.with(Property::BorderInlineStartStyle, value.into().to_string())
2538    }
2539
2540    /// Sets [`border-inline-start-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-start-width).
2541    #[must_use]
2542    pub fn border_inline_start_width(self, value: impl Into<crate::value::BorderInlineStartWidth>) -> Self {
2543        self.with(Property::BorderInlineStartWidth, value.into().to_string())
2544    }
2545
2546    /// Sets [`border-inline-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-style).
2547    ///
2548    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2549    #[must_use]
2550    pub fn border_inline_style(self, value: impl Into<crate::value::BorderInlineStyle>) -> Self {
2551        self.with(Property::BorderInlineStyle, value.into().to_string())
2552    }
2553
2554    /// Sets [`border-inline-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-inline-width).
2555    ///
2556    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2557    #[must_use]
2558    pub fn border_inline_width(self, value: impl Into<crate::value::BorderInlineWidth>) -> Self {
2559        self.with(Property::BorderInlineWidth, value.into().to_string())
2560    }
2561
2562    /// Sets [`border-left`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left).
2563    ///
2564    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2565    #[must_use]
2566    pub fn border_left(self, value: impl Into<crate::value::BorderLeft>) -> Self {
2567        self.with(Property::BorderLeft, value.into().to_string())
2568    }
2569
2570    /// Sets [`border-left-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-color).
2571    #[must_use]
2572    pub fn border_left_color(self, value: impl Into<Color>) -> Self {
2573        self.with(Property::BorderLeftColor, value.into().to_string())
2574    }
2575
2576    /// Sets [`border-left-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-style).
2577    #[must_use]
2578    pub fn border_left_style(self, value: impl Into<crate::value::BorderLeftStyle>) -> Self {
2579        self.with(Property::BorderLeftStyle, value.into().to_string())
2580    }
2581
2582    /// Sets [`border-left-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-left-width).
2583    #[must_use]
2584    pub fn border_left_width(self, value: impl Into<crate::value::BorderLeftWidth>) -> Self {
2585        self.with(Property::BorderLeftWidth, value.into().to_string())
2586    }
2587
2588    /// Sets [`border-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-radius).
2589    ///
2590    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2591    #[must_use]
2592    pub fn border_radius(self, value: impl Into<crate::value::BorderRadius>) -> Self {
2593        self.with(Property::BorderRadius, value.into().to_string())
2594    }
2595
2596    /// Sets [`border-right`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right).
2597    ///
2598    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2599    #[must_use]
2600    pub fn border_right(self, value: impl Into<crate::value::BorderRight>) -> Self {
2601        self.with(Property::BorderRight, value.into().to_string())
2602    }
2603
2604    /// Sets [`border-right-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-color).
2605    #[must_use]
2606    pub fn border_right_color(self, value: impl Into<Color>) -> Self {
2607        self.with(Property::BorderRightColor, value.into().to_string())
2608    }
2609
2610    /// Sets [`border-right-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-style).
2611    #[must_use]
2612    pub fn border_right_style(self, value: impl Into<crate::value::BorderRightStyle>) -> Self {
2613        self.with(Property::BorderRightStyle, value.into().to_string())
2614    }
2615
2616    /// Sets [`border-right-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-right-width).
2617    #[must_use]
2618    pub fn border_right_width(self, value: impl Into<crate::value::BorderRightWidth>) -> Self {
2619        self.with(Property::BorderRightWidth, value.into().to_string())
2620    }
2621
2622    /// Sets [`border-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-shape).
2623    ///
2624    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2625    #[must_use]
2626    pub fn border_shape(self, value: impl Into<crate::value::BorderShape>) -> Self {
2627        self.with(Property::BorderShape, value.into().to_string())
2628    }
2629
2630    /// Sets [`border-spacing`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-spacing).
2631    ///
2632    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2633    #[must_use]
2634    pub fn border_spacing(self, value: impl Into<crate::value::BorderSpacing>) -> Self {
2635        self.with(Property::BorderSpacing, value.into().to_string())
2636    }
2637
2638    /// Sets [`border-start-end-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-start-end-radius).
2639    ///
2640    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2641    #[must_use]
2642    pub fn border_start_end_radius(self, value: impl Into<crate::value::BorderStartEndRadius>) -> Self {
2643        self.with(Property::BorderStartEndRadius, value.into().to_string())
2644    }
2645
2646    /// Sets [`border-start-start-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-start-start-radius).
2647    ///
2648    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2649    #[must_use]
2650    pub fn border_start_start_radius(self, value: impl Into<crate::value::BorderStartStartRadius>) -> Self {
2651        self.with(Property::BorderStartStartRadius, value.into().to_string())
2652    }
2653
2654    /// Sets [`border-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-style).
2655    ///
2656    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2657    #[must_use]
2658    pub fn border_style(self, value: impl Into<crate::value::BorderStyle>) -> Self {
2659        self.with(Property::BorderStyle, value.into().to_string())
2660    }
2661
2662    /// Sets [`border-top`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top).
2663    ///
2664    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2665    #[must_use]
2666    pub fn border_top(self, value: impl Into<crate::value::BorderTop>) -> Self {
2667        self.with(Property::BorderTop, value.into().to_string())
2668    }
2669
2670    /// Sets [`border-top-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-color).
2671    #[must_use]
2672    pub fn border_top_color(self, value: impl Into<Color>) -> Self {
2673        self.with(Property::BorderTopColor, value.into().to_string())
2674    }
2675
2676    /// Sets [`border-top-left-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-left-radius).
2677    ///
2678    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2679    #[must_use]
2680    pub fn border_top_left_radius(self, value: impl Into<crate::value::BorderTopLeftRadius>) -> Self {
2681        self.with(Property::BorderTopLeftRadius, value.into().to_string())
2682    }
2683
2684    /// Sets [`border-top-right-radius`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-right-radius).
2685    ///
2686    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2687    #[must_use]
2688    pub fn border_top_right_radius(self, value: impl Into<crate::value::BorderTopRightRadius>) -> Self {
2689        self.with(Property::BorderTopRightRadius, value.into().to_string())
2690    }
2691
2692    /// Sets [`border-top-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-style).
2693    #[must_use]
2694    pub fn border_top_style(self, value: impl Into<crate::value::BorderTopStyle>) -> Self {
2695        self.with(Property::BorderTopStyle, value.into().to_string())
2696    }
2697
2698    /// Sets [`border-top-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-width).
2699    #[must_use]
2700    pub fn border_top_width(self, value: impl Into<crate::value::BorderTopWidth>) -> Self {
2701        self.with(Property::BorderTopWidth, value.into().to_string())
2702    }
2703
2704    /// Sets [`border-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-width).
2705    ///
2706    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2707    #[must_use]
2708    pub fn border_width(self, value: impl Into<crate::value::BorderWidth>) -> Self {
2709        self.with(Property::BorderWidth, value.into().to_string())
2710    }
2711
2712    /// Sets [`bottom`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/bottom).
2713    ///
2714    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2715    #[must_use]
2716    pub fn bottom(self, value: impl Into<crate::value::Bottom>) -> Self {
2717        self.with(Property::Bottom, value.into().to_string())
2718    }
2719
2720    /// Sets [`box-decoration-break`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-decoration-break).
2721    #[must_use]
2722    pub fn box_decoration_break(self, value: impl Into<crate::value::BoxDecorationBreak>) -> Self {
2723        self.with(Property::BoxDecorationBreak, value.into().to_string())
2724    }
2725
2726    /// Sets [`box-shadow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-shadow).
2727    ///
2728    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2729    #[must_use]
2730    pub fn box_shadow(self, value: impl Into<crate::value::BoxShadow>) -> Self {
2731        self.with(Property::BoxShadow, value.into().to_string())
2732    }
2733
2734    /// Sets [`box-sizing`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-sizing).
2735    #[must_use]
2736    pub fn box_sizing(self, value: impl Into<crate::value::BoxSizing>) -> Self {
2737        self.with(Property::BoxSizing, value.into().to_string())
2738    }
2739
2740    /// Sets [`break-after`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-after).
2741    #[must_use]
2742    pub fn break_after(self, value: impl Into<crate::value::BreakAfter>) -> Self {
2743        self.with(Property::BreakAfter, value.into().to_string())
2744    }
2745
2746    /// Sets [`break-before`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-before).
2747    #[must_use]
2748    pub fn break_before(self, value: impl Into<crate::value::BreakBefore>) -> Self {
2749        self.with(Property::BreakBefore, value.into().to_string())
2750    }
2751
2752    /// Sets [`break-inside`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-inside).
2753    #[must_use]
2754    pub fn break_inside(self, value: impl Into<crate::value::BreakInside>) -> Self {
2755        self.with(Property::BreakInside, value.into().to_string())
2756    }
2757
2758    /// Sets [`caption-side`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caption-side).
2759    #[must_use]
2760    pub fn caption_side(self, value: impl Into<crate::value::CaptionSide>) -> Self {
2761        self.with(Property::CaptionSide, value.into().to_string())
2762    }
2763
2764    /// Sets [`caret`]().
2765    ///
2766    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2767    #[must_use]
2768    pub fn caret(self, value: impl Into<crate::value::Caret>) -> Self {
2769        self.with(Property::Caret, value.into().to_string())
2770    }
2771
2772    /// Sets [`caret-animation`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caret-animation).
2773    #[must_use]
2774    pub fn caret_animation(self, value: impl Into<crate::value::CaretAnimation>) -> Self {
2775        self.with(Property::CaretAnimation, value.into().to_string())
2776    }
2777
2778    /// Sets [`caret-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/caret-color).
2779    #[must_use]
2780    pub fn caret_color(self, value: impl Into<crate::value::CaretColor>) -> Self {
2781        self.with(Property::CaretColor, value.into().to_string())
2782    }
2783
2784    /// Sets [`caret-shape`]().
2785    #[must_use]
2786    pub fn caret_shape(self, value: impl Into<crate::value::CaretShape>) -> Self {
2787        self.with(Property::CaretShape, value.into().to_string())
2788    }
2789
2790    /// Sets [`clear`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clear).
2791    #[must_use]
2792    pub fn clear(self, value: impl Into<crate::value::Clear>) -> Self {
2793        self.with(Property::Clear, value.into().to_string())
2794    }
2795
2796    /// Sets [`clip-path`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip-path).
2797    ///
2798    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2799    #[must_use]
2800    pub fn clip_path(self, value: impl Into<crate::value::ClipPath>) -> Self {
2801        self.with(Property::ClipPath, value.into().to_string())
2802    }
2803
2804    /// Sets [`clip-rule`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip-rule).
2805    #[must_use]
2806    pub fn clip_rule(self, value: impl Into<crate::value::ClipRule>) -> Self {
2807        self.with(Property::ClipRule, value.into().to_string())
2808    }
2809
2810    /// Sets [`color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color).
2811    #[must_use]
2812    pub fn color(self, value: impl Into<Color>) -> Self {
2813        self.with(Property::Color, value.into().to_string())
2814    }
2815
2816    /// Sets [`color-interpolation-filters`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color-interpolation-filters).
2817    #[must_use]
2818    pub fn color_interpolation_filters(self, value: impl Into<crate::value::ColorInterpolationFilters>) -> Self {
2819        self.with(Property::ColorInterpolationFilters, value.into().to_string())
2820    }
2821
2822    /// Sets [`color-scheme`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/color-scheme).
2823    ///
2824    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2825    #[must_use]
2826    pub fn color_scheme(self, value: impl Into<crate::value::ColorScheme>) -> Self {
2827        self.with(Property::ColorScheme, value.into().to_string())
2828    }
2829
2830    /// Sets [`column-count`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-count).
2831    #[must_use]
2832    pub fn column_count(self, value: impl Into<crate::value::ColumnCount>) -> Self {
2833        self.with(Property::ColumnCount, value.into().to_string())
2834    }
2835
2836    /// Sets [`column-fill`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-fill).
2837    #[must_use]
2838    pub fn column_fill(self, value: impl Into<crate::value::ColumnFill>) -> Self {
2839        self.with(Property::ColumnFill, value.into().to_string())
2840    }
2841
2842    /// Sets [`column-gap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-gap).
2843    #[must_use]
2844    pub fn column_gap(self, value: impl Into<crate::value::ColumnGap>) -> Self {
2845        self.with(Property::ColumnGap, value.into().to_string())
2846    }
2847
2848    /// Sets [`column-height`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-height).
2849    #[must_use]
2850    pub fn column_height(self, value: impl Into<crate::value::ColumnHeight>) -> Self {
2851        self.with(Property::ColumnHeight, value.into().to_string())
2852    }
2853
2854    /// Sets [`column-rule`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule).
2855    ///
2856    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2857    #[must_use]
2858    pub fn column_rule(self, value: impl Into<crate::value::ColumnRule>) -> Self {
2859        self.with(Property::ColumnRule, value.into().to_string())
2860    }
2861
2862    /// Sets [`column-rule-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-color).
2863    #[must_use]
2864    pub fn column_rule_color(self, value: impl Into<Color>) -> Self {
2865        self.with(Property::ColumnRuleColor, value.into().to_string())
2866    }
2867
2868    /// Sets [`column-rule-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-style).
2869    #[must_use]
2870    pub fn column_rule_style(self, value: impl Into<crate::value::ColumnRuleStyle>) -> Self {
2871        self.with(Property::ColumnRuleStyle, value.into().to_string())
2872    }
2873
2874    /// Sets [`column-rule-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-rule-width).
2875    #[must_use]
2876    pub fn column_rule_width(self, value: impl Into<crate::value::ColumnRuleWidth>) -> Self {
2877        self.with(Property::ColumnRuleWidth, value.into().to_string())
2878    }
2879
2880    /// Sets [`column-span`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-span).
2881    #[must_use]
2882    pub fn column_span(self, value: impl Into<crate::value::ColumnSpan>) -> Self {
2883        self.with(Property::ColumnSpan, value.into().to_string())
2884    }
2885
2886    /// Sets [`column-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-width).
2887    #[must_use]
2888    pub fn column_width(self, value: impl Into<crate::value::ColumnWidth>) -> Self {
2889        self.with(Property::ColumnWidth, value.into().to_string())
2890    }
2891
2892    /// Sets [`column-wrap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-wrap).
2893    #[must_use]
2894    pub fn column_wrap(self, value: impl Into<crate::value::ColumnWrap>) -> Self {
2895        self.with(Property::ColumnWrap, value.into().to_string())
2896    }
2897
2898    /// Sets [`columns`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/columns).
2899    ///
2900    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2901    #[must_use]
2902    pub fn columns(self, value: impl Into<crate::value::Columns>) -> Self {
2903        self.with(Property::Columns, value.into().to_string())
2904    }
2905
2906    /// Sets [`contain`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain).
2907    ///
2908    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2909    #[must_use]
2910    pub fn contain(self, value: impl Into<crate::value::Contain>) -> Self {
2911        self.with(Property::Contain, value.into().to_string())
2912    }
2913
2914    /// Sets [`contain-intrinsic-block-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-block-size).
2915    ///
2916    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2917    #[must_use]
2918    pub fn contain_intrinsic_block_size(self, value: impl Into<crate::value::ContainIntrinsicBlockSize>) -> Self {
2919        self.with(Property::ContainIntrinsicBlockSize, value.into().to_string())
2920    }
2921
2922    /// Sets [`contain-intrinsic-height`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-height).
2923    ///
2924    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2925    #[must_use]
2926    pub fn contain_intrinsic_height(self, value: impl Into<crate::value::ContainIntrinsicHeight>) -> Self {
2927        self.with(Property::ContainIntrinsicHeight, value.into().to_string())
2928    }
2929
2930    /// Sets [`contain-intrinsic-inline-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-inline-size).
2931    ///
2932    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2933    #[must_use]
2934    pub fn contain_intrinsic_inline_size(self, value: impl Into<crate::value::ContainIntrinsicInlineSize>) -> Self {
2935        self.with(Property::ContainIntrinsicInlineSize, value.into().to_string())
2936    }
2937
2938    /// Sets [`contain-intrinsic-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-size).
2939    ///
2940    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2941    #[must_use]
2942    pub fn contain_intrinsic_size(self, value: impl Into<crate::value::ContainIntrinsicSize>) -> Self {
2943        self.with(Property::ContainIntrinsicSize, value.into().to_string())
2944    }
2945
2946    /// Sets [`contain-intrinsic-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/contain-intrinsic-width).
2947    ///
2948    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2949    #[must_use]
2950    pub fn contain_intrinsic_width(self, value: impl Into<crate::value::ContainIntrinsicWidth>) -> Self {
2951        self.with(Property::ContainIntrinsicWidth, value.into().to_string())
2952    }
2953
2954    /// Sets [`container`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container).
2955    ///
2956    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2957    #[must_use]
2958    pub fn container(self, value: impl Into<crate::value::Container>) -> Self {
2959        self.with(Property::Container, value.into().to_string())
2960    }
2961
2962    /// Sets [`container-name`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container-name).
2963    ///
2964    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2965    #[must_use]
2966    pub fn container_name(self, value: impl Into<crate::value::ContainerName>) -> Self {
2967        self.with(Property::ContainerName, value.into().to_string())
2968    }
2969
2970    /// Sets [`container-type`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container-type).
2971    ///
2972    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2973    #[must_use]
2974    pub fn container_type(self, value: impl Into<crate::value::ContainerType>) -> Self {
2975        self.with(Property::ContainerType, value.into().to_string())
2976    }
2977
2978    /// Sets [`content`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/content).
2979    ///
2980    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2981    #[must_use]
2982    pub fn content(self, value: impl Into<crate::value::Content>) -> Self {
2983        self.with(Property::Content, value.into().to_string())
2984    }
2985
2986    /// Sets [`content-visibility`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/content-visibility).
2987    #[must_use]
2988    pub fn content_visibility(self, value: impl Into<crate::value::ContentVisibility>) -> Self {
2989        self.with(Property::ContentVisibility, value.into().to_string())
2990    }
2991
2992    /// Sets [`corner-block-end-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-block-end-shape).
2993    ///
2994    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
2995    #[must_use]
2996    pub fn corner_block_end_shape(self, value: impl Into<crate::value::CornerBlockEndShape>) -> Self {
2997        self.with(Property::CornerBlockEndShape, value.into().to_string())
2998    }
2999
3000    /// Sets [`corner-block-start-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-block-start-shape).
3001    ///
3002    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3003    #[must_use]
3004    pub fn corner_block_start_shape(self, value: impl Into<crate::value::CornerBlockStartShape>) -> Self {
3005        self.with(Property::CornerBlockStartShape, value.into().to_string())
3006    }
3007
3008    /// Sets [`corner-bottom-left-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-bottom-left-shape).
3009    ///
3010    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3011    #[must_use]
3012    pub fn corner_bottom_left_shape(self, value: impl Into<crate::value::CornerBottomLeftShape>) -> Self {
3013        self.with(Property::CornerBottomLeftShape, value.into().to_string())
3014    }
3015
3016    /// Sets [`corner-bottom-right-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-bottom-right-shape).
3017    ///
3018    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3019    #[must_use]
3020    pub fn corner_bottom_right_shape(self, value: impl Into<crate::value::CornerBottomRightShape>) -> Self {
3021        self.with(Property::CornerBottomRightShape, value.into().to_string())
3022    }
3023
3024    /// Sets [`corner-bottom-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-bottom-shape).
3025    ///
3026    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3027    #[must_use]
3028    pub fn corner_bottom_shape(self, value: impl Into<crate::value::CornerBottomShape>) -> Self {
3029        self.with(Property::CornerBottomShape, value.into().to_string())
3030    }
3031
3032    /// Sets [`corner-end-end-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-end-end-shape).
3033    ///
3034    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3035    #[must_use]
3036    pub fn corner_end_end_shape(self, value: impl Into<crate::value::CornerEndEndShape>) -> Self {
3037        self.with(Property::CornerEndEndShape, value.into().to_string())
3038    }
3039
3040    /// Sets [`corner-end-start-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-end-start-shape).
3041    ///
3042    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3043    #[must_use]
3044    pub fn corner_end_start_shape(self, value: impl Into<crate::value::CornerEndStartShape>) -> Self {
3045        self.with(Property::CornerEndStartShape, value.into().to_string())
3046    }
3047
3048    /// Sets [`corner-inline-end-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-inline-end-shape).
3049    ///
3050    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3051    #[must_use]
3052    pub fn corner_inline_end_shape(self, value: impl Into<crate::value::CornerInlineEndShape>) -> Self {
3053        self.with(Property::CornerInlineEndShape, value.into().to_string())
3054    }
3055
3056    /// Sets [`corner-inline-start-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-inline-start-shape).
3057    ///
3058    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3059    #[must_use]
3060    pub fn corner_inline_start_shape(self, value: impl Into<crate::value::CornerInlineStartShape>) -> Self {
3061        self.with(Property::CornerInlineStartShape, value.into().to_string())
3062    }
3063
3064    /// Sets [`corner-left-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-left-shape).
3065    ///
3066    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3067    #[must_use]
3068    pub fn corner_left_shape(self, value: impl Into<crate::value::CornerLeftShape>) -> Self {
3069        self.with(Property::CornerLeftShape, value.into().to_string())
3070    }
3071
3072    /// Sets [`corner-right-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-right-shape).
3073    ///
3074    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3075    #[must_use]
3076    pub fn corner_right_shape(self, value: impl Into<crate::value::CornerRightShape>) -> Self {
3077        self.with(Property::CornerRightShape, value.into().to_string())
3078    }
3079
3080    /// Sets [`corner-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-shape).
3081    ///
3082    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3083    #[must_use]
3084    pub fn corner_shape(self, value: impl Into<crate::value::CornerShape>) -> Self {
3085        self.with(Property::CornerShape, value.into().to_string())
3086    }
3087
3088    /// Sets [`corner-start-end-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-start-end-shape).
3089    ///
3090    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3091    #[must_use]
3092    pub fn corner_start_end_shape(self, value: impl Into<crate::value::CornerStartEndShape>) -> Self {
3093        self.with(Property::CornerStartEndShape, value.into().to_string())
3094    }
3095
3096    /// Sets [`corner-start-start-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-start-start-shape).
3097    ///
3098    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3099    #[must_use]
3100    pub fn corner_start_start_shape(self, value: impl Into<crate::value::CornerStartStartShape>) -> Self {
3101        self.with(Property::CornerStartStartShape, value.into().to_string())
3102    }
3103
3104    /// Sets [`corner-top-left-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-top-left-shape).
3105    ///
3106    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3107    #[must_use]
3108    pub fn corner_top_left_shape(self, value: impl Into<crate::value::CornerTopLeftShape>) -> Self {
3109        self.with(Property::CornerTopLeftShape, value.into().to_string())
3110    }
3111
3112    /// Sets [`corner-top-right-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-top-right-shape).
3113    ///
3114    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3115    #[must_use]
3116    pub fn corner_top_right_shape(self, value: impl Into<crate::value::CornerTopRightShape>) -> Self {
3117        self.with(Property::CornerTopRightShape, value.into().to_string())
3118    }
3119
3120    /// Sets [`corner-top-shape`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/corner-top-shape).
3121    ///
3122    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3123    #[must_use]
3124    pub fn corner_top_shape(self, value: impl Into<crate::value::CornerTopShape>) -> Self {
3125        self.with(Property::CornerTopShape, value.into().to_string())
3126    }
3127
3128    /// Sets [`counter-increment`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-increment).
3129    ///
3130    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3131    #[must_use]
3132    pub fn counter_increment(self, value: impl Into<crate::value::CounterIncrement>) -> Self {
3133        self.with(Property::CounterIncrement, value.into().to_string())
3134    }
3135
3136    /// Sets [`counter-reset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-reset).
3137    ///
3138    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3139    #[must_use]
3140    pub fn counter_reset(self, value: impl Into<crate::value::CounterReset>) -> Self {
3141        self.with(Property::CounterReset, value.into().to_string())
3142    }
3143
3144    /// Sets [`counter-set`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/counter-set).
3145    ///
3146    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3147    #[must_use]
3148    pub fn counter_set(self, value: impl Into<crate::value::CounterSet>) -> Self {
3149        self.with(Property::CounterSet, value.into().to_string())
3150    }
3151
3152    /// Sets [`cursor`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cursor).
3153    ///
3154    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3155    #[must_use]
3156    pub fn cursor(self, value: impl Into<crate::value::Cursor>) -> Self {
3157        self.with(Property::Cursor, value.into().to_string())
3158    }
3159
3160    /// Sets [`cx`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cx).
3161    #[must_use]
3162    pub fn cx(self, value: impl Into<crate::value::Cx>) -> Self {
3163        self.with(Property::Cx, value.into().to_string())
3164    }
3165
3166    /// Sets [`cy`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/cy).
3167    #[must_use]
3168    pub fn cy(self, value: impl Into<crate::value::Cy>) -> Self {
3169        self.with(Property::Cy, value.into().to_string())
3170    }
3171
3172    /// Sets [`d`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/d).
3173    ///
3174    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3175    #[must_use]
3176    pub fn d(self, value: impl Into<crate::value::D>) -> Self {
3177        self.with(Property::D, value.into().to_string())
3178    }
3179
3180    /// Sets [`direction`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/direction).
3181    #[must_use]
3182    pub fn direction(self, value: impl Into<crate::value::Direction>) -> Self {
3183        self.with(Property::Direction, value.into().to_string())
3184    }
3185
3186    /// Sets [`display`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/display).
3187    ///
3188    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3189    #[must_use]
3190    pub fn display(self, value: impl Into<crate::value::Display>) -> Self {
3191        self.with(Property::Display, value.into().to_string())
3192    }
3193
3194    /// Sets [`dominant-baseline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/dominant-baseline).
3195    #[must_use]
3196    pub fn dominant_baseline(self, value: impl Into<crate::value::DominantBaseline>) -> Self {
3197        self.with(Property::DominantBaseline, value.into().to_string())
3198    }
3199
3200    /// Sets [`dynamic-range-limit`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/dynamic-range-limit).
3201    ///
3202    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3203    #[must_use]
3204    pub fn dynamic_range_limit(self, value: impl Into<crate::value::DynamicRangeLimit>) -> Self {
3205        self.with(Property::DynamicRangeLimit, value.into().to_string())
3206    }
3207
3208    /// Sets [`empty-cells`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/empty-cells).
3209    #[must_use]
3210    pub fn empty_cells(self, value: impl Into<crate::value::EmptyCells>) -> Self {
3211        self.with(Property::EmptyCells, value.into().to_string())
3212    }
3213
3214    /// Sets [`fill`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill).
3215    ///
3216    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3217    #[must_use]
3218    pub fn fill(self, value: impl Into<crate::value::Fill>) -> Self {
3219        self.with(Property::Fill, value.into().to_string())
3220    }
3221
3222    /// Sets [`fill-opacity`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill-opacity).
3223    #[must_use]
3224    pub fn fill_opacity(self, value: impl Into<crate::value::FillOpacity>) -> Self {
3225        self.with(Property::FillOpacity, value.into().to_string())
3226    }
3227
3228    /// Sets [`fill-rule`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill-rule).
3229    #[must_use]
3230    pub fn fill_rule(self, value: impl Into<crate::value::FillRule>) -> Self {
3231        self.with(Property::FillRule, value.into().to_string())
3232    }
3233
3234    /// Sets [`filter`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/filter).
3235    ///
3236    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3237    #[must_use]
3238    pub fn filter(self, value: impl Into<crate::value::Filter>) -> Self {
3239        self.with(Property::Filter, value.into().to_string())
3240    }
3241
3242    /// Sets [`flex`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex).
3243    ///
3244    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3245    #[must_use]
3246    pub fn flex(self, value: impl Into<crate::value::Flex>) -> Self {
3247        self.with(Property::Flex, value.into().to_string())
3248    }
3249
3250    /// Sets [`flex-basis`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-basis).
3251    ///
3252    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3253    #[must_use]
3254    pub fn flex_basis(self, value: impl Into<crate::value::FlexBasis>) -> Self {
3255        self.with(Property::FlexBasis, value.into().to_string())
3256    }
3257
3258    /// Sets [`flex-direction`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-direction).
3259    #[must_use]
3260    pub fn flex_direction(self, value: impl Into<crate::value::FlexDirection>) -> Self {
3261        self.with(Property::FlexDirection, value.into().to_string())
3262    }
3263
3264    /// Sets [`flex-flow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-flow).
3265    ///
3266    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3267    #[must_use]
3268    pub fn flex_flow(self, value: impl Into<crate::value::FlexFlow>) -> Self {
3269        self.with(Property::FlexFlow, value.into().to_string())
3270    }
3271
3272    /// Sets [`flex-grow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-grow).
3273    #[must_use]
3274    pub fn flex_grow(self, value: impl Into<f64>) -> Self {
3275        self.with(Property::FlexGrow, value.into().to_string())
3276    }
3277
3278    /// Sets [`flex-line-count`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-line-count).
3279    #[must_use]
3280    pub fn flex_line_count(self, value: impl Into<i32>) -> Self {
3281        self.with(Property::FlexLineCount, value.into().to_string())
3282    }
3283
3284    /// Sets [`flex-shrink`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-shrink).
3285    #[must_use]
3286    pub fn flex_shrink(self, value: impl Into<f64>) -> Self {
3287        self.with(Property::FlexShrink, value.into().to_string())
3288    }
3289
3290    /// Sets [`flex-wrap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flex-wrap).
3291    ///
3292    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3293    #[must_use]
3294    pub fn flex_wrap(self, value: impl Into<crate::value::FlexWrap>) -> Self {
3295        self.with(Property::FlexWrap, value.into().to_string())
3296    }
3297
3298    /// Sets [`float`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/float).
3299    #[must_use]
3300    pub fn float(self, value: impl Into<crate::value::Float>) -> Self {
3301        self.with(Property::Float, value.into().to_string())
3302    }
3303
3304    /// Sets [`flood-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flood-color).
3305    #[must_use]
3306    pub fn flood_color(self, value: impl Into<Color>) -> Self {
3307        self.with(Property::FloodColor, value.into().to_string())
3308    }
3309
3310    /// Sets [`flood-opacity`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/flood-opacity).
3311    #[must_use]
3312    pub fn flood_opacity(self, value: impl Into<crate::value::FloodOpacity>) -> Self {
3313        self.with(Property::FloodOpacity, value.into().to_string())
3314    }
3315
3316    /// Sets [`font`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font).
3317    ///
3318    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3319    #[must_use]
3320    pub fn font(self, value: impl Into<crate::value::Font>) -> Self {
3321        self.with(Property::Font, value.into().to_string())
3322    }
3323
3324    /// Sets [`font-family`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-family).
3325    ///
3326    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3327    #[must_use]
3328    pub fn font_family(self, value: impl Into<crate::value::FontFamily>) -> Self {
3329        self.with(Property::FontFamily, value.into().to_string())
3330    }
3331
3332    /// Sets [`font-feature-settings`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-feature-settings).
3333    ///
3334    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3335    #[must_use]
3336    pub fn font_feature_settings(self, value: impl Into<crate::value::FontFeatureSettings>) -> Self {
3337        self.with(Property::FontFeatureSettings, value.into().to_string())
3338    }
3339
3340    /// Sets [`font-kerning`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-kerning).
3341    #[must_use]
3342    pub fn font_kerning(self, value: impl Into<crate::value::FontKerning>) -> Self {
3343        self.with(Property::FontKerning, value.into().to_string())
3344    }
3345
3346    /// Sets [`font-language-override`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-language-override).
3347    #[must_use]
3348    pub fn font_language_override(self, value: impl Into<crate::value::FontLanguageOverride>) -> Self {
3349        self.with(Property::FontLanguageOverride, value.into().to_string())
3350    }
3351
3352    /// Sets [`font-optical-sizing`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-optical-sizing).
3353    #[must_use]
3354    pub fn font_optical_sizing(self, value: impl Into<crate::value::FontOpticalSizing>) -> Self {
3355        self.with(Property::FontOpticalSizing, value.into().to_string())
3356    }
3357
3358    /// Sets [`font-palette`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-palette).
3359    ///
3360    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3361    #[must_use]
3362    pub fn font_palette(self, value: impl Into<crate::value::FontPalette>) -> Self {
3363        self.with(Property::FontPalette, value.into().to_string())
3364    }
3365
3366    /// Sets [`font-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-size).
3367    #[must_use]
3368    pub fn font_size(self, value: impl Into<crate::value::FontSize>) -> Self {
3369        self.with(Property::FontSize, value.into().to_string())
3370    }
3371
3372    /// Sets [`font-size-adjust`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-size-adjust).
3373    ///
3374    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3375    #[must_use]
3376    pub fn font_size_adjust(self, value: impl Into<crate::value::FontSizeAdjust>) -> Self {
3377        self.with(Property::FontSizeAdjust, value.into().to_string())
3378    }
3379
3380    /// Sets [`font-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-style).
3381    ///
3382    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3383    #[must_use]
3384    pub fn font_style(self, value: impl Into<crate::value::FontStyle>) -> Self {
3385        self.with(Property::FontStyle, value.into().to_string())
3386    }
3387
3388    /// Sets [`font-synthesis`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis).
3389    ///
3390    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3391    #[must_use]
3392    pub fn font_synthesis(self, value: impl Into<crate::value::FontSynthesis>) -> Self {
3393        self.with(Property::FontSynthesis, value.into().to_string())
3394    }
3395
3396    /// Sets [`font-synthesis-small-caps`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-small-caps).
3397    #[must_use]
3398    pub fn font_synthesis_small_caps(self, value: impl Into<crate::value::FontSynthesisSmallCaps>) -> Self {
3399        self.with(Property::FontSynthesisSmallCaps, value.into().to_string())
3400    }
3401
3402    /// Sets [`font-synthesis-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-style).
3403    #[must_use]
3404    pub fn font_synthesis_style(self, value: impl Into<crate::value::FontSynthesisStyle>) -> Self {
3405        self.with(Property::FontSynthesisStyle, value.into().to_string())
3406    }
3407
3408    /// Sets [`font-synthesis-weight`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-synthesis-weight).
3409    #[must_use]
3410    pub fn font_synthesis_weight(self, value: impl Into<crate::value::FontSynthesisWeight>) -> Self {
3411        self.with(Property::FontSynthesisWeight, value.into().to_string())
3412    }
3413
3414    /// Sets [`font-variant`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant).
3415    ///
3416    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3417    #[must_use]
3418    pub fn font_variant(self, value: impl Into<crate::value::FontVariant>) -> Self {
3419        self.with(Property::FontVariant, value.into().to_string())
3420    }
3421
3422    /// Sets [`font-variant-alternates`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-alternates).
3423    ///
3424    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3425    #[must_use]
3426    pub fn font_variant_alternates(self, value: impl Into<crate::value::FontVariantAlternates>) -> Self {
3427        self.with(Property::FontVariantAlternates, value.into().to_string())
3428    }
3429
3430    /// Sets [`font-variant-caps`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-caps).
3431    #[must_use]
3432    pub fn font_variant_caps(self, value: impl Into<crate::value::FontVariantCaps>) -> Self {
3433        self.with(Property::FontVariantCaps, value.into().to_string())
3434    }
3435
3436    /// Sets [`font-variant-east-asian`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-east-asian).
3437    ///
3438    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3439    #[must_use]
3440    pub fn font_variant_east_asian(self, value: impl Into<crate::value::FontVariantEastAsian>) -> Self {
3441        self.with(Property::FontVariantEastAsian, value.into().to_string())
3442    }
3443
3444    /// Sets [`font-variant-emoji`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-emoji).
3445    #[must_use]
3446    pub fn font_variant_emoji(self, value: impl Into<crate::value::FontVariantEmoji>) -> Self {
3447        self.with(Property::FontVariantEmoji, value.into().to_string())
3448    }
3449
3450    /// Sets [`font-variant-ligatures`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-ligatures).
3451    ///
3452    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3453    #[must_use]
3454    pub fn font_variant_ligatures(self, value: impl Into<crate::value::FontVariantLigatures>) -> Self {
3455        self.with(Property::FontVariantLigatures, value.into().to_string())
3456    }
3457
3458    /// Sets [`font-variant-numeric`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-numeric).
3459    ///
3460    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3461    #[must_use]
3462    pub fn font_variant_numeric(self, value: impl Into<crate::value::FontVariantNumeric>) -> Self {
3463        self.with(Property::FontVariantNumeric, value.into().to_string())
3464    }
3465
3466    /// Sets [`font-variant-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variant-position).
3467    #[must_use]
3468    pub fn font_variant_position(self, value: impl Into<crate::value::FontVariantPosition>) -> Self {
3469        self.with(Property::FontVariantPosition, value.into().to_string())
3470    }
3471
3472    /// Sets [`font-variation-settings`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-variation-settings).
3473    ///
3474    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3475    #[must_use]
3476    pub fn font_variation_settings(self, value: impl Into<crate::value::FontVariationSettings>) -> Self {
3477        self.with(Property::FontVariationSettings, value.into().to_string())
3478    }
3479
3480    /// Sets [`font-weight`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/font-weight).
3481    #[must_use]
3482    pub fn font_weight(self, value: impl Into<crate::value::FontWeight>) -> Self {
3483        self.with(Property::FontWeight, value.into().to_string())
3484    }
3485
3486    /// Sets [`forced-color-adjust`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/forced-color-adjust).
3487    #[must_use]
3488    pub fn forced_color_adjust(self, value: impl Into<crate::value::ForcedColorAdjust>) -> Self {
3489        self.with(Property::ForcedColorAdjust, value.into().to_string())
3490    }
3491
3492    /// Sets [`frame-sizing`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/frame-sizing).
3493    #[must_use]
3494    pub fn frame_sizing(self, value: impl Into<crate::value::FrameSizing>) -> Self {
3495        self.with(Property::FrameSizing, value.into().to_string())
3496    }
3497
3498    /// Sets [`gap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/gap).
3499    ///
3500    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3501    #[must_use]
3502    pub fn gap(self, value: impl Into<crate::value::Gap>) -> Self {
3503        self.with(Property::Gap, value.into().to_string())
3504    }
3505
3506    /// Sets [`grid`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid).
3507    ///
3508    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3509    #[must_use]
3510    pub fn grid(self, value: impl Into<crate::value::Grid>) -> Self {
3511        self.with(Property::Grid, value.into().to_string())
3512    }
3513
3514    /// Sets [`grid-area`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-area).
3515    ///
3516    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3517    #[must_use]
3518    pub fn grid_area(self, value: impl Into<crate::value::GridArea>) -> Self {
3519        self.with(Property::GridArea, value.into().to_string())
3520    }
3521
3522    /// Sets [`grid-auto-columns`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-columns).
3523    ///
3524    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3525    #[must_use]
3526    pub fn grid_auto_columns(self, value: impl Into<crate::value::GridAutoColumns>) -> Self {
3527        self.with(Property::GridAutoColumns, value.into().to_string())
3528    }
3529
3530    /// Sets [`grid-auto-flow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-flow).
3531    ///
3532    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3533    #[must_use]
3534    pub fn grid_auto_flow(self, value: impl Into<crate::value::GridAutoFlow>) -> Self {
3535        self.with(Property::GridAutoFlow, value.into().to_string())
3536    }
3537
3538    /// Sets [`grid-auto-rows`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-auto-rows).
3539    ///
3540    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3541    #[must_use]
3542    pub fn grid_auto_rows(self, value: impl Into<crate::value::GridAutoRows>) -> Self {
3543        self.with(Property::GridAutoRows, value.into().to_string())
3544    }
3545
3546    /// Sets [`grid-column`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column).
3547    ///
3548    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3549    #[must_use]
3550    pub fn grid_column(self, value: impl Into<crate::value::GridColumn>) -> Self {
3551        self.with(Property::GridColumn, value.into().to_string())
3552    }
3553
3554    /// Sets [`grid-column-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column-end).
3555    ///
3556    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3557    #[must_use]
3558    pub fn grid_column_end(self, value: impl Into<crate::value::GridColumnEnd>) -> Self {
3559        self.with(Property::GridColumnEnd, value.into().to_string())
3560    }
3561
3562    /// Sets [`grid-column-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-column-start).
3563    ///
3564    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3565    #[must_use]
3566    pub fn grid_column_start(self, value: impl Into<crate::value::GridColumnStart>) -> Self {
3567        self.with(Property::GridColumnStart, value.into().to_string())
3568    }
3569
3570    /// Sets [`grid-row`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row).
3571    ///
3572    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3573    #[must_use]
3574    pub fn grid_row(self, value: impl Into<crate::value::GridRow>) -> Self {
3575        self.with(Property::GridRow, value.into().to_string())
3576    }
3577
3578    /// Sets [`grid-row-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row-end).
3579    ///
3580    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3581    #[must_use]
3582    pub fn grid_row_end(self, value: impl Into<crate::value::GridRowEnd>) -> Self {
3583        self.with(Property::GridRowEnd, value.into().to_string())
3584    }
3585
3586    /// Sets [`grid-row-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-row-start).
3587    ///
3588    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3589    #[must_use]
3590    pub fn grid_row_start(self, value: impl Into<crate::value::GridRowStart>) -> Self {
3591        self.with(Property::GridRowStart, value.into().to_string())
3592    }
3593
3594    /// Sets [`grid-template`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template).
3595    ///
3596    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3597    #[must_use]
3598    pub fn grid_template(self, value: impl Into<crate::value::GridTemplate>) -> Self {
3599        self.with(Property::GridTemplate, value.into().to_string())
3600    }
3601
3602    /// Sets [`grid-template-areas`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-areas).
3603    ///
3604    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3605    #[must_use]
3606    pub fn grid_template_areas(self, value: impl Into<crate::value::GridTemplateAreas>) -> Self {
3607        self.with(Property::GridTemplateAreas, value.into().to_string())
3608    }
3609
3610    /// Sets [`grid-template-columns`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-columns).
3611    ///
3612    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3613    #[must_use]
3614    pub fn grid_template_columns(self, value: impl Into<crate::value::GridTemplateColumns>) -> Self {
3615        self.with(Property::GridTemplateColumns, value.into().to_string())
3616    }
3617
3618    /// Sets [`grid-template-rows`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid-template-rows).
3619    ///
3620    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3621    #[must_use]
3622    pub fn grid_template_rows(self, value: impl Into<crate::value::GridTemplateRows>) -> Self {
3623        self.with(Property::GridTemplateRows, value.into().to_string())
3624    }
3625
3626    /// Sets [`hanging-punctuation`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hanging-punctuation).
3627    ///
3628    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3629    #[must_use]
3630    pub fn hanging_punctuation(self, value: impl Into<crate::value::HangingPunctuation>) -> Self {
3631        self.with(Property::HangingPunctuation, value.into().to_string())
3632    }
3633
3634    /// Sets [`height`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/height).
3635    ///
3636    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3637    #[must_use]
3638    pub fn height(self, value: impl Into<crate::value::Height>) -> Self {
3639        self.with(Property::Height, value.into().to_string())
3640    }
3641
3642    /// Sets [`hyphenate-character`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphenate-character).
3643    #[must_use]
3644    pub fn hyphenate_character(self, value: impl Into<crate::value::HyphenateCharacter>) -> Self {
3645        self.with(Property::HyphenateCharacter, value.into().to_string())
3646    }
3647
3648    /// Sets [`hyphenate-limit-chars`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphenate-limit-chars).
3649    ///
3650    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3651    #[must_use]
3652    pub fn hyphenate_limit_chars(self, value: impl Into<crate::value::HyphenateLimitChars>) -> Self {
3653        self.with(Property::HyphenateLimitChars, value.into().to_string())
3654    }
3655
3656    /// Sets [`hyphens`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/hyphens).
3657    #[must_use]
3658    pub fn hyphens(self, value: impl Into<crate::value::Hyphens>) -> Self {
3659        self.with(Property::Hyphens, value.into().to_string())
3660    }
3661
3662    /// Sets [`image-orientation`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/image-orientation).
3663    ///
3664    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3665    #[must_use]
3666    pub fn image_orientation(self, value: impl Into<crate::value::ImageOrientation>) -> Self {
3667        self.with(Property::ImageOrientation, value.into().to_string())
3668    }
3669
3670    /// Sets [`image-rendering`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/image-rendering).
3671    #[must_use]
3672    pub fn image_rendering(self, value: impl Into<crate::value::ImageRendering>) -> Self {
3673        self.with(Property::ImageRendering, value.into().to_string())
3674    }
3675
3676    /// Sets [`initial-letter`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/initial-letter).
3677    ///
3678    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3679    #[must_use]
3680    pub fn initial_letter(self, value: impl Into<crate::value::InitialLetter>) -> Self {
3681        self.with(Property::InitialLetter, value.into().to_string())
3682    }
3683
3684    /// Sets [`inline-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inline-size).
3685    ///
3686    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3687    #[must_use]
3688    pub fn inline_size(self, value: impl Into<crate::value::InlineSize>) -> Self {
3689        self.with(Property::InlineSize, value.into().to_string())
3690    }
3691
3692    /// Sets [`inset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset).
3693    ///
3694    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3695    #[must_use]
3696    pub fn inset(self, value: impl Into<crate::value::Inset>) -> Self {
3697        self.with(Property::Inset, value.into().to_string())
3698    }
3699
3700    /// Sets [`inset-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block).
3701    ///
3702    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3703    #[must_use]
3704    pub fn inset_block(self, value: impl Into<crate::value::InsetBlock>) -> Self {
3705        self.with(Property::InsetBlock, value.into().to_string())
3706    }
3707
3708    /// Sets [`inset-block-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block-end).
3709    ///
3710    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3711    #[must_use]
3712    pub fn inset_block_end(self, value: impl Into<crate::value::InsetBlockEnd>) -> Self {
3713        self.with(Property::InsetBlockEnd, value.into().to_string())
3714    }
3715
3716    /// Sets [`inset-block-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-block-start).
3717    ///
3718    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3719    #[must_use]
3720    pub fn inset_block_start(self, value: impl Into<crate::value::InsetBlockStart>) -> Self {
3721        self.with(Property::InsetBlockStart, value.into().to_string())
3722    }
3723
3724    /// Sets [`inset-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline).
3725    ///
3726    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3727    #[must_use]
3728    pub fn inset_inline(self, value: impl Into<crate::value::InsetInline>) -> Self {
3729        self.with(Property::InsetInline, value.into().to_string())
3730    }
3731
3732    /// Sets [`inset-inline-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline-end).
3733    ///
3734    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3735    #[must_use]
3736    pub fn inset_inline_end(self, value: impl Into<crate::value::InsetInlineEnd>) -> Self {
3737        self.with(Property::InsetInlineEnd, value.into().to_string())
3738    }
3739
3740    /// Sets [`inset-inline-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/inset-inline-start).
3741    ///
3742    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3743    #[must_use]
3744    pub fn inset_inline_start(self, value: impl Into<crate::value::InsetInlineStart>) -> Self {
3745        self.with(Property::InsetInlineStart, value.into().to_string())
3746    }
3747
3748    /// Sets [`interactivity`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/interactivity).
3749    #[must_use]
3750    pub fn interactivity(self, value: impl Into<crate::value::Interactivity>) -> Self {
3751        self.with(Property::Interactivity, value.into().to_string())
3752    }
3753
3754    /// Sets [`interest-delay`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/interest-delay-end).
3755    ///
3756    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3757    #[must_use]
3758    pub fn interest_delay(self, value: impl Into<crate::value::InterestDelay>) -> Self {
3759        self.with(Property::InterestDelay, value.into().to_string())
3760    }
3761
3762    /// Sets [`interest-delay-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/interest-delay-end).
3763    #[must_use]
3764    pub fn interest_delay_end(self, value: impl Into<crate::value::InterestDelayEnd>) -> Self {
3765        self.with(Property::InterestDelayEnd, value.into().to_string())
3766    }
3767
3768    /// Sets [`interest-delay-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/interest-delay-start).
3769    #[must_use]
3770    pub fn interest_delay_start(self, value: impl Into<crate::value::InterestDelayStart>) -> Self {
3771        self.with(Property::InterestDelayStart, value.into().to_string())
3772    }
3773
3774    /// Sets [`isolation`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/isolation).
3775    #[must_use]
3776    pub fn isolation(self, value: impl Into<crate::value::Isolation>) -> Self {
3777        self.with(Property::Isolation, value.into().to_string())
3778    }
3779
3780    /// Sets [`justify-content`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-content).
3781    ///
3782    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3783    #[must_use]
3784    pub fn justify_content(self, value: impl Into<crate::value::JustifyContent>) -> Self {
3785        self.with(Property::JustifyContent, value.into().to_string())
3786    }
3787
3788    /// Sets [`justify-items`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-items).
3789    ///
3790    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3791    #[must_use]
3792    pub fn justify_items(self, value: impl Into<crate::value::JustifyItems>) -> Self {
3793        self.with(Property::JustifyItems, value.into().to_string())
3794    }
3795
3796    /// Sets [`justify-self`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/justify-self).
3797    ///
3798    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3799    #[must_use]
3800    pub fn justify_self(self, value: impl Into<crate::value::JustifySelf>) -> Self {
3801        self.with(Property::JustifySelf, value.into().to_string())
3802    }
3803
3804    /// Sets [`left`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/left).
3805    ///
3806    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3807    #[must_use]
3808    pub fn left(self, value: impl Into<crate::value::Left>) -> Self {
3809        self.with(Property::Left, value.into().to_string())
3810    }
3811
3812    /// Sets [`letter-spacing`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/letter-spacing).
3813    #[must_use]
3814    pub fn letter_spacing(self, value: impl Into<crate::value::LetterSpacing>) -> Self {
3815        self.with(Property::LetterSpacing, value.into().to_string())
3816    }
3817
3818    /// Sets [`lighting-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/lighting-color).
3819    #[must_use]
3820    pub fn lighting_color(self, value: impl Into<Color>) -> Self {
3821        self.with(Property::LightingColor, value.into().to_string())
3822    }
3823
3824    /// Sets [`line-break`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-break).
3825    #[must_use]
3826    pub fn line_break(self, value: impl Into<crate::value::LineBreak>) -> Self {
3827        self.with(Property::LineBreak, value.into().to_string())
3828    }
3829
3830    /// Sets [`line-clamp`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-clamp).
3831    #[must_use]
3832    pub fn line_clamp(self, value: impl Into<crate::value::LineClamp>) -> Self {
3833        self.with(Property::LineClamp, value.into().to_string())
3834    }
3835
3836    /// Sets [`line-height`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/line-height).
3837    #[must_use]
3838    pub fn line_height(self, value: impl Into<crate::value::LineHeight>) -> Self {
3839        self.with(Property::LineHeight, value.into().to_string())
3840    }
3841
3842    /// Sets [`list-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style).
3843    ///
3844    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3845    #[must_use]
3846    pub fn list_style(self, value: impl Into<crate::value::ListStyle>) -> Self {
3847        self.with(Property::ListStyle, value.into().to_string())
3848    }
3849
3850    /// Sets [`list-style-image`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-image).
3851    ///
3852    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3853    #[must_use]
3854    pub fn list_style_image(self, value: impl Into<crate::value::ListStyleImage>) -> Self {
3855        self.with(Property::ListStyleImage, value.into().to_string())
3856    }
3857
3858    /// Sets [`list-style-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-position).
3859    #[must_use]
3860    pub fn list_style_position(self, value: impl Into<crate::value::ListStylePosition>) -> Self {
3861        self.with(Property::ListStylePosition, value.into().to_string())
3862    }
3863
3864    /// Sets [`list-style-type`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/list-style-type).
3865    ///
3866    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3867    #[must_use]
3868    pub fn list_style_type(self, value: impl Into<crate::value::ListStyleType>) -> Self {
3869        self.with(Property::ListStyleType, value.into().to_string())
3870    }
3871
3872    /// Sets [`margin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin).
3873    ///
3874    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3875    #[must_use]
3876    pub fn margin(self, value: impl Into<crate::value::Margin>) -> Self {
3877        self.with(Property::Margin, value.into().to_string())
3878    }
3879
3880    /// Sets [`margin-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block).
3881    ///
3882    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3883    #[must_use]
3884    pub fn margin_block(self, value: impl Into<crate::value::MarginBlock>) -> Self {
3885        self.with(Property::MarginBlock, value.into().to_string())
3886    }
3887
3888    /// Sets [`margin-block-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block-end).
3889    ///
3890    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3891    #[must_use]
3892    pub fn margin_block_end(self, value: impl Into<crate::value::MarginBlockEnd>) -> Self {
3893        self.with(Property::MarginBlockEnd, value.into().to_string())
3894    }
3895
3896    /// Sets [`margin-block-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-block-start).
3897    ///
3898    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3899    #[must_use]
3900    pub fn margin_block_start(self, value: impl Into<crate::value::MarginBlockStart>) -> Self {
3901        self.with(Property::MarginBlockStart, value.into().to_string())
3902    }
3903
3904    /// Sets [`margin-bottom`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-bottom).
3905    ///
3906    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3907    #[must_use]
3908    pub fn margin_bottom(self, value: impl Into<crate::value::MarginBottom>) -> Self {
3909        self.with(Property::MarginBottom, value.into().to_string())
3910    }
3911
3912    /// Sets [`margin-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline).
3913    ///
3914    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3915    #[must_use]
3916    pub fn margin_inline(self, value: impl Into<crate::value::MarginInline>) -> Self {
3917        self.with(Property::MarginInline, value.into().to_string())
3918    }
3919
3920    /// Sets [`margin-inline-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline-end).
3921    ///
3922    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3923    #[must_use]
3924    pub fn margin_inline_end(self, value: impl Into<crate::value::MarginInlineEnd>) -> Self {
3925        self.with(Property::MarginInlineEnd, value.into().to_string())
3926    }
3927
3928    /// Sets [`margin-inline-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-inline-start).
3929    ///
3930    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3931    #[must_use]
3932    pub fn margin_inline_start(self, value: impl Into<crate::value::MarginInlineStart>) -> Self {
3933        self.with(Property::MarginInlineStart, value.into().to_string())
3934    }
3935
3936    /// Sets [`margin-left`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-left).
3937    ///
3938    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3939    #[must_use]
3940    pub fn margin_left(self, value: impl Into<crate::value::MarginLeft>) -> Self {
3941        self.with(Property::MarginLeft, value.into().to_string())
3942    }
3943
3944    /// Sets [`margin-right`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-right).
3945    ///
3946    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3947    #[must_use]
3948    pub fn margin_right(self, value: impl Into<crate::value::MarginRight>) -> Self {
3949        self.with(Property::MarginRight, value.into().to_string())
3950    }
3951
3952    /// Sets [`margin-top`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/margin-top).
3953    ///
3954    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3955    #[must_use]
3956    pub fn margin_top(self, value: impl Into<crate::value::MarginTop>) -> Self {
3957        self.with(Property::MarginTop, value.into().to_string())
3958    }
3959
3960    /// Sets [`marker`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker).
3961    #[must_use]
3962    pub fn marker(self, value: impl Into<crate::value::Marker>) -> Self {
3963        self.with(Property::Marker, value.into().to_string())
3964    }
3965
3966    /// Sets [`marker-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-end).
3967    #[must_use]
3968    pub fn marker_end(self, value: impl Into<crate::value::MarkerEnd>) -> Self {
3969        self.with(Property::MarkerEnd, value.into().to_string())
3970    }
3971
3972    /// Sets [`marker-mid`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-mid).
3973    #[must_use]
3974    pub fn marker_mid(self, value: impl Into<crate::value::MarkerMid>) -> Self {
3975        self.with(Property::MarkerMid, value.into().to_string())
3976    }
3977
3978    /// Sets [`marker-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/marker-start).
3979    #[must_use]
3980    pub fn marker_start(self, value: impl Into<crate::value::MarkerStart>) -> Self {
3981        self.with(Property::MarkerStart, value.into().to_string())
3982    }
3983
3984    /// Sets [`mask`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask).
3985    ///
3986    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3987    #[must_use]
3988    pub fn mask(self, value: impl Into<crate::value::Mask>) -> Self {
3989        self.with(Property::Mask, value.into().to_string())
3990    }
3991
3992    /// Sets [`mask-border`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border).
3993    ///
3994    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
3995    #[must_use]
3996    pub fn mask_border(self, value: impl Into<crate::value::MaskBorder>) -> Self {
3997        self.with(Property::MaskBorder, value.into().to_string())
3998    }
3999
4000    /// Sets [`mask-border-mode`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-mode).
4001    #[must_use]
4002    pub fn mask_border_mode(self, value: impl Into<crate::value::MaskBorderMode>) -> Self {
4003        self.with(Property::MaskBorderMode, value.into().to_string())
4004    }
4005
4006    /// Sets [`mask-border-outset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-outset).
4007    ///
4008    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4009    #[must_use]
4010    pub fn mask_border_outset(self, value: impl Into<crate::value::MaskBorderOutset>) -> Self {
4011        self.with(Property::MaskBorderOutset, value.into().to_string())
4012    }
4013
4014    /// Sets [`mask-border-repeat`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-repeat).
4015    ///
4016    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4017    #[must_use]
4018    pub fn mask_border_repeat(self, value: impl Into<crate::value::MaskBorderRepeat>) -> Self {
4019        self.with(Property::MaskBorderRepeat, value.into().to_string())
4020    }
4021
4022    /// Sets [`mask-border-slice`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-slice).
4023    ///
4024    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4025    #[must_use]
4026    pub fn mask_border_slice(self, value: impl Into<crate::value::MaskBorderSlice>) -> Self {
4027        self.with(Property::MaskBorderSlice, value.into().to_string())
4028    }
4029
4030    /// Sets [`mask-border-source`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-source).
4031    ///
4032    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4033    #[must_use]
4034    pub fn mask_border_source(self, value: impl Into<crate::value::MaskBorderSource>) -> Self {
4035        self.with(Property::MaskBorderSource, value.into().to_string())
4036    }
4037
4038    /// Sets [`mask-border-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-border-width).
4039    ///
4040    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4041    #[must_use]
4042    pub fn mask_border_width(self, value: impl Into<crate::value::MaskBorderWidth>) -> Self {
4043        self.with(Property::MaskBorderWidth, value.into().to_string())
4044    }
4045
4046    /// Sets [`mask-clip`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-clip).
4047    ///
4048    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4049    #[must_use]
4050    pub fn mask_clip(self, value: impl Into<crate::value::MaskClip>) -> Self {
4051        self.with(Property::MaskClip, value.into().to_string())
4052    }
4053
4054    /// Sets [`mask-composite`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-composite).
4055    ///
4056    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4057    #[must_use]
4058    pub fn mask_composite(self, value: impl Into<crate::value::MaskComposite>) -> Self {
4059        self.with(Property::MaskComposite, value.into().to_string())
4060    }
4061
4062    /// Sets [`mask-image`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-image).
4063    ///
4064    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4065    #[must_use]
4066    pub fn mask_image(self, value: impl Into<crate::value::MaskImage>) -> Self {
4067        self.with(Property::MaskImage, value.into().to_string())
4068    }
4069
4070    /// Sets [`mask-mode`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-mode).
4071    ///
4072    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4073    #[must_use]
4074    pub fn mask_mode(self, value: impl Into<crate::value::MaskMode>) -> Self {
4075        self.with(Property::MaskMode, value.into().to_string())
4076    }
4077
4078    /// Sets [`mask-origin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-origin).
4079    ///
4080    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4081    #[must_use]
4082    pub fn mask_origin(self, value: impl Into<crate::value::MaskOrigin>) -> Self {
4083        self.with(Property::MaskOrigin, value.into().to_string())
4084    }
4085
4086    /// Sets [`mask-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-position).
4087    ///
4088    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4089    #[must_use]
4090    pub fn mask_position(self, value: impl Into<crate::value::MaskPosition>) -> Self {
4091        self.with(Property::MaskPosition, value.into().to_string())
4092    }
4093
4094    /// Sets [`mask-repeat`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-repeat).
4095    ///
4096    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4097    #[must_use]
4098    pub fn mask_repeat(self, value: impl Into<crate::value::MaskRepeat>) -> Self {
4099        self.with(Property::MaskRepeat, value.into().to_string())
4100    }
4101
4102    /// Sets [`mask-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-size).
4103    ///
4104    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4105    #[must_use]
4106    pub fn mask_size(self, value: impl Into<crate::value::MaskSize>) -> Self {
4107        self.with(Property::MaskSize, value.into().to_string())
4108    }
4109
4110    /// Sets [`mask-type`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mask-type).
4111    #[must_use]
4112    pub fn mask_type(self, value: impl Into<crate::value::MaskType>) -> Self {
4113        self.with(Property::MaskType, value.into().to_string())
4114    }
4115
4116    /// Sets [`math-depth`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-depth).
4117    ///
4118    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4119    #[must_use]
4120    pub fn math_depth(self, value: impl Into<crate::value::MathDepth>) -> Self {
4121        self.with(Property::MathDepth, value.into().to_string())
4122    }
4123
4124    /// Sets [`math-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/math-style).
4125    #[must_use]
4126    pub fn math_style(self, value: impl Into<crate::value::MathStyle>) -> Self {
4127        self.with(Property::MathStyle, value.into().to_string())
4128    }
4129
4130    /// Sets [`max-block-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-block-size).
4131    ///
4132    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4133    #[must_use]
4134    pub fn max_block_size(self, value: impl Into<crate::value::MaxBlockSize>) -> Self {
4135        self.with(Property::MaxBlockSize, value.into().to_string())
4136    }
4137
4138    /// Sets [`max-height`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-height).
4139    ///
4140    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4141    #[must_use]
4142    pub fn max_height(self, value: impl Into<crate::value::MaxHeight>) -> Self {
4143        self.with(Property::MaxHeight, value.into().to_string())
4144    }
4145
4146    /// Sets [`max-inline-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-inline-size).
4147    ///
4148    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4149    #[must_use]
4150    pub fn max_inline_size(self, value: impl Into<crate::value::MaxInlineSize>) -> Self {
4151        self.with(Property::MaxInlineSize, value.into().to_string())
4152    }
4153
4154    /// Sets [`max-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/max-width).
4155    ///
4156    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4157    #[must_use]
4158    pub fn max_width(self, value: impl Into<crate::value::MaxWidth>) -> Self {
4159        self.with(Property::MaxWidth, value.into().to_string())
4160    }
4161
4162    /// Sets [`min-block-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-block-size).
4163    ///
4164    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4165    #[must_use]
4166    pub fn min_block_size(self, value: impl Into<crate::value::MinBlockSize>) -> Self {
4167        self.with(Property::MinBlockSize, value.into().to_string())
4168    }
4169
4170    /// Sets [`min-height`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-height).
4171    ///
4172    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4173    #[must_use]
4174    pub fn min_height(self, value: impl Into<crate::value::MinHeight>) -> Self {
4175        self.with(Property::MinHeight, value.into().to_string())
4176    }
4177
4178    /// Sets [`min-inline-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-inline-size).
4179    ///
4180    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4181    #[must_use]
4182    pub fn min_inline_size(self, value: impl Into<crate::value::MinInlineSize>) -> Self {
4183        self.with(Property::MinInlineSize, value.into().to_string())
4184    }
4185
4186    /// Sets [`min-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-width).
4187    ///
4188    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4189    #[must_use]
4190    pub fn min_width(self, value: impl Into<crate::value::MinWidth>) -> Self {
4191        self.with(Property::MinWidth, value.into().to_string())
4192    }
4193
4194    /// Sets [`mix-blend-mode`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/mix-blend-mode).
4195    #[must_use]
4196    pub fn mix_blend_mode(self, value: impl Into<crate::value::MixBlendMode>) -> Self {
4197        self.with(Property::MixBlendMode, value.into().to_string())
4198    }
4199
4200    /// Sets [`object-fit`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-fit).
4201    #[must_use]
4202    pub fn object_fit(self, value: impl Into<crate::value::ObjectFit>) -> Self {
4203        self.with(Property::ObjectFit, value.into().to_string())
4204    }
4205
4206    /// Sets [`object-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/object-position).
4207    ///
4208    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4209    #[must_use]
4210    pub fn object_position(self, value: impl Into<crate::value::ObjectPosition>) -> Self {
4211        self.with(Property::ObjectPosition, value.into().to_string())
4212    }
4213
4214    /// Sets [`offset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset).
4215    ///
4216    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4217    #[must_use]
4218    pub fn offset(self, value: impl Into<crate::value::Offset>) -> Self {
4219        self.with(Property::Offset, value.into().to_string())
4220    }
4221
4222    /// Sets [`offset-anchor`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-anchor).
4223    ///
4224    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4225    #[must_use]
4226    pub fn offset_anchor(self, value: impl Into<crate::value::OffsetAnchor>) -> Self {
4227        self.with(Property::OffsetAnchor, value.into().to_string())
4228    }
4229
4230    /// Sets [`offset-distance`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-distance).
4231    #[must_use]
4232    pub fn offset_distance(self, value: impl Into<crate::value::OffsetDistance>) -> Self {
4233        self.with(Property::OffsetDistance, value.into().to_string())
4234    }
4235
4236    /// Sets [`offset-path`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-path).
4237    ///
4238    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4239    #[must_use]
4240    pub fn offset_path(self, value: impl Into<crate::value::OffsetPath>) -> Self {
4241        self.with(Property::OffsetPath, value.into().to_string())
4242    }
4243
4244    /// Sets [`offset-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-position).
4245    ///
4246    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4247    #[must_use]
4248    pub fn offset_position(self, value: impl Into<crate::value::OffsetPosition>) -> Self {
4249        self.with(Property::OffsetPosition, value.into().to_string())
4250    }
4251
4252    /// Sets [`offset-rotate`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/offset-rotate).
4253    ///
4254    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4255    #[must_use]
4256    pub fn offset_rotate(self, value: impl Into<crate::value::OffsetRotate>) -> Self {
4257        self.with(Property::OffsetRotate, value.into().to_string())
4258    }
4259
4260    /// Sets [`opacity`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/opacity).
4261    #[must_use]
4262    pub fn opacity(self, value: impl Into<crate::value::Opacity>) -> Self {
4263        self.with(Property::Opacity, value.into().to_string())
4264    }
4265
4266    /// Sets [`order`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/order).
4267    #[must_use]
4268    pub fn order(self, value: impl Into<i32>) -> Self {
4269        self.with(Property::Order, value.into().to_string())
4270    }
4271
4272    /// Sets [`orphans`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/orphans).
4273    #[must_use]
4274    pub fn orphans(self, value: impl Into<i32>) -> Self {
4275        self.with(Property::Orphans, value.into().to_string())
4276    }
4277
4278    /// Sets [`outline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline).
4279    ///
4280    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4281    #[must_use]
4282    pub fn outline(self, value: impl Into<crate::value::Outline>) -> Self {
4283        self.with(Property::Outline, value.into().to_string())
4284    }
4285
4286    /// Sets [`outline-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-color).
4287    #[must_use]
4288    pub fn outline_color(self, value: impl Into<crate::value::OutlineColor>) -> Self {
4289        self.with(Property::OutlineColor, value.into().to_string())
4290    }
4291
4292    /// Sets [`outline-offset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-offset).
4293    #[must_use]
4294    pub fn outline_offset(self, value: impl Into<Length>) -> Self {
4295        self.with(Property::OutlineOffset, value.into().to_string())
4296    }
4297
4298    /// Sets [`outline-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-style).
4299    #[must_use]
4300    pub fn outline_style(self, value: impl Into<crate::value::OutlineStyle>) -> Self {
4301        self.with(Property::OutlineStyle, value.into().to_string())
4302    }
4303
4304    /// Sets [`outline-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/outline-width).
4305    #[must_use]
4306    pub fn outline_width(self, value: impl Into<crate::value::OutlineWidth>) -> Self {
4307        self.with(Property::OutlineWidth, value.into().to_string())
4308    }
4309
4310    /// Sets [`overflow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow).
4311    ///
4312    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4313    #[must_use]
4314    pub fn overflow(self, value: impl Into<crate::value::Overflow>) -> Self {
4315        self.with(Property::Overflow, value.into().to_string())
4316    }
4317
4318    /// Sets [`overflow-anchor`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-anchor).
4319    #[must_use]
4320    pub fn overflow_anchor(self, value: impl Into<crate::value::OverflowAnchor>) -> Self {
4321        self.with(Property::OverflowAnchor, value.into().to_string())
4322    }
4323
4324    /// Sets [`overflow-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-block).
4325    #[must_use]
4326    pub fn overflow_block(self, value: impl Into<crate::value::OverflowBlock>) -> Self {
4327        self.with(Property::OverflowBlock, value.into().to_string())
4328    }
4329
4330    /// Sets [`overflow-clip-margin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-clip-margin).
4331    ///
4332    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4333    #[must_use]
4334    pub fn overflow_clip_margin(self, value: impl Into<crate::value::OverflowClipMargin>) -> Self {
4335        self.with(Property::OverflowClipMargin, value.into().to_string())
4336    }
4337
4338    /// Sets [`overflow-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-inline).
4339    #[must_use]
4340    pub fn overflow_inline(self, value: impl Into<crate::value::OverflowInline>) -> Self {
4341        self.with(Property::OverflowInline, value.into().to_string())
4342    }
4343
4344    /// Sets [`overflow-wrap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap).
4345    #[must_use]
4346    pub fn overflow_wrap(self, value: impl Into<crate::value::OverflowWrap>) -> Self {
4347        self.with(Property::OverflowWrap, value.into().to_string())
4348    }
4349
4350    /// Sets [`overflow-x`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-x).
4351    #[must_use]
4352    pub fn overflow_x(self, value: impl Into<crate::value::OverflowX>) -> Self {
4353        self.with(Property::OverflowX, value.into().to_string())
4354    }
4355
4356    /// Sets [`overflow-y`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-y).
4357    #[must_use]
4358    pub fn overflow_y(self, value: impl Into<crate::value::OverflowY>) -> Self {
4359        self.with(Property::OverflowY, value.into().to_string())
4360    }
4361
4362    /// Sets [`overscroll-behavior`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior).
4363    ///
4364    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4365    #[must_use]
4366    pub fn overscroll_behavior(self, value: impl Into<crate::value::OverscrollBehavior>) -> Self {
4367        self.with(Property::OverscrollBehavior, value.into().to_string())
4368    }
4369
4370    /// Sets [`overscroll-behavior-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-block).
4371    #[must_use]
4372    pub fn overscroll_behavior_block(self, value: impl Into<crate::value::OverscrollBehaviorBlock>) -> Self {
4373        self.with(Property::OverscrollBehaviorBlock, value.into().to_string())
4374    }
4375
4376    /// Sets [`overscroll-behavior-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-inline).
4377    #[must_use]
4378    pub fn overscroll_behavior_inline(self, value: impl Into<crate::value::OverscrollBehaviorInline>) -> Self {
4379        self.with(Property::OverscrollBehaviorInline, value.into().to_string())
4380    }
4381
4382    /// Sets [`overscroll-behavior-x`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-x).
4383    #[must_use]
4384    pub fn overscroll_behavior_x(self, value: impl Into<crate::value::OverscrollBehaviorX>) -> Self {
4385        self.with(Property::OverscrollBehaviorX, value.into().to_string())
4386    }
4387
4388    /// Sets [`overscroll-behavior-y`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overscroll-behavior-y).
4389    #[must_use]
4390    pub fn overscroll_behavior_y(self, value: impl Into<crate::value::OverscrollBehaviorY>) -> Self {
4391        self.with(Property::OverscrollBehaviorY, value.into().to_string())
4392    }
4393
4394    /// Sets [`padding`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding).
4395    ///
4396    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4397    #[must_use]
4398    pub fn padding(self, value: impl Into<crate::value::Padding>) -> Self {
4399        self.with(Property::Padding, value.into().to_string())
4400    }
4401
4402    /// Sets [`padding-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block).
4403    ///
4404    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4405    #[must_use]
4406    pub fn padding_block(self, value: impl Into<crate::value::PaddingBlock>) -> Self {
4407        self.with(Property::PaddingBlock, value.into().to_string())
4408    }
4409
4410    /// Sets [`padding-block-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block-end).
4411    #[must_use]
4412    pub fn padding_block_end(self, value: impl Into<crate::value::PaddingBlockEnd>) -> Self {
4413        self.with(Property::PaddingBlockEnd, value.into().to_string())
4414    }
4415
4416    /// Sets [`padding-block-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-block-start).
4417    #[must_use]
4418    pub fn padding_block_start(self, value: impl Into<crate::value::PaddingBlockStart>) -> Self {
4419        self.with(Property::PaddingBlockStart, value.into().to_string())
4420    }
4421
4422    /// Sets [`padding-bottom`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-bottom).
4423    #[must_use]
4424    pub fn padding_bottom(self, value: impl Into<crate::value::PaddingBottom>) -> Self {
4425        self.with(Property::PaddingBottom, value.into().to_string())
4426    }
4427
4428    /// Sets [`padding-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline).
4429    ///
4430    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4431    #[must_use]
4432    pub fn padding_inline(self, value: impl Into<crate::value::PaddingInline>) -> Self {
4433        self.with(Property::PaddingInline, value.into().to_string())
4434    }
4435
4436    /// Sets [`padding-inline-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline-end).
4437    #[must_use]
4438    pub fn padding_inline_end(self, value: impl Into<crate::value::PaddingInlineEnd>) -> Self {
4439        self.with(Property::PaddingInlineEnd, value.into().to_string())
4440    }
4441
4442    /// Sets [`padding-inline-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-inline-start).
4443    #[must_use]
4444    pub fn padding_inline_start(self, value: impl Into<crate::value::PaddingInlineStart>) -> Self {
4445        self.with(Property::PaddingInlineStart, value.into().to_string())
4446    }
4447
4448    /// Sets [`padding-left`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-left).
4449    #[must_use]
4450    pub fn padding_left(self, value: impl Into<crate::value::PaddingLeft>) -> Self {
4451        self.with(Property::PaddingLeft, value.into().to_string())
4452    }
4453
4454    /// Sets [`padding-right`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-right).
4455    #[must_use]
4456    pub fn padding_right(self, value: impl Into<crate::value::PaddingRight>) -> Self {
4457        self.with(Property::PaddingRight, value.into().to_string())
4458    }
4459
4460    /// Sets [`padding-top`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/padding-top).
4461    #[must_use]
4462    pub fn padding_top(self, value: impl Into<crate::value::PaddingTop>) -> Self {
4463        self.with(Property::PaddingTop, value.into().to_string())
4464    }
4465
4466    /// Sets [`page`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/page).
4467    ///
4468    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4469    #[must_use]
4470    pub fn page(self, value: impl Into<crate::value::Page>) -> Self {
4471        self.with(Property::Page, value.into().to_string())
4472    }
4473
4474    /// Sets [`paint-order`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/paint-order).
4475    ///
4476    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4477    #[must_use]
4478    pub fn paint_order(self, value: impl Into<crate::value::PaintOrder>) -> Self {
4479        self.with(Property::PaintOrder, value.into().to_string())
4480    }
4481
4482    /// Sets [`path-length`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/path-length).
4483    ///
4484    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4485    #[must_use]
4486    pub fn path_length(self, value: impl Into<crate::value::PathLength>) -> Self {
4487        self.with(Property::PathLength, value.into().to_string())
4488    }
4489
4490    /// Sets [`perspective`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/perspective).
4491    #[must_use]
4492    pub fn perspective(self, value: impl Into<crate::value::Perspective>) -> Self {
4493        self.with(Property::Perspective, value.into().to_string())
4494    }
4495
4496    /// Sets [`perspective-origin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/perspective-origin).
4497    ///
4498    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4499    #[must_use]
4500    pub fn perspective_origin(self, value: impl Into<crate::value::PerspectiveOrigin>) -> Self {
4501        self.with(Property::PerspectiveOrigin, value.into().to_string())
4502    }
4503
4504    /// Sets [`place-content`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-content).
4505    ///
4506    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4507    #[must_use]
4508    pub fn place_content(self, value: impl Into<crate::value::PlaceContent>) -> Self {
4509        self.with(Property::PlaceContent, value.into().to_string())
4510    }
4511
4512    /// Sets [`place-items`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-items).
4513    ///
4514    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4515    #[must_use]
4516    pub fn place_items(self, value: impl Into<crate::value::PlaceItems>) -> Self {
4517        self.with(Property::PlaceItems, value.into().to_string())
4518    }
4519
4520    /// Sets [`place-self`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/place-self).
4521    ///
4522    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4523    #[must_use]
4524    pub fn place_self(self, value: impl Into<crate::value::PlaceSelf>) -> Self {
4525        self.with(Property::PlaceSelf, value.into().to_string())
4526    }
4527
4528    /// Sets [`pointer-events`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/pointer-events).
4529    #[must_use]
4530    pub fn pointer_events(self, value: impl Into<crate::value::PointerEvents>) -> Self {
4531        self.with(Property::PointerEvents, value.into().to_string())
4532    }
4533
4534    /// Sets [`position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position).
4535    #[must_use]
4536    pub fn position(self, value: impl Into<crate::value::Position>) -> Self {
4537        self.with(Property::Position, value.into().to_string())
4538    }
4539
4540    /// Sets [`position-anchor`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-anchor).
4541    ///
4542    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4543    #[must_use]
4544    pub fn position_anchor(self, value: impl Into<crate::value::PositionAnchor>) -> Self {
4545        self.with(Property::PositionAnchor, value.into().to_string())
4546    }
4547
4548    /// Sets [`position-area`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-area).
4549    ///
4550    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4551    #[must_use]
4552    pub fn position_area(self, value: impl Into<crate::value::PositionArea>) -> Self {
4553        self.with(Property::PositionArea, value.into().to_string())
4554    }
4555
4556    /// Sets [`position-try-fallbacks`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/position-try-fallbacks).
4557    ///
4558    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4559    #[must_use]
4560    pub fn position_try_fallbacks(self, value: impl Into<crate::value::PositionTryFallbacks>) -> Self {
4561        self.with(Property::PositionTryFallbacks, value.into().to_string())
4562    }
4563
4564    /// Sets [`print-color-adjust`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/print-color-adjust).
4565    #[must_use]
4566    pub fn print_color_adjust(self, value: impl Into<crate::value::PrintColorAdjust>) -> Self {
4567        self.with(Property::PrintColorAdjust, value.into().to_string())
4568    }
4569
4570    /// Sets [`quotes`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/quotes).
4571    ///
4572    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4573    #[must_use]
4574    pub fn quotes(self, value: impl Into<crate::value::Quotes>) -> Self {
4575        self.with(Property::Quotes, value.into().to_string())
4576    }
4577
4578    /// Sets [`r`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/r).
4579    #[must_use]
4580    pub fn r(self, value: impl Into<crate::value::R>) -> Self {
4581        self.with(Property::R, value.into().to_string())
4582    }
4583
4584    /// Sets [`reading-flow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/reading-flow).
4585    #[must_use]
4586    pub fn reading_flow(self, value: impl Into<crate::value::ReadingFlow>) -> Self {
4587        self.with(Property::ReadingFlow, value.into().to_string())
4588    }
4589
4590    /// Sets [`reading-order`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/reading-order).
4591    #[must_use]
4592    pub fn reading_order(self, value: impl Into<i32>) -> Self {
4593        self.with(Property::ReadingOrder, value.into().to_string())
4594    }
4595
4596    /// Sets [`resize`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/resize).
4597    #[must_use]
4598    pub fn resize(self, value: impl Into<crate::value::Resize>) -> Self {
4599        self.with(Property::Resize, value.into().to_string())
4600    }
4601
4602    /// Sets [`right`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/right).
4603    ///
4604    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4605    #[must_use]
4606    pub fn right(self, value: impl Into<crate::value::Right>) -> Self {
4607        self.with(Property::Right, value.into().to_string())
4608    }
4609
4610    /// Sets [`rotate`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/rotate).
4611    ///
4612    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4613    #[must_use]
4614    pub fn rotate(self, value: impl Into<crate::value::Rotate>) -> Self {
4615        self.with(Property::Rotate, value.into().to_string())
4616    }
4617
4618    /// Sets [`row-gap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/row-gap).
4619    #[must_use]
4620    pub fn row_gap(self, value: impl Into<crate::value::RowGap>) -> Self {
4621        self.with(Property::RowGap, value.into().to_string())
4622    }
4623
4624    /// Sets [`ruby-align`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-align).
4625    #[must_use]
4626    pub fn ruby_align(self, value: impl Into<crate::value::RubyAlign>) -> Self {
4627        self.with(Property::RubyAlign, value.into().to_string())
4628    }
4629
4630    /// Sets [`ruby-overhang`]().
4631    #[must_use]
4632    pub fn ruby_overhang(self, value: impl Into<crate::value::RubyOverhang>) -> Self {
4633        self.with(Property::RubyOverhang, value.into().to_string())
4634    }
4635
4636    /// Sets [`ruby-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ruby-position).
4637    ///
4638    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4639    #[must_use]
4640    pub fn ruby_position(self, value: impl Into<crate::value::RubyPosition>) -> Self {
4641        self.with(Property::RubyPosition, value.into().to_string())
4642    }
4643
4644    /// Sets [`rx`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/rx).
4645    #[must_use]
4646    pub fn rx(self, value: impl Into<crate::value::Rx>) -> Self {
4647        self.with(Property::Rx, value.into().to_string())
4648    }
4649
4650    /// Sets [`ry`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/ry).
4651    #[must_use]
4652    pub fn ry(self, value: impl Into<crate::value::Ry>) -> Self {
4653        self.with(Property::Ry, value.into().to_string())
4654    }
4655
4656    /// Sets [`scale`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scale).
4657    ///
4658    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4659    #[must_use]
4660    pub fn scale(self, value: impl Into<crate::value::Scale>) -> Self {
4661        self.with(Property::Scale, value.into().to_string())
4662    }
4663
4664    /// Sets [`scroll-axis-lock`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-axis-lock).
4665    #[must_use]
4666    pub fn scroll_axis_lock(self, value: impl Into<crate::value::ScrollAxisLock>) -> Self {
4667        self.with(Property::ScrollAxisLock, value.into().to_string())
4668    }
4669
4670    /// Sets [`scroll-behavior`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-behavior).
4671    #[must_use]
4672    pub fn scroll_behavior(self, value: impl Into<crate::value::ScrollBehavior>) -> Self {
4673        self.with(Property::ScrollBehavior, value.into().to_string())
4674    }
4675
4676    /// Sets [`scroll-margin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin).
4677    ///
4678    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4679    #[must_use]
4680    pub fn scroll_margin(self, value: impl Into<crate::value::ScrollMargin>) -> Self {
4681        self.with(Property::ScrollMargin, value.into().to_string())
4682    }
4683
4684    /// Sets [`scroll-margin-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block).
4685    ///
4686    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4687    #[must_use]
4688    pub fn scroll_margin_block(self, value: impl Into<crate::value::ScrollMarginBlock>) -> Self {
4689        self.with(Property::ScrollMarginBlock, value.into().to_string())
4690    }
4691
4692    /// Sets [`scroll-margin-block-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block-end).
4693    #[must_use]
4694    pub fn scroll_margin_block_end(self, value: impl Into<Length>) -> Self {
4695        self.with(Property::ScrollMarginBlockEnd, value.into().to_string())
4696    }
4697
4698    /// Sets [`scroll-margin-block-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-block-start).
4699    #[must_use]
4700    pub fn scroll_margin_block_start(self, value: impl Into<Length>) -> Self {
4701        self.with(Property::ScrollMarginBlockStart, value.into().to_string())
4702    }
4703
4704    /// Sets [`scroll-margin-bottom`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-bottom).
4705    #[must_use]
4706    pub fn scroll_margin_bottom(self, value: impl Into<Length>) -> Self {
4707        self.with(Property::ScrollMarginBottom, value.into().to_string())
4708    }
4709
4710    /// Sets [`scroll-margin-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline).
4711    ///
4712    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4713    #[must_use]
4714    pub fn scroll_margin_inline(self, value: impl Into<crate::value::ScrollMarginInline>) -> Self {
4715        self.with(Property::ScrollMarginInline, value.into().to_string())
4716    }
4717
4718    /// Sets [`scroll-margin-inline-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline-end).
4719    #[must_use]
4720    pub fn scroll_margin_inline_end(self, value: impl Into<Length>) -> Self {
4721        self.with(Property::ScrollMarginInlineEnd, value.into().to_string())
4722    }
4723
4724    /// Sets [`scroll-margin-inline-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-inline-start).
4725    #[must_use]
4726    pub fn scroll_margin_inline_start(self, value: impl Into<Length>) -> Self {
4727        self.with(Property::ScrollMarginInlineStart, value.into().to_string())
4728    }
4729
4730    /// Sets [`scroll-margin-left`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-left).
4731    #[must_use]
4732    pub fn scroll_margin_left(self, value: impl Into<Length>) -> Self {
4733        self.with(Property::ScrollMarginLeft, value.into().to_string())
4734    }
4735
4736    /// Sets [`scroll-margin-right`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-right).
4737    #[must_use]
4738    pub fn scroll_margin_right(self, value: impl Into<Length>) -> Self {
4739        self.with(Property::ScrollMarginRight, value.into().to_string())
4740    }
4741
4742    /// Sets [`scroll-margin-top`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-margin-top).
4743    #[must_use]
4744    pub fn scroll_margin_top(self, value: impl Into<Length>) -> Self {
4745        self.with(Property::ScrollMarginTop, value.into().to_string())
4746    }
4747
4748    /// Sets [`scroll-marker-group`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-marker-group).
4749    #[must_use]
4750    pub fn scroll_marker_group(self, value: impl Into<crate::value::ScrollMarkerGroup>) -> Self {
4751        self.with(Property::ScrollMarkerGroup, value.into().to_string())
4752    }
4753
4754    /// Sets [`scroll-padding`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding).
4755    ///
4756    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4757    #[must_use]
4758    pub fn scroll_padding(self, value: impl Into<crate::value::ScrollPadding>) -> Self {
4759        self.with(Property::ScrollPadding, value.into().to_string())
4760    }
4761
4762    /// Sets [`scroll-padding-block`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block).
4763    ///
4764    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4765    #[must_use]
4766    pub fn scroll_padding_block(self, value: impl Into<crate::value::ScrollPaddingBlock>) -> Self {
4767        self.with(Property::ScrollPaddingBlock, value.into().to_string())
4768    }
4769
4770    /// Sets [`scroll-padding-block-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block-end).
4771    #[must_use]
4772    pub fn scroll_padding_block_end(self, value: impl Into<crate::value::ScrollPaddingBlockEnd>) -> Self {
4773        self.with(Property::ScrollPaddingBlockEnd, value.into().to_string())
4774    }
4775
4776    /// Sets [`scroll-padding-block-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-block-start).
4777    #[must_use]
4778    pub fn scroll_padding_block_start(self, value: impl Into<crate::value::ScrollPaddingBlockStart>) -> Self {
4779        self.with(Property::ScrollPaddingBlockStart, value.into().to_string())
4780    }
4781
4782    /// Sets [`scroll-padding-bottom`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-bottom).
4783    #[must_use]
4784    pub fn scroll_padding_bottom(self, value: impl Into<crate::value::ScrollPaddingBottom>) -> Self {
4785        self.with(Property::ScrollPaddingBottom, value.into().to_string())
4786    }
4787
4788    /// Sets [`scroll-padding-inline`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline).
4789    ///
4790    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4791    #[must_use]
4792    pub fn scroll_padding_inline(self, value: impl Into<crate::value::ScrollPaddingInline>) -> Self {
4793        self.with(Property::ScrollPaddingInline, value.into().to_string())
4794    }
4795
4796    /// Sets [`scroll-padding-inline-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline-end).
4797    #[must_use]
4798    pub fn scroll_padding_inline_end(self, value: impl Into<crate::value::ScrollPaddingInlineEnd>) -> Self {
4799        self.with(Property::ScrollPaddingInlineEnd, value.into().to_string())
4800    }
4801
4802    /// Sets [`scroll-padding-inline-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-inline-start).
4803    #[must_use]
4804    pub fn scroll_padding_inline_start(self, value: impl Into<crate::value::ScrollPaddingInlineStart>) -> Self {
4805        self.with(Property::ScrollPaddingInlineStart, value.into().to_string())
4806    }
4807
4808    /// Sets [`scroll-padding-left`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-left).
4809    #[must_use]
4810    pub fn scroll_padding_left(self, value: impl Into<crate::value::ScrollPaddingLeft>) -> Self {
4811        self.with(Property::ScrollPaddingLeft, value.into().to_string())
4812    }
4813
4814    /// Sets [`scroll-padding-right`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-right).
4815    #[must_use]
4816    pub fn scroll_padding_right(self, value: impl Into<crate::value::ScrollPaddingRight>) -> Self {
4817        self.with(Property::ScrollPaddingRight, value.into().to_string())
4818    }
4819
4820    /// Sets [`scroll-padding-top`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-padding-top).
4821    #[must_use]
4822    pub fn scroll_padding_top(self, value: impl Into<crate::value::ScrollPaddingTop>) -> Self {
4823        self.with(Property::ScrollPaddingTop, value.into().to_string())
4824    }
4825
4826    /// Sets [`scroll-snap-align`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-align).
4827    ///
4828    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4829    #[must_use]
4830    pub fn scroll_snap_align(self, value: impl Into<crate::value::ScrollSnapAlign>) -> Self {
4831        self.with(Property::ScrollSnapAlign, value.into().to_string())
4832    }
4833
4834    /// Sets [`scroll-snap-stop`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-stop).
4835    #[must_use]
4836    pub fn scroll_snap_stop(self, value: impl Into<crate::value::ScrollSnapStop>) -> Self {
4837        self.with(Property::ScrollSnapStop, value.into().to_string())
4838    }
4839
4840    /// Sets [`scroll-snap-type`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-snap-type).
4841    ///
4842    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4843    #[must_use]
4844    pub fn scroll_snap_type(self, value: impl Into<crate::value::ScrollSnapType>) -> Self {
4845        self.with(Property::ScrollSnapType, value.into().to_string())
4846    }
4847
4848    /// Sets [`scroll-target-group`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scroll-target-group).
4849    #[must_use]
4850    pub fn scroll_target_group(self, value: impl Into<crate::value::ScrollTargetGroup>) -> Self {
4851        self.with(Property::ScrollTargetGroup, value.into().to_string())
4852    }
4853
4854    /// Sets [`scrollbar-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-color).
4855    ///
4856    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4857    #[must_use]
4858    pub fn scrollbar_color(self, value: impl Into<crate::value::ScrollbarColor>) -> Self {
4859        self.with(Property::ScrollbarColor, value.into().to_string())
4860    }
4861
4862    /// Sets [`scrollbar-gutter`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-gutter).
4863    ///
4864    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4865    #[must_use]
4866    pub fn scrollbar_gutter(self, value: impl Into<crate::value::ScrollbarGutter>) -> Self {
4867        self.with(Property::ScrollbarGutter, value.into().to_string())
4868    }
4869
4870    /// Sets [`scrollbar-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/scrollbar-width).
4871    #[must_use]
4872    pub fn scrollbar_width(self, value: impl Into<crate::value::ScrollbarWidth>) -> Self {
4873        self.with(Property::ScrollbarWidth, value.into().to_string())
4874    }
4875
4876    /// Sets [`shape-image-threshold`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-image-threshold).
4877    #[must_use]
4878    pub fn shape_image_threshold(self, value: impl Into<crate::value::ShapeImageThreshold>) -> Self {
4879        self.with(Property::ShapeImageThreshold, value.into().to_string())
4880    }
4881
4882    /// Sets [`shape-margin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-margin).
4883    #[must_use]
4884    pub fn shape_margin(self, value: impl Into<crate::value::ShapeMargin>) -> Self {
4885        self.with(Property::ShapeMargin, value.into().to_string())
4886    }
4887
4888    /// Sets [`shape-outside`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-outside).
4889    ///
4890    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4891    #[must_use]
4892    pub fn shape_outside(self, value: impl Into<crate::value::ShapeOutside>) -> Self {
4893        self.with(Property::ShapeOutside, value.into().to_string())
4894    }
4895
4896    /// Sets [`shape-rendering`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/shape-rendering).
4897    #[must_use]
4898    pub fn shape_rendering(self, value: impl Into<crate::value::ShapeRendering>) -> Self {
4899        self.with(Property::ShapeRendering, value.into().to_string())
4900    }
4901
4902    /// Sets [`stop-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stop-color).
4903    #[must_use]
4904    pub fn stop_color(self, value: impl Into<Color>) -> Self {
4905        self.with(Property::StopColor, value.into().to_string())
4906    }
4907
4908    /// Sets [`stop-opacity`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stop-opacity).
4909    #[must_use]
4910    pub fn stop_opacity(self, value: impl Into<crate::value::StopOpacity>) -> Self {
4911        self.with(Property::StopOpacity, value.into().to_string())
4912    }
4913
4914    /// Sets [`stroke`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke).
4915    ///
4916    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4917    #[must_use]
4918    pub fn stroke(self, value: impl Into<crate::value::Stroke>) -> Self {
4919        self.with(Property::Stroke, value.into().to_string())
4920    }
4921
4922    /// Sets [`stroke-dasharray`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-dasharray).
4923    ///
4924    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4925    #[must_use]
4926    pub fn stroke_dasharray(self, value: impl Into<crate::value::StrokeDasharray>) -> Self {
4927        self.with(Property::StrokeDasharray, value.into().to_string())
4928    }
4929
4930    /// Sets [`stroke-dashoffset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-dashoffset).
4931    #[must_use]
4932    pub fn stroke_dashoffset(self, value: impl Into<crate::value::StrokeDashoffset>) -> Self {
4933        self.with(Property::StrokeDashoffset, value.into().to_string())
4934    }
4935
4936    /// Sets [`stroke-linecap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-linecap).
4937    #[must_use]
4938    pub fn stroke_linecap(self, value: impl Into<crate::value::StrokeLinecap>) -> Self {
4939        self.with(Property::StrokeLinecap, value.into().to_string())
4940    }
4941
4942    /// Sets [`stroke-linejoin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-linejoin).
4943    #[must_use]
4944    pub fn stroke_linejoin(self, value: impl Into<crate::value::StrokeLinejoin>) -> Self {
4945        self.with(Property::StrokeLinejoin, value.into().to_string())
4946    }
4947
4948    /// Sets [`stroke-miterlimit`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-miterlimit).
4949    #[must_use]
4950    pub fn stroke_miterlimit(self, value: impl Into<f64>) -> Self {
4951        self.with(Property::StrokeMiterlimit, value.into().to_string())
4952    }
4953
4954    /// Sets [`stroke-opacity`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-opacity).
4955    #[must_use]
4956    pub fn stroke_opacity(self, value: impl Into<crate::value::StrokeOpacity>) -> Self {
4957        self.with(Property::StrokeOpacity, value.into().to_string())
4958    }
4959
4960    /// Sets [`stroke-width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/stroke-width).
4961    #[must_use]
4962    pub fn stroke_width(self, value: impl Into<crate::value::StrokeWidth>) -> Self {
4963        self.with(Property::StrokeWidth, value.into().to_string())
4964    }
4965
4966    /// Sets [`tab-size`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/tab-size).
4967    #[must_use]
4968    pub fn tab_size(self, value: impl Into<crate::value::TabSize>) -> Self {
4969        self.with(Property::TabSize, value.into().to_string())
4970    }
4971
4972    /// Sets [`table-layout`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/table-layout).
4973    #[must_use]
4974    pub fn table_layout(self, value: impl Into<crate::value::TableLayout>) -> Self {
4975        self.with(Property::TableLayout, value.into().to_string())
4976    }
4977
4978    /// Sets [`text-align`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-align).
4979    #[must_use]
4980    pub fn text_align(self, value: impl Into<crate::value::TextAlign>) -> Self {
4981        self.with(Property::TextAlign, value.into().to_string())
4982    }
4983
4984    /// Sets [`text-align-last`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-align-last).
4985    #[must_use]
4986    pub fn text_align_last(self, value: impl Into<crate::value::TextAlignLast>) -> Self {
4987        self.with(Property::TextAlignLast, value.into().to_string())
4988    }
4989
4990    /// Sets [`text-anchor`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-anchor).
4991    #[must_use]
4992    pub fn text_anchor(self, value: impl Into<crate::value::TextAnchor>) -> Self {
4993        self.with(Property::TextAnchor, value.into().to_string())
4994    }
4995
4996    /// Sets [`text-autospace`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-autospace).
4997    ///
4998    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
4999    #[must_use]
5000    pub fn text_autospace(self, value: impl Into<crate::value::TextAutospace>) -> Self {
5001        self.with(Property::TextAutospace, value.into().to_string())
5002    }
5003
5004    /// Sets [`text-box`]().
5005    ///
5006    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5007    #[must_use]
5008    pub fn text_box(self, value: impl Into<crate::value::TextBox>) -> Self {
5009        self.with(Property::TextBox, value.into().to_string())
5010    }
5011
5012    /// Sets [`text-box-edge`]().
5013    ///
5014    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5015    #[must_use]
5016    pub fn text_box_edge(self, value: impl Into<crate::value::TextBoxEdge>) -> Self {
5017        self.with(Property::TextBoxEdge, value.into().to_string())
5018    }
5019
5020    /// Sets [`text-box-trim`]().
5021    #[must_use]
5022    pub fn text_box_trim(self, value: impl Into<crate::value::TextBoxTrim>) -> Self {
5023        self.with(Property::TextBoxTrim, value.into().to_string())
5024    }
5025
5026    /// Sets [`text-combine-upright`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-combine-upright).
5027    ///
5028    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5029    #[must_use]
5030    pub fn text_combine_upright(self, value: impl Into<crate::value::TextCombineUpright>) -> Self {
5031        self.with(Property::TextCombineUpright, value.into().to_string())
5032    }
5033
5034    /// Sets [`text-decoration`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration).
5035    ///
5036    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5037    #[must_use]
5038    pub fn text_decoration(self, value: impl Into<crate::value::TextDecoration>) -> Self {
5039        self.with(Property::TextDecoration, value.into().to_string())
5040    }
5041
5042    /// Sets [`text-decoration-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-color).
5043    #[must_use]
5044    pub fn text_decoration_color(self, value: impl Into<Color>) -> Self {
5045        self.with(Property::TextDecorationColor, value.into().to_string())
5046    }
5047
5048    /// Sets [`text-decoration-inset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-inset).
5049    ///
5050    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5051    #[must_use]
5052    pub fn text_decoration_inset(self, value: impl Into<crate::value::TextDecorationInset>) -> Self {
5053        self.with(Property::TextDecorationInset, value.into().to_string())
5054    }
5055
5056    /// Sets [`text-decoration-line`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-line).
5057    ///
5058    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5059    #[must_use]
5060    pub fn text_decoration_line(self, value: impl Into<crate::value::TextDecorationLine>) -> Self {
5061        self.with(Property::TextDecorationLine, value.into().to_string())
5062    }
5063
5064    /// Sets [`text-decoration-skip-ink`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink).
5065    #[must_use]
5066    pub fn text_decoration_skip_ink(self, value: impl Into<crate::value::TextDecorationSkipInk>) -> Self {
5067        self.with(Property::TextDecorationSkipInk, value.into().to_string())
5068    }
5069
5070    /// Sets [`text-decoration-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-style).
5071    #[must_use]
5072    pub fn text_decoration_style(self, value: impl Into<crate::value::TextDecorationStyle>) -> Self {
5073        self.with(Property::TextDecorationStyle, value.into().to_string())
5074    }
5075
5076    /// Sets [`text-decoration-thickness`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-thickness).
5077    #[must_use]
5078    pub fn text_decoration_thickness(self, value: impl Into<crate::value::TextDecorationThickness>) -> Self {
5079        self.with(Property::TextDecorationThickness, value.into().to_string())
5080    }
5081
5082    /// Sets [`text-emphasis`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis).
5083    ///
5084    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5085    #[must_use]
5086    pub fn text_emphasis(self, value: impl Into<crate::value::TextEmphasis>) -> Self {
5087        self.with(Property::TextEmphasis, value.into().to_string())
5088    }
5089
5090    /// Sets [`text-emphasis-color`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-color).
5091    #[must_use]
5092    pub fn text_emphasis_color(self, value: impl Into<Color>) -> Self {
5093        self.with(Property::TextEmphasisColor, value.into().to_string())
5094    }
5095
5096    /// Sets [`text-emphasis-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-position).
5097    ///
5098    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5099    #[must_use]
5100    pub fn text_emphasis_position(self, value: impl Into<crate::value::TextEmphasisPosition>) -> Self {
5101        self.with(Property::TextEmphasisPosition, value.into().to_string())
5102    }
5103
5104    /// Sets [`text-emphasis-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-style).
5105    ///
5106    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5107    #[must_use]
5108    pub fn text_emphasis_style(self, value: impl Into<crate::value::TextEmphasisStyle>) -> Self {
5109        self.with(Property::TextEmphasisStyle, value.into().to_string())
5110    }
5111
5112    /// Sets [`text-fit`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-fit).
5113    ///
5114    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5115    #[must_use]
5116    pub fn text_fit(self, value: impl Into<crate::value::TextFit>) -> Self {
5117        self.with(Property::TextFit, value.into().to_string())
5118    }
5119
5120    /// Sets [`text-indent`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-indent).
5121    ///
5122    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5123    #[must_use]
5124    pub fn text_indent(self, value: impl Into<crate::value::TextIndent>) -> Self {
5125        self.with(Property::TextIndent, value.into().to_string())
5126    }
5127
5128    /// Sets [`text-justify`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-justify).
5129    #[must_use]
5130    pub fn text_justify(self, value: impl Into<crate::value::TextJustify>) -> Self {
5131        self.with(Property::TextJustify, value.into().to_string())
5132    }
5133
5134    /// Sets [`text-orientation`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-orientation).
5135    #[must_use]
5136    pub fn text_orientation(self, value: impl Into<crate::value::TextOrientation>) -> Self {
5137        self.with(Property::TextOrientation, value.into().to_string())
5138    }
5139
5140    /// Sets [`text-overflow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-overflow).
5141    ///
5142    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5143    #[must_use]
5144    pub fn text_overflow(self, value: impl Into<crate::value::TextOverflow>) -> Self {
5145        self.with(Property::TextOverflow, value.into().to_string())
5146    }
5147
5148    /// Sets [`text-rendering`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-rendering).
5149    #[must_use]
5150    pub fn text_rendering(self, value: impl Into<crate::value::TextRendering>) -> Self {
5151        self.with(Property::TextRendering, value.into().to_string())
5152    }
5153
5154    /// Sets [`text-shadow`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-shadow).
5155    ///
5156    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5157    #[must_use]
5158    pub fn text_shadow(self, value: impl Into<crate::value::TextShadow>) -> Self {
5159        self.with(Property::TextShadow, value.into().to_string())
5160    }
5161
5162    /// Sets [`text-transform`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-transform).
5163    ///
5164    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5165    #[must_use]
5166    pub fn text_transform(self, value: impl Into<crate::value::TextTransform>) -> Self {
5167        self.with(Property::TextTransform, value.into().to_string())
5168    }
5169
5170    /// Sets [`text-underline-offset`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-underline-offset).
5171    #[must_use]
5172    pub fn text_underline_offset(self, value: impl Into<crate::value::TextUnderlineOffset>) -> Self {
5173        self.with(Property::TextUnderlineOffset, value.into().to_string())
5174    }
5175
5176    /// Sets [`text-underline-position`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-underline-position).
5177    ///
5178    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5179    #[must_use]
5180    pub fn text_underline_position(self, value: impl Into<crate::value::TextUnderlinePosition>) -> Self {
5181        self.with(Property::TextUnderlinePosition, value.into().to_string())
5182    }
5183
5184    /// Sets [`text-wrap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap).
5185    ///
5186    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5187    #[must_use]
5188    pub fn text_wrap(self, value: impl Into<crate::value::TextWrap>) -> Self {
5189        self.with(Property::TextWrap, value.into().to_string())
5190    }
5191
5192    /// Sets [`text-wrap-mode`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-mode).
5193    #[must_use]
5194    pub fn text_wrap_mode(self, value: impl Into<crate::value::TextWrapMode>) -> Self {
5195        self.with(Property::TextWrapMode, value.into().to_string())
5196    }
5197
5198    /// Sets [`text-wrap-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-style).
5199    #[must_use]
5200    pub fn text_wrap_style(self, value: impl Into<crate::value::TextWrapStyle>) -> Self {
5201        self.with(Property::TextWrapStyle, value.into().to_string())
5202    }
5203
5204    /// Sets [`timeline-trigger`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger).
5205    ///
5206    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5207    #[must_use]
5208    pub fn timeline_trigger(self, value: impl Into<crate::value::TimelineTrigger>) -> Self {
5209        self.with(Property::TimelineTrigger, value.into().to_string())
5210    }
5211
5212    /// Sets [`timeline-trigger-activation-range`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-activation-range).
5213    ///
5214    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5215    #[must_use]
5216    pub fn timeline_trigger_activation_range(self, value: impl Into<crate::value::TimelineTriggerActivationRange>) -> Self {
5217        self.with(Property::TimelineTriggerActivationRange, value.into().to_string())
5218    }
5219
5220    /// Sets [`timeline-trigger-activation-range-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-activation-range-end).
5221    ///
5222    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5223    #[must_use]
5224    pub fn timeline_trigger_activation_range_end(self, value: impl Into<crate::value::TimelineTriggerActivationRangeEnd>) -> Self {
5225        self.with(Property::TimelineTriggerActivationRangeEnd, value.into().to_string())
5226    }
5227
5228    /// Sets [`timeline-trigger-activation-range-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-activation-range-start).
5229    ///
5230    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5231    #[must_use]
5232    pub fn timeline_trigger_activation_range_start(self, value: impl Into<crate::value::TimelineTriggerActivationRangeStart>) -> Self {
5233        self.with(Property::TimelineTriggerActivationRangeStart, value.into().to_string())
5234    }
5235
5236    /// Sets [`timeline-trigger-active-range`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-active-range).
5237    ///
5238    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5239    #[must_use]
5240    pub fn timeline_trigger_active_range(self, value: impl Into<crate::value::TimelineTriggerActiveRange>) -> Self {
5241        self.with(Property::TimelineTriggerActiveRange, value.into().to_string())
5242    }
5243
5244    /// Sets [`timeline-trigger-active-range-end`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-active-range-end).
5245    ///
5246    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5247    #[must_use]
5248    pub fn timeline_trigger_active_range_end(self, value: impl Into<crate::value::TimelineTriggerActiveRangeEnd>) -> Self {
5249        self.with(Property::TimelineTriggerActiveRangeEnd, value.into().to_string())
5250    }
5251
5252    /// Sets [`timeline-trigger-active-range-start`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-active-range-start).
5253    ///
5254    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5255    #[must_use]
5256    pub fn timeline_trigger_active_range_start(self, value: impl Into<crate::value::TimelineTriggerActiveRangeStart>) -> Self {
5257        self.with(Property::TimelineTriggerActiveRangeStart, value.into().to_string())
5258    }
5259
5260    /// Sets [`timeline-trigger-name`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-name).
5261    ///
5262    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5263    #[must_use]
5264    pub fn timeline_trigger_name(self, value: impl Into<crate::value::TimelineTriggerName>) -> Self {
5265        self.with(Property::TimelineTriggerName, value.into().to_string())
5266    }
5267
5268    /// Sets [`timeline-trigger-source`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-trigger-source).
5269    ///
5270    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5271    #[must_use]
5272    pub fn timeline_trigger_source(self, value: impl Into<crate::value::TimelineTriggerSource>) -> Self {
5273        self.with(Property::TimelineTriggerSource, value.into().to_string())
5274    }
5275
5276    /// Sets [`top`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/top).
5277    ///
5278    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5279    #[must_use]
5280    pub fn top(self, value: impl Into<crate::value::Top>) -> Self {
5281        self.with(Property::Top, value.into().to_string())
5282    }
5283
5284    /// Sets [`touch-action`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/touch-action).
5285    ///
5286    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5287    #[must_use]
5288    pub fn touch_action(self, value: impl Into<crate::value::TouchAction>) -> Self {
5289        self.with(Property::TouchAction, value.into().to_string())
5290    }
5291
5292    /// Sets [`transform`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform).
5293    ///
5294    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5295    #[must_use]
5296    pub fn transform(self, value: impl Into<crate::value::Transform>) -> Self {
5297        self.with(Property::Transform, value.into().to_string())
5298    }
5299
5300    /// Sets [`transform-box`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-box).
5301    #[must_use]
5302    pub fn transform_box(self, value: impl Into<crate::value::TransformBox>) -> Self {
5303        self.with(Property::TransformBox, value.into().to_string())
5304    }
5305
5306    /// Sets [`transform-origin`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-origin).
5307    ///
5308    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5309    #[must_use]
5310    pub fn transform_origin(self, value: impl Into<crate::value::TransformOrigin>) -> Self {
5311        self.with(Property::TransformOrigin, value.into().to_string())
5312    }
5313
5314    /// Sets [`transform-style`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-style).
5315    #[must_use]
5316    pub fn transform_style(self, value: impl Into<crate::value::TransformStyle>) -> Self {
5317        self.with(Property::TransformStyle, value.into().to_string())
5318    }
5319
5320    /// Sets [`transition`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition).
5321    ///
5322    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5323    #[must_use]
5324    pub fn transition(self, value: impl Into<crate::value::Transition>) -> Self {
5325        self.with(Property::Transition, value.into().to_string())
5326    }
5327
5328    /// Sets [`transition-behavior`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-behavior).
5329    ///
5330    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5331    #[must_use]
5332    pub fn transition_behavior(self, value: impl Into<crate::value::TransitionBehavior>) -> Self {
5333        self.with(Property::TransitionBehavior, value.into().to_string())
5334    }
5335
5336    /// Sets [`transition-delay`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-delay).
5337    ///
5338    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5339    #[must_use]
5340    pub fn transition_delay(self, value: impl Into<crate::value::TransitionDelay>) -> Self {
5341        self.with(Property::TransitionDelay, value.into().to_string())
5342    }
5343
5344    /// Sets [`transition-duration`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-duration).
5345    ///
5346    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5347    #[must_use]
5348    pub fn transition_duration(self, value: impl Into<crate::value::TransitionDuration>) -> Self {
5349        self.with(Property::TransitionDuration, value.into().to_string())
5350    }
5351
5352    /// Sets [`transition-property`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-property).
5353    ///
5354    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5355    #[must_use]
5356    pub fn transition_property(self, value: impl Into<crate::value::TransitionProperty>) -> Self {
5357        self.with(Property::TransitionProperty, value.into().to_string())
5358    }
5359
5360    /// Sets [`transition-timing-function`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-timing-function).
5361    ///
5362    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5363    #[must_use]
5364    pub fn transition_timing_function(self, value: impl Into<crate::value::TransitionTimingFunction>) -> Self {
5365        self.with(Property::TransitionTimingFunction, value.into().to_string())
5366    }
5367
5368    /// Sets [`translate`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/translate).
5369    ///
5370    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5371    #[must_use]
5372    pub fn translate(self, value: impl Into<crate::value::Translate>) -> Self {
5373        self.with(Property::Translate, value.into().to_string())
5374    }
5375
5376    /// Sets [`trigger-scope`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/trigger-scope).
5377    ///
5378    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5379    #[must_use]
5380    pub fn trigger_scope(self, value: impl Into<crate::value::TriggerScope>) -> Self {
5381        self.with(Property::TriggerScope, value.into().to_string())
5382    }
5383
5384    /// Sets [`unicode-bidi`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/unicode-bidi).
5385    #[must_use]
5386    pub fn unicode_bidi(self, value: impl Into<crate::value::UnicodeBidi>) -> Self {
5387        self.with(Property::UnicodeBidi, value.into().to_string())
5388    }
5389
5390    /// Sets [`user-select`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/user-select).
5391    #[must_use]
5392    pub fn user_select(self, value: impl Into<crate::value::UserSelect>) -> Self {
5393        self.with(Property::UserSelect, value.into().to_string())
5394    }
5395
5396    /// Sets [`vector-effect`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/vector-effect).
5397    #[must_use]
5398    pub fn vector_effect(self, value: impl Into<crate::value::VectorEffect>) -> Self {
5399        self.with(Property::VectorEffect, value.into().to_string())
5400    }
5401
5402    /// Sets [`vertical-align`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/vertical-align).
5403    #[must_use]
5404    pub fn vertical_align(self, value: impl Into<crate::value::VerticalAlign>) -> Self {
5405        self.with(Property::VerticalAlign, value.into().to_string())
5406    }
5407
5408    /// Sets [`view-transition-class`]().
5409    ///
5410    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5411    #[must_use]
5412    pub fn view_transition_class(self, value: impl Into<crate::value::ViewTransitionClass>) -> Self {
5413        self.with(Property::ViewTransitionClass, value.into().to_string())
5414    }
5415
5416    /// Sets [`view-transition-name`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-name).
5417    ///
5418    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5419    #[must_use]
5420    pub fn view_transition_name(self, value: impl Into<crate::value::ViewTransitionName>) -> Self {
5421        self.with(Property::ViewTransitionName, value.into().to_string())
5422    }
5423
5424    /// Sets [`view-transition-scope`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-scope).
5425    #[must_use]
5426    pub fn view_transition_scope(self, value: impl Into<crate::value::ViewTransitionScope>) -> Self {
5427        self.with(Property::ViewTransitionScope, value.into().to_string())
5428    }
5429
5430    /// Sets [`visibility`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/visibility).
5431    #[must_use]
5432    pub fn visibility(self, value: impl Into<crate::value::Visibility>) -> Self {
5433        self.with(Property::Visibility, value.into().to_string())
5434    }
5435
5436    /// Sets [`white-space`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space).
5437    ///
5438    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5439    #[must_use]
5440    pub fn white_space(self, value: impl Into<crate::value::WhiteSpace>) -> Self {
5441        self.with(Property::WhiteSpace, value.into().to_string())
5442    }
5443
5444    /// Sets [`white-space-collapse`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space-collapse).
5445    #[must_use]
5446    pub fn white_space_collapse(self, value: impl Into<crate::value::WhiteSpaceCollapse>) -> Self {
5447        self.with(Property::WhiteSpaceCollapse, value.into().to_string())
5448    }
5449
5450    /// Sets [`widows`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/widows).
5451    #[must_use]
5452    pub fn widows(self, value: impl Into<i32>) -> Self {
5453        self.with(Property::Widows, value.into().to_string())
5454    }
5455
5456    /// Sets [`width`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/width).
5457    ///
5458    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5459    #[must_use]
5460    pub fn width(self, value: impl Into<crate::value::Width>) -> Self {
5461        self.with(Property::Width, value.into().to_string())
5462    }
5463
5464    /// Sets [`will-change`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/will-change).
5465    ///
5466    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5467    #[must_use]
5468    pub fn will_change(self, value: impl Into<crate::value::WillChange>) -> Self {
5469        self.with(Property::WillChange, value.into().to_string())
5470    }
5471
5472    /// Sets [`window-drag`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/window-drag).
5473    #[must_use]
5474    pub fn window_drag(self, value: impl Into<crate::value::WindowDrag>) -> Self {
5475        self.with(Property::WindowDrag, value.into().to_string())
5476    }
5477
5478    /// Sets [`word-break`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/word-break).
5479    #[must_use]
5480    pub fn word_break(self, value: impl Into<crate::value::WordBreak>) -> Self {
5481        self.with(Property::WordBreak, value.into().to_string())
5482    }
5483
5484    /// Sets [`word-spacing`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/word-spacing).
5485    #[must_use]
5486    pub fn word_spacing(self, value: impl Into<crate::value::WordSpacing>) -> Self {
5487        self.with(Property::WordSpacing, value.into().to_string())
5488    }
5489
5490    /// Sets [`word-wrap`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap).
5491    #[must_use]
5492    pub fn word_wrap(self, value: impl Into<crate::value::WordWrap>) -> Self {
5493        self.with(Property::WordWrap, value.into().to_string())
5494    }
5495
5496    /// Sets [`writing-mode`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/writing-mode).
5497    #[must_use]
5498    pub fn writing_mode(self, value: impl Into<crate::value::WritingMode>) -> Self {
5499        self.with(Property::WritingMode, value.into().to_string())
5500    }
5501
5502    /// Sets [`x`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/x).
5503    #[must_use]
5504    pub fn x(self, value: impl Into<crate::value::X>) -> Self {
5505        self.with(Property::X, value.into().to_string())
5506    }
5507
5508    /// Sets [`y`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/y).
5509    #[must_use]
5510    pub fn y(self, value: impl Into<crate::value::Y>) -> Self {
5511        self.with(Property::Y, value.into().to_string())
5512    }
5513
5514    /// Sets [`z-index`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/z-index).
5515    #[must_use]
5516    pub fn z_index(self, value: impl Into<crate::value::ZIndex>) -> Self {
5517        self.with(Property::ZIndex, value.into().to_string())
5518    }
5519
5520    /// Sets [`zoom`](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/zoom).
5521    ///
5522    /// The single-value forms are typed. Any other value goes through [`Raw`](crate::value::Raw), which is passed to the browser unchecked.
5523    #[must_use]
5524    pub fn zoom(self, value: impl Into<crate::value::Zoom>) -> Self {
5525        self.with(Property::Zoom, value.into().to_string())
5526    }
5527
5528}
5529
5530/// A standard pseudo-class without arguments.
5531#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
5532#[non_exhaustive]
5533pub enum PseudoClass {
5534    /// `:active`.
5535    Active,
5536    /// `:active-view-transition`.
5537    ActiveViewTransition,
5538    /// `:any-link`.
5539    AnyLink,
5540    /// `:autofill`.
5541    Autofill,
5542    /// `:buffering`.
5543    Buffering,
5544    /// `:checked`.
5545    Checked,
5546    /// `:default`.
5547    Default,
5548    /// `:defined`.
5549    Defined,
5550    /// `:disabled`.
5551    Disabled,
5552    /// `:empty`.
5553    Empty,
5554    /// `:enabled`.
5555    Enabled,
5556    /// `:first-child`.
5557    FirstChild,
5558    /// `:first-of-type`.
5559    FirstOfType,
5560    /// `:focus`.
5561    Focus,
5562    /// `:focus-visible`.
5563    FocusVisible,
5564    /// `:focus-within`.
5565    FocusWithin,
5566    /// `:fullscreen`.
5567    Fullscreen,
5568    /// `:future`.
5569    Future,
5570    /// `:has-slotted`.
5571    HasSlotted,
5572    /// `:hover`.
5573    Hover,
5574    /// `:in-range`.
5575    InRange,
5576    /// `:indeterminate`.
5577    Indeterminate,
5578    /// `:invalid`.
5579    Invalid,
5580    /// `:last-child`.
5581    LastChild,
5582    /// `:last-of-type`.
5583    LastOfType,
5584    /// `:link`.
5585    Link,
5586    /// `:modal`.
5587    Modal,
5588    /// `:muted`.
5589    Muted,
5590    /// `:only-child`.
5591    OnlyChild,
5592    /// `:only-of-type`.
5593    OnlyOfType,
5594    /// `:open`.
5595    Open,
5596    /// `:optional`.
5597    Optional,
5598    /// `:out-of-range`.
5599    OutOfRange,
5600    /// `:past`.
5601    Past,
5602    /// `:paused`.
5603    Paused,
5604    /// `:picture-in-picture`.
5605    PictureInPicture,
5606    /// `:placeholder-shown`.
5607    PlaceholderShown,
5608    /// `:playing`.
5609    Playing,
5610    /// `:popover-open`.
5611    PopoverOpen,
5612    /// `:read-only`.
5613    ReadOnly,
5614    /// `:read-write`.
5615    ReadWrite,
5616    /// `:required`.
5617    Required,
5618    /// `:seeking`.
5619    Seeking,
5620    /// `:stalled`.
5621    Stalled,
5622    /// `:target`.
5623    Target,
5624    /// `:user-invalid`.
5625    UserInvalid,
5626    /// `:user-valid`.
5627    UserValid,
5628    /// `:valid`.
5629    Valid,
5630    /// `:visited`.
5631    Visited,
5632    /// `:volume-locked`.
5633    VolumeLocked,
5634}
5635
5636impl PseudoClass {
5637    /// The name without its colons.
5638    #[must_use]
5639    pub fn name(self) -> &'static str {
5640        match self {
5641            Self::Active => "active",
5642            Self::ActiveViewTransition => "active-view-transition",
5643            Self::AnyLink => "any-link",
5644            Self::Autofill => "autofill",
5645            Self::Buffering => "buffering",
5646            Self::Checked => "checked",
5647            Self::Default => "default",
5648            Self::Defined => "defined",
5649            Self::Disabled => "disabled",
5650            Self::Empty => "empty",
5651            Self::Enabled => "enabled",
5652            Self::FirstChild => "first-child",
5653            Self::FirstOfType => "first-of-type",
5654            Self::Focus => "focus",
5655            Self::FocusVisible => "focus-visible",
5656            Self::FocusWithin => "focus-within",
5657            Self::Fullscreen => "fullscreen",
5658            Self::Future => "future",
5659            Self::HasSlotted => "has-slotted",
5660            Self::Hover => "hover",
5661            Self::InRange => "in-range",
5662            Self::Indeterminate => "indeterminate",
5663            Self::Invalid => "invalid",
5664            Self::LastChild => "last-child",
5665            Self::LastOfType => "last-of-type",
5666            Self::Link => "link",
5667            Self::Modal => "modal",
5668            Self::Muted => "muted",
5669            Self::OnlyChild => "only-child",
5670            Self::OnlyOfType => "only-of-type",
5671            Self::Open => "open",
5672            Self::Optional => "optional",
5673            Self::OutOfRange => "out-of-range",
5674            Self::Past => "past",
5675            Self::Paused => "paused",
5676            Self::PictureInPicture => "picture-in-picture",
5677            Self::PlaceholderShown => "placeholder-shown",
5678            Self::Playing => "playing",
5679            Self::PopoverOpen => "popover-open",
5680            Self::ReadOnly => "read-only",
5681            Self::ReadWrite => "read-write",
5682            Self::Required => "required",
5683            Self::Seeking => "seeking",
5684            Self::Stalled => "stalled",
5685            Self::Target => "target",
5686            Self::UserInvalid => "user-invalid",
5687            Self::UserValid => "user-valid",
5688            Self::Valid => "valid",
5689            Self::Visited => "visited",
5690            Self::VolumeLocked => "volume-locked",
5691        }
5692    }
5693}
5694
5695/// A standard pseudo-element without arguments, and `::picker(select)`.
5696#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
5697#[non_exhaustive]
5698pub enum PseudoElement {
5699    /// `::after`.
5700    After,
5701    /// `::backdrop`.
5702    Backdrop,
5703    /// `::before`.
5704    Before,
5705    /// `::checkmark`.
5706    Checkmark,
5707    /// `::cue`.
5708    Cue,
5709    /// `::details-content`.
5710    DetailsContent,
5711    /// `::file-selector-button`.
5712    FileSelectorButton,
5713    /// `::first-letter`.
5714    FirstLetter,
5715    /// `::first-line`.
5716    FirstLine,
5717    /// `::grammar-error`.
5718    GrammarError,
5719    /// `::marker`.
5720    Marker,
5721    /// `::picker(select)`.
5722    PickerSelect,
5723    /// `::picker-icon`.
5724    PickerIcon,
5725    /// `::placeholder`.
5726    Placeholder,
5727    /// `::selection`.
5728    Selection,
5729    /// `::spelling-error`.
5730    SpellingError,
5731    /// `::target-text`.
5732    TargetText,
5733    /// `::view-transition`.
5734    ViewTransition,
5735}
5736
5737impl PseudoElement {
5738    /// The name without its colons.
5739    #[must_use]
5740    pub fn name(self) -> &'static str {
5741        match self {
5742            Self::After => "after",
5743            Self::Backdrop => "backdrop",
5744            Self::Before => "before",
5745            Self::Checkmark => "checkmark",
5746            Self::Cue => "cue",
5747            Self::DetailsContent => "details-content",
5748            Self::FileSelectorButton => "file-selector-button",
5749            Self::FirstLetter => "first-letter",
5750            Self::FirstLine => "first-line",
5751            Self::GrammarError => "grammar-error",
5752            Self::Marker => "marker",
5753            Self::PickerSelect => "picker(select)",
5754            Self::PickerIcon => "picker-icon",
5755            Self::Placeholder => "placeholder",
5756            Self::Selection => "selection",
5757            Self::SpellingError => "spelling-error",
5758            Self::TargetText => "target-text",
5759            Self::ViewTransition => "view-transition",
5760        }
5761    }
5762}
5763