Skip to main content

css_ast/values/overflow/
mod.rs

1// AUTO-GENERATED from w3c/csswg-drafts
2// Commit: https://github.com/w3c/csswg-drafts/commit/40527902c4d0840cdb7a808c8cd42302be1c3bc8
3// Do not edit this file directly.
4#![allow(warnings)]
5//! https://drafts.csswg.org/css-overflow-5/
6
7mod impls;
8use super::prelude::*;
9use impls::*;
10/// Represents the style value for `-webkit-line-clamp` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#-webkit-line-clamp).
11///
12/// The grammar is defined as:
13///
14/// ```text,ignore
15/// none | <integer [1,∞]>
16/// ```
17///
18/// https://drafts.csswg.org/css-overflow-5/#-webkit-line-clamp
19#[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/// Represents the style value for `block-ellipsis` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#block-ellipsis).
39///
40/// The grammar is defined as:
41///
42/// ```text,ignore
43/// no-ellipsis | ellipsis | <string>
44/// ```
45///
46/// https://drafts.csswg.org/css-overflow-5/#block-ellipsis
47#[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/// Represents the style value for `continue` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#continue).
67///
68/// The grammar is defined as:
69///
70/// ```text,ignore
71/// normal | discard | collapse
72/// ```
73///
74/// https://drafts.csswg.org/css-overflow-5/#continue
75#[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/// Represents the style value for `line-clamp` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#line-clamp).
94///
95/// The line-clamp CSS property limits the text in a block container to a certain number of lines. The prefixed -webkit-line-clamp is widely supported but only works with -webkit-box-orient: vertical in combination with display: -webkit-box or display: -webkit-inline-box.
96///
97/// The grammar is defined as:
98///
99/// ```text,ignore
100/// none | [<'max-lines'> || <'block-ellipsis'>] -webkit-legacy?
101/// ```
102///
103/// https://drafts.csswg.org/css-overflow-5/#line-clamp
104#[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/// Represents the style value for `max-lines` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#max-lines).
124///
125/// The grammar is defined as:
126///
127/// ```text,ignore
128/// auto || <integer [1,∞]>
129/// ```
130///
131/// https://drafts.csswg.org/css-overflow-5/#max-lines
132#[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/// Represents the style value for `overflow` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow).
151///
152/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
153///
154/// The grammar is defined as:
155///
156/// ```text,ignore
157/// <'overflow-block'>{1,2}
158/// ```
159///
160/// https://drafts.csswg.org/css-overflow-5/#overflow
161#[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/// Represents the style value for `overflow-block` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-block).
182///
183/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
184///
185/// The grammar is defined as:
186///
187/// ```text,ignore
188/// visible | hidden | clip | scroll | auto
189/// ```
190///
191/// https://drafts.csswg.org/css-overflow-5/#overflow-block
192#[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/// Represents the style value for `overflow-clip-margin` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin).
213///
214/// The overflow-clip-margin CSS property sets how far overflow content may appear outside the bounds of an element before it's clipped by effects such as overflow: clip.
215///
216/// The grammar is defined as:
217///
218/// ```text,ignore
219/// <visual-box> || <length>
220/// ```
221///
222/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin
223#[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/// Represents the style value for `overflow-clip-margin-block` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block).
243///
244/// The grammar is defined as:
245///
246/// ```text,ignore
247/// <visual-box> || <length>
248/// ```
249///
250/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block
251#[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/// Represents the style value for `overflow-clip-margin-block-end` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-end).
276///
277/// The grammar is defined as:
278///
279/// ```text,ignore
280/// <visual-box> || <length>
281/// ```
282///
283/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-end
284#[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/// Represents the style value for `overflow-clip-margin-block-start` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-start).
310///
311/// The grammar is defined as:
312///
313/// ```text,ignore
314/// <visual-box> || <length>
315/// ```
316///
317/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-start
318#[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/// Represents the style value for `overflow-clip-margin-bottom` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-bottom).
344///
345/// The grammar is defined as:
346///
347/// ```text,ignore
348/// <visual-box> || <length>
349/// ```
350///
351/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-bottom
352#[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/// Represents the style value for `overflow-clip-margin-inline` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline).
378///
379/// The grammar is defined as:
380///
381/// ```text,ignore
382/// <visual-box> || <length>
383/// ```
384///
385/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline
386#[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/// Represents the style value for `overflow-clip-margin-inline-end` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-end).
411///
412/// The grammar is defined as:
413///
414/// ```text,ignore
415/// <visual-box> || <length>
416/// ```
417///
418/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-end
419#[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/// Represents the style value for `overflow-clip-margin-inline-start` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-start).
445///
446/// The grammar is defined as:
447///
448/// ```text,ignore
449/// <visual-box> || <length>
450/// ```
451///
452/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-start
453#[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/// Represents the style value for `overflow-clip-margin-left` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-left).
479///
480/// The grammar is defined as:
481///
482/// ```text,ignore
483/// <visual-box> || <length>
484/// ```
485///
486/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-left
487#[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/// Represents the style value for `overflow-clip-margin-right` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-right).
509///
510/// The grammar is defined as:
511///
512/// ```text,ignore
513/// <visual-box> || <length>
514/// ```
515///
516/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-right
517#[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/// Represents the style value for `overflow-clip-margin-top` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-top).
543///
544/// The grammar is defined as:
545///
546/// ```text,ignore
547/// <visual-box> || <length>
548/// ```
549///
550/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-top
551#[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/// Represents the style value for `overflow-inline` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-inline).
573///
574/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
575///
576/// The grammar is defined as:
577///
578/// ```text,ignore
579/// visible | hidden | clip | scroll | auto
580/// ```
581///
582/// https://drafts.csswg.org/css-overflow-5/#overflow-inline
583#[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/// Represents the style value for `overflow-x` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-x).
604///
605/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
606///
607/// The grammar is defined as:
608///
609/// ```text,ignore
610/// visible | hidden | clip | scroll | auto
611/// ```
612///
613/// https://drafts.csswg.org/css-overflow-5/#overflow-x
614#[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/// Represents the style value for `overflow-y` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-y).
635///
636/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
637///
638/// The grammar is defined as:
639///
640/// ```text,ignore
641/// visible | hidden | clip | scroll | auto
642/// ```
643///
644/// https://drafts.csswg.org/css-overflow-5/#overflow-y
645#[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/// Represents the style value for `scroll-axis-lock` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-axis-lock).
666///
667/// The scroll-axis-lock property controls whether scrolling is locked to one dimension at a time or freely follows movement in two dimensions. By default, browsers may lock the scroll axis, ignoring minor perpendicular scrolling, when scrolling is nearly vertical or horizontal.
668///
669/// The grammar is defined as:
670///
671/// ```text,ignore
672/// auto | none
673/// ```
674///
675/// https://drafts.csswg.org/css-overflow-5/#scroll-axis-lock
676#[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/// Represents the style value for `scroll-behavior` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-behavior).
695///
696/// The scroll-behavior CSS property controls whether scrolling is smooth or snaps, for scroll actions not performed by the user such as those triggered by navigation.
697///
698/// The grammar is defined as:
699///
700/// ```text,ignore
701/// auto | smooth
702/// ```
703///
704/// https://drafts.csswg.org/css-overflow-5/#scroll-behavior
705#[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/// Represents the style value for `scroll-marker-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-marker-group).
723///
724/// A scroll marker scrolls a container to a scroll target. The ::scroll-marker CSS pseudo-element selects a scroll marker in a ::scroll-marker-group pseudo-element, generated before or after the scroll container. You can use them to navigate and style tables of contents, tab panels, and carousels.
725///
726/// The grammar is defined as:
727///
728/// ```text,ignore
729/// none | [ [ before | after ] || [ links | tabs ] ]
730/// ```
731///
732/// https://drafts.csswg.org/css-overflow-5/#scroll-marker-group
733#[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/// Represents the style value for `scroll-target-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-target-group).
752///
753/// The scroll-target-group CSS property sets the container where anchor links act as scroll markers. Using selectors such as :target-current, you can style elements when a target has scrolled into view. It's an alternative to the ::scroll-marker-group pseudo-element, which generates scroll markers.
754///
755/// The grammar is defined as:
756///
757/// ```text,ignore
758/// none | auto
759/// ```
760///
761/// https://drafts.csswg.org/css-overflow-5/#scroll-target-group
762#[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/// Represents the style value for `scrollbar-gutter` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter).
781///
782/// The scrollbar-gutter CSS property reserves space for the scrollbar, preventing unwanted layout changes as the scrollbar appears and disappears.
783///
784/// The grammar is defined as:
785///
786/// ```text,ignore
787/// auto | stable && both-edges?
788/// ```
789///
790/// https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter
791#[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/// Represents the style value for `text-overflow` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#text-overflow).
810///
811/// The text-overflow CSS property sets how hidden overflow content appears to users. The property can clip content, truncate content with an ellipsis (…), or truncate with a custom string.
812///
813/// The grammar is defined as:
814///
815/// ```text,ignore
816/// [ clip | ellipsis | <string> | fade | <fade()> ]{1,2}
817/// ```
818///
819/// https://drafts.csswg.org/css-overflow-5/#text-overflow
820#[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>;