css_ast/values/overflow/
mod.rs

1#![allow(warnings)]
2//! CSS Overflow Module Level 5
3//! https://drafts.csswg.org/css-overflow-5/
4
5mod impls;
6use impls::*;
7
8/// Represents the style value for `overflow-x` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-x).
9///
10/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
11///
12/// The grammar is defined as:
13///
14/// ```text,ignore
15/// visible | hidden | clip | scroll | auto
16/// ```
17///
18// https://drafts.csswg.org/css-overflow-5/#overflow-x
19#[syntax(" visible | hidden | clip | scroll | auto ")]
20#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21#[style_value(
22	initial = "visible",
23	applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
24	inherited = "no",
25	percentages = "n/a",
26	canonical_order = "per grammar",
27	animation_type = "discrete"
28)]
29#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
30#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-x"))]
31#[visit]
32pub enum OverflowXStyleValue {}
33
34/// Represents the style value for `overflow-y` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-y).
35///
36/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
37///
38/// The grammar is defined as:
39///
40/// ```text,ignore
41/// visible | hidden | clip | scroll | auto
42/// ```
43///
44// https://drafts.csswg.org/css-overflow-5/#overflow-y
45#[syntax(" visible | hidden | clip | scroll | auto ")]
46#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
47#[style_value(
48	initial = "visible",
49	applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
50	inherited = "no",
51	percentages = "n/a",
52	canonical_order = "per grammar",
53	animation_type = "discrete"
54)]
55#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
56#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-y"))]
57#[visit]
58pub enum OverflowYStyleValue {}
59
60/// Represents the style value for `overflow-block` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-block).
61///
62/// 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.
63///
64/// The grammar is defined as:
65///
66/// ```text,ignore
67/// visible | hidden | clip | scroll | auto
68/// ```
69///
70// https://drafts.csswg.org/css-overflow-5/#overflow-block
71#[syntax(" visible | hidden | clip | scroll | auto ")]
72#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
73#[style_value(
74	initial = "visible",
75	applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
76	inherited = "no",
77	percentages = "n/a",
78	canonical_order = "per grammar",
79	animation_type = "discrete"
80)]
81#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
82#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-block"))]
83#[visit]
84pub enum OverflowBlockStyleValue {}
85
86/// Represents the style value for `overflow-inline` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-inline).
87///
88/// 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.
89///
90/// The grammar is defined as:
91///
92/// ```text,ignore
93/// visible | hidden | clip | scroll | auto
94/// ```
95///
96// https://drafts.csswg.org/css-overflow-5/#overflow-inline
97#[syntax(" visible | hidden | clip | scroll | auto ")]
98#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
99#[style_value(
100	initial = "visible",
101	applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
102	inherited = "no",
103	percentages = "n/a",
104	canonical_order = "per grammar",
105	animation_type = "discrete"
106)]
107#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
108#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-inline"))]
109#[visit]
110pub enum OverflowInlineStyleValue {}
111
112/// Represents the style value for `overflow` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow).
113///
114/// The overflow CSS property sets the behavior for when content doesn't fit in an element.
115///
116/// The grammar is defined as:
117///
118/// ```text,ignore
119/// <'overflow-block'>{1,2}
120/// ```
121///
122// https://drafts.csswg.org/css-overflow-5/#overflow
123#[syntax(" <'overflow-block'>{1,2} ")]
124#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
125#[style_value(
126	initial = "visible",
127	applies_to = "block containers [CSS2], flex containers [CSS3-FLEXBOX], and grid containers [CSS3-GRID-LAYOUT]",
128	inherited = "no",
129	percentages = "n/a",
130	canonical_order = "per grammar",
131	animation_type = "discrete"
132)]
133#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
134#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow"))]
135#[visit]
136pub struct OverflowStyleValue;
137
138/// Represents the style value for `overflow-clip-margin` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin).
139///
140/// 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.
141///
142/// The grammar is defined as:
143///
144/// ```text,ignore
145/// <visual-box> || <length [0,∞]>
146/// ```
147///
148// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin
149#[syntax(" <visual-box> || <length [0,∞]> ")]
150#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
151#[style_value(
152	initial = "0px",
153	applies_to = "boxes to which overflow applies",
154	inherited = "no",
155	percentages = "see individual properties",
156	canonical_order = "per grammar",
157	animation_type = "see individual properties"
158)]
159#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
160#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin"))]
161#[visit]
162pub struct OverflowClipMarginStyleValue;
163
164/// Represents the style value for `scroll-behavior` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-behavior).
165///
166/// 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.
167///
168/// The grammar is defined as:
169///
170/// ```text,ignore
171/// auto | smooth
172/// ```
173///
174// https://drafts.csswg.org/css-overflow-5/#scroll-behavior
175#[syntax(" auto | smooth ")]
176#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
177#[style_value(
178	initial = "auto",
179	applies_to = "scroll containers",
180	inherited = "no",
181	percentages = "n/a",
182	canonical_order = "per grammar",
183	animation_type = "not animatable"
184)]
185#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
186#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-behavior"))]
187#[visit]
188pub enum ScrollBehaviorStyleValue {}
189
190// /// Represents the style value for `scrollbar-gutter` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter).
191// ///
192// /// The scrollbar-gutter CSS property reserves space for the scrollbar, preventing unwanted layout changes as the scrollbar appears and disappears.
193// ///
194// /// The grammar is defined as:
195// ///
196// /// ```text,ignore
197// /// auto | stable && both-edges?
198// /// ```
199// ///
200// // https://drafts.csswg.org/css-overflow-5/#scrollbar-gutter
201// #[syntax(" auto | stable && both-edges? ")]
202// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
203// #[style_value(
204// 	initial = "auto",
205//   applies_to = "scroll containers",
206// 	inherited = "no",
207// 	percentages = "n/a",
208// 	canonical_order = "per grammar",
209// 	animation_type = "discrete",
210// )]
211// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
212// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scrollbar-gutter"))]
213// #[visit]
214// pub enum ScrollbarGutterStyleValue {}
215
216// /// Represents the style value for `text-overflow` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#text-overflow).
217// ///
218// /// 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.
219// ///
220// /// The grammar is defined as:
221// ///
222// /// ```text,ignore
223// /// [ clip | ellipsis | <string> | fade | <fade()> ]{1,2}
224// /// ```
225// ///
226// // https://drafts.csswg.org/css-overflow-5/#text-overflow
227// #[syntax(" [ clip | ellipsis | <string> | fade | <fade()> ]{1,2} ")]
228// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
229// #[style_value(
230// 	initial = "clip",
231//   applies_to = "block containers",
232// 	inherited = "no",
233// 	percentages = "refer to the width of the line box",
234// 	canonical_order = "per grammar",
235// 	animation_type = "by computed value type",
236// )]
237// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
238// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.text-overflow"))]
239// #[visit]
240// pub struct TextOverflowStyleValue;
241
242/// 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).
243///
244/// The grammar is defined as:
245///
246/// ```text,ignore
247/// <visual-box> || <length [0,∞]>
248/// ```
249///
250// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-top
251#[syntax(" <visual-box> || <length [0,∞]> ")]
252#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
253#[style_value(
254	initial = "0px",
255	applies_to = "boxes to which overflow applies",
256	inherited = "no",
257	percentages = "see individual properties",
258	canonical_order = "per grammar",
259	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
260)]
261#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
262#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-top"))]
263#[visit]
264pub struct OverflowClipMarginTopStyleValue;
265
266/// 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).
267///
268/// The grammar is defined as:
269///
270/// ```text,ignore
271/// <visual-box> || <length [0,∞]>
272/// ```
273///
274// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-right
275#[syntax(" <visual-box> || <length [0,∞]> ")]
276#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
277#[style_value(
278	initial = "0px",
279	applies_to = "boxes to which overflow applies",
280	inherited = "no",
281	percentages = "see individual properties",
282	canonical_order = "per grammar",
283	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
284)]
285#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
286#[cfg_attr(
287	feature = "css_feature_data",
288	derive(ToCSSFeature),
289	css_feature("css.properties.overflow-clip-margin-right")
290)]
291#[visit]
292pub struct OverflowClipMarginRightStyleValue;
293
294/// 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).
295///
296/// The grammar is defined as:
297///
298/// ```text,ignore
299/// <visual-box> || <length [0,∞]>
300/// ```
301///
302// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-bottom
303#[syntax(" <visual-box> || <length [0,∞]> ")]
304#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
305#[style_value(
306	initial = "0px",
307	applies_to = "boxes to which overflow applies",
308	inherited = "no",
309	percentages = "see individual properties",
310	canonical_order = "per grammar",
311	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
312)]
313#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
314#[cfg_attr(
315	feature = "css_feature_data",
316	derive(ToCSSFeature),
317	css_feature("css.properties.overflow-clip-margin-bottom")
318)]
319#[visit]
320pub struct OverflowClipMarginBottomStyleValue;
321
322/// 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).
323///
324/// The grammar is defined as:
325///
326/// ```text,ignore
327/// <visual-box> || <length [0,∞]>
328/// ```
329///
330// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-left
331#[syntax(" <visual-box> || <length [0,∞]> ")]
332#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
333#[style_value(
334	initial = "0px",
335	applies_to = "boxes to which overflow applies",
336	inherited = "no",
337	percentages = "see individual properties",
338	canonical_order = "per grammar",
339	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
340)]
341#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
342#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.overflow-clip-margin-left"))]
343#[visit]
344pub struct OverflowClipMarginLeftStyleValue;
345
346/// 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).
347///
348/// The grammar is defined as:
349///
350/// ```text,ignore
351/// <visual-box> || <length [0,∞]>
352/// ```
353///
354// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-start
355#[syntax(" <visual-box> || <length [0,∞]> ")]
356#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
357#[style_value(
358	initial = "0px",
359	applies_to = "boxes to which overflow applies",
360	inherited = "no",
361	percentages = "see individual properties",
362	canonical_order = "per grammar",
363	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
364)]
365#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
366#[cfg_attr(
367	feature = "css_feature_data",
368	derive(ToCSSFeature),
369	css_feature("css.properties.overflow-clip-margin-block-start")
370)]
371#[visit]
372pub struct OverflowClipMarginBlockStartStyleValue;
373
374/// 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).
375///
376/// The grammar is defined as:
377///
378/// ```text,ignore
379/// <visual-box> || <length [0,∞]>
380/// ```
381///
382// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-start
383#[syntax(" <visual-box> || <length [0,∞]> ")]
384#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
385#[style_value(
386	initial = "0px",
387	applies_to = "boxes to which overflow applies",
388	inherited = "no",
389	percentages = "see individual properties",
390	canonical_order = "per grammar",
391	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
392)]
393#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
394#[cfg_attr(
395	feature = "css_feature_data",
396	derive(ToCSSFeature),
397	css_feature("css.properties.overflow-clip-margin-inline-start")
398)]
399#[visit]
400pub struct OverflowClipMarginInlineStartStyleValue;
401
402/// 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).
403///
404/// The grammar is defined as:
405///
406/// ```text,ignore
407/// <visual-box> || <length [0,∞]>
408/// ```
409///
410// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block-end
411#[syntax(" <visual-box> || <length [0,∞]> ")]
412#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
413#[style_value(
414	initial = "0px",
415	applies_to = "boxes to which overflow applies",
416	inherited = "no",
417	percentages = "see individual properties",
418	canonical_order = "per grammar",
419	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
420)]
421#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
422#[cfg_attr(
423	feature = "css_feature_data",
424	derive(ToCSSFeature),
425	css_feature("css.properties.overflow-clip-margin-block-end")
426)]
427#[visit]
428pub struct OverflowClipMarginBlockEndStyleValue;
429
430/// 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).
431///
432/// The grammar is defined as:
433///
434/// ```text,ignore
435/// <visual-box> || <length [0,∞]>
436/// ```
437///
438// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline-end
439#[syntax(" <visual-box> || <length [0,∞]> ")]
440#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
441#[style_value(
442	initial = "0px",
443	applies_to = "boxes to which overflow applies",
444	inherited = "no",
445	percentages = "see individual properties",
446	canonical_order = "per grammar",
447	animation_type = "per computed value if the <visual-box> values match; otherwise discrete"
448)]
449#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
450#[cfg_attr(
451	feature = "css_feature_data",
452	derive(ToCSSFeature),
453	css_feature("css.properties.overflow-clip-margin-inline-end")
454)]
455#[visit]
456pub struct OverflowClipMarginInlineEndStyleValue;
457
458/// 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).
459///
460/// The grammar is defined as:
461///
462/// ```text,ignore
463/// <visual-box> || <length [0,∞]>
464/// ```
465///
466// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-inline
467#[syntax(" <visual-box> || <length [0,∞]> ")]
468#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
469#[style_value(
470	initial = "0px",
471	applies_to = "boxes to which overflow applies",
472	inherited = "no",
473	percentages = "see individual properties",
474	canonical_order = "per grammar",
475	animation_type = "see individual properties"
476)]
477#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
478#[cfg_attr(
479	feature = "css_feature_data",
480	derive(ToCSSFeature),
481	css_feature("css.properties.overflow-clip-margin-inline")
482)]
483#[visit]
484pub struct OverflowClipMarginInlineStyleValue;
485
486/// 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).
487///
488/// The grammar is defined as:
489///
490/// ```text,ignore
491/// <visual-box> || <length [0,∞]>
492/// ```
493///
494// https://drafts.csswg.org/css-overflow-5/#overflow-clip-margin-block
495#[syntax(" <visual-box> || <length [0,∞]> ")]
496#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
497#[style_value(
498	initial = "0px",
499	applies_to = "boxes to which overflow applies",
500	inherited = "no",
501	percentages = "see individual properties",
502	canonical_order = "per grammar",
503	animation_type = "see individual properties"
504)]
505#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
506#[cfg_attr(
507	feature = "css_feature_data",
508	derive(ToCSSFeature),
509	css_feature("css.properties.overflow-clip-margin-block")
510)]
511#[visit]
512pub struct OverflowClipMarginBlockStyleValue;
513
514/// Represents the style value for `block-ellipsis` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#block-ellipsis).
515///
516/// The grammar is defined as:
517///
518/// ```text,ignore
519/// no-ellipsis | auto | <string>
520/// ```
521///
522// https://drafts.csswg.org/css-overflow-5/#block-ellipsis
523#[syntax(" no-ellipsis | auto | <string> ")]
524#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
525#[style_value(
526	initial = "no-ellipsis",
527	applies_to = "block containers",
528	inherited = "yes",
529	percentages = "n/a",
530	canonical_order = "per grammar",
531	animation_type = "discrete"
532)]
533#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
534#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.block-ellipsis"))]
535#[visit]
536pub enum BlockEllipsisStyleValue {}
537
538// /// Represents the style value for `line-clamp` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#line-clamp).
539// ///
540// /// 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.
541// ///
542// /// The grammar is defined as:
543// ///
544// /// ```text,ignore
545// /// none | [<integer [1,∞]> || <'block-ellipsis'>] -webkit-legacy?
546// /// ```
547// ///
548// // https://drafts.csswg.org/css-overflow-5/#line-clamp
549// #[syntax(" none | [<integer [1,∞]> || <'block-ellipsis'>] -webkit-legacy? ")]
550// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
551// #[style_value(
552// 	initial = "none",
553//   applies_to = "see individual properties",
554// 	inherited = "see individual properties",
555// 	percentages = "n/a",
556// 	canonical_order = "per grammar",
557// 	animation_type = "see individual properties",
558// )]
559// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
560// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.line-clamp"))]
561// #[visit]
562// pub enum LineClampStyleValue {}
563
564/// Represents the style value for `-webkit-line-clamp` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#-webkit-line-clamp).
565///
566/// The grammar is defined as:
567///
568/// ```text,ignore
569/// none | <integer [1,∞]>
570/// ```
571///
572// https://drafts.csswg.org/css-overflow-5/#-webkit-line-clamp
573#[syntax(" none | <integer [1,∞]> ")]
574#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
575#[style_value(
576	initial = "none",
577	applies_to = "see individual properties",
578	inherited = "see individual properties",
579	percentages = "n/a",
580	canonical_order = "per grammar",
581	animation_type = "see individual properties"
582)]
583#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
584#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.-webkit-line-clamp"))]
585#[visit]
586pub struct WebkitLineClampStyleValue;
587
588/// Represents the style value for `max-lines` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#max-lines).
589///
590/// The grammar is defined as:
591///
592/// ```text,ignore
593/// none | <integer [1,∞]>
594/// ```
595///
596// https://drafts.csswg.org/css-overflow-5/#max-lines
597#[syntax(" none | <integer [1,∞]> ")]
598#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
599#[style_value(
600	initial = "none",
601	applies_to = "block containers which are also either fragmentation containers that capture region breaks or line-clamp containers",
602	inherited = "no",
603	percentages = "n/a",
604	canonical_order = "per grammar",
605	animation_type = "by computed value type"
606)]
607#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
608#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.max-lines"))]
609#[visit]
610pub struct MaxLinesStyleValue;
611
612/// Represents the style value for `continue` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#continue).
613///
614/// The grammar is defined as:
615///
616/// ```text,ignore
617/// auto | discard | collapse
618/// ```
619///
620// https://drafts.csswg.org/css-overflow-5/#continue
621#[syntax(" auto | discard | collapse ")]
622#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
623#[style_value(
624	initial = "auto",
625	applies_to = "block containers and multicol containers",
626	inherited = "no",
627	percentages = "n/a",
628	canonical_order = "per grammar",
629	animation_type = "discrete"
630)]
631#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
632#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.continue"))]
633#[visit]
634pub enum ContinueStyleValue {}
635
636/// Represents the style value for `scroll-target-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-target-group).
637///
638/// The grammar is defined as:
639///
640/// ```text,ignore
641/// none | auto
642/// ```
643///
644// https://drafts.csswg.org/css-overflow-5/#scroll-target-group
645#[syntax(" none | auto ")]
646#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
647#[style_value(
648	initial = "none",
649	applies_to = "all elements",
650	inherited = "no",
651	percentages = "n/a",
652	canonical_order = "per grammar",
653	animation_type = "discrete"
654)]
655#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
656#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-target-group"))]
657#[visit]
658pub enum ScrollTargetGroupStyleValue {}
659
660/// Represents the style value for `scroll-marker-group` as defined in [css-overflow-5](https://drafts.csswg.org/css-overflow-5/#scroll-marker-group).
661///
662/// A scroll container can be navigated by activating ::scroll-marker pseudo-elements which appear in a generated ::scroll-marker-group pseudo-element, either before or after the scroll container.
663///
664/// The grammar is defined as:
665///
666/// ```text,ignore
667/// none | before | after
668/// ```
669///
670// https://drafts.csswg.org/css-overflow-5/#scroll-marker-group
671#[syntax(" none | before | after ")]
672#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
673#[style_value(
674	initial = "none",
675	applies_to = "scroll containers",
676	inherited = "no",
677	percentages = "n/a",
678	canonical_order = "per grammar",
679	animation_type = "discrete"
680)]
681#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
682#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-marker-group"))]
683#[visit]
684pub enum ScrollMarkerGroupStyleValue {}