css_ast/values/overflow/
mod.rs

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