1#![allow(warnings)]
2mod impls;
6use impls::*;
7
8#[syntax(" visible | hidden | clip | scroll | auto ")]
20#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21#[style_value(
22 initial = "visible",
23 applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
24 inherited = "no",
25 percentages = "n/a",
26 canonical_order = "per grammar",
27 animation_type = "discrete"
28)]
29#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
30#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-x"))]
31#[visit]
32pub enum OverflowXStyleValue {}
33
34#[syntax(" visible | hidden | clip | scroll | auto ")]
46#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
47#[style_value(
48 initial = "visible",
49 applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
50 inherited = "no",
51 percentages = "n/a",
52 canonical_order = "per grammar",
53 animation_type = "discrete"
54)]
55#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
56#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-y"))]
57#[visit]
58pub enum OverflowYStyleValue {}
59
60#[syntax(" visible | hidden | clip | scroll | auto ")]
72#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
73#[style_value(
74 initial = "visible",
75 applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
76 inherited = "no",
77 percentages = "n/a",
78 canonical_order = "per grammar",
79 animation_type = "discrete"
80)]
81#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
82#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-block"))]
83#[visit]
84pub enum OverflowBlockStyleValue {}
85
86#[syntax(" visible | hidden | clip | scroll | auto ")]
98#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
99#[style_value(
100 initial = "visible",
101 applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
102 inherited = "no",
103 percentages = "n/a",
104 canonical_order = "per grammar",
105 animation_type = "discrete"
106)]
107#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
108#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-inline"))]
109#[visit]
110pub enum OverflowInlineStyleValue {}
111
112#[syntax(" <'overflow-block'>{1,2} ")]
124#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
125#[style_value(
126 initial = "visible",
127 applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], and grid containers [CSS3-GRID-LAYOUT]",
128 inherited = "no",
129 percentages = "n/a",
130 canonical_order = "per grammar",
131 animation_type = "discrete"
132)]
133#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
134#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow"))]
135#[visit]
136pub struct OverflowStyleValue;
137
138#[syntax(" <visual-box> || <length [0,∞]> ")]
150#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
151#[style_value(
152 initial = "0px",
153 applies_to = "boxes to which overflow applies",
154 inherited = "no",
155 percentages = "see individual properties",
156 canonical_order = "per grammar",
157 animation_type = "see individual properties"
158)]
159#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
160#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin"))]
161#[visit]
162pub struct OverflowClipMarginStyleValue;
163
164#[syntax(" auto | smooth ")]
176#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
177#[style_value(
178 initial = "auto",
179 applies_to = "scroll containers",
180 inherited = "no",
181 percentages = "n/a",
182 canonical_order = "per grammar",
183 animation_type = "not animatable"
184)]
185#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
186#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-behavior"))]
187#[visit]
188pub enum ScrollBehaviorStyleValue {}
189
190#[syntax(" <visual-box> || <length [0,∞]> ")]
252#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
253#[style_value(
254 initial = "0px",
255 applies_to = "boxes to which overflow applies",
256 inherited = "no",
257 percentages = "see individual properties",
258 canonical_order = "per grammar",
259 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
260)]
261#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
262#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-top"))]
263#[visit]
264pub struct OverflowClipMarginTopStyleValue;
265
266#[syntax(" <visual-box> || <length [0,∞]> ")]
276#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
277#[style_value(
278 initial = "0px",
279 applies_to = "boxes to which overflow applies",
280 inherited = "no",
281 percentages = "see individual properties",
282 canonical_order = "per grammar",
283 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
284)]
285#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
286#[cfg_attr(
287 feature = "css_feature_data",
288 derive(ToCSSFeature),
289 css_feature("css.properties.overflow-clip-margin-right")
290)]
291#[visit]
292pub struct OverflowClipMarginRightStyleValue;
293
294#[syntax(" <visual-box> || <length [0,∞]> ")]
304#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
305#[style_value(
306 initial = "0px",
307 applies_to = "boxes to which overflow applies",
308 inherited = "no",
309 percentages = "see individual properties",
310 canonical_order = "per grammar",
311 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
312)]
313#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
314#[cfg_attr(
315 feature = "css_feature_data",
316 derive(ToCSSFeature),
317 css_feature("css.properties.overflow-clip-margin-bottom")
318)]
319#[visit]
320pub struct OverflowClipMarginBottomStyleValue;
321
322#[syntax(" <visual-box> || <length [0,∞]> ")]
332#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
333#[style_value(
334 initial = "0px",
335 applies_to = "boxes to which overflow applies",
336 inherited = "no",
337 percentages = "see individual properties",
338 canonical_order = "per grammar",
339 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
340)]
341#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
342#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-left"))]
343#[visit]
344pub struct OverflowClipMarginLeftStyleValue;
345
346#[syntax(" <visual-box> || <length [0,∞]> ")]
356#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
357#[style_value(
358 initial = "0px",
359 applies_to = "boxes to which overflow applies",
360 inherited = "no",
361 percentages = "see individual properties",
362 canonical_order = "per grammar",
363 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
364)]
365#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
366#[cfg_attr(
367 feature = "css_feature_data",
368 derive(ToCSSFeature),
369 css_feature("css.properties.overflow-clip-margin-block-start")
370)]
371#[visit]
372pub struct OverflowClipMarginBlockStartStyleValue;
373
374#[syntax(" <visual-box> || <length [0,∞]> ")]
384#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
385#[style_value(
386 initial = "0px",
387 applies_to = "boxes to which overflow applies",
388 inherited = "no",
389 percentages = "see individual properties",
390 canonical_order = "per grammar",
391 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
392)]
393#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
394#[cfg_attr(
395 feature = "css_feature_data",
396 derive(ToCSSFeature),
397 css_feature("css.properties.overflow-clip-margin-inline-start")
398)]
399#[visit]
400pub struct OverflowClipMarginInlineStartStyleValue;
401
402#[syntax(" <visual-box> || <length [0,∞]> ")]
412#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
413#[style_value(
414 initial = "0px",
415 applies_to = "boxes to which overflow applies",
416 inherited = "no",
417 percentages = "see individual properties",
418 canonical_order = "per grammar",
419 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
420)]
421#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
422#[cfg_attr(
423 feature = "css_feature_data",
424 derive(ToCSSFeature),
425 css_feature("css.properties.overflow-clip-margin-block-end")
426)]
427#[visit]
428pub struct OverflowClipMarginBlockEndStyleValue;
429
430#[syntax(" <visual-box> || <length [0,∞]> ")]
440#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
441#[style_value(
442 initial = "0px",
443 applies_to = "boxes to which overflow applies",
444 inherited = "no",
445 percentages = "see individual properties",
446 canonical_order = "per grammar",
447 animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
448)]
449#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
450#[cfg_attr(
451 feature = "css_feature_data",
452 derive(ToCSSFeature),
453 css_feature("css.properties.overflow-clip-margin-inline-end")
454)]
455#[visit]
456pub struct OverflowClipMarginInlineEndStyleValue;
457
458#[syntax(" <visual-box> || <length [0,∞]> ")]
468#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
469#[style_value(
470 initial = "0px",
471 applies_to = "boxes to which overflow applies",
472 inherited = "no",
473 percentages = "see individual properties",
474 canonical_order = "per grammar",
475 animation_type = "see individual properties"
476)]
477#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
478#[cfg_attr(
479 feature = "css_feature_data",
480 derive(ToCSSFeature),
481 css_feature("css.properties.overflow-clip-margin-inline")
482)]
483#[visit]
484pub struct OverflowClipMarginInlineStyleValue;
485
486#[syntax(" <visual-box> || <length [0,∞]> ")]
496#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
497#[style_value(
498 initial = "0px",
499 applies_to = "boxes to which overflow applies",
500 inherited = "no",
501 percentages = "see individual properties",
502 canonical_order = "per grammar",
503 animation_type = "see individual properties"
504)]
505#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
506#[cfg_attr(
507 feature = "css_feature_data",
508 derive(ToCSSFeature),
509 css_feature("css.properties.overflow-clip-margin-block")
510)]
511#[visit]
512pub struct OverflowClipMarginBlockStyleValue;
513
514#[syntax(" no-ellipsis | auto | <string> ")]
524#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
525#[style_value(
526 initial = "no-ellipsis",
527 applies_to = "block containers",
528 inherited = "yes",
529 percentages = "n/a",
530 canonical_order = "per grammar",
531 animation_type = "discrete"
532)]
533#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
534#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.block-ellipsis"))]
535#[visit]
536pub enum BlockEllipsisStyleValue {}
537
538#[syntax(" none | <integer [1,∞]> ")]
574#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
575#[style_value(
576 initial = "none",
577 applies_to = "see individual properties",
578 inherited = "see individual properties",
579 percentages = "n/a",
580 canonical_order = "per grammar",
581 animation_type = "see individual properties"
582)]
583#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
584#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.-webkit-line-clamp"))]
585#[visit]
586pub struct WebkitLineClampStyleValue;
587
588#[syntax(" none | <integer [1,∞]> ")]
598#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
599#[style_value(
600 initial = "none",
601 applies_to = "block containers which are also either fragmentation containers that capture region breaks or line-clamp containers",
602 inherited = "no",
603 percentages = "n/a",
604 canonical_order = "per grammar",
605 animation_type = "by computed value type"
606)]
607#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
608#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.max-lines"))]
609#[visit]
610pub struct MaxLinesStyleValue;
611
612#[syntax(" auto | discard | collapse ")]
622#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
623#[style_value(
624 initial = "auto",
625 applies_to = "block containers and multicol containers",
626 inherited = "no",
627 percentages = "n/a",
628 canonical_order = "per grammar",
629 animation_type = "discrete"
630)]
631#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
632#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.continue"))]
633#[visit]
634pub enum ContinueStyleValue {}
635
636#[syntax(" none | auto ")]
646#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
647#[style_value(
648 initial = "none",
649 applies_to = "all elements",
650 inherited = "no",
651 percentages = "n/a",
652 canonical_order = "per grammar",
653 animation_type = "discrete"
654)]
655#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
656#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-target-group"))]
657#[visit]
658pub enum ScrollTargetGroupStyleValue {}
659
660#[syntax(" none | before | after ")]
672#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
673#[style_value(
674 initial = "none",
675 applies_to = "scroll containers",
676 inherited = "no",
677 percentages = "n/a",
678 canonical_order = "per grammar",
679 animation_type = "discrete"
680)]
681#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
682#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-marker-group"))]
683#[visit]
684pub enum ScrollMarkerGroupStyleValue {}