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/27fd597de31a8c43234f99f58983e4af3d1f9282
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 | 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<'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/// 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<'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 | [<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<'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/// 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<'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#[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<'a>;
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<'a> {}
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a>;
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<'a> {}
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<'a> {}
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<'a> {}
663
664/// Represents the style value for `scroll-axis-lock` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-axis-lock).
665///
666/// The grammar is defined as:
667///
668/// ```text,ignore
669/// auto | none
670/// ```
671///
672/// https://drafts.csswg.org/css-overflow-5/#scroll-axis-lock
673#[syntax(" auto | none ")]
674#[derive(
675	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
676)]
677#[declaration_metadata(
678    initial = "auto",
679    applies_to = Unknown,
680    animation_type = Discrete,
681    property_group = Overflow,
682    computed_value_type = AsSpecified,
683    canonical_order = "per grammar",
684)]
685#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
686#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-axis-lock"))]
687#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
688#[derive(csskit_derives::NodeWithMetadata)]
689pub enum ScrollAxisLockStyleValue<'a> {}
690
691/// Represents the style value for `scroll-behavior` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-behavior).
692///
693/// 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.
694///
695/// The grammar is defined as:
696///
697/// ```text,ignore
698/// auto | smooth
699/// ```
700///
701/// https://drafts.csswg.org/css-overflow-5/#scroll-behavior
702#[syntax(" auto | smooth ")]
703#[derive(
704	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
705)]
706#[declaration_metadata(
707    initial = "auto",
708    applies_to = Unknown,
709    property_group = Overflow,
710    computed_value_type = AsSpecified,
711    canonical_order = "per grammar",
712)]
713#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
714#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-behavior"))]
715#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
716#[derive(csskit_derives::NodeWithMetadata)]
717pub enum ScrollBehaviorStyleValue<'a> {}
718
719/// Represents the style value for `scroll-marker-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-marker-group).
720///
721/// 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.
722///
723/// The grammar is defined as:
724///
725/// ```text,ignore
726/// none | [ [ before | after ] || [ links | tabs ] ]
727/// ```
728///
729/// https://drafts.csswg.org/css-overflow-5/#scroll-marker-group
730#[syntax(" none | [ [ before | after ] || [ links | tabs ] ] ")]
731#[derive(
732	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
733)]
734#[declaration_metadata(
735    initial = "none",
736    applies_to = Unknown,
737    animation_type = Discrete,
738    property_group = Overflow,
739    computed_value_type = Unknown,
740    canonical_order = "per grammar",
741)]
742#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
743#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-marker-group"))]
744#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
745#[derive(csskit_derives::NodeWithMetadata)]
746pub struct ScrollMarkerGroupStyleValue<'a>;
747
748/// Represents the style value for `scroll-target-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-target-group).
749///
750/// 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.
751///
752/// The grammar is defined as:
753///
754/// ```text,ignore
755/// none | auto
756/// ```
757///
758/// https://drafts.csswg.org/css-overflow-5/#scroll-target-group
759#[syntax(" none | auto ")]
760#[derive(
761	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
762)]
763#[declaration_metadata(
764    initial = "none",
765    applies_to = Elements,
766    animation_type = Discrete,
767    property_group = Overflow,
768    computed_value_type = AsSpecified,
769    canonical_order = "per grammar",
770)]
771#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
772#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-target-group"))]
773#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
774#[derive(csskit_derives::NodeWithMetadata)]
775pub enum ScrollTargetGroupStyleValue<'a> {}
776
777/// Represents the style value for `scrollbar-gutter` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter).
778///
779/// The scrollbar-gutter CSS property reserves space for the scrollbar, preventing unwanted layout changes as the scrollbar appears and disappears.
780///
781/// The grammar is defined as:
782///
783/// ```text,ignore
784/// auto | stable && both-edges?
785/// ```
786///
787/// https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter
788#[syntax(" auto | stable && both-edges? ")]
789#[derive(
790	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
791)]
792#[declaration_metadata(
793    initial = "auto",
794    applies_to = Unknown,
795    animation_type = Discrete,
796    property_group = Overflow,
797    computed_value_type = Unknown,
798    canonical_order = "per grammar",
799)]
800#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
801#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scrollbar-gutter"))]
802#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
803#[derive(csskit_derives::NodeWithMetadata)]
804pub struct ScrollbarGutterStyleValue<'a>;
805
806/// Represents the style value for `text-overflow` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#text-overflow).
807///
808/// 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.
809///
810/// The grammar is defined as:
811///
812/// ```text,ignore
813/// [ clip | ellipsis | <string> | fade | <fade()> ]{1,2}
814/// ```
815///
816/// https://drafts.csswg.org/css-overflow-5/#text-overflow
817#[syntax(" [ clip | ellipsis | <string> | fade | <fade()> ]{1,2} ")]
818#[derive(
819	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
820)]
821#[declaration_metadata(
822    initial = "clip",
823    applies_to = Block,
824    animation_type = ByComputedValue,
825    percentages = LineBox,
826    property_group = Overflow,
827    computed_value_type = AsSpecified,
828    canonical_order = "per grammar",
829)]
830#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
831#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-overflow"))]
832#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
833#[derive(csskit_derives::NodeWithMetadata)]
834pub struct TextOverflowStyleValue<'a>;