css_ast/values/borders/
mod.rs

1#![allow(warnings)]
2//! CSS Borders and Box Decorations Module Level 4
3//! https://drafts.csswg.org/css-borders-4/
4
5mod impls;
6use impls::*;
7
8/// Represents the style value for `border-top-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-color).
9///
10/// The border CSS property sets the color, style, and width of the line around an element.
11///
12/// The grammar is defined as:
13///
14/// ```text,ignore
15/// <color> | <image-1D>
16/// ```
17///
18// https://drafts.csswg.org/css-borders-4/#border-top-color
19#[syntax(" <color> | <image-1D> ")]
20#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21#[style_value(
22	initial = "currentcolor",
23	applies_to = "all elements except ruby base containers and ruby annotation containers",
24	inherited = "no",
25	percentages = "n/a",
26	canonical_order = "per grammar",
27	animation_type = "see prose"
28)]
29#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
30#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-color"))]
31#[visit]
32pub enum BorderTopColorStyleValue<'a> {}
33
34/// Represents the style value for `border-right-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-color).
35///
36/// The border CSS property sets the color, style, and width of the line around an element.
37///
38/// The grammar is defined as:
39///
40/// ```text,ignore
41/// <color> | <image-1D>
42/// ```
43///
44// https://drafts.csswg.org/css-borders-4/#border-right-color
45#[syntax(" <color> | <image-1D> ")]
46#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
47#[style_value(
48	initial = "currentcolor",
49	applies_to = "all elements except ruby base containers and ruby annotation containers",
50	inherited = "no",
51	percentages = "n/a",
52	canonical_order = "per grammar",
53	animation_type = "see prose"
54)]
55#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
56#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-color"))]
57#[visit]
58pub enum BorderRightColorStyleValue<'a> {}
59
60/// Represents the style value for `border-bottom-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-color).
61///
62/// The border CSS property sets the color, style, and width of the line around an element.
63///
64/// The grammar is defined as:
65///
66/// ```text,ignore
67/// <color> | <image-1D>
68/// ```
69///
70// https://drafts.csswg.org/css-borders-4/#border-bottom-color
71#[syntax(" <color> | <image-1D> ")]
72#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
73#[style_value(
74	initial = "currentcolor",
75	applies_to = "all elements except ruby base containers and ruby annotation containers",
76	inherited = "no",
77	percentages = "n/a",
78	canonical_order = "per grammar",
79	animation_type = "see prose"
80)]
81#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
82#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-color"))]
83#[visit]
84pub enum BorderBottomColorStyleValue<'a> {}
85
86/// Represents the style value for `border-left-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-color).
87///
88/// The border CSS property sets the color, style, and width of the line around an element.
89///
90/// The grammar is defined as:
91///
92/// ```text,ignore
93/// <color> | <image-1D>
94/// ```
95///
96// https://drafts.csswg.org/css-borders-4/#border-left-color
97#[syntax(" <color> | <image-1D> ")]
98#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
99#[style_value(
100	initial = "currentcolor",
101	applies_to = "all elements except ruby base containers and ruby annotation containers",
102	inherited = "no",
103	percentages = "n/a",
104	canonical_order = "per grammar",
105	animation_type = "see prose"
106)]
107#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
108#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-color"))]
109#[visit]
110pub enum BorderLeftColorStyleValue<'a> {}
111
112/// Represents the style value for `border-block-start-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-color).
113///
114/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
115///
116/// The grammar is defined as:
117///
118/// ```text,ignore
119/// <color> | <image-1D>
120/// ```
121///
122// https://drafts.csswg.org/css-borders-4/#border-block-start-color
123#[syntax(" <color> | <image-1D> ")]
124#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
125#[style_value(
126	initial = "currentcolor",
127	applies_to = "all elements except ruby base containers and ruby annotation containers",
128	inherited = "no",
129	percentages = "n/a",
130	canonical_order = "per grammar",
131	animation_type = "see prose"
132)]
133#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
134#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-color"))]
135#[visit]
136pub enum BorderBlockStartColorStyleValue<'a> {}
137
138/// Represents the style value for `border-block-end-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-color).
139///
140/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
141///
142/// The grammar is defined as:
143///
144/// ```text,ignore
145/// <color> | <image-1D>
146/// ```
147///
148// https://drafts.csswg.org/css-borders-4/#border-block-end-color
149#[syntax(" <color> | <image-1D> ")]
150#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
151#[style_value(
152	initial = "currentcolor",
153	applies_to = "all elements except ruby base containers and ruby annotation containers",
154	inherited = "no",
155	percentages = "n/a",
156	canonical_order = "per grammar",
157	animation_type = "see prose"
158)]
159#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
160#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-color"))]
161#[visit]
162pub enum BorderBlockEndColorStyleValue<'a> {}
163
164/// Represents the style value for `border-inline-start-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-color).
165///
166/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
167///
168/// The grammar is defined as:
169///
170/// ```text,ignore
171/// <color> | <image-1D>
172/// ```
173///
174// https://drafts.csswg.org/css-borders-4/#border-inline-start-color
175#[syntax(" <color> | <image-1D> ")]
176#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
177#[style_value(
178	initial = "currentcolor",
179	applies_to = "all elements except ruby base containers and ruby annotation containers",
180	inherited = "no",
181	percentages = "n/a",
182	canonical_order = "per grammar",
183	animation_type = "see prose"
184)]
185#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
186#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-color"))]
187#[visit]
188pub enum BorderInlineStartColorStyleValue<'a> {}
189
190/// Represents the style value for `border-inline-end-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-color).
191///
192/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
193///
194/// The grammar is defined as:
195///
196/// ```text,ignore
197/// <color> | <image-1D>
198/// ```
199///
200// https://drafts.csswg.org/css-borders-4/#border-inline-end-color
201#[syntax(" <color> | <image-1D> ")]
202#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
203#[style_value(
204	initial = "currentcolor",
205	applies_to = "all elements except ruby base containers and ruby annotation containers",
206	inherited = "no",
207	percentages = "n/a",
208	canonical_order = "per grammar",
209	animation_type = "see prose"
210)]
211#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
212#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-color"))]
213#[visit]
214pub enum BorderInlineEndColorStyleValue<'a> {}
215
216// /// Represents the style value for `border-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-color).
217// ///
218// /// The border CSS property sets the color, style, and width of the line around an element.
219// ///
220// /// The grammar is defined as:
221// ///
222// /// ```text,ignore
223// /// [ <color> | <image-1D> ]{1,4}
224// /// ```
225// ///
226// // https://drafts.csswg.org/css-borders-4/#border-color
227// #[syntax(" [ <color> | <image-1D> ]{1,4} ")]
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 = "see individual properties",
232// 	inherited = "see individual properties",
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.border-color"))]
239// #[visit]
240// pub struct BorderColorStyleValue<'a>;
241
242/// Represents the style value for `border-block-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-color).
243///
244/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
245///
246/// The grammar is defined as:
247///
248/// ```text,ignore
249/// <'border-top-color'>{1,2}
250/// ```
251///
252// https://drafts.csswg.org/css-borders-4/#border-block-color
253#[syntax(" <'border-top-color'>{1,2} ")]
254#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
255#[style_value(
256	initial = "see individual properties",
257	applies_to = "see individual properties",
258	inherited = "see individual properties",
259	percentages = "see individual properties",
260	canonical_order = "per grammar",
261	animation_type = "see individual properties"
262)]
263#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
264#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-color"))]
265#[visit]
266pub struct BorderBlockColorStyleValue<'a>;
267
268/// Represents the style value for `border-inline-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-color).
269///
270/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
271///
272/// The grammar is defined as:
273///
274/// ```text,ignore
275/// <'border-top-color'>{1,2}
276/// ```
277///
278// https://drafts.csswg.org/css-borders-4/#border-inline-color
279#[syntax(" <'border-top-color'>{1,2} ")]
280#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
281#[style_value(
282	initial = "see individual properties",
283	applies_to = "see individual properties",
284	inherited = "see individual properties",
285	percentages = "see individual properties",
286	canonical_order = "per grammar",
287	animation_type = "see individual properties"
288)]
289#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
290#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-color"))]
291#[visit]
292pub struct BorderInlineColorStyleValue<'a>;
293
294/// Represents the style value for `border-top-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-style).
295///
296/// The border CSS property sets the color, style, and width of the line around an element.
297///
298/// The grammar is defined as:
299///
300/// ```text,ignore
301/// <line-style>
302/// ```
303///
304// https://drafts.csswg.org/css-borders-4/#border-top-style
305#[syntax(" <line-style> ")]
306#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
307#[style_value(
308	initial = "none",
309	applies_to = "all elements except ruby base containers and ruby annotation containers",
310	inherited = "no",
311	percentages = "n/a",
312	canonical_order = "per grammar",
313	animation_type = "discrete"
314)]
315#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
316#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-style"))]
317#[visit]
318pub struct BorderTopStyleStyleValue;
319
320/// Represents the style value for `border-right-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-style).
321///
322/// The border CSS property sets the color, style, and width of the line around an element.
323///
324/// The grammar is defined as:
325///
326/// ```text,ignore
327/// <line-style>
328/// ```
329///
330// https://drafts.csswg.org/css-borders-4/#border-right-style
331#[syntax(" <line-style> ")]
332#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
333#[style_value(
334	initial = "none",
335	applies_to = "all elements except ruby base containers and ruby annotation containers",
336	inherited = "no",
337	percentages = "n/a",
338	canonical_order = "per grammar",
339	animation_type = "discrete"
340)]
341#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
342#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-style"))]
343#[visit]
344pub struct BorderRightStyleStyleValue;
345
346/// Represents the style value for `border-bottom-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-style).
347///
348/// The border CSS property sets the color, style, and width of the line around an element.
349///
350/// The grammar is defined as:
351///
352/// ```text,ignore
353/// <line-style>
354/// ```
355///
356// https://drafts.csswg.org/css-borders-4/#border-bottom-style
357#[syntax(" <line-style> ")]
358#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
359#[style_value(
360	initial = "none",
361	applies_to = "all elements except ruby base containers and ruby annotation containers",
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-bottom-style"))]
369#[visit]
370pub struct BorderBottomStyleStyleValue;
371
372/// Represents the style value for `border-left-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-style).
373///
374/// The border CSS property sets the color, style, and width of the line around an element.
375///
376/// The grammar is defined as:
377///
378/// ```text,ignore
379/// <line-style>
380/// ```
381///
382// https://drafts.csswg.org/css-borders-4/#border-left-style
383#[syntax(" <line-style> ")]
384#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
385#[style_value(
386	initial = "none",
387	applies_to = "all elements except ruby base containers and ruby annotation containers",
388	inherited = "no",
389	percentages = "n/a",
390	canonical_order = "per grammar",
391	animation_type = "discrete"
392)]
393#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
394#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-style"))]
395#[visit]
396pub struct BorderLeftStyleStyleValue;
397
398/// Represents the style value for `border-block-start-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-style).
399///
400/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
401///
402/// The grammar is defined as:
403///
404/// ```text,ignore
405/// <line-style>
406/// ```
407///
408// https://drafts.csswg.org/css-borders-4/#border-block-start-style
409#[syntax(" <line-style> ")]
410#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
411#[style_value(
412	initial = "none",
413	applies_to = "all elements except ruby base containers and ruby annotation containers",
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.border-block-start-style"))]
421#[visit]
422pub struct BorderBlockStartStyleStyleValue;
423
424/// Represents the style value for `border-block-end-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-style).
425///
426/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
427///
428/// The grammar is defined as:
429///
430/// ```text,ignore
431/// <line-style>
432/// ```
433///
434// https://drafts.csswg.org/css-borders-4/#border-block-end-style
435#[syntax(" <line-style> ")]
436#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
437#[style_value(
438	initial = "none",
439	applies_to = "all elements except ruby base containers and ruby annotation containers",
440	inherited = "no",
441	percentages = "n/a",
442	canonical_order = "per grammar",
443	animation_type = "discrete"
444)]
445#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
446#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-style"))]
447#[visit]
448pub struct BorderBlockEndStyleStyleValue;
449
450/// Represents the style value for `border-inline-start-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-style).
451///
452/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
453///
454/// The grammar is defined as:
455///
456/// ```text,ignore
457/// <line-style>
458/// ```
459///
460// https://drafts.csswg.org/css-borders-4/#border-inline-start-style
461#[syntax(" <line-style> ")]
462#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
463#[style_value(
464	initial = "none",
465	applies_to = "all elements except ruby base containers and ruby annotation containers",
466	inherited = "no",
467	percentages = "n/a",
468	canonical_order = "per grammar",
469	animation_type = "discrete"
470)]
471#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
472#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-style"))]
473#[visit]
474pub struct BorderInlineStartStyleStyleValue;
475
476/// Represents the style value for `border-inline-end-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-style).
477///
478/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
479///
480/// The grammar is defined as:
481///
482/// ```text,ignore
483/// <line-style>
484/// ```
485///
486// https://drafts.csswg.org/css-borders-4/#border-inline-end-style
487#[syntax(" <line-style> ")]
488#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
489#[style_value(
490	initial = "none",
491	applies_to = "all elements except ruby base containers and ruby annotation containers",
492	inherited = "no",
493	percentages = "n/a",
494	canonical_order = "per grammar",
495	animation_type = "discrete"
496)]
497#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
498#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-style"))]
499#[visit]
500pub struct BorderInlineEndStyleStyleValue;
501
502/// Represents the style value for `border-block-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-style).
503///
504/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
505///
506/// The grammar is defined as:
507///
508/// ```text,ignore
509/// <'border-top-style'>{1,2}
510/// ```
511///
512// https://drafts.csswg.org/css-borders-4/#border-block-style
513#[syntax(" <'border-top-style'>{1,2} ")]
514#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
515#[style_value(
516	initial = "see individual properties",
517	applies_to = "see individual properties",
518	inherited = "see individual properties",
519	percentages = "see individual properties",
520	canonical_order = "per grammar",
521	animation_type = "see individual properties"
522)]
523#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
524#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-style"))]
525#[visit]
526pub struct BorderBlockStyleStyleValue;
527
528/// Represents the style value for `border-inline-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-style).
529///
530/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
531///
532/// The grammar is defined as:
533///
534/// ```text,ignore
535/// <'border-top-style'>{1,2}
536/// ```
537///
538// https://drafts.csswg.org/css-borders-4/#border-inline-style
539#[syntax(" <'border-top-style'>{1,2} ")]
540#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
541#[style_value(
542	initial = "see individual properties",
543	applies_to = "see individual properties",
544	inherited = "see individual properties",
545	percentages = "see individual properties",
546	canonical_order = "per grammar",
547	animation_type = "see individual properties"
548)]
549#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
550#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-style"))]
551#[visit]
552pub struct BorderInlineStyleStyleValue;
553
554/// Represents the style value for `border-top-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-width).
555///
556/// The border CSS property sets the color, style, and width of the line around an element.
557///
558/// The grammar is defined as:
559///
560/// ```text,ignore
561/// <line-width>
562/// ```
563///
564// https://drafts.csswg.org/css-borders-4/#border-top-width
565#[syntax(" <line-width> ")]
566#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
567#[style_value(
568	initial = "medium",
569	applies_to = "all elements except ruby base containers and ruby annotation containers",
570	inherited = "no",
571	percentages = "n/a",
572	canonical_order = "per grammar",
573	animation_type = "by computed value"
574)]
575#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
576#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-width"))]
577#[visit]
578pub struct BorderTopWidthStyleValue;
579
580/// Represents the style value for `border-right-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-width).
581///
582/// The border CSS property sets the color, style, and width of the line around an element.
583///
584/// The grammar is defined as:
585///
586/// ```text,ignore
587/// <line-width>
588/// ```
589///
590// https://drafts.csswg.org/css-borders-4/#border-right-width
591#[syntax(" <line-width> ")]
592#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
593#[style_value(
594	initial = "medium",
595	applies_to = "all elements except ruby base containers and ruby annotation containers",
596	inherited = "no",
597	percentages = "n/a",
598	canonical_order = "per grammar",
599	animation_type = "by computed value"
600)]
601#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
602#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-width"))]
603#[visit]
604pub struct BorderRightWidthStyleValue;
605
606/// Represents the style value for `border-bottom-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-width).
607///
608/// The border CSS property sets the color, style, and width of the line around an element.
609///
610/// The grammar is defined as:
611///
612/// ```text,ignore
613/// <line-width>
614/// ```
615///
616// https://drafts.csswg.org/css-borders-4/#border-bottom-width
617#[syntax(" <line-width> ")]
618#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
619#[style_value(
620	initial = "medium",
621	applies_to = "all elements except ruby base containers and ruby annotation containers",
622	inherited = "no",
623	percentages = "n/a",
624	canonical_order = "per grammar",
625	animation_type = "by computed value"
626)]
627#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
628#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-width"))]
629#[visit]
630pub struct BorderBottomWidthStyleValue;
631
632/// Represents the style value for `border-left-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-width).
633///
634/// The border CSS property sets the color, style, and width of the line around an element.
635///
636/// The grammar is defined as:
637///
638/// ```text,ignore
639/// <line-width>
640/// ```
641///
642// https://drafts.csswg.org/css-borders-4/#border-left-width
643#[syntax(" <line-width> ")]
644#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
645#[style_value(
646	initial = "medium",
647	applies_to = "all elements except ruby base containers and ruby annotation containers",
648	inherited = "no",
649	percentages = "n/a",
650	canonical_order = "per grammar",
651	animation_type = "by computed value"
652)]
653#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
654#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-width"))]
655#[visit]
656pub struct BorderLeftWidthStyleValue;
657
658/// Represents the style value for `border-block-start-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-width).
659///
660/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
661///
662/// The grammar is defined as:
663///
664/// ```text,ignore
665/// <line-width>
666/// ```
667///
668// https://drafts.csswg.org/css-borders-4/#border-block-start-width
669#[syntax(" <line-width> ")]
670#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
671#[style_value(
672	initial = "medium",
673	applies_to = "all elements except ruby base containers and ruby annotation containers",
674	inherited = "no",
675	percentages = "n/a",
676	canonical_order = "per grammar",
677	animation_type = "by computed value"
678)]
679#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
680#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-width"))]
681#[visit]
682pub struct BorderBlockStartWidthStyleValue;
683
684/// Represents the style value for `border-block-end-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-width).
685///
686/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
687///
688/// The grammar is defined as:
689///
690/// ```text,ignore
691/// <line-width>
692/// ```
693///
694// https://drafts.csswg.org/css-borders-4/#border-block-end-width
695#[syntax(" <line-width> ")]
696#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
697#[style_value(
698	initial = "medium",
699	applies_to = "all elements except ruby base containers and ruby annotation containers",
700	inherited = "no",
701	percentages = "n/a",
702	canonical_order = "per grammar",
703	animation_type = "by computed value"
704)]
705#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
706#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-width"))]
707#[visit]
708pub struct BorderBlockEndWidthStyleValue;
709
710/// Represents the style value for `border-inline-start-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-width).
711///
712/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
713///
714/// The grammar is defined as:
715///
716/// ```text,ignore
717/// <line-width>
718/// ```
719///
720// https://drafts.csswg.org/css-borders-4/#border-inline-start-width
721#[syntax(" <line-width> ")]
722#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
723#[style_value(
724	initial = "medium",
725	applies_to = "all elements except ruby base containers and ruby annotation containers",
726	inherited = "no",
727	percentages = "n/a",
728	canonical_order = "per grammar",
729	animation_type = "by computed value"
730)]
731#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
732#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-width"))]
733#[visit]
734pub struct BorderInlineStartWidthStyleValue;
735
736/// Represents the style value for `border-inline-end-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-width).
737///
738/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
739///
740/// The grammar is defined as:
741///
742/// ```text,ignore
743/// <line-width>
744/// ```
745///
746// https://drafts.csswg.org/css-borders-4/#border-inline-end-width
747#[syntax(" <line-width> ")]
748#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
749#[style_value(
750	initial = "medium",
751	applies_to = "all elements except ruby base containers and ruby annotation containers",
752	inherited = "no",
753	percentages = "n/a",
754	canonical_order = "per grammar",
755	animation_type = "by computed value"
756)]
757#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
758#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-width"))]
759#[visit]
760pub struct BorderInlineEndWidthStyleValue;
761
762/// Represents the style value for `border-block-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-width).
763///
764/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
765///
766/// The grammar is defined as:
767///
768/// ```text,ignore
769/// <'border-top-width'>{1,2}
770/// ```
771///
772// https://drafts.csswg.org/css-borders-4/#border-block-width
773#[syntax(" <'border-top-width'>{1,2} ")]
774#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
775#[style_value(
776	initial = "see individual properties",
777	applies_to = "see individual properties",
778	inherited = "see individual properties",
779	percentages = "see individual properties",
780	canonical_order = "per grammar",
781	animation_type = "see individual properties"
782)]
783#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
784#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-width"))]
785#[visit]
786pub struct BorderBlockWidthStyleValue;
787
788/// Represents the style value for `border-inline-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-width).
789///
790/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
791///
792/// The grammar is defined as:
793///
794/// ```text,ignore
795/// <'border-top-width'>{1,2}
796/// ```
797///
798// https://drafts.csswg.org/css-borders-4/#border-inline-width
799#[syntax(" <'border-top-width'>{1,2} ")]
800#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
801#[style_value(
802	initial = "see individual properties",
803	applies_to = "see individual properties",
804	inherited = "see individual properties",
805	percentages = "see individual properties",
806	canonical_order = "per grammar",
807	animation_type = "see individual properties"
808)]
809#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
810#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-width"))]
811#[visit]
812pub struct BorderInlineWidthStyleValue;
813
814/// Represents the style value for `border-top` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top).
815///
816/// The border CSS property sets the color, style, and width of the line around an element.
817///
818/// The grammar is defined as:
819///
820/// ```text,ignore
821/// <line-width> || <line-style> || <color>
822/// ```
823///
824// https://drafts.csswg.org/css-borders-4/#border-top
825#[syntax(" <line-width> || <line-style> || <color> ")]
826#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
827#[style_value(
828	initial = "See individual properties",
829	applies_to = "all elements except ruby base containers and ruby annotation containers",
830	inherited = "no",
831	percentages = "n/a",
832	canonical_order = "per grammar",
833	animation_type = "see individual properties"
834)]
835#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
836#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top"))]
837#[visit]
838pub struct BorderTopStyleValue;
839
840/// Represents the style value for `border-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right).
841///
842/// The border CSS property sets the color, style, and width of the line around an element.
843///
844/// The grammar is defined as:
845///
846/// ```text,ignore
847/// <line-width> || <line-style> || <color>
848/// ```
849///
850// https://drafts.csswg.org/css-borders-4/#border-right
851#[syntax(" <line-width> || <line-style> || <color> ")]
852#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
853#[style_value(
854	initial = "See individual properties",
855	applies_to = "all elements except ruby base containers and ruby annotation containers",
856	inherited = "no",
857	percentages = "n/a",
858	canonical_order = "per grammar",
859	animation_type = "see individual properties"
860)]
861#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
862#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right"))]
863#[visit]
864pub struct BorderRightStyleValue;
865
866/// Represents the style value for `border-bottom` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom).
867///
868/// The border CSS property sets the color, style, and width of the line around an element.
869///
870/// The grammar is defined as:
871///
872/// ```text,ignore
873/// <line-width> || <line-style> || <color>
874/// ```
875///
876// https://drafts.csswg.org/css-borders-4/#border-bottom
877#[syntax(" <line-width> || <line-style> || <color> ")]
878#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
879#[style_value(
880	initial = "See individual properties",
881	applies_to = "all elements except ruby base containers and ruby annotation containers",
882	inherited = "no",
883	percentages = "n/a",
884	canonical_order = "per grammar",
885	animation_type = "see individual properties"
886)]
887#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
888#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom"))]
889#[visit]
890pub struct BorderBottomStyleValue;
891
892/// Represents the style value for `border-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left).
893///
894/// The border CSS property sets the color, style, and width of the line around an element.
895///
896/// The grammar is defined as:
897///
898/// ```text,ignore
899/// <line-width> || <line-style> || <color>
900/// ```
901///
902// https://drafts.csswg.org/css-borders-4/#border-left
903#[syntax(" <line-width> || <line-style> || <color> ")]
904#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
905#[style_value(
906	initial = "See individual properties",
907	applies_to = "all elements except ruby base containers and ruby annotation containers",
908	inherited = "no",
909	percentages = "n/a",
910	canonical_order = "per grammar",
911	animation_type = "see individual properties"
912)]
913#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
914#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left"))]
915#[visit]
916pub struct BorderLeftStyleValue;
917
918/// Represents the style value for `border-block-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start).
919///
920/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
921///
922/// The grammar is defined as:
923///
924/// ```text,ignore
925/// <line-width> || <line-style> || <color>
926/// ```
927///
928// https://drafts.csswg.org/css-borders-4/#border-block-start
929#[syntax(" <line-width> || <line-style> || <color> ")]
930#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
931#[style_value(
932	initial = "See individual properties",
933	applies_to = "all elements except ruby base containers and ruby annotation containers",
934	inherited = "no",
935	percentages = "n/a",
936	canonical_order = "per grammar",
937	animation_type = "see individual properties"
938)]
939#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
940#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start"))]
941#[visit]
942pub struct BorderBlockStartStyleValue;
943
944/// Represents the style value for `border-block-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end).
945///
946/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
947///
948/// The grammar is defined as:
949///
950/// ```text,ignore
951/// <line-width> || <line-style> || <color>
952/// ```
953///
954// https://drafts.csswg.org/css-borders-4/#border-block-end
955#[syntax(" <line-width> || <line-style> || <color> ")]
956#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
957#[style_value(
958	initial = "See individual properties",
959	applies_to = "all elements except ruby base containers and ruby annotation containers",
960	inherited = "no",
961	percentages = "n/a",
962	canonical_order = "per grammar",
963	animation_type = "see individual properties"
964)]
965#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
966#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end"))]
967#[visit]
968pub struct BorderBlockEndStyleValue;
969
970/// Represents the style value for `border-inline-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start).
971///
972/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
973///
974/// The grammar is defined as:
975///
976/// ```text,ignore
977/// <line-width> || <line-style> || <color>
978/// ```
979///
980// https://drafts.csswg.org/css-borders-4/#border-inline-start
981#[syntax(" <line-width> || <line-style> || <color> ")]
982#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
983#[style_value(
984	initial = "See individual properties",
985	applies_to = "all elements except ruby base containers and ruby annotation containers",
986	inherited = "no",
987	percentages = "n/a",
988	canonical_order = "per grammar",
989	animation_type = "see individual properties"
990)]
991#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
992#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start"))]
993#[visit]
994pub struct BorderInlineStartStyleValue;
995
996/// Represents the style value for `border-inline-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end).
997///
998/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
999///
1000/// The grammar is defined as:
1001///
1002/// ```text,ignore
1003/// <line-width> || <line-style> || <color>
1004/// ```
1005///
1006// https://drafts.csswg.org/css-borders-4/#border-inline-end
1007#[syntax(" <line-width> || <line-style> || <color> ")]
1008#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1009#[style_value(
1010	initial = "See individual properties",
1011	applies_to = "all elements except ruby base containers and ruby annotation containers",
1012	inherited = "no",
1013	percentages = "n/a",
1014	canonical_order = "per grammar",
1015	animation_type = "see individual properties"
1016)]
1017#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1018#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end"))]
1019#[visit]
1020pub struct BorderInlineEndStyleValue;
1021
1022/// Represents the style value for `border-block` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block).
1023///
1024/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1025///
1026/// The grammar is defined as:
1027///
1028/// ```text,ignore
1029/// <'border-block-start'>
1030/// ```
1031///
1032// https://drafts.csswg.org/css-borders-4/#border-block
1033#[syntax(" <'border-block-start'> ")]
1034#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1035#[style_value(
1036	initial = "see individual properties",
1037	applies_to = "see individual properties",
1038	inherited = "see individual properties",
1039	percentages = "see individual properties",
1040	canonical_order = "per grammar",
1041	animation_type = "see individual properties"
1042)]
1043#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1044#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block"))]
1045#[visit]
1046pub struct BorderBlockStyleValue;
1047
1048/// Represents the style value for `border-inline` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline).
1049///
1050/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1051///
1052/// The grammar is defined as:
1053///
1054/// ```text,ignore
1055/// <'border-block-start'>
1056/// ```
1057///
1058// https://drafts.csswg.org/css-borders-4/#border-inline
1059#[syntax(" <'border-block-start'> ")]
1060#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1061#[style_value(
1062	initial = "see individual properties",
1063	applies_to = "see individual properties",
1064	inherited = "see individual properties",
1065	percentages = "see individual properties",
1066	canonical_order = "per grammar",
1067	animation_type = "see individual properties"
1068)]
1069#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1070#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline"))]
1071#[visit]
1072pub struct BorderInlineStyleValue;
1073
1074/// Represents the style value for `border-top-left-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-left-radius).
1075///
1076/// The border-radius CSS property rounds the corners of the border drawn around an element.
1077///
1078/// The grammar is defined as:
1079///
1080/// ```text,ignore
1081/// <length-percentage [0,∞]>{1,2}
1082/// ```
1083///
1084// https://drafts.csswg.org/css-borders-4/#border-top-left-radius
1085#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1086#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1087#[style_value(
1088	initial = "0",
1089	applies_to = "all elements (but see prose)",
1090	inherited = "no",
1091	percentages = "refer to corresponding dimension of the border box.",
1092	canonical_order = "per grammar",
1093	animation_type = "by computed value"
1094)]
1095#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1096#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-left-radius"))]
1097#[visit]
1098pub struct BorderTopLeftRadiusStyleValue;
1099
1100/// Represents the style value for `border-top-right-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-right-radius).
1101///
1102/// The border-radius CSS property rounds the corners of the border drawn around an element.
1103///
1104/// The grammar is defined as:
1105///
1106/// ```text,ignore
1107/// <length-percentage [0,∞]>{1,2}
1108/// ```
1109///
1110// https://drafts.csswg.org/css-borders-4/#border-top-right-radius
1111#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1112#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1113#[style_value(
1114	initial = "0",
1115	applies_to = "all elements (but see prose)",
1116	inherited = "no",
1117	percentages = "refer to corresponding dimension of the border box.",
1118	canonical_order = "per grammar",
1119	animation_type = "by computed value"
1120)]
1121#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1122#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-right-radius"))]
1123#[visit]
1124pub struct BorderTopRightRadiusStyleValue;
1125
1126/// Represents the style value for `border-bottom-right-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-right-radius).
1127///
1128/// The border-radius CSS property rounds the corners of the border drawn around an element.
1129///
1130/// The grammar is defined as:
1131///
1132/// ```text,ignore
1133/// <length-percentage [0,∞]>{1,2}
1134/// ```
1135///
1136// https://drafts.csswg.org/css-borders-4/#border-bottom-right-radius
1137#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1138#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1139#[style_value(
1140	initial = "0",
1141	applies_to = "all elements (but see prose)",
1142	inherited = "no",
1143	percentages = "refer to corresponding dimension of the border box.",
1144	canonical_order = "per grammar",
1145	animation_type = "by computed value"
1146)]
1147#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1148#[cfg_attr(
1149	feature = "css_feature_data",
1150	derive(ToCSSFeature),
1151	css_feature("css.properties.border-bottom-right-radius")
1152)]
1153#[visit]
1154pub struct BorderBottomRightRadiusStyleValue;
1155
1156/// Represents the style value for `border-bottom-left-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-left-radius).
1157///
1158/// The border-radius CSS property rounds the corners of the border drawn around an element.
1159///
1160/// The grammar is defined as:
1161///
1162/// ```text,ignore
1163/// <length-percentage [0,∞]>{1,2}
1164/// ```
1165///
1166// https://drafts.csswg.org/css-borders-4/#border-bottom-left-radius
1167#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1168#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1169#[style_value(
1170	initial = "0",
1171	applies_to = "all elements (but see prose)",
1172	inherited = "no",
1173	percentages = "refer to corresponding dimension of the border box.",
1174	canonical_order = "per grammar",
1175	animation_type = "by computed value"
1176)]
1177#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1178#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-left-radius"))]
1179#[visit]
1180pub struct BorderBottomLeftRadiusStyleValue;
1181
1182/// Represents the style value for `border-start-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-start-start-radius).
1183///
1184/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1185///
1186/// The grammar is defined as:
1187///
1188/// ```text,ignore
1189/// <length-percentage [0,∞]>{1,2}
1190/// ```
1191///
1192// https://drafts.csswg.org/css-borders-4/#border-start-start-radius
1193#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1194#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1195#[style_value(
1196	initial = "0",
1197	applies_to = "all elements (but see prose)",
1198	inherited = "no",
1199	percentages = "refer to corresponding dimension of the border box.",
1200	canonical_order = "per grammar",
1201	animation_type = "by computed value"
1202)]
1203#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1204#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-start-start-radius"))]
1205#[visit]
1206pub struct BorderStartStartRadiusStyleValue;
1207
1208/// Represents the style value for `border-start-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-start-end-radius).
1209///
1210/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1211///
1212/// The grammar is defined as:
1213///
1214/// ```text,ignore
1215/// <length-percentage [0,∞]>{1,2}
1216/// ```
1217///
1218// https://drafts.csswg.org/css-borders-4/#border-start-end-radius
1219#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1220#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1221#[style_value(
1222	initial = "0",
1223	applies_to = "all elements (but see prose)",
1224	inherited = "no",
1225	percentages = "refer to corresponding dimension of the border box.",
1226	canonical_order = "per grammar",
1227	animation_type = "by computed value"
1228)]
1229#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1230#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-start-end-radius"))]
1231#[visit]
1232pub struct BorderStartEndRadiusStyleValue;
1233
1234/// Represents the style value for `border-end-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-end-start-radius).
1235///
1236/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1237///
1238/// The grammar is defined as:
1239///
1240/// ```text,ignore
1241/// <length-percentage [0,∞]>{1,2}
1242/// ```
1243///
1244// https://drafts.csswg.org/css-borders-4/#border-end-start-radius
1245#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1246#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1247#[style_value(
1248	initial = "0",
1249	applies_to = "all elements (but see prose)",
1250	inherited = "no",
1251	percentages = "refer to corresponding dimension of the border box.",
1252	canonical_order = "per grammar",
1253	animation_type = "by computed value"
1254)]
1255#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1256#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-end-start-radius"))]
1257#[visit]
1258pub struct BorderEndStartRadiusStyleValue;
1259
1260/// Represents the style value for `border-end-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-end-end-radius).
1261///
1262/// CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode, block-end refers to the bottom. Also known as flow relative.
1263///
1264/// The grammar is defined as:
1265///
1266/// ```text,ignore
1267/// <length-percentage [0,∞]>{1,2}
1268/// ```
1269///
1270// https://drafts.csswg.org/css-borders-4/#border-end-end-radius
1271#[syntax(" <length-percentage [0,∞]>{1,2} ")]
1272#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1273#[style_value(
1274	initial = "0",
1275	applies_to = "all elements (but see prose)",
1276	inherited = "no",
1277	percentages = "refer to corresponding dimension of the border box.",
1278	canonical_order = "per grammar",
1279	animation_type = "by computed value"
1280)]
1281#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1282#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-end-end-radius"))]
1283#[visit]
1284pub struct BorderEndEndRadiusStyleValue;
1285
1286// /// Represents the style value for `border-top-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-radius).
1287// ///
1288// /// The grammar is defined as:
1289// ///
1290// /// ```text,ignore
1291// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1292// /// ```
1293// ///
1294// // https://drafts.csswg.org/css-borders-4/#border-top-radius
1295// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1296// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1297// #[style_value(
1298// 	initial = "0",
1299//   applies_to = "all elements (but see prose)",
1300// 	inherited = "no",
1301// 	percentages = "refer to corresponding dimension of the border box.",
1302// 	canonical_order = "per grammar",
1303// 	animation_type = "see individual properties",
1304// )]
1305// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1306// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-radius"))]
1307// #[visit]
1308// pub struct BorderTopRadiusStyleValue;
1309
1310// /// Represents the style value for `border-right-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-radius).
1311// ///
1312// /// The grammar is defined as:
1313// ///
1314// /// ```text,ignore
1315// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1316// /// ```
1317// ///
1318// // https://drafts.csswg.org/css-borders-4/#border-right-radius
1319// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1320// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1321// #[style_value(
1322// 	initial = "0",
1323//   applies_to = "all elements (but see prose)",
1324// 	inherited = "no",
1325// 	percentages = "refer to corresponding dimension of the border box.",
1326// 	canonical_order = "per grammar",
1327// 	animation_type = "see individual properties",
1328// )]
1329// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1330// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-radius"))]
1331// #[visit]
1332// pub struct BorderRightRadiusStyleValue;
1333
1334// /// Represents the style value for `border-bottom-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-radius).
1335// ///
1336// /// The grammar is defined as:
1337// ///
1338// /// ```text,ignore
1339// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1340// /// ```
1341// ///
1342// // https://drafts.csswg.org/css-borders-4/#border-bottom-radius
1343// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1344// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1345// #[style_value(
1346// 	initial = "0",
1347//   applies_to = "all elements (but see prose)",
1348// 	inherited = "no",
1349// 	percentages = "refer to corresponding dimension of the border box.",
1350// 	canonical_order = "per grammar",
1351// 	animation_type = "see individual properties",
1352// )]
1353// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1354// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-radius"))]
1355// #[visit]
1356// pub struct BorderBottomRadiusStyleValue;
1357
1358// /// Represents the style value for `border-left-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-radius).
1359// ///
1360// /// The grammar is defined as:
1361// ///
1362// /// ```text,ignore
1363// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1364// /// ```
1365// ///
1366// // https://drafts.csswg.org/css-borders-4/#border-left-radius
1367// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1368// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1369// #[style_value(
1370// 	initial = "0",
1371//   applies_to = "all elements (but see prose)",
1372// 	inherited = "no",
1373// 	percentages = "refer to corresponding dimension of the border box.",
1374// 	canonical_order = "per grammar",
1375// 	animation_type = "see individual properties",
1376// )]
1377// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1378// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-radius"))]
1379// #[visit]
1380// pub struct BorderLeftRadiusStyleValue;
1381
1382// /// Represents the style value for `border-block-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-radius).
1383// ///
1384// /// The grammar is defined as:
1385// ///
1386// /// ```text,ignore
1387// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1388// /// ```
1389// ///
1390// // https://drafts.csswg.org/css-borders-4/#border-block-start-radius
1391// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1392// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1393// #[style_value(
1394// 	initial = "0",
1395//   applies_to = "all elements (but see prose)",
1396// 	inherited = "no",
1397// 	percentages = "refer to corresponding dimension of the border box.",
1398// 	canonical_order = "per grammar",
1399// 	animation_type = "see individual properties",
1400// )]
1401// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1402// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-radius"))]
1403// #[visit]
1404// pub struct BorderBlockStartRadiusStyleValue;
1405
1406// /// Represents the style value for `border-block-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-radius).
1407// ///
1408// /// The grammar is defined as:
1409// ///
1410// /// ```text,ignore
1411// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1412// /// ```
1413// ///
1414// // https://drafts.csswg.org/css-borders-4/#border-block-end-radius
1415// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1416// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1417// #[style_value(
1418// 	initial = "0",
1419//   applies_to = "all elements (but see prose)",
1420// 	inherited = "no",
1421// 	percentages = "refer to corresponding dimension of the border box.",
1422// 	canonical_order = "per grammar",
1423// 	animation_type = "see individual properties",
1424// )]
1425// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1426// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-radius"))]
1427// #[visit]
1428// pub struct BorderBlockEndRadiusStyleValue;
1429
1430// /// Represents the style value for `border-inline-start-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-radius).
1431// ///
1432// /// The grammar is defined as:
1433// ///
1434// /// ```text,ignore
1435// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1436// /// ```
1437// ///
1438// // https://drafts.csswg.org/css-borders-4/#border-inline-start-radius
1439// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1440// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1441// #[style_value(
1442// 	initial = "0",
1443//   applies_to = "all elements (but see prose)",
1444// 	inherited = "no",
1445// 	percentages = "refer to corresponding dimension of the border box.",
1446// 	canonical_order = "per grammar",
1447// 	animation_type = "see individual properties",
1448// )]
1449// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1450// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-radius"))]
1451// #[visit]
1452// pub struct BorderInlineStartRadiusStyleValue;
1453
1454// /// Represents the style value for `border-inline-end-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-radius).
1455// ///
1456// /// The grammar is defined as:
1457// ///
1458// /// ```text,ignore
1459// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1460// /// ```
1461// ///
1462// // https://drafts.csswg.org/css-borders-4/#border-inline-end-radius
1463// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1464// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1465// #[style_value(
1466// 	initial = "0",
1467//   applies_to = "all elements (but see prose)",
1468// 	inherited = "no",
1469// 	percentages = "refer to corresponding dimension of the border box.",
1470// 	canonical_order = "per grammar",
1471// 	animation_type = "see individual properties",
1472// )]
1473// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1474// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-radius"))]
1475// #[visit]
1476// pub struct BorderInlineEndRadiusStyleValue;
1477
1478// /// Represents the style value for `border-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-radius).
1479// ///
1480// /// The border-radius CSS property rounds the corners of the border drawn around an element.
1481// ///
1482// /// The grammar is defined as:
1483// ///
1484// /// ```text,ignore
1485// /// <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?
1486// /// ```
1487// ///
1488// // https://drafts.csswg.org/css-borders-4/#border-radius
1489// #[syntax(" <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]? ")]
1490// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1491// #[style_value(
1492// 	initial = "0",
1493//   applies_to = "all elements, except table element when border-collapse is collapse",
1494// 	inherited = "no",
1495// 	percentages = "n/a",
1496// 	canonical_order = "per grammar",
1497// 	animation_type = "see individual properties",
1498// )]
1499// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1500// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-radius"))]
1501// #[visit]
1502// pub struct BorderRadiusStyleValue;
1503
1504/// Represents the style value for `corner-top-left-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-left-shape).
1505///
1506/// The grammar is defined as:
1507///
1508/// ```text,ignore
1509/// <corner-shape-value>
1510/// ```
1511///
1512// https://drafts.csswg.org/css-borders-4/#corner-top-left-shape
1513#[syntax(" <corner-shape-value> ")]
1514#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1515#[style_value(
1516	initial = "round",
1517	applies_to = "all elements where border-radius can apply",
1518	inherited = "no",
1519	percentages = "n/a",
1520	canonical_order = "per grammar",
1521	animation_type = "see superellipse interpolation"
1522)]
1523#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1524#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-left-shape"))]
1525#[visit]
1526pub struct CornerTopLeftShapeStyleValue;
1527
1528/// Represents the style value for `corner-top-right-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-right-shape).
1529///
1530/// The grammar is defined as:
1531///
1532/// ```text,ignore
1533/// <corner-shape-value>
1534/// ```
1535///
1536// https://drafts.csswg.org/css-borders-4/#corner-top-right-shape
1537#[syntax(" <corner-shape-value> ")]
1538#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1539#[style_value(
1540	initial = "round",
1541	applies_to = "all elements where border-radius can apply",
1542	inherited = "no",
1543	percentages = "n/a",
1544	canonical_order = "per grammar",
1545	animation_type = "see superellipse interpolation"
1546)]
1547#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1548#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-right-shape"))]
1549#[visit]
1550pub struct CornerTopRightShapeStyleValue;
1551
1552/// Represents the style value for `corner-bottom-right-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-right-shape).
1553///
1554/// The grammar is defined as:
1555///
1556/// ```text,ignore
1557/// <corner-shape-value>
1558/// ```
1559///
1560// https://drafts.csswg.org/css-borders-4/#corner-bottom-right-shape
1561#[syntax(" <corner-shape-value> ")]
1562#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1563#[style_value(
1564	initial = "round",
1565	applies_to = "all elements where border-radius can apply",
1566	inherited = "no",
1567	percentages = "n/a",
1568	canonical_order = "per grammar",
1569	animation_type = "see superellipse interpolation"
1570)]
1571#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1572#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-right-shape"))]
1573#[visit]
1574pub struct CornerBottomRightShapeStyleValue;
1575
1576/// Represents the style value for `corner-bottom-left-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-left-shape).
1577///
1578/// The grammar is defined as:
1579///
1580/// ```text,ignore
1581/// <corner-shape-value>
1582/// ```
1583///
1584// https://drafts.csswg.org/css-borders-4/#corner-bottom-left-shape
1585#[syntax(" <corner-shape-value> ")]
1586#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1587#[style_value(
1588	initial = "round",
1589	applies_to = "all elements where border-radius can apply",
1590	inherited = "no",
1591	percentages = "n/a",
1592	canonical_order = "per grammar",
1593	animation_type = "see superellipse interpolation"
1594)]
1595#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1596#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-left-shape"))]
1597#[visit]
1598pub struct CornerBottomLeftShapeStyleValue;
1599
1600/// Represents the style value for `corner-start-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-start-shape).
1601///
1602/// The grammar is defined as:
1603///
1604/// ```text,ignore
1605/// <corner-shape-value>
1606/// ```
1607///
1608// https://drafts.csswg.org/css-borders-4/#corner-start-start-shape
1609#[syntax(" <corner-shape-value> ")]
1610#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1611#[style_value(
1612	initial = "round",
1613	applies_to = "all elements where border-radius can apply",
1614	inherited = "no",
1615	percentages = "n/a",
1616	canonical_order = "per grammar",
1617	animation_type = "see superellipse interpolation"
1618)]
1619#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1620#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-start-shape"))]
1621#[visit]
1622pub struct CornerStartStartShapeStyleValue;
1623
1624/// Represents the style value for `corner-start-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-end-shape).
1625///
1626/// The grammar is defined as:
1627///
1628/// ```text,ignore
1629/// <corner-shape-value>
1630/// ```
1631///
1632// https://drafts.csswg.org/css-borders-4/#corner-start-end-shape
1633#[syntax(" <corner-shape-value> ")]
1634#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1635#[style_value(
1636	initial = "round",
1637	applies_to = "all elements where border-radius can apply",
1638	inherited = "no",
1639	percentages = "n/a",
1640	canonical_order = "per grammar",
1641	animation_type = "see superellipse interpolation"
1642)]
1643#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1644#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-end-shape"))]
1645#[visit]
1646pub struct CornerStartEndShapeStyleValue;
1647
1648/// Represents the style value for `corner-end-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-start-shape).
1649///
1650/// The grammar is defined as:
1651///
1652/// ```text,ignore
1653/// <corner-shape-value>
1654/// ```
1655///
1656// https://drafts.csswg.org/css-borders-4/#corner-end-start-shape
1657#[syntax(" <corner-shape-value> ")]
1658#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1659#[style_value(
1660	initial = "round",
1661	applies_to = "all elements where border-radius can apply",
1662	inherited = "no",
1663	percentages = "n/a",
1664	canonical_order = "per grammar",
1665	animation_type = "see superellipse interpolation"
1666)]
1667#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1668#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-start-shape"))]
1669#[visit]
1670pub struct CornerEndStartShapeStyleValue;
1671
1672/// Represents the style value for `corner-end-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-end-shape).
1673///
1674/// The grammar is defined as:
1675///
1676/// ```text,ignore
1677/// <corner-shape-value>
1678/// ```
1679///
1680// https://drafts.csswg.org/css-borders-4/#corner-end-end-shape
1681#[syntax(" <corner-shape-value> ")]
1682#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1683#[style_value(
1684	initial = "round",
1685	applies_to = "all elements where border-radius can apply",
1686	inherited = "no",
1687	percentages = "n/a",
1688	canonical_order = "per grammar",
1689	animation_type = "see superellipse interpolation"
1690)]
1691#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1692#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-end-shape"))]
1693#[visit]
1694pub struct CornerEndEndShapeStyleValue;
1695
1696/// Represents the style value for `corner-top-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-shape).
1697///
1698/// The grammar is defined as:
1699///
1700/// ```text,ignore
1701/// <'corner-top-left-shape'>{1,2}
1702/// ```
1703///
1704// https://drafts.csswg.org/css-borders-4/#corner-top-shape
1705#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1706#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1707#[style_value(
1708	initial = "see individual properties",
1709	applies_to = "see individual properties",
1710	inherited = "see individual properties",
1711	percentages = "see individual properties",
1712	canonical_order = "per grammar",
1713	animation_type = "see individual properties"
1714)]
1715#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1716#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-shape"))]
1717#[visit]
1718pub struct CornerTopShapeStyleValue;
1719
1720/// Represents the style value for `corner-right-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-right-shape).
1721///
1722/// The grammar is defined as:
1723///
1724/// ```text,ignore
1725/// <'corner-top-left-shape'>{1,2}
1726/// ```
1727///
1728// https://drafts.csswg.org/css-borders-4/#corner-right-shape
1729#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1730#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1731#[style_value(
1732	initial = "see individual properties",
1733	applies_to = "see individual properties",
1734	inherited = "see individual properties",
1735	percentages = "see individual properties",
1736	canonical_order = "per grammar",
1737	animation_type = "see individual properties"
1738)]
1739#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1740#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-right-shape"))]
1741#[visit]
1742pub struct CornerRightShapeStyleValue;
1743
1744/// Represents the style value for `corner-bottom-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-shape).
1745///
1746/// The grammar is defined as:
1747///
1748/// ```text,ignore
1749/// <'corner-top-left-shape'>{1,2}
1750/// ```
1751///
1752// https://drafts.csswg.org/css-borders-4/#corner-bottom-shape
1753#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1754#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1755#[style_value(
1756	initial = "see individual properties",
1757	applies_to = "see individual properties",
1758	inherited = "see individual properties",
1759	percentages = "see individual properties",
1760	canonical_order = "per grammar",
1761	animation_type = "see individual properties"
1762)]
1763#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1764#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-shape"))]
1765#[visit]
1766pub struct CornerBottomShapeStyleValue;
1767
1768/// Represents the style value for `corner-left-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-left-shape).
1769///
1770/// The grammar is defined as:
1771///
1772/// ```text,ignore
1773/// <'corner-top-left-shape'>{1,2}
1774/// ```
1775///
1776// https://drafts.csswg.org/css-borders-4/#corner-left-shape
1777#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1778#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1779#[style_value(
1780	initial = "see individual properties",
1781	applies_to = "see individual properties",
1782	inherited = "see individual properties",
1783	percentages = "see individual properties",
1784	canonical_order = "per grammar",
1785	animation_type = "see individual properties"
1786)]
1787#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1788#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-left-shape"))]
1789#[visit]
1790pub struct CornerLeftShapeStyleValue;
1791
1792/// Represents the style value for `corner-block-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-start-shape).
1793///
1794/// The grammar is defined as:
1795///
1796/// ```text,ignore
1797/// <'corner-top-left-shape'>{1,2}
1798/// ```
1799///
1800// https://drafts.csswg.org/css-borders-4/#corner-block-start-shape
1801#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1802#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1803#[style_value(
1804	initial = "see individual properties",
1805	applies_to = "see individual properties",
1806	inherited = "see individual properties",
1807	percentages = "see individual properties",
1808	canonical_order = "per grammar",
1809	animation_type = "see individual properties"
1810)]
1811#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1812#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-start-shape"))]
1813#[visit]
1814pub struct CornerBlockStartShapeStyleValue;
1815
1816/// Represents the style value for `corner-block-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-end-shape).
1817///
1818/// The grammar is defined as:
1819///
1820/// ```text,ignore
1821/// <'corner-top-left-shape'>{1,2}
1822/// ```
1823///
1824// https://drafts.csswg.org/css-borders-4/#corner-block-end-shape
1825#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1826#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1827#[style_value(
1828	initial = "see individual properties",
1829	applies_to = "see individual properties",
1830	inherited = "see individual properties",
1831	percentages = "see individual properties",
1832	canonical_order = "per grammar",
1833	animation_type = "see individual properties"
1834)]
1835#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1836#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-end-shape"))]
1837#[visit]
1838pub struct CornerBlockEndShapeStyleValue;
1839
1840/// Represents the style value for `corner-inline-start-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-start-shape).
1841///
1842/// The grammar is defined as:
1843///
1844/// ```text,ignore
1845/// <'corner-top-left-shape'>{1,2}
1846/// ```
1847///
1848// https://drafts.csswg.org/css-borders-4/#corner-inline-start-shape
1849#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1850#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1851#[style_value(
1852	initial = "see individual properties",
1853	applies_to = "see individual properties",
1854	inherited = "see individual properties",
1855	percentages = "see individual properties",
1856	canonical_order = "per grammar",
1857	animation_type = "see individual properties"
1858)]
1859#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1860#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-start-shape"))]
1861#[visit]
1862pub struct CornerInlineStartShapeStyleValue;
1863
1864/// Represents the style value for `corner-inline-end-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-end-shape).
1865///
1866/// The grammar is defined as:
1867///
1868/// ```text,ignore
1869/// <'corner-top-left-shape'>{1,2}
1870/// ```
1871///
1872// https://drafts.csswg.org/css-borders-4/#corner-inline-end-shape
1873#[syntax(" <'corner-top-left-shape'>{1,2} ")]
1874#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1875#[style_value(
1876	initial = "see individual properties",
1877	applies_to = "see individual properties",
1878	inherited = "see individual properties",
1879	percentages = "see individual properties",
1880	canonical_order = "per grammar",
1881	animation_type = "see individual properties"
1882)]
1883#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1884#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-end-shape"))]
1885#[visit]
1886pub struct CornerInlineEndShapeStyleValue;
1887
1888/// Represents the style value for `corner-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-shape).
1889///
1890/// The grammar is defined as:
1891///
1892/// ```text,ignore
1893/// <'corner-top-left-shape'>{1,4}
1894/// ```
1895///
1896// https://drafts.csswg.org/css-borders-4/#corner-shape
1897#[syntax(" <'corner-top-left-shape'>{1,4} ")]
1898#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1899#[style_value(
1900	initial = "round",
1901	applies_to = "all elements where border-radius can apply",
1902	inherited = "no",
1903	percentages = "see individual properties",
1904	canonical_order = "per grammar",
1905	animation_type = "see individual properties"
1906)]
1907#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1908#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-shape"))]
1909#[visit]
1910pub struct CornerShapeStyleValue;
1911
1912// /// Represents the style value for `corner-top-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-left).
1913// ///
1914// /// The grammar is defined as:
1915// ///
1916// /// ```text,ignore
1917// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
1918// /// ```
1919// ///
1920// // https://drafts.csswg.org/css-borders-4/#corner-top-left
1921// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
1922// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1923// #[style_value(
1924// 	initial = "0",
1925//   applies_to = "all elements (but see prose)",
1926// 	inherited = "no",
1927// 	percentages = "refer to corresponding dimension of the border box.",
1928// 	canonical_order = "per grammar",
1929// 	animation_type = "see individual properties",
1930// )]
1931// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1932// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-left"))]
1933// #[visit]
1934// pub struct CornerTopLeftStyleValue;
1935
1936// /// Represents the style value for `corner-top-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-right).
1937// ///
1938// /// The grammar is defined as:
1939// ///
1940// /// ```text,ignore
1941// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
1942// /// ```
1943// ///
1944// // https://drafts.csswg.org/css-borders-4/#corner-top-right
1945// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
1946// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1947// #[style_value(
1948// 	initial = "0",
1949//   applies_to = "all elements (but see prose)",
1950// 	inherited = "no",
1951// 	percentages = "refer to corresponding dimension of the border box.",
1952// 	canonical_order = "per grammar",
1953// 	animation_type = "see individual properties",
1954// )]
1955// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1956// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-right"))]
1957// #[visit]
1958// pub struct CornerTopRightStyleValue;
1959
1960// /// Represents the style value for `corner-bottom-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-left).
1961// ///
1962// /// The grammar is defined as:
1963// ///
1964// /// ```text,ignore
1965// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
1966// /// ```
1967// ///
1968// // https://drafts.csswg.org/css-borders-4/#corner-bottom-left
1969// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
1970// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1971// #[style_value(
1972// 	initial = "0",
1973//   applies_to = "all elements (but see prose)",
1974// 	inherited = "no",
1975// 	percentages = "refer to corresponding dimension of the border box.",
1976// 	canonical_order = "per grammar",
1977// 	animation_type = "see individual properties",
1978// )]
1979// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1980// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-left"))]
1981// #[visit]
1982// pub struct CornerBottomLeftStyleValue;
1983
1984// /// Represents the style value for `corner-bottom-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-right).
1985// ///
1986// /// The grammar is defined as:
1987// ///
1988// /// ```text,ignore
1989// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
1990// /// ```
1991// ///
1992// // https://drafts.csswg.org/css-borders-4/#corner-bottom-right
1993// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
1994// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1995// #[style_value(
1996// 	initial = "0",
1997//   applies_to = "all elements (but see prose)",
1998// 	inherited = "no",
1999// 	percentages = "refer to corresponding dimension of the border box.",
2000// 	canonical_order = "per grammar",
2001// 	animation_type = "see individual properties",
2002// )]
2003// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2004// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-right"))]
2005// #[visit]
2006// pub struct CornerBottomRightStyleValue;
2007
2008// /// Represents the style value for `corner-start-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-start).
2009// ///
2010// /// The grammar is defined as:
2011// ///
2012// /// ```text,ignore
2013// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
2014// /// ```
2015// ///
2016// // https://drafts.csswg.org/css-borders-4/#corner-start-start
2017// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
2018// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2019// #[style_value(
2020// 	initial = "0",
2021//   applies_to = "all elements (but see prose)",
2022// 	inherited = "no",
2023// 	percentages = "refer to corresponding dimension of the border box.",
2024// 	canonical_order = "per grammar",
2025// 	animation_type = "see individual properties",
2026// )]
2027// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2028// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-start"))]
2029// #[visit]
2030// pub struct CornerStartStartStyleValue;
2031
2032// /// Represents the style value for `corner-start-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-end).
2033// ///
2034// /// The grammar is defined as:
2035// ///
2036// /// ```text,ignore
2037// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
2038// /// ```
2039// ///
2040// // https://drafts.csswg.org/css-borders-4/#corner-start-end
2041// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
2042// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2043// #[style_value(
2044// 	initial = "0",
2045//   applies_to = "all elements (but see prose)",
2046// 	inherited = "no",
2047// 	percentages = "refer to corresponding dimension of the border box.",
2048// 	canonical_order = "per grammar",
2049// 	animation_type = "see individual properties",
2050// )]
2051// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2052// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-end"))]
2053// #[visit]
2054// pub struct CornerStartEndStyleValue;
2055
2056// /// Represents the style value for `corner-end-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-start).
2057// ///
2058// /// The grammar is defined as:
2059// ///
2060// /// ```text,ignore
2061// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
2062// /// ```
2063// ///
2064// // https://drafts.csswg.org/css-borders-4/#corner-end-start
2065// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
2066// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2067// #[style_value(
2068// 	initial = "0",
2069//   applies_to = "all elements (but see prose)",
2070// 	inherited = "no",
2071// 	percentages = "refer to corresponding dimension of the border box.",
2072// 	canonical_order = "per grammar",
2073// 	animation_type = "see individual properties",
2074// )]
2075// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2076// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-start"))]
2077// #[visit]
2078// pub struct CornerEndStartStyleValue;
2079
2080// /// Represents the style value for `corner-end-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-end).
2081// ///
2082// /// The grammar is defined as:
2083// ///
2084// /// ```text,ignore
2085// /// <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'>
2086// /// ```
2087// ///
2088// // https://drafts.csswg.org/css-borders-4/#corner-end-end
2089// #[syntax(" <'border-top-left-radius'>{1,2} || <'corner-top-left-shape'> ")]
2090// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2091// #[style_value(
2092// 	initial = "0",
2093//   applies_to = "all elements (but see prose)",
2094// 	inherited = "no",
2095// 	percentages = "refer to corresponding dimension of the border box.",
2096// 	canonical_order = "per grammar",
2097// 	animation_type = "see individual properties",
2098// )]
2099// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2100// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-end"))]
2101// #[visit]
2102// pub struct CornerEndEndStyleValue;
2103
2104// /// Represents the style value for `corner-top` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top).
2105// ///
2106// /// The grammar is defined as:
2107// ///
2108// /// ```text,ignore
2109// /// <'border-top-radius'> || <'corner-top-shape'>
2110// /// ```
2111// ///
2112// // https://drafts.csswg.org/css-borders-4/#corner-top
2113// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2114// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2115// #[style_value(
2116// 	initial = "0",
2117//   applies_to = "all elements (but see prose)",
2118// 	inherited = "no",
2119// 	percentages = "refer to corresponding dimension of the border box.",
2120// 	canonical_order = "per grammar",
2121// 	animation_type = "see individual properties",
2122// )]
2123// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2124// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top"))]
2125// #[visit]
2126// pub struct CornerTopStyleValue;
2127
2128// /// Represents the style value for `corner-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-right).
2129// ///
2130// /// The grammar is defined as:
2131// ///
2132// /// ```text,ignore
2133// /// <'border-top-radius'> || <'corner-top-shape'>
2134// /// ```
2135// ///
2136// // https://drafts.csswg.org/css-borders-4/#corner-right
2137// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2138// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2139// #[style_value(
2140// 	initial = "0",
2141//   applies_to = "all elements (but see prose)",
2142// 	inherited = "no",
2143// 	percentages = "refer to corresponding dimension of the border box.",
2144// 	canonical_order = "per grammar",
2145// 	animation_type = "see individual properties",
2146// )]
2147// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2148// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-right"))]
2149// #[visit]
2150// pub struct CornerRightStyleValue;
2151
2152// /// Represents the style value for `corner-bottom` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom).
2153// ///
2154// /// The grammar is defined as:
2155// ///
2156// /// ```text,ignore
2157// /// <'border-top-radius'> || <'corner-top-shape'>
2158// /// ```
2159// ///
2160// // https://drafts.csswg.org/css-borders-4/#corner-bottom
2161// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2162// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2163// #[style_value(
2164// 	initial = "0",
2165//   applies_to = "all elements (but see prose)",
2166// 	inherited = "no",
2167// 	percentages = "refer to corresponding dimension of the border box.",
2168// 	canonical_order = "per grammar",
2169// 	animation_type = "see individual properties",
2170// )]
2171// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2172// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom"))]
2173// #[visit]
2174// pub struct CornerBottomStyleValue;
2175
2176// /// Represents the style value for `corner-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-left).
2177// ///
2178// /// The grammar is defined as:
2179// ///
2180// /// ```text,ignore
2181// /// <'border-top-radius'> || <'corner-top-shape'>
2182// /// ```
2183// ///
2184// // https://drafts.csswg.org/css-borders-4/#corner-left
2185// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2186// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2187// #[style_value(
2188// 	initial = "0",
2189//   applies_to = "all elements (but see prose)",
2190// 	inherited = "no",
2191// 	percentages = "refer to corresponding dimension of the border box.",
2192// 	canonical_order = "per grammar",
2193// 	animation_type = "see individual properties",
2194// )]
2195// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2196// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-left"))]
2197// #[visit]
2198// pub struct CornerLeftStyleValue;
2199
2200// /// Represents the style value for `corner-block-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-start).
2201// ///
2202// /// The grammar is defined as:
2203// ///
2204// /// ```text,ignore
2205// /// <'border-top-radius'> || <'corner-top-shape'>
2206// /// ```
2207// ///
2208// // https://drafts.csswg.org/css-borders-4/#corner-block-start
2209// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2210// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2211// #[style_value(
2212// 	initial = "0",
2213//   applies_to = "all elements (but see prose)",
2214// 	inherited = "no",
2215// 	percentages = "refer to corresponding dimension of the border box.",
2216// 	canonical_order = "per grammar",
2217// 	animation_type = "see individual properties",
2218// )]
2219// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2220// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-start"))]
2221// #[visit]
2222// pub struct CornerBlockStartStyleValue;
2223
2224// /// Represents the style value for `corner-block-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-end).
2225// ///
2226// /// The grammar is defined as:
2227// ///
2228// /// ```text,ignore
2229// /// <'border-top-radius'> || <'corner-top-shape'>
2230// /// ```
2231// ///
2232// // https://drafts.csswg.org/css-borders-4/#corner-block-end
2233// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2234// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2235// #[style_value(
2236// 	initial = "0",
2237//   applies_to = "all elements (but see prose)",
2238// 	inherited = "no",
2239// 	percentages = "refer to corresponding dimension of the border box.",
2240// 	canonical_order = "per grammar",
2241// 	animation_type = "see individual properties",
2242// )]
2243// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2244// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-end"))]
2245// #[visit]
2246// pub struct CornerBlockEndStyleValue;
2247
2248// /// Represents the style value for `corner-inline-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-start).
2249// ///
2250// /// The grammar is defined as:
2251// ///
2252// /// ```text,ignore
2253// /// <'border-top-radius'> || <'corner-top-shape'>
2254// /// ```
2255// ///
2256// // https://drafts.csswg.org/css-borders-4/#corner-inline-start
2257// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2258// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2259// #[style_value(
2260// 	initial = "0",
2261//   applies_to = "all elements (but see prose)",
2262// 	inherited = "no",
2263// 	percentages = "refer to corresponding dimension of the border box.",
2264// 	canonical_order = "per grammar",
2265// 	animation_type = "see individual properties",
2266// )]
2267// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2268// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-start"))]
2269// #[visit]
2270// pub struct CornerInlineStartStyleValue;
2271
2272// /// Represents the style value for `corner-inline-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-end).
2273// ///
2274// /// The grammar is defined as:
2275// ///
2276// /// ```text,ignore
2277// /// <'border-top-radius'> || <'corner-top-shape'>
2278// /// ```
2279// ///
2280// // https://drafts.csswg.org/css-borders-4/#corner-inline-end
2281// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
2282// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2283// #[style_value(
2284// 	initial = "0",
2285//   applies_to = "all elements (but see prose)",
2286// 	inherited = "no",
2287// 	percentages = "refer to corresponding dimension of the border box.",
2288// 	canonical_order = "per grammar",
2289// 	animation_type = "see individual properties",
2290// )]
2291// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2292// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-end"))]
2293// #[visit]
2294// pub struct CornerInlineEndStyleValue;
2295
2296// /// Represents the style value for `corner` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner).
2297// ///
2298// /// The grammar is defined as:
2299// ///
2300// /// ```text,ignore
2301// /// <'border-radius'> || <'corner-shape'>
2302// /// ```
2303// ///
2304// // https://drafts.csswg.org/css-borders-4/#corner
2305// #[syntax(" <'border-radius'> || <'corner-shape'> ")]
2306// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2307// #[style_value(
2308// 	initial = "0",
2309//   applies_to = "all elements (but see prose)",
2310// 	inherited = "no",
2311// 	percentages = "refer to corresponding dimension of the border box.",
2312// 	canonical_order = "per grammar",
2313// 	animation_type = "see individual properties",
2314// )]
2315// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2316// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner"))]
2317// #[visit]
2318// pub struct CornerStyleValue;
2319
2320// /// Represents the style value for `border-limit` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-limit).
2321// ///
2322// /// The grammar is defined as:
2323// ///
2324// /// ```text,ignore
2325// /// all | [ sides | corners ] <length-percentage [0,∞]>? | [ top | right | bottom | left ] <length-percentage [0,∞]>
2326// /// ```
2327// ///
2328// // https://drafts.csswg.org/css-borders-4/#border-limit
2329// #[syntax(
2330// 	" all | [ sides | corners ] <length-percentage [0,∞]>? | [ top | right | bottom | left ] <length-percentage [0,∞]> "
2331// )]
2332// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2333// #[style_value(
2334// 	initial = "all",
2335//   applies_to = "all elements, except table element when border-collapse is collapse",
2336// 	inherited = "no",
2337// 	percentages = "relative to border-box",
2338// 	canonical_order = "per grammar",
2339// 	animation_type = "discrete",
2340// )]
2341// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2342// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-limit"))]
2343// #[visit]
2344// pub enum BorderLimitStyleValue {}
2345
2346/// Represents the style value for `border-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-clip).
2347///
2348/// The grammar is defined as:
2349///
2350/// ```text,ignore
2351/// normal | [ <length-percentage [0,∞]> | <flex> ]+
2352/// ```
2353///
2354// https://drafts.csswg.org/css-borders-4/#border-clip
2355#[syntax(" normal | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2356#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2357#[style_value(
2358	initial = "normal",
2359	applies_to = "all elements",
2360	inherited = "no",
2361	percentages = "refer to length of border-edge side",
2362	canonical_order = "per grammar",
2363	animation_type = "by computed value"
2364)]
2365#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2366#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-clip"))]
2367#[visit]
2368pub enum BorderClipStyleValue<'a> {}
2369
2370/// Represents the style value for `border-clip-top` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-clip-top).
2371///
2372/// The grammar is defined as:
2373///
2374/// ```text,ignore
2375/// normal | [ <length-percentage [0,∞]> | <flex> ]+
2376/// ```
2377///
2378// https://drafts.csswg.org/css-borders-4/#border-clip-top
2379#[syntax(" normal | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2380#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2381#[style_value(
2382	initial = "normal",
2383	applies_to = "all elements",
2384	inherited = "no",
2385	percentages = "refer to length of border-edge side",
2386	canonical_order = "per grammar",
2387	animation_type = "by computed value"
2388)]
2389#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2390#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-clip-top"))]
2391#[visit]
2392pub enum BorderClipTopStyleValue<'a> {}
2393
2394/// Represents the style value for `border-clip-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-clip-right).
2395///
2396/// The grammar is defined as:
2397///
2398/// ```text,ignore
2399/// normal | [ <length-percentage [0,∞]> | <flex> ]+
2400/// ```
2401///
2402// https://drafts.csswg.org/css-borders-4/#border-clip-right
2403#[syntax(" normal | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2404#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2405#[style_value(
2406	initial = "normal",
2407	applies_to = "all elements",
2408	inherited = "no",
2409	percentages = "refer to length of border-edge side",
2410	canonical_order = "per grammar",
2411	animation_type = "by computed value"
2412)]
2413#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2414#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-clip-right"))]
2415#[visit]
2416pub enum BorderClipRightStyleValue<'a> {}
2417
2418/// Represents the style value for `border-clip-bottom` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-clip-bottom).
2419///
2420/// The grammar is defined as:
2421///
2422/// ```text,ignore
2423/// normal | [ <length-percentage [0,∞]> | <flex> ]+
2424/// ```
2425///
2426// https://drafts.csswg.org/css-borders-4/#border-clip-bottom
2427#[syntax(" normal | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2428#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2429#[style_value(
2430	initial = "normal",
2431	applies_to = "all elements",
2432	inherited = "no",
2433	percentages = "refer to length of border-edge side",
2434	canonical_order = "per grammar",
2435	animation_type = "by computed value"
2436)]
2437#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2438#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-clip-bottom"))]
2439#[visit]
2440pub enum BorderClipBottomStyleValue<'a> {}
2441
2442/// Represents the style value for `border-clip-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-clip-left).
2443///
2444/// The grammar is defined as:
2445///
2446/// ```text,ignore
2447/// normal | [ <length-percentage [0,∞]> | <flex> ]+
2448/// ```
2449///
2450// https://drafts.csswg.org/css-borders-4/#border-clip-left
2451#[syntax(" normal | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2452#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2453#[style_value(
2454	initial = "normal",
2455	applies_to = "all elements",
2456	inherited = "no",
2457	percentages = "refer to length of border-edge side",
2458	canonical_order = "per grammar",
2459	animation_type = "by computed value"
2460)]
2461#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2462#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-clip-left"))]
2463#[visit]
2464pub enum BorderClipLeftStyleValue<'a> {}
2465
2466/// Represents the style value for `box-shadow-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-color).
2467///
2468/// The grammar is defined as:
2469///
2470/// ```text,ignore
2471/// <color>#
2472/// ```
2473///
2474// https://drafts.csswg.org/css-borders-4/#box-shadow-color
2475#[syntax(" <color># ")]
2476#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2477#[style_value(
2478	initial = "currentcolor",
2479	applies_to = "all elements",
2480	inherited = "no",
2481	percentages = "n/a",
2482	canonical_order = "per grammar",
2483	animation_type = "by computed value"
2484)]
2485#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2486#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-color"))]
2487#[visit]
2488pub struct BoxShadowColorStyleValue<'a>;
2489
2490// /// Represents the style value for `box-shadow-offset` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-offset).
2491// ///
2492// /// The grammar is defined as:
2493// ///
2494// /// ```text,ignore
2495// /// [ none | <length>{2} ]#
2496// /// ```
2497// ///
2498// // https://drafts.csswg.org/css-borders-4/#box-shadow-offset
2499// #[syntax(" [ none | <length>{2} ]# ")]
2500// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2501// #[style_value(
2502// 	initial = "none",
2503//   applies_to = "all elements",
2504// 	inherited = "no",
2505// 	percentages = "n/a",
2506// 	canonical_order = "per grammar",
2507// 	animation_type = "by computed value, treating none as 0 0 when interpolated with non-none values.",
2508// )]
2509// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2510// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-offset"))]
2511// #[visit]
2512// pub struct BoxShadowOffsetStyleValue<'a>;
2513
2514/// Represents the style value for `box-shadow-blur` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-blur).
2515///
2516/// The grammar is defined as:
2517///
2518/// ```text,ignore
2519/// <length [0,∞]>#
2520/// ```
2521///
2522// https://drafts.csswg.org/css-borders-4/#box-shadow-blur
2523#[syntax(" <length [0,∞]># ")]
2524#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2525#[style_value(
2526	initial = "0",
2527	applies_to = "all elements",
2528	inherited = "no",
2529	percentages = "n/a",
2530	canonical_order = "per grammar",
2531	animation_type = "by computed value"
2532)]
2533#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2534#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-blur"))]
2535#[visit]
2536pub struct BoxShadowBlurStyleValue<'a>;
2537
2538/// Represents the style value for `box-shadow-spread` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-spread).
2539///
2540/// The grammar is defined as:
2541///
2542/// ```text,ignore
2543/// <length>#
2544/// ```
2545///
2546// https://drafts.csswg.org/css-borders-4/#box-shadow-spread
2547#[syntax(" <length># ")]
2548#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2549#[style_value(
2550	initial = "0",
2551	applies_to = "all elements",
2552	inherited = "no",
2553	percentages = "n/a",
2554	canonical_order = "per grammar",
2555	animation_type = "by computed value"
2556)]
2557#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2558#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-spread"))]
2559#[visit]
2560pub struct BoxShadowSpreadStyleValue<'a>;
2561
2562/// Represents the style value for `box-shadow-position` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-position).
2563///
2564/// The grammar is defined as:
2565///
2566/// ```text,ignore
2567/// [ outset | inset ]#
2568/// ```
2569///
2570// https://drafts.csswg.org/css-borders-4/#box-shadow-position
2571#[syntax(" [ outset | inset ]# ")]
2572#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2573#[style_value(
2574	initial = "outset",
2575	applies_to = "all elements",
2576	inherited = "no",
2577	percentages = "n/a",
2578	canonical_order = "per grammar",
2579	animation_type = "by computed value"
2580)]
2581#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2582#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-position"))]
2583#[visit]
2584pub struct BoxShadowPositionStyleValue<'a>;
2585
2586/// Represents the style value for `box-shadow` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow).
2587///
2588/// The box-shadow CSS property applies shadow effects around an element's frame. This can create drop shadow and inner shadow effects.
2589///
2590/// The grammar is defined as:
2591///
2592/// ```text,ignore
2593/// <spread-shadow>#
2594/// ```
2595///
2596// https://drafts.csswg.org/css-borders-4/#box-shadow
2597#[syntax(" <spread-shadow># ")]
2598#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2599#[style_value(
2600	initial = "none",
2601	applies_to = "all elements",
2602	inherited = "no",
2603	percentages = "n/a",
2604	canonical_order = "per grammar",
2605	animation_type = "see individual properties"
2606)]
2607#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2608#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow"))]
2609#[visit]
2610pub struct BoxShadowStyleValue<'a>;
2611
2612// /// Represents the style value for `border-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-shape).
2613// ///
2614// /// The grammar is defined as:
2615// ///
2616// /// ```text,ignore
2617// /// none | [ <basic-shape> <geometry-box>?]{1,2}
2618// /// ```
2619// ///
2620// // https://drafts.csswg.org/css-borders-4/#border-shape
2621// #[syntax(" none | [ <basic-shape> <geometry-box>?]{1,2} ")]
2622// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2623// #[style_value(
2624// 	initial = "none",
2625//   applies_to = "all elements",
2626// 	inherited = "no",
2627// 	percentages = "relative to the given <geometry-box>, or to border box if not given.",
2628// 	canonical_order = "per grammar",
2629// 	animation_type = "by computed value",
2630// )]
2631// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2632// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-shape"))]
2633// #[visit]
2634// pub enum BorderShapeStyleValue {}