Skip to main content

css_ast/values/scroll_snap/
mod.rs

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