css_ast/values/scroll_snap/
mod.rs

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