1#![allow(warnings)]
5mod impls;
8use super::prelude::*;
9use impls::*;
10#[syntax(" none | <integer [1,∞]> ")]
20#[derive(
21 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
22)]
23#[declaration_metadata(
24 initial = "none",
25 inherits = Unknown,
26 applies_to = Unknown,
27 animation_type = Unknown,
28 property_group = Overflow,
29 computed_value_type = Unknown,
30 canonical_order = "per grammar",
31)]
32#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
33#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.-webkit-line-clamp"))]
34#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
35#[derive(csskit_derives::NodeWithMetadata)]
36pub struct WebkitLineClampStyleValue<'a>;
37
38#[syntax(" no-ellipsis | ellipsis | <string> ")]
48#[derive(
49 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
50)]
51#[declaration_metadata(
52 initial = "no-ellipsis",
53 inherits,
54 applies_to = Block,
55 animation_type = Discrete,
56 property_group = Overflow,
57 computed_value_type = AsSpecified,
58 canonical_order = "per grammar",
59)]
60#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
61#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.block-ellipsis"))]
62#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
63#[derive(csskit_derives::NodeWithMetadata)]
64pub enum BlockEllipsisStyleValue<'a> {}
65
66#[syntax(" normal | discard | collapse ")]
76#[derive(
77 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
78)]
79#[declaration_metadata(
80 initial = "normal",
81 applies_to = Unknown,
82 animation_type = Discrete,
83 property_group = Overflow,
84 computed_value_type = Unknown,
85 canonical_order = "per grammar",
86)]
87#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
88#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.continue"))]
89#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
90#[derive(csskit_derives::NodeWithMetadata)]
91pub enum ContinueStyleValue<'a> {}
92
93#[syntax(" none | [<'max-lines'> || <'block-ellipsis'>] -webkit-legacy? ")]
105#[derive(
106 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
107)]
108#[declaration_metadata(
109 initial = "none",
110 inherits = Unknown,
111 applies_to = Unknown,
112 animation_type = Unknown,
113 property_group = Overflow,
114 computed_value_type = Unknown,
115 canonical_order = "per grammar",
116)]
117#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
118#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.line-clamp"))]
119#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
120#[derive(csskit_derives::NodeWithMetadata)]
121pub struct LineClampStyleValue<'a>;
122
123#[syntax(" auto || <integer [1,∞]> ")]
133#[derive(
134 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
135)]
136#[declaration_metadata(
137 initial = "auto",
138 applies_to = Unknown,
139 animation_type = ByComputedValue,
140 property_group = Overflow,
141 computed_value_type = Unknown,
142 canonical_order = "per grammar",
143)]
144#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
145#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.max-lines"))]
146#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
147#[derive(csskit_derives::NodeWithMetadata)]
148pub struct MaxLinesStyleValue<'a>;
149
150#[syntax(" <'overflow-block'>{1,2} ")]
162#[derive(
163 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
164)]
165#[declaration_metadata(
166 initial = "visible",
167 applies_to = Unknown,
168 animation_type = Discrete,
169 longhands = OverflowX|OverflowY,
170 property_group = Overflow,
171 computed_value_type = Unknown,
172 canonical_order = "per grammar",
173)]
174#[declaration_writes(repeat)]
175#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
176#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow"))]
177#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
178#[derive(csskit_derives::NodeWithMetadata)]
179pub struct OverflowStyleValue<'a>;
180
181#[syntax(" visible | hidden | clip | scroll | auto ")]
193#[derive(
194 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
195)]
196#[declaration_metadata(
197 initial = "visible",
198 applies_to = Unknown,
199 animation_type = Discrete,
200 property_group = Overflow,
201 computed_value_type = Unknown,
202 canonical_order = "per grammar",
203 logical_property_group = Overflow,
204 box_side = BlockStart|BlockEnd,
205)]
206#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
207#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-block"))]
208#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
209#[derive(csskit_derives::NodeWithMetadata)]
210pub enum OverflowBlockStyleValue<'a> {}
211
212#[syntax(" <visual-box> || <length> ")]
224#[derive(
225 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
226)]
227#[declaration_metadata(
228 initial = "0px",
229 applies_to = Unknown,
230 animation_type = Unknown,
231 percentages = Unknown,
232 property_group = Overflow,
233 computed_value_type = Unknown,
234 canonical_order = "per grammar",
235)]
236#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
237#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin"))]
238#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
239#[derive(csskit_derives::NodeWithMetadata)]
240pub struct OverflowClipMarginStyleValue<'a>;
241
242#[syntax(" <visual-box> || <length> ")]
252#[derive(
253 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
254)]
255#[declaration_metadata(
256 initial = "0px",
257 applies_to = Unknown,
258 animation_type = Unknown,
259 percentages = Unknown,
260 property_group = Overflow,
261 computed_value_type = Unknown,
262 canonical_order = "per grammar",
263 box_side = BlockStart|BlockEnd,
264)]
265#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
266#[cfg_attr(
267 feature = "css_feature_data",
268 derive(ToCSSFeature),
269 css_feature("css.properties.overflow-clip-margin-block")
270)]
271#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
272#[derive(csskit_derives::NodeWithMetadata)]
273pub struct OverflowClipMarginBlockStyleValue<'a>;
274
275#[syntax(" <visual-box> || <length> ")]
285#[derive(
286 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
287)]
288#[declaration_metadata(
289 initial = "0px",
290 applies_to = Unknown,
291 animation_type = Discrete,
292 percentages = Unknown,
293 property_group = Overflow,
294 computed_value_type = Unknown,
295 canonical_order = "per grammar",
296 logical_property_group = OverflowClipMargin,
297 box_side = BlockEnd,
298)]
299#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
300#[cfg_attr(
301 feature = "css_feature_data",
302 derive(ToCSSFeature),
303 css_feature("css.properties.overflow-clip-margin-block-end")
304)]
305#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
306#[derive(csskit_derives::NodeWithMetadata)]
307pub struct OverflowClipMarginBlockEndStyleValue<'a>;
308
309#[syntax(" <visual-box> || <length> ")]
319#[derive(
320 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
321)]
322#[declaration_metadata(
323 initial = "0px",
324 applies_to = Unknown,
325 animation_type = Discrete,
326 percentages = Unknown,
327 property_group = Overflow,
328 computed_value_type = Unknown,
329 canonical_order = "per grammar",
330 logical_property_group = OverflowClipMargin,
331 box_side = BlockStart,
332)]
333#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
334#[cfg_attr(
335 feature = "css_feature_data",
336 derive(ToCSSFeature),
337 css_feature("css.properties.overflow-clip-margin-block-start")
338)]
339#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
340#[derive(csskit_derives::NodeWithMetadata)]
341pub struct OverflowClipMarginBlockStartStyleValue<'a>;
342
343#[syntax(" <visual-box> || <length> ")]
353#[derive(
354 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
355)]
356#[declaration_metadata(
357 initial = "0px",
358 applies_to = Unknown,
359 animation_type = Discrete,
360 percentages = Unknown,
361 property_group = Overflow,
362 computed_value_type = Unknown,
363 canonical_order = "per grammar",
364 logical_property_group = OverflowClipMargin,
365 box_side = Bottom,
366)]
367#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
368#[cfg_attr(
369 feature = "css_feature_data",
370 derive(ToCSSFeature),
371 css_feature("css.properties.overflow-clip-margin-bottom")
372)]
373#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
374#[derive(csskit_derives::NodeWithMetadata)]
375pub struct OverflowClipMarginBottomStyleValue<'a>;
376
377#[syntax(" <visual-box> || <length> ")]
387#[derive(
388 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
389)]
390#[declaration_metadata(
391 initial = "0px",
392 applies_to = Unknown,
393 animation_type = Unknown,
394 percentages = Unknown,
395 property_group = Overflow,
396 computed_value_type = Unknown,
397 canonical_order = "per grammar",
398 box_side = InlineStart|InlineEnd,
399)]
400#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
401#[cfg_attr(
402 feature = "css_feature_data",
403 derive(ToCSSFeature),
404 css_feature("css.properties.overflow-clip-margin-inline")
405)]
406#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
407#[derive(csskit_derives::NodeWithMetadata)]
408pub struct OverflowClipMarginInlineStyleValue<'a>;
409
410#[syntax(" <visual-box> || <length> ")]
420#[derive(
421 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
422)]
423#[declaration_metadata(
424 initial = "0px",
425 applies_to = Unknown,
426 animation_type = Discrete,
427 percentages = Unknown,
428 property_group = Overflow,
429 computed_value_type = Unknown,
430 canonical_order = "per grammar",
431 logical_property_group = OverflowClipMargin,
432 box_side = InlineEnd,
433)]
434#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
435#[cfg_attr(
436 feature = "css_feature_data",
437 derive(ToCSSFeature),
438 css_feature("css.properties.overflow-clip-margin-inline-end")
439)]
440#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
441#[derive(csskit_derives::NodeWithMetadata)]
442pub struct OverflowClipMarginInlineEndStyleValue<'a>;
443
444#[syntax(" <visual-box> || <length> ")]
454#[derive(
455 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
456)]
457#[declaration_metadata(
458 initial = "0px",
459 applies_to = Unknown,
460 animation_type = Discrete,
461 percentages = Unknown,
462 property_group = Overflow,
463 computed_value_type = Unknown,
464 canonical_order = "per grammar",
465 logical_property_group = OverflowClipMargin,
466 box_side = InlineStart,
467)]
468#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
469#[cfg_attr(
470 feature = "css_feature_data",
471 derive(ToCSSFeature),
472 css_feature("css.properties.overflow-clip-margin-inline-start")
473)]
474#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
475#[derive(csskit_derives::NodeWithMetadata)]
476pub struct OverflowClipMarginInlineStartStyleValue<'a>;
477
478#[syntax(" <visual-box> || <length> ")]
488#[derive(
489 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
490)]
491#[declaration_metadata(
492 initial = "0px",
493 applies_to = Unknown,
494 animation_type = Discrete,
495 percentages = Unknown,
496 property_group = Overflow,
497 computed_value_type = Unknown,
498 canonical_order = "per grammar",
499 logical_property_group = OverflowClipMargin,
500 box_side = Left,
501)]
502#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
503#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-left"))]
504#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
505#[derive(csskit_derives::NodeWithMetadata)]
506pub struct OverflowClipMarginLeftStyleValue<'a>;
507
508#[syntax(" <visual-box> || <length> ")]
518#[derive(
519 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
520)]
521#[declaration_metadata(
522 initial = "0px",
523 applies_to = Unknown,
524 animation_type = Discrete,
525 percentages = Unknown,
526 property_group = Overflow,
527 computed_value_type = Unknown,
528 canonical_order = "per grammar",
529 logical_property_group = OverflowClipMargin,
530 box_side = Right,
531)]
532#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
533#[cfg_attr(
534 feature = "css_feature_data",
535 derive(ToCSSFeature),
536 css_feature("css.properties.overflow-clip-margin-right")
537)]
538#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
539#[derive(csskit_derives::NodeWithMetadata)]
540pub struct OverflowClipMarginRightStyleValue<'a>;
541
542#[syntax(" <visual-box> || <length> ")]
552#[derive(
553 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
554)]
555#[declaration_metadata(
556 initial = "0px",
557 applies_to = Unknown,
558 animation_type = Discrete,
559 percentages = Unknown,
560 property_group = Overflow,
561 computed_value_type = Unknown,
562 canonical_order = "per grammar",
563 logical_property_group = OverflowClipMargin,
564 box_side = Top,
565)]
566#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
567#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-top"))]
568#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
569#[derive(csskit_derives::NodeWithMetadata)]
570pub struct OverflowClipMarginTopStyleValue<'a>;
571
572#[syntax(" visible | hidden | clip | scroll | auto ")]
584#[derive(
585 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
586)]
587#[declaration_metadata(
588 initial = "visible",
589 applies_to = Unknown,
590 animation_type = Discrete,
591 property_group = Overflow,
592 computed_value_type = Unknown,
593 canonical_order = "per grammar",
594 logical_property_group = Overflow,
595 box_side = InlineStart|InlineEnd,
596)]
597#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
598#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-inline"))]
599#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
600#[derive(csskit_derives::NodeWithMetadata)]
601pub enum OverflowInlineStyleValue<'a> {}
602
603#[syntax(" visible | hidden | clip | scroll | auto ")]
615#[derive(
616 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
617)]
618#[declaration_metadata(
619 initial = "visible",
620 applies_to = Unknown,
621 animation_type = Discrete,
622 shorthands = Overflow,
623 property_group = Overflow,
624 computed_value_type = Unknown,
625 canonical_order = "per grammar",
626 logical_property_group = Overflow,
627)]
628#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
629#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-x"))]
630#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
631#[derive(csskit_derives::NodeWithMetadata)]
632pub enum OverflowXStyleValue<'a> {}
633
634#[syntax(" visible | hidden | clip | scroll | auto ")]
646#[derive(
647 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
648)]
649#[declaration_metadata(
650 initial = "visible",
651 applies_to = Unknown,
652 animation_type = Discrete,
653 shorthands = Overflow,
654 property_group = Overflow,
655 computed_value_type = Unknown,
656 canonical_order = "per grammar",
657 logical_property_group = Overflow,
658)]
659#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
660#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-y"))]
661#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
662#[derive(csskit_derives::NodeWithMetadata)]
663pub enum OverflowYStyleValue<'a> {}
664
665#[syntax(" auto | none ")]
677#[derive(
678 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
679)]
680#[declaration_metadata(
681 initial = "auto",
682 applies_to = Unknown,
683 animation_type = Discrete,
684 property_group = Overflow,
685 computed_value_type = AsSpecified,
686 canonical_order = "per grammar",
687)]
688#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
689#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-axis-lock"))]
690#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
691#[derive(csskit_derives::NodeWithMetadata)]
692pub enum ScrollAxisLockStyleValue<'a> {}
693
694#[syntax(" auto | smooth ")]
706#[derive(
707 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
708)]
709#[declaration_metadata(
710 initial = "auto",
711 applies_to = Unknown,
712 property_group = Overflow,
713 computed_value_type = AsSpecified,
714 canonical_order = "per grammar",
715)]
716#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
717#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-behavior"))]
718#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
719#[derive(csskit_derives::NodeWithMetadata)]
720pub enum ScrollBehaviorStyleValue<'a> {}
721
722#[syntax(" none | [ [ before | after ] || [ links | tabs ] ] ")]
734#[derive(
735 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
736)]
737#[declaration_metadata(
738 initial = "none",
739 applies_to = Unknown,
740 animation_type = Discrete,
741 property_group = Overflow,
742 computed_value_type = Unknown,
743 canonical_order = "per grammar",
744)]
745#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
746#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-marker-group"))]
747#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
748#[derive(csskit_derives::NodeWithMetadata)]
749pub struct ScrollMarkerGroupStyleValue<'a>;
750
751#[syntax(" none | auto ")]
763#[derive(
764 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
765)]
766#[declaration_metadata(
767 initial = "none",
768 applies_to = Elements,
769 animation_type = Discrete,
770 property_group = Overflow,
771 computed_value_type = AsSpecified,
772 canonical_order = "per grammar",
773)]
774#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
775#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-target-group"))]
776#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
777#[derive(csskit_derives::NodeWithMetadata)]
778pub enum ScrollTargetGroupStyleValue<'a> {}
779
780#[syntax(" auto | stable && both-edges? ")]
792#[derive(
793 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
794)]
795#[declaration_metadata(
796 initial = "auto",
797 applies_to = Unknown,
798 animation_type = Discrete,
799 property_group = Overflow,
800 computed_value_type = Unknown,
801 canonical_order = "per grammar",
802)]
803#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
804#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scrollbar-gutter"))]
805#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
806#[derive(csskit_derives::NodeWithMetadata)]
807pub struct ScrollbarGutterStyleValue<'a>;
808
809#[syntax(" [ clip | ellipsis | <string> | fade | <fade()> ]{1,2} ")]
821#[derive(
822 Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
823)]
824#[declaration_metadata(
825 initial = "clip",
826 applies_to = Block,
827 animation_type = ByComputedValue,
828 percentages = LineBox,
829 property_group = Overflow,
830 computed_value_type = AsSpecified,
831 canonical_order = "per grammar",
832)]
833#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
834#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-overflow"))]
835#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
836#[derive(csskit_derives::NodeWithMetadata)]
837pub struct TextOverflowStyleValue<'a>;