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/ddbceaa3cee88f134d557c3051c26fcb5554a535
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;
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 | auto | <string>
44/// ```
45///
46/// https://drafts.csswg.org/css-overflow-5/#block-ellipsis
47#[syntax(" no-ellipsis | auto | <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 {}
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/// auto | discard | collapse
72/// ```
73///
74/// https://drafts.csswg.org/css-overflow-5/#continue
75#[syntax(" auto | discard | collapse ")]
76#[derive(
77	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
78)]
79#[declaration_metadata(
80    initial = "auto",
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 {}
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 | [<integer [1,∞]> || <'block-ellipsis'>] -webkit-legacy?
101/// ```
102///
103/// https://drafts.csswg.org/css-overflow-5/#line-clamp
104#[syntax(" none | [<integer [1,∞]> || <'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;
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/// none | <integer [1,∞]>
129/// ```
130///
131/// https://drafts.csswg.org/css-overflow-5/#max-lines
132#[syntax(" none | <integer [1,∞]> ")]
133#[derive(
134	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
135)]
136#[declaration_metadata(
137    initial = "none",
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;
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#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
175#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow"))]
176#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
177#[derive(csskit_derives::NodeWithMetadata)]
178pub struct OverflowStyleValue;
179
180/// Represents the style value for `overflow-block` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-block).
181///
182/// 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.
183///
184/// The grammar is defined as:
185///
186/// ```text,ignore
187/// visible | hidden | clip | scroll | auto
188/// ```
189///
190/// https://drafts.csswg.org/css-overflow-5/#overflow-block
191#[syntax(" visible | hidden | clip | scroll | auto ")]
192#[derive(
193	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
194)]
195#[declaration_metadata(
196    initial = "visible",
197    applies_to = Unknown,
198    animation_type = Discrete,
199    property_group = Overflow,
200    computed_value_type = Unknown,
201    canonical_order = "per grammar",
202    logical_property_group = Overflow,
203    box_side = BlockStart|BlockEnd,
204)]
205#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
206#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-block"))]
207#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
208#[derive(csskit_derives::NodeWithMetadata)]
209pub enum OverflowBlockStyleValue {}
210
211/// Represents the style value for `overflow-clip-margin` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin).
212///
213/// 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.
214///
215/// The grammar is defined as:
216///
217/// ```text,ignore
218/// <visual-box> || <length>
219/// ```
220///
221/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin
222#[syntax(" <visual-box> || <length> ")]
223#[derive(
224	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
225)]
226#[declaration_metadata(
227    initial = "0px",
228    applies_to = Unknown,
229    animation_type = Unknown,
230    percentages = Unknown,
231    property_group = Overflow,
232    computed_value_type = Unknown,
233    canonical_order = "per grammar",
234)]
235#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
236#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin"))]
237#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
238#[derive(csskit_derives::NodeWithMetadata)]
239pub struct OverflowClipMarginStyleValue;
240
241/// 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).
242///
243/// The grammar is defined as:
244///
245/// ```text,ignore
246/// <visual-box> || <length>
247/// ```
248///
249/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block
250#[syntax(" <visual-box> || <length> ")]
251#[derive(
252	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
253)]
254#[declaration_metadata(
255    initial = "0px",
256    applies_to = Unknown,
257    animation_type = Unknown,
258    percentages = Unknown,
259    property_group = Overflow,
260    computed_value_type = Unknown,
261    canonical_order = "per grammar",
262    box_side = BlockStart|BlockEnd,
263)]
264#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
265#[cfg_attr(
266	feature = "css_feature_data",
267	derive(ToCSSFeature),
268	css_feature("css.properties.overflow-clip-margin-block")
269)]
270#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
271#[derive(csskit_derives::NodeWithMetadata)]
272pub struct OverflowClipMarginBlockStyleValue;
273
274/// 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).
275///
276/// The grammar is defined as:
277///
278/// ```text,ignore
279/// <visual-box> || <length>
280/// ```
281///
282/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-end
283#[syntax(" <visual-box> || <length> ")]
284#[derive(
285	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
286)]
287#[declaration_metadata(
288    initial = "0px",
289    applies_to = Unknown,
290    animation_type = Discrete,
291    percentages = Unknown,
292    property_group = Overflow,
293    computed_value_type = Unknown,
294    canonical_order = "per grammar",
295    logical_property_group = OverflowClipMargin,
296    box_side = BlockEnd,
297)]
298#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
299#[cfg_attr(
300	feature = "css_feature_data",
301	derive(ToCSSFeature),
302	css_feature("css.properties.overflow-clip-margin-block-end")
303)]
304#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
305#[derive(csskit_derives::NodeWithMetadata)]
306pub struct OverflowClipMarginBlockEndStyleValue;
307
308/// 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).
309///
310/// The grammar is defined as:
311///
312/// ```text,ignore
313/// <visual-box> || <length>
314/// ```
315///
316/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-start
317#[syntax(" <visual-box> || <length> ")]
318#[derive(
319	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
320)]
321#[declaration_metadata(
322    initial = "0px",
323    applies_to = Unknown,
324    animation_type = Discrete,
325    percentages = Unknown,
326    property_group = Overflow,
327    computed_value_type = Unknown,
328    canonical_order = "per grammar",
329    logical_property_group = OverflowClipMargin,
330    box_side = BlockStart,
331)]
332#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
333#[cfg_attr(
334	feature = "css_feature_data",
335	derive(ToCSSFeature),
336	css_feature("css.properties.overflow-clip-margin-block-start")
337)]
338#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
339#[derive(csskit_derives::NodeWithMetadata)]
340pub struct OverflowClipMarginBlockStartStyleValue;
341
342/// 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).
343///
344/// The grammar is defined as:
345///
346/// ```text,ignore
347/// <visual-box> || <length>
348/// ```
349///
350/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-bottom
351#[syntax(" <visual-box> || <length> ")]
352#[derive(
353	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
354)]
355#[declaration_metadata(
356    initial = "0px",
357    applies_to = Unknown,
358    animation_type = Discrete,
359    percentages = Unknown,
360    property_group = Overflow,
361    computed_value_type = Unknown,
362    canonical_order = "per grammar",
363    logical_property_group = OverflowClipMargin,
364    box_side = Bottom,
365)]
366#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
367#[cfg_attr(
368	feature = "css_feature_data",
369	derive(ToCSSFeature),
370	css_feature("css.properties.overflow-clip-margin-bottom")
371)]
372#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
373#[derive(csskit_derives::NodeWithMetadata)]
374pub struct OverflowClipMarginBottomStyleValue;
375
376/// 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).
377///
378/// The grammar is defined as:
379///
380/// ```text,ignore
381/// <visual-box> || <length>
382/// ```
383///
384/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline
385#[syntax(" <visual-box> || <length> ")]
386#[derive(
387	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
388)]
389#[declaration_metadata(
390    initial = "0px",
391    applies_to = Unknown,
392    animation_type = Unknown,
393    percentages = Unknown,
394    property_group = Overflow,
395    computed_value_type = Unknown,
396    canonical_order = "per grammar",
397    box_side = InlineStart|InlineEnd,
398)]
399#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
400#[cfg_attr(
401	feature = "css_feature_data",
402	derive(ToCSSFeature),
403	css_feature("css.properties.overflow-clip-margin-inline")
404)]
405#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
406#[derive(csskit_derives::NodeWithMetadata)]
407pub struct OverflowClipMarginInlineStyleValue;
408
409/// 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).
410///
411/// The grammar is defined as:
412///
413/// ```text,ignore
414/// <visual-box> || <length>
415/// ```
416///
417/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-end
418#[syntax(" <visual-box> || <length> ")]
419#[derive(
420	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
421)]
422#[declaration_metadata(
423    initial = "0px",
424    applies_to = Unknown,
425    animation_type = Discrete,
426    percentages = Unknown,
427    property_group = Overflow,
428    computed_value_type = Unknown,
429    canonical_order = "per grammar",
430    logical_property_group = OverflowClipMargin,
431    box_side = InlineEnd,
432)]
433#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
434#[cfg_attr(
435	feature = "css_feature_data",
436	derive(ToCSSFeature),
437	css_feature("css.properties.overflow-clip-margin-inline-end")
438)]
439#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
440#[derive(csskit_derives::NodeWithMetadata)]
441pub struct OverflowClipMarginInlineEndStyleValue;
442
443/// 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).
444///
445/// The grammar is defined as:
446///
447/// ```text,ignore
448/// <visual-box> || <length>
449/// ```
450///
451/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-start
452#[syntax(" <visual-box> || <length> ")]
453#[derive(
454	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
455)]
456#[declaration_metadata(
457    initial = "0px",
458    applies_to = Unknown,
459    animation_type = Discrete,
460    percentages = Unknown,
461    property_group = Overflow,
462    computed_value_type = Unknown,
463    canonical_order = "per grammar",
464    logical_property_group = OverflowClipMargin,
465    box_side = InlineStart,
466)]
467#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
468#[cfg_attr(
469	feature = "css_feature_data",
470	derive(ToCSSFeature),
471	css_feature("css.properties.overflow-clip-margin-inline-start")
472)]
473#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
474#[derive(csskit_derives::NodeWithMetadata)]
475pub struct OverflowClipMarginInlineStartStyleValue;
476
477/// 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).
478///
479/// The grammar is defined as:
480///
481/// ```text,ignore
482/// <visual-box> || <length>
483/// ```
484///
485/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-left
486#[syntax(" <visual-box> || <length> ")]
487#[derive(
488	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
489)]
490#[declaration_metadata(
491    initial = "0px",
492    applies_to = Unknown,
493    animation_type = Discrete,
494    percentages = Unknown,
495    property_group = Overflow,
496    computed_value_type = Unknown,
497    canonical_order = "per grammar",
498    logical_property_group = OverflowClipMargin,
499    box_side = Left,
500)]
501#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
502#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-left"))]
503#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
504#[derive(csskit_derives::NodeWithMetadata)]
505pub struct OverflowClipMarginLeftStyleValue;
506
507/// 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).
508///
509/// The grammar is defined as:
510///
511/// ```text,ignore
512/// <visual-box> || <length>
513/// ```
514///
515/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-right
516#[syntax(" <visual-box> || <length> ")]
517#[derive(
518	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
519)]
520#[declaration_metadata(
521    initial = "0px",
522    applies_to = Unknown,
523    animation_type = Discrete,
524    percentages = Unknown,
525    property_group = Overflow,
526    computed_value_type = Unknown,
527    canonical_order = "per grammar",
528    logical_property_group = OverflowClipMargin,
529    box_side = Right,
530)]
531#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
532#[cfg_attr(
533	feature = "css_feature_data",
534	derive(ToCSSFeature),
535	css_feature("css.properties.overflow-clip-margin-right")
536)]
537#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
538#[derive(csskit_derives::NodeWithMetadata)]
539pub struct OverflowClipMarginRightStyleValue;
540
541/// 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).
542///
543/// The grammar is defined as:
544///
545/// ```text,ignore
546/// <visual-box> || <length>
547/// ```
548///
549/// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-top
550#[syntax(" <visual-box> || <length> ")]
551#[derive(
552	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
553)]
554#[declaration_metadata(
555    initial = "0px",
556    applies_to = Unknown,
557    animation_type = Discrete,
558    percentages = Unknown,
559    property_group = Overflow,
560    computed_value_type = Unknown,
561    canonical_order = "per grammar",
562    logical_property_group = OverflowClipMargin,
563    box_side = Top,
564)]
565#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
566#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-top"))]
567#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
568#[derive(csskit_derives::NodeWithMetadata)]
569pub struct OverflowClipMarginTopStyleValue;
570
571/// Represents the style value for `overflow-inline` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-inline).
572///
573/// 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.
574///
575/// The grammar is defined as:
576///
577/// ```text,ignore
578/// visible | hidden | clip | scroll | auto
579/// ```
580///
581/// https://drafts.csswg.org/css-overflow-5/#overflow-inline
582#[syntax(" visible | hidden | clip | scroll | auto ")]
583#[derive(
584	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
585)]
586#[declaration_metadata(
587    initial = "visible",
588    applies_to = Unknown,
589    animation_type = Discrete,
590    property_group = Overflow,
591    computed_value_type = Unknown,
592    canonical_order = "per grammar",
593    logical_property_group = Overflow,
594    box_side = InlineStart|InlineEnd,
595)]
596#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
597#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-inline"))]
598#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
599#[derive(csskit_derives::NodeWithMetadata)]
600pub enum OverflowInlineStyleValue {}
601
602/// Represents the style value for `overflow-x` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-x).
603///
604/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
605///
606/// The grammar is defined as:
607///
608/// ```text,ignore
609/// visible | hidden | clip | scroll | auto
610/// ```
611///
612/// https://drafts.csswg.org/css-overflow-5/#overflow-x
613#[syntax(" visible | hidden | clip | scroll | auto ")]
614#[derive(
615	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
616)]
617#[declaration_metadata(
618    initial = "visible",
619    applies_to = Unknown,
620    animation_type = Discrete,
621    shorthand_group = Overflow,
622    property_group = Overflow,
623    computed_value_type = Unknown,
624    canonical_order = "per grammar",
625    logical_property_group = Overflow,
626)]
627#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
628#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-x"))]
629#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
630#[derive(csskit_derives::NodeWithMetadata)]
631pub enum OverflowXStyleValue {}
632
633/// Represents the style value for `overflow-y` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-y).
634///
635/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
636///
637/// The grammar is defined as:
638///
639/// ```text,ignore
640/// visible | hidden | clip | scroll | auto
641/// ```
642///
643/// https://drafts.csswg.org/css-overflow-5/#overflow-y
644#[syntax(" visible | hidden | clip | scroll | auto ")]
645#[derive(
646	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
647)]
648#[declaration_metadata(
649    initial = "visible",
650    applies_to = Unknown,
651    animation_type = Discrete,
652    shorthand_group = Overflow,
653    property_group = Overflow,
654    computed_value_type = Unknown,
655    canonical_order = "per grammar",
656    logical_property_group = Overflow,
657)]
658#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
659#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-y"))]
660#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
661#[derive(csskit_derives::NodeWithMetadata)]
662pub enum OverflowYStyleValue {}
663
664/// Represents the style value for `scroll-behavior` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-behavior).
665///
666/// 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.
667///
668/// The grammar is defined as:
669///
670/// ```text,ignore
671/// auto | smooth
672/// ```
673///
674/// https://drafts.csswg.org/css-overflow-5/#scroll-behavior
675#[syntax(" auto | smooth ")]
676#[derive(
677	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
678)]
679#[declaration_metadata(
680    initial = "auto",
681    applies_to = Unknown,
682    property_group = Overflow,
683    computed_value_type = AsSpecified,
684    canonical_order = "per grammar",
685)]
686#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
687#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-behavior"))]
688#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
689#[derive(csskit_derives::NodeWithMetadata)]
690pub enum ScrollBehaviorStyleValue {}
691
692/// Represents the style value for `scroll-marker-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-marker-group).
693///
694/// 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.
695///
696/// The grammar is defined as:
697///
698/// ```text,ignore
699/// none | [ [ before | after ] || [ links | tabs ] ]
700/// ```
701///
702/// https://drafts.csswg.org/css-overflow-5/#scroll-marker-group
703#[syntax(" none | [ [ before | after ] || [ links | tabs ] ] ")]
704#[derive(
705	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
706)]
707#[declaration_metadata(
708    initial = "none",
709    applies_to = Unknown,
710    animation_type = Discrete,
711    property_group = Overflow,
712    computed_value_type = Unknown,
713    canonical_order = "per grammar",
714)]
715#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
716#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-marker-group"))]
717#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
718#[derive(csskit_derives::NodeWithMetadata)]
719pub enum ScrollMarkerGroupStyleValue {}
720
721/// Represents the style value for `scroll-target-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-target-group).
722///
723/// 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.
724///
725/// The grammar is defined as:
726///
727/// ```text,ignore
728/// none | auto
729/// ```
730///
731/// https://drafts.csswg.org/css-overflow-5/#scroll-target-group
732#[syntax(" none | auto ")]
733#[derive(
734	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
735)]
736#[declaration_metadata(
737    initial = "none",
738    applies_to = Elements,
739    animation_type = Discrete,
740    property_group = Overflow,
741    computed_value_type = AsSpecified,
742    canonical_order = "per grammar",
743)]
744#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
745#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-target-group"))]
746#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
747#[derive(csskit_derives::NodeWithMetadata)]
748pub enum ScrollTargetGroupStyleValue {}
749
750/// Represents the style value for `scrollbar-gutter` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter).
751///
752/// The scrollbar-gutter CSS property reserves space for the scrollbar, preventing unwanted layout changes as the scrollbar appears and disappears.
753///
754/// The grammar is defined as:
755///
756/// ```text,ignore
757/// auto | stable && both-edges?
758/// ```
759///
760/// https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter
761#[syntax(" auto | stable && both-edges? ")]
762#[derive(
763	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
764)]
765#[declaration_metadata(
766    initial = "auto",
767    applies_to = Unknown,
768    animation_type = Discrete,
769    property_group = Overflow,
770    computed_value_type = Unknown,
771    canonical_order = "per grammar",
772)]
773#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
774#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scrollbar-gutter"))]
775#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
776#[derive(csskit_derives::NodeWithMetadata)]
777pub struct ScrollbarGutterStyleValue;
778
779/// Represents the style value for `text-overflow` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#text-overflow).
780///
781/// 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.
782///
783/// The grammar is defined as:
784///
785/// ```text,ignore
786/// [ clip | ellipsis | <string> | fade | <fade()> ]{1,2}
787/// ```
788///
789/// https://drafts.csswg.org/css-overflow-5/#text-overflow
790#[syntax(" [ clip | ellipsis | <string> | fade | <fade()> ]{1,2} ")]
791#[derive(
792	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
793)]
794#[declaration_metadata(
795    initial = "clip",
796    applies_to = Block,
797    animation_type = ByComputedValue,
798    percentages = LineBox,
799    property_group = Overflow,
800    computed_value_type = AsSpecified,
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.text-overflow"))]
805#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
806#[derive(csskit_derives::NodeWithMetadata)]
807pub struct TextOverflowStyleValue;