css_ast/values/backgrounds/mod.rs
1#![allow(warnings)]
2//! CSS Backgrounds Module Level 4
3//! https://drafts.csswg.org/css-backgrounds-4/
4
5mod impls;
6use impls::*;
7
8/// Represents the style value for `background-color` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-color).
9///
10/// The background-color CSS property sets the fill color of an element, behind any content and background images or gradients.
11///
12/// The grammar is defined as:
13///
14/// ```text,ignore
15/// <color>
16/// ```
17///
18// https://drafts.csswg.org/css-backgrounds-4/#background-color
19#[syntax(" <color> ")]
20#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21#[style_value(
22 initial = "transparent",
23 applies_to = "all elements",
24 inherited = "no",
25 percentages = "n/a",
26 canonical_order = "per grammar",
27 animation_type = "by computed value"
28)]
29#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
30#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-color"))]
31#[visit]
32pub struct BackgroundColorStyleValue;
33
34/// Represents the style value for `background-image` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-image).
35///
36/// The background-image CSS property sets the graphics to display behind the content of an element and in front of the background color. Graphics may be any combination of images or gradients.
37///
38/// The grammar is defined as:
39///
40/// ```text,ignore
41/// <bg-image>#
42/// ```
43///
44// https://drafts.csswg.org/css-backgrounds-4/#background-image
45#[syntax(" <bg-image># ")]
46#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
47#[style_value(
48 initial = "none",
49 applies_to = "all elements",
50 inherited = "no",
51 percentages = "n/a",
52 canonical_order = "per grammar",
53 animation_type = "discrete"
54)]
55#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
56#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-image"))]
57#[visit]
58pub struct BackgroundImageStyleValue<'a>;
59
60/// Represents the style value for `background-repeat` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-repeat).
61///
62/// The background-repeat CSS property sets how a background image is tiled.
63///
64/// The grammar is defined as:
65///
66/// ```text,ignore
67/// <repeat-style>#
68/// ```
69///
70// https://drafts.csswg.org/css-backgrounds-4/#background-repeat
71#[syntax(" <repeat-style># ")]
72#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
73#[style_value(
74 initial = "repeat",
75 applies_to = "all elements",
76 inherited = "no",
77 percentages = "n/a",
78 canonical_order = "per grammar",
79 animation_type = "discrete"
80)]
81#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
82#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-repeat"))]
83#[visit]
84pub struct BackgroundRepeatStyleValue<'a>;
85
86/// Represents the style value for `background-attachment` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-attachment).
87///
88/// The background-attachment CSS property sets whether an element's background image or gradient moves as the element scrolls.
89///
90/// The grammar is defined as:
91///
92/// ```text,ignore
93/// <attachment>#
94/// ```
95///
96// https://drafts.csswg.org/css-backgrounds-4/#background-attachment
97#[syntax(" <attachment># ")]
98#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
99#[style_value(
100 initial = "scroll",
101 applies_to = "all elements",
102 inherited = "no",
103 percentages = "n/a",
104 canonical_order = "per grammar",
105 animation_type = "discrete"
106)]
107#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
108#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-attachment"))]
109#[visit]
110pub struct BackgroundAttachmentStyleValue<'a>;
111
112// /// Represents the style value for `background-position` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-position).
113// ///
114// /// The background-position CSS property offsets the initial position of background images relative to the background origin.
115// ///
116// /// The grammar is defined as:
117// ///
118// /// ```text,ignore
119// /// <bg-position>#
120// /// ```
121// ///
122// // https://drafts.csswg.org/css-backgrounds-4/#background-position
123// #[syntax(" <bg-position># ")]
124// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
125// #[style_value(
126// initial = "0% 0%",
127// applies_to = "all elements",
128// inherited = "no",
129// percentages = "refer to size of background positioning area minus size of background image; see text",
130// canonical_order = "per grammar",
131// animation_type = "repeatable list",
132// )]
133// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
134// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-position"))]
135// #[visit]
136// pub struct BackgroundPositionStyleValue<'a>;
137
138/// Represents the style value for `background-clip` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-clip).
139///
140/// The background-clip CSS property sets the extent of the background: the padding box, the content box, or the default border box.
141///
142/// The grammar is defined as:
143///
144/// ```text,ignore
145/// <bg-clip>#
146/// ```
147///
148// https://drafts.csswg.org/css-backgrounds-4/#background-clip
149#[syntax(" <bg-clip># ")]
150#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
151#[style_value(
152 initial = "border-box",
153 applies_to = "all elements",
154 inherited = "no",
155 percentages = "n/a",
156 canonical_order = "per grammar",
157 animation_type = "repeatable list"
158)]
159#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
160#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-clip"))]
161#[visit]
162pub struct BackgroundClipStyleValue<'a>;
163
164/// Represents the style value for `background-origin` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-origin).
165///
166/// The background-origin CSS property sets the background starting position relative to the border and padding of an element.
167///
168/// The grammar is defined as:
169///
170/// ```text,ignore
171/// <visual-box>#
172/// ```
173///
174// https://drafts.csswg.org/css-backgrounds-4/#background-origin
175#[syntax(" <visual-box># ")]
176#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
177#[style_value(
178 initial = "padding-box",
179 applies_to = "all elements",
180 inherited = "no",
181 percentages = "n/a",
182 canonical_order = "per grammar",
183 animation_type = "repeatable list"
184)]
185#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
186#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-origin"))]
187#[visit]
188pub struct BackgroundOriginStyleValue<'a>;
189
190/// Represents the style value for `background-size` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-size).
191///
192/// The background-size CSS property scales or stretches a background based on the size of the element (with the contain and cover keywords), a length, or percentage.
193///
194/// The grammar is defined as:
195///
196/// ```text,ignore
197/// <bg-size>#
198/// ```
199///
200// https://drafts.csswg.org/css-backgrounds-4/#background-size
201#[syntax(" <bg-size># ")]
202#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
203#[style_value(
204 initial = "auto",
205 applies_to = "all elements",
206 inherited = "no",
207 percentages = "see text",
208 canonical_order = "per grammar",
209 animation_type = "repeatable list"
210)]
211#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
212#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-size"))]
213#[visit]
214pub struct BackgroundSizeStyleValue<'a>;
215
216// /// Represents the style value for `background` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background).
217// ///
218// /// The background CSS property is a shorthand that sets several background properties at once.
219// ///
220// /// The grammar is defined as:
221// ///
222// /// ```text,ignore
223// /// <bg-layer>#? , <final-bg-layer>
224// /// ```
225// ///
226// // https://drafts.csswg.org/css-backgrounds-4/#background
227// #[syntax(" <bg-layer>#? , <final-bg-layer> ")]
228// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
229// #[style_value(
230// initial = "see individual properties",
231// applies_to = "all elements",
232// inherited = "no",
233// percentages = "see individual properties",
234// canonical_order = "per grammar",
235// animation_type = "see individual properties",
236// )]
237// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
238// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background"))]
239// #[visit]
240// pub struct BackgroundStyleValue<'a>;
241
242/// Represents the style value for `border-image-source` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#border-image-source).
243///
244/// The border-image CSS property draws an image around an element.
245///
246/// The grammar is defined as:
247///
248/// ```text,ignore
249/// none | <image>
250/// ```
251///
252// https://drafts.csswg.org/css-backgrounds-4/#border-image-source
253#[syntax(" none | <image> ")]
254#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
255#[style_value(
256 initial = "none",
257 applies_to = "All elements, except internal table elements when border-collapse is collapse",
258 inherited = "no",
259 percentages = "n/a",
260 canonical_order = "per grammar",
261 animation_type = "discrete"
262)]
263#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
264#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-source"))]
265#[visit]
266pub struct BorderImageSourceStyleValue<'a>;
267
268// /// Represents the style value for `border-image-slice` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#border-image-slice).
269// ///
270// /// The border-image CSS property draws an image around an element.
271// ///
272// /// The grammar is defined as:
273// ///
274// /// ```text,ignore
275// /// [<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill?
276// /// ```
277// ///
278// // https://drafts.csswg.org/css-backgrounds-4/#border-image-slice
279// #[syntax(" [<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill? ")]
280// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
281// #[style_value(
282// initial = "100%",
283// applies_to = "All elements, except internal table elements when border-collapse is collapse",
284// inherited = "no",
285// percentages = "refer to size of the border image",
286// canonical_order = "per grammar",
287// animation_type = "by computed value",
288// )]
289// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
290// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-slice"))]
291// #[visit]
292// pub struct BorderImageSliceStyleValue;
293
294// /// Represents the style value for `border-image-width` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#border-image-width).
295// ///
296// /// The border-image CSS property draws an image around an element.
297// ///
298// /// The grammar is defined as:
299// ///
300// /// ```text,ignore
301// /// [ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}
302// /// ```
303// ///
304// // https://drafts.csswg.org/css-backgrounds-4/#border-image-width
305// #[syntax(" [ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4} ")]
306// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
307// #[style_value(
308// initial = "1",
309// applies_to = "All elements, except internal table elements when border-collapse is collapse",
310// inherited = "no",
311// percentages = "relative to width/height of the border image area",
312// canonical_order = "per grammar",
313// animation_type = "by computed value",
314// )]
315// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
316// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-width"))]
317// #[visit]
318// pub struct BorderImageWidthStyleValue;
319
320/// Represents the style value for `border-image-outset` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#border-image-outset).
321///
322/// The border-image CSS property draws an image around an element.
323///
324/// The grammar is defined as:
325///
326/// ```text,ignore
327/// [ <length [0,∞]> | <number [0,∞]> ]{1,4}
328/// ```
329///
330// https://drafts.csswg.org/css-backgrounds-4/#border-image-outset
331#[syntax(" [ <length [0,∞]> | <number [0,∞]> ]{1,4} ")]
332#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
333#[style_value(
334 initial = "0",
335 applies_to = "All elements, except internal table elements when border-collapse is collapse",
336 inherited = "no",
337 percentages = "n/a",
338 canonical_order = "per grammar",
339 animation_type = "by computed value"
340)]
341#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
342#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-outset"))]
343#[visit]
344pub struct BorderImageOutsetStyleValue;
345
346/// Represents the style value for `border-image-repeat` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#border-image-repeat).
347///
348/// The border-image CSS property draws an image around an element.
349///
350/// The grammar is defined as:
351///
352/// ```text,ignore
353/// [ stretch | repeat | round | space ]{1,2}
354/// ```
355///
356// https://drafts.csswg.org/css-backgrounds-4/#border-image-repeat
357#[syntax(" [ stretch | repeat | round | space ]{1,2} ")]
358#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
359#[style_value(
360 initial = "stretch",
361 applies_to = "All elements, except internal table elements when border-collapse is collapse",
362 inherited = "no",
363 percentages = "n/a",
364 canonical_order = "per grammar",
365 animation_type = "discrete"
366)]
367#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
368#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-repeat"))]
369#[visit]
370pub struct BorderImageRepeatStyleValue;
371
372// /// Represents the style value for `border-image` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#border-image).
373// ///
374// /// The border-image CSS property draws an image around an element.
375// ///
376// /// The grammar is defined as:
377// ///
378// /// ```text,ignore
379// /// <'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>
380// /// ```
381// ///
382// // https://drafts.csswg.org/css-backgrounds-4/#border-image
383// #[syntax(
384// " <'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'> "
385// )]
386// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
387// #[style_value(
388// initial = "See individual properties",
389// applies_to = "See individual properties",
390// inherited = "no",
391// percentages = "n/a",
392// canonical_order = "per grammar",
393// animation_type = "see individual properties",
394// )]
395// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
396// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image"))]
397// #[visit]
398// pub struct BorderImageStyleValue;
399
400/// Represents the style value for `background-repeat-x` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-repeat-x).
401///
402/// The grammar is defined as:
403///
404/// ```text,ignore
405/// <repetition>#
406/// ```
407///
408// https://drafts.csswg.org/css-backgrounds-4/#background-repeat-x
409#[syntax(" <repetition># ")]
410#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
411#[style_value(
412 initial = "repeat",
413 applies_to = "all elements",
414 inherited = "no",
415 percentages = "n/a",
416 canonical_order = "per grammar",
417 animation_type = "discrete"
418)]
419#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
420#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-repeat-x"))]
421#[visit]
422pub struct BackgroundRepeatXStyleValue<'a>;
423
424/// Represents the style value for `background-repeat-y` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-repeat-y).
425///
426/// The grammar is defined as:
427///
428/// ```text,ignore
429/// <repetition>#
430/// ```
431///
432// https://drafts.csswg.org/css-backgrounds-4/#background-repeat-y
433#[syntax(" <repetition># ")]
434#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
435#[style_value(
436 initial = "repeat",
437 applies_to = "all elements",
438 inherited = "no",
439 percentages = "n/a",
440 canonical_order = "per grammar",
441 animation_type = "discrete"
442)]
443#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
444#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-repeat-y"))]
445#[visit]
446pub struct BackgroundRepeatYStyleValue<'a>;
447
448/// Represents the style value for `background-repeat-block` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-repeat-block).
449///
450/// The grammar is defined as:
451///
452/// ```text,ignore
453/// <repetition>#
454/// ```
455///
456// https://drafts.csswg.org/css-backgrounds-4/#background-repeat-block
457#[syntax(" <repetition># ")]
458#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
459#[style_value(
460 initial = "repeat",
461 applies_to = "all elements",
462 inherited = "no",
463 percentages = "n/a",
464 canonical_order = "per grammar",
465 animation_type = "discrete"
466)]
467#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
468#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-repeat-block"))]
469#[visit]
470pub struct BackgroundRepeatBlockStyleValue<'a>;
471
472/// Represents the style value for `background-repeat-inline` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-repeat-inline).
473///
474/// The grammar is defined as:
475///
476/// ```text,ignore
477/// <repetition>#
478/// ```
479///
480// https://drafts.csswg.org/css-backgrounds-4/#background-repeat-inline
481#[syntax(" <repetition># ")]
482#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
483#[style_value(
484 initial = "repeat",
485 applies_to = "all elements",
486 inherited = "no",
487 percentages = "n/a",
488 canonical_order = "per grammar",
489 animation_type = "discrete"
490)]
491#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
492#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-repeat-inline"))]
493#[visit]
494pub struct BackgroundRepeatInlineStyleValue<'a>;
495
496// /// Represents the style value for `background-position-x` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-position-x).
497// ///
498// /// The background-position CSS property offsets the initial position of background images relative to the background origin.
499// ///
500// /// The grammar is defined as:
501// ///
502// /// ```text,ignore
503// /// [ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#
504// /// ```
505// ///
506// // https://drafts.csswg.org/css-backgrounds-4/#background-position-x
507// #[syntax(" [ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]# ")]
508// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
509// #[style_value(
510// initial = "0%",
511// applies_to = "all elements",
512// inherited = "no",
513// percentages = "refer to width of background positioning area minus width of background image",
514// canonical_order = "per grammar",
515// animation_type = "repeatable list",
516// )]
517// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
518// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-position-x"))]
519// #[visit]
520// pub enum BackgroundPositionXStyleValue<'a> {}
521
522// /// Represents the style value for `background-position-y` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-position-y).
523// ///
524// /// The background-position CSS property offsets the initial position of background images relative to the background origin.
525// ///
526// /// The grammar is defined as:
527// ///
528// /// ```text,ignore
529// /// [ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#
530// /// ```
531// ///
532// // https://drafts.csswg.org/css-backgrounds-4/#background-position-y
533// #[syntax(" [ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]# ")]
534// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
535// #[style_value(
536// initial = "0%",
537// applies_to = "all elements",
538// inherited = "no",
539// percentages = "refer to height of background positioning area minus height of background image",
540// canonical_order = "per grammar",
541// animation_type = "repeatable list",
542// )]
543// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
544// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-position-y"))]
545// #[visit]
546// pub enum BackgroundPositionYStyleValue<'a> {}
547
548// /// Represents the style value for `background-position-inline` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-position-inline).
549// ///
550// /// The grammar is defined as:
551// ///
552// /// ```text,ignore
553// /// [ center | [ [ start | end ]? <length-percentage>? ]! ]#
554// /// ```
555// ///
556// // https://drafts.csswg.org/css-backgrounds-4/#background-position-inline
557// #[syntax(" [ center | [ [ start | end ]? <length-percentage>? ]! ]# ")]
558// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
559// #[style_value(
560// initial = "0%",
561// applies_to = "all elements",
562// inherited = "no",
563// percentages = "refer to inline-size of background positioning area minus inline-size of background image",
564// canonical_order = "per grammar",
565// animation_type = "repeatable list",
566// )]
567// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
568// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-position-inline"))]
569// #[visit]
570// pub enum BackgroundPositionInlineStyleValue<'a> {}
571
572// /// Represents the style value for `background-position-block` as defined in [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/#background-position-block).
573// ///
574// /// The grammar is defined as:
575// ///
576// /// ```text,ignore
577// /// [ center | [ [ start | end ]? <length-percentage>? ]! ]#
578// /// ```
579// ///
580// // https://drafts.csswg.org/css-backgrounds-4/#background-position-block
581// #[syntax(" [ center | [ [ start | end ]? <length-percentage>? ]! ]# ")]
582// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
583// #[style_value(
584// initial = "0%",
585// applies_to = "all elements",
586// inherited = "no",
587// percentages = "refer to size of background positioning area minus size of background image",
588// canonical_order = "per grammar",
589// animation_type = "repeatable list",
590// )]
591// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
592// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.background-position-block"))]
593// #[visit]
594// pub enum BackgroundPositionBlockStyleValue<'a> {}