css_ast/values/scroll_snap/
mod.rs

1#![allow(warnings)]
2//! https://drafts.csswg.org/css-scroll-snap-2/
3
4mod impls;
5use super::prelude::*;
6use impls::*;
7/// Represents the style value for `scroll-initial-target` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-initial-target).
8///
9/// The scroll-initial-target: nearest CSS declaration sets the initial scroll position of its scroll container to the top of the element, much like scrolling to a URL fragment.
10///
11/// The grammar is defined as:
12///
13/// ```text,ignore
14/// none | nearest
15/// ```
16///
17/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-initial-target
18#[syntax(" none | nearest ")]
19#[derive(
20	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
21)]
22#[declaration_metadata(
23    initial = "none",
24    applies_to = Elements,
25    property_group = ScrollSnap,
26    computed_value_type = Unknown,
27    canonical_order = "per grammar",
28)]
29#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
30#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-initial-target"))]
31#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
32pub enum ScrollInitialTargetStyleValue {}
33
34/// Represents the style value for `scroll-margin` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin).
35///
36/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
37///
38/// The grammar is defined as:
39///
40/// ```text,ignore
41/// <length>{1,4}
42/// ```
43///
44/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin
45#[syntax(" <length>{1,4} ")]
46#[derive(
47	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
48)]
49#[declaration_metadata(
50    initial = "0",
51    applies_to = Elements,
52    animation_type = ByComputedValue,
53    property_group = ScrollSnap,
54    computed_value_type = AbsoluteLength,
55    canonical_order = "per grammar",
56)]
57#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
58#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin"))]
59#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
60pub struct ScrollMarginStyleValue;
61
62/// Represents the style value for `scroll-margin-block` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-block).
63///
64/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
65///
66/// The grammar is defined as:
67///
68/// ```text,ignore
69/// <length>{1,2}
70/// ```
71///
72/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-block
73#[syntax(" <length>{1,2} ")]
74#[derive(
75	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
76)]
77#[declaration_metadata(
78    initial = "0",
79    applies_to = Elements,
80    animation_type = ByComputedValue,
81    property_group = ScrollSnap,
82    computed_value_type = Unknown,
83    canonical_order = "per grammar",
84    box_side = BlockStart|BlockEnd,
85)]
86#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
87#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-block"))]
88#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
89pub struct ScrollMarginBlockStyleValue;
90
91/// Represents the style value for `scroll-margin-block-end` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-block-end).
92///
93/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
94///
95/// The grammar is defined as:
96///
97/// ```text,ignore
98/// <length>
99/// ```
100///
101/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-block-end
102#[syntax(" <length> ")]
103#[derive(
104	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
105)]
106#[declaration_metadata(
107    initial = "0",
108    applies_to = Elements,
109    animation_type = ByComputedValue,
110    property_group = ScrollSnap,
111    computed_value_type = AbsoluteLength,
112    canonical_order = "per grammar",
113    logical_property_group = ScrollMargin,
114    box_side = BlockEnd,
115)]
116#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
117#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-block-end"))]
118#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
119pub struct ScrollMarginBlockEndStyleValue;
120
121/// Represents the style value for `scroll-margin-block-start` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-block-start).
122///
123/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
124///
125/// The grammar is defined as:
126///
127/// ```text,ignore
128/// <length>
129/// ```
130///
131/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-block-start
132#[syntax(" <length> ")]
133#[derive(
134	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
135)]
136#[declaration_metadata(
137    initial = "0",
138    applies_to = Elements,
139    animation_type = ByComputedValue,
140    property_group = ScrollSnap,
141    computed_value_type = AbsoluteLength,
142    canonical_order = "per grammar",
143    logical_property_group = ScrollMargin,
144    box_side = BlockStart,
145)]
146#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
147#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-block-start"))]
148#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
149pub struct ScrollMarginBlockStartStyleValue;
150
151/// Represents the style value for `scroll-margin-bottom` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-bottom).
152///
153/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
154///
155/// The grammar is defined as:
156///
157/// ```text,ignore
158/// <length>
159/// ```
160///
161/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-bottom
162#[syntax(" <length> ")]
163#[derive(
164	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
165)]
166#[declaration_metadata(
167    initial = "0",
168    applies_to = Elements,
169    animation_type = ByComputedValue,
170    property_group = ScrollSnap,
171    computed_value_type = AbsoluteLength,
172    canonical_order = "per grammar",
173    logical_property_group = ScrollMargin,
174    box_side = Bottom,
175)]
176#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
177#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-bottom"))]
178#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
179pub struct ScrollMarginBottomStyleValue;
180
181/// Represents the style value for `scroll-margin-inline` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-inline).
182///
183/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
184///
185/// The grammar is defined as:
186///
187/// ```text,ignore
188/// <length>{1,2}
189/// ```
190///
191/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-inline
192#[syntax(" <length>{1,2} ")]
193#[derive(
194	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
195)]
196#[declaration_metadata(
197    initial = "0",
198    applies_to = Elements,
199    animation_type = ByComputedValue,
200    property_group = ScrollSnap,
201    computed_value_type = Unknown,
202    canonical_order = "per grammar",
203    box_side = InlineStart|InlineEnd,
204)]
205#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
206#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-inline"))]
207#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
208pub struct ScrollMarginInlineStyleValue;
209
210/// Represents the style value for `scroll-margin-inline-end` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-inline-end).
211///
212/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
213///
214/// The grammar is defined as:
215///
216/// ```text,ignore
217/// <length>
218/// ```
219///
220/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-inline-end
221#[syntax(" <length> ")]
222#[derive(
223	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
224)]
225#[declaration_metadata(
226    initial = "0",
227    applies_to = Elements,
228    animation_type = ByComputedValue,
229    property_group = ScrollSnap,
230    computed_value_type = AbsoluteLength,
231    canonical_order = "per grammar",
232    logical_property_group = ScrollMargin,
233    box_side = InlineEnd,
234)]
235#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
236#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-inline-end"))]
237#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
238pub struct ScrollMarginInlineEndStyleValue;
239
240/// Represents the style value for `scroll-margin-inline-start` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-inline-start).
241///
242/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
243///
244/// The grammar is defined as:
245///
246/// ```text,ignore
247/// <length>
248/// ```
249///
250/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-inline-start
251#[syntax(" <length> ")]
252#[derive(
253	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
254)]
255#[declaration_metadata(
256    initial = "0",
257    applies_to = Elements,
258    animation_type = ByComputedValue,
259    property_group = ScrollSnap,
260    computed_value_type = AbsoluteLength,
261    canonical_order = "per grammar",
262    logical_property_group = ScrollMargin,
263    box_side = InlineStart,
264)]
265#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
266#[cfg_attr(
267	feature = "css_feature_data",
268	derive(ToCSSFeature),
269	css_feature("css.properties.scroll-margin-inline-start")
270)]
271#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
272pub struct ScrollMarginInlineStartStyleValue;
273
274/// Represents the style value for `scroll-margin-left` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-left).
275///
276/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
277///
278/// The grammar is defined as:
279///
280/// ```text,ignore
281/// <length>
282/// ```
283///
284/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-left
285#[syntax(" <length> ")]
286#[derive(
287	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
288)]
289#[declaration_metadata(
290    initial = "0",
291    applies_to = Elements,
292    animation_type = ByComputedValue,
293    property_group = ScrollSnap,
294    computed_value_type = AbsoluteLength,
295    canonical_order = "per grammar",
296    logical_property_group = ScrollMargin,
297    box_side = Left,
298)]
299#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
300#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-left"))]
301#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
302pub struct ScrollMarginLeftStyleValue;
303
304/// Represents the style value for `scroll-margin-right` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-right).
305///
306/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
307///
308/// The grammar is defined as:
309///
310/// ```text,ignore
311/// <length>
312/// ```
313///
314/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-right
315#[syntax(" <length> ")]
316#[derive(
317	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
318)]
319#[declaration_metadata(
320    initial = "0",
321    applies_to = Elements,
322    animation_type = ByComputedValue,
323    property_group = ScrollSnap,
324    computed_value_type = AbsoluteLength,
325    canonical_order = "per grammar",
326    logical_property_group = ScrollMargin,
327    box_side = Right,
328)]
329#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
330#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-right"))]
331#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
332pub struct ScrollMarginRightStyleValue;
333
334/// Represents the style value for `scroll-margin-top` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-top).
335///
336/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
337///
338/// The grammar is defined as:
339///
340/// ```text,ignore
341/// <length>
342/// ```
343///
344/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-margin-top
345#[syntax(" <length> ")]
346#[derive(
347	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
348)]
349#[declaration_metadata(
350    initial = "0",
351    applies_to = Elements,
352    animation_type = ByComputedValue,
353    property_group = ScrollSnap,
354    computed_value_type = AbsoluteLength,
355    canonical_order = "per grammar",
356    logical_property_group = ScrollMargin,
357    box_side = Top,
358)]
359#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
360#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-margin-top"))]
361#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
362pub struct ScrollMarginTopStyleValue;
363
364/// Represents the style value for `scroll-padding` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding).
365///
366/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
367///
368/// The grammar is defined as:
369///
370/// ```text,ignore
371/// [ auto | <length-percentage [0,∞]> ]{1,4}
372/// ```
373///
374/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding
375#[syntax(" [ auto | <length-percentage [0,∞]> ]{1,4} ")]
376#[derive(
377	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
378)]
379#[declaration_metadata(
380    initial = "auto",
381    applies_to = Unknown,
382    percentages = Scrollport,
383    animation_type = ByComputedValue,
384    property_group = ScrollSnap,
385    computed_value_type = Unknown,
386    canonical_order = "per grammar",
387)]
388#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
389#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding"))]
390#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
391pub struct ScrollPaddingStyleValue;
392
393/// Represents the style value for `scroll-padding-block` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-block).
394///
395/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
396///
397/// The grammar is defined as:
398///
399/// ```text,ignore
400/// [ auto | <length-percentage [0,∞]> ]{1,2}
401/// ```
402///
403/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-block
404#[syntax(" [ auto | <length-percentage [0,∞]> ]{1,2} ")]
405#[derive(
406	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
407)]
408#[declaration_metadata(
409    initial = "auto",
410    applies_to = Unknown,
411    percentages = Scrollport,
412    animation_type = ByComputedValue,
413    property_group = ScrollSnap,
414    computed_value_type = Unknown,
415    canonical_order = "per grammar",
416    box_side = BlockStart|BlockEnd,
417)]
418#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
419#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-block"))]
420#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
421pub struct ScrollPaddingBlockStyleValue;
422
423/// Represents the style value for `scroll-padding-block-end` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-block-end).
424///
425/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
426///
427/// The grammar is defined as:
428///
429/// ```text,ignore
430/// auto | <length-percentage [0,∞]>
431/// ```
432///
433/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-block-end
434#[syntax(" auto | <length-percentage [0,∞]> ")]
435#[derive(
436	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
437)]
438#[declaration_metadata(
439    initial = "auto",
440    applies_to = Unknown,
441    percentages = Scrollport,
442    animation_type = ByComputedValue,
443    property_group = ScrollSnap,
444    computed_value_type = Unknown,
445    canonical_order = "per grammar",
446    logical_property_group = ScrollPadding,
447    box_side = BlockEnd,
448)]
449#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
450#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-block-end"))]
451#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
452pub struct ScrollPaddingBlockEndStyleValue;
453
454/// Represents the style value for `scroll-padding-block-start` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-block-start).
455///
456/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
457///
458/// The grammar is defined as:
459///
460/// ```text,ignore
461/// auto | <length-percentage [0,∞]>
462/// ```
463///
464/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-block-start
465#[syntax(" auto | <length-percentage [0,∞]> ")]
466#[derive(
467	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
468)]
469#[declaration_metadata(
470    initial = "auto",
471    applies_to = Unknown,
472    percentages = Scrollport,
473    animation_type = ByComputedValue,
474    property_group = ScrollSnap,
475    computed_value_type = Unknown,
476    canonical_order = "per grammar",
477    logical_property_group = ScrollPadding,
478    box_side = BlockStart,
479)]
480#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
481#[cfg_attr(
482	feature = "css_feature_data",
483	derive(ToCSSFeature),
484	css_feature("css.properties.scroll-padding-block-start")
485)]
486#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
487pub struct ScrollPaddingBlockStartStyleValue;
488
489/// Represents the style value for `scroll-padding-bottom` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-bottom).
490///
491/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
492///
493/// The grammar is defined as:
494///
495/// ```text,ignore
496/// auto | <length-percentage [0,∞]>
497/// ```
498///
499/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-bottom
500#[syntax(" auto | <length-percentage [0,∞]> ")]
501#[derive(
502	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
503)]
504#[declaration_metadata(
505    initial = "auto",
506    applies_to = Unknown,
507    percentages = Scrollport,
508    animation_type = ByComputedValue,
509    property_group = ScrollSnap,
510    computed_value_type = Unknown,
511    canonical_order = "per grammar",
512    logical_property_group = ScrollPadding,
513    box_side = Bottom,
514)]
515#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
516#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-bottom"))]
517#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
518pub struct ScrollPaddingBottomStyleValue;
519
520/// Represents the style value for `scroll-padding-inline` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-inline).
521///
522/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
523///
524/// The grammar is defined as:
525///
526/// ```text,ignore
527/// [ auto | <length-percentage [0,∞]> ]{1,2}
528/// ```
529///
530/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-inline
531#[syntax(" [ auto | <length-percentage [0,∞]> ]{1,2} ")]
532#[derive(
533	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
534)]
535#[declaration_metadata(
536    initial = "auto",
537    applies_to = Unknown,
538    percentages = Scrollport,
539    animation_type = ByComputedValue,
540    property_group = ScrollSnap,
541    computed_value_type = Unknown,
542    canonical_order = "per grammar",
543    box_side = InlineStart|InlineEnd,
544)]
545#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
546#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-inline"))]
547#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
548pub struct ScrollPaddingInlineStyleValue;
549
550/// Represents the style value for `scroll-padding-inline-end` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-inline-end).
551///
552/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
553///
554/// The grammar is defined as:
555///
556/// ```text,ignore
557/// auto | <length-percentage [0,∞]>
558/// ```
559///
560/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-inline-end
561#[syntax(" auto | <length-percentage [0,∞]> ")]
562#[derive(
563	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
564)]
565#[declaration_metadata(
566    initial = "auto",
567    applies_to = Unknown,
568    percentages = Scrollport,
569    animation_type = ByComputedValue,
570    property_group = ScrollSnap,
571    computed_value_type = Unknown,
572    canonical_order = "per grammar",
573    logical_property_group = ScrollPadding,
574    box_side = InlineEnd,
575)]
576#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
577#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-inline-end"))]
578#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
579pub struct ScrollPaddingInlineEndStyleValue;
580
581/// Represents the style value for `scroll-padding-inline-start` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-inline-start).
582///
583/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
584///
585/// The grammar is defined as:
586///
587/// ```text,ignore
588/// auto | <length-percentage [0,∞]>
589/// ```
590///
591/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-inline-start
592#[syntax(" auto | <length-percentage [0,∞]> ")]
593#[derive(
594	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
595)]
596#[declaration_metadata(
597    initial = "auto",
598    applies_to = Unknown,
599    percentages = Scrollport,
600    animation_type = ByComputedValue,
601    property_group = ScrollSnap,
602    computed_value_type = Unknown,
603    canonical_order = "per grammar",
604    logical_property_group = ScrollPadding,
605    box_side = InlineStart,
606)]
607#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
608#[cfg_attr(
609	feature = "css_feature_data",
610	derive(ToCSSFeature),
611	css_feature("css.properties.scroll-padding-inline-start")
612)]
613#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
614pub struct ScrollPaddingInlineStartStyleValue;
615
616/// Represents the style value for `scroll-padding-left` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-left).
617///
618/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
619///
620/// The grammar is defined as:
621///
622/// ```text,ignore
623/// auto | <length-percentage [0,∞]>
624/// ```
625///
626/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-left
627#[syntax(" auto | <length-percentage [0,∞]> ")]
628#[derive(
629	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
630)]
631#[declaration_metadata(
632    initial = "auto",
633    applies_to = Unknown,
634    percentages = Scrollport,
635    animation_type = ByComputedValue,
636    property_group = ScrollSnap,
637    computed_value_type = Unknown,
638    canonical_order = "per grammar",
639    logical_property_group = ScrollPadding,
640    box_side = Left,
641)]
642#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
643#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-left"))]
644#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
645pub struct ScrollPaddingLeftStyleValue;
646
647/// Represents the style value for `scroll-padding-right` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-right).
648///
649/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
650///
651/// The grammar is defined as:
652///
653/// ```text,ignore
654/// auto | <length-percentage [0,∞]>
655/// ```
656///
657/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-right
658#[syntax(" auto | <length-percentage [0,∞]> ")]
659#[derive(
660	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
661)]
662#[declaration_metadata(
663    initial = "auto",
664    applies_to = Unknown,
665    percentages = Scrollport,
666    animation_type = ByComputedValue,
667    property_group = ScrollSnap,
668    computed_value_type = Unknown,
669    canonical_order = "per grammar",
670    logical_property_group = ScrollPadding,
671    box_side = Right,
672)]
673#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
674#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-right"))]
675#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
676pub struct ScrollPaddingRightStyleValue;
677
678/// Represents the style value for `scroll-padding-top` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-top).
679///
680/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
681///
682/// The grammar is defined as:
683///
684/// ```text,ignore
685/// auto | <length-percentage [0,∞]>
686/// ```
687///
688/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-padding-top
689#[syntax(" auto | <length-percentage [0,∞]> ")]
690#[derive(
691	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
692)]
693#[declaration_metadata(
694    initial = "auto",
695    applies_to = Unknown,
696    percentages = Scrollport,
697    animation_type = ByComputedValue,
698    property_group = ScrollSnap,
699    computed_value_type = Unknown,
700    canonical_order = "per grammar",
701    logical_property_group = ScrollPadding,
702    box_side = Top,
703)]
704#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
705#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-padding-top"))]
706#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
707pub struct ScrollPaddingTopStyleValue;
708
709/// Represents the style value for `scroll-snap-align` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-snap-align).
710///
711/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
712///
713/// The grammar is defined as:
714///
715/// ```text,ignore
716/// [ none | start | end | center ]{1,2}
717/// ```
718///
719/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-snap-align
720#[syntax(" [ none | start | end | center ]{1,2} ")]
721#[derive(
722	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
723)]
724#[declaration_metadata(
725    initial = "none",
726    applies_to = Elements,
727    animation_type = Discrete,
728    property_group = ScrollSnap,
729    computed_value_type = Unknown,
730    canonical_order = "per grammar",
731)]
732#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
733#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.scroll-snap-align"))]
734#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
735pub struct ScrollSnapAlignStyleValue;
736
737/// Represents the style value for `scroll-snap-stop` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-snap-stop).
738///
739/// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
740///
741/// The grammar is defined as:
742///
743/// ```text,ignore
744/// normal | always
745/// ```
746///
747/// https://drafts.csswg.org/css-scroll-snap-2/#scroll-snap-stop
748#[syntax(" normal | always ")]
749#[derive(
750	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
751)]
752#[declaration_metadata(
753    initial = "normal",
754    applies_to = Elements,
755    animation_type = Discrete,
756    property_group = ScrollSnap,
757    computed_value_type = Unknown,
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-snap-stop"))]
762#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
763pub enum ScrollSnapStopStyleValue {}
764
765// /// Represents the style value for `scroll-snap-type` as defined in [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/#scroll-snap-type).
766// ///
767// /// CSS scroll snap controls the panning and scrolling behavior within a scroll container.
768// ///
769// /// The grammar is defined as:
770// ///
771// /// ```text,ignore
772// /// none | [ x | y | block | inline | both ] [ mandatory | proximity ]?
773// /// ```
774// ///
775// /// https://drafts.csswg.org/css-scroll-snap-2/#scroll-snap-type
776// #[syntax(" none | [ x | y | block | inline | both ] [ mandatory | proximity ]? ")]
777// #[derive(
778//     Parse,
779//     Peek,
780//     ToSpan,
781//     ToCursors,
782//     DeclarationMetadata,
783//     SemanticEq,
784//     Debug,
785//     Clone,
786//     PartialEq,
787//     Eq,
788//     PartialOrd,
789//     Ord,
790//     Hash,
791// )]
792// #[declaration_metadata(
793//     initial = "none",
794//     applies_to = Elements,
795//     animation_type = Discrete,
796//     property_group = ScrollSnap,
797//     computed_value_type = Unknown,
798//     canonical_order = "per grammar",
799// )]
800// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
801// #[cfg_attr(
802//     feature = "css_feature_data",
803//     derive(ToCSSFeature),
804//     css_feature("css.properties.scroll-snap-type")
805// )]
806// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
807// pub struct ScrollSnapTypeStyleValue;