css_ast/values/borders/
mod.rs

1// AUTO-GENERATED from w3c/csswg-drafts
2// Commit: https://github.com/w3c/csswg-drafts/commit/7e27ad7484307dfdbe9d0e18ad19d02859389688
3// Do not edit this file directly.
4#![allow(warnings)]
5//! https://drafts.csswg.org/css-borders-4/
6
7mod impls;
8use super::prelude::*;
9use impls::*;
10/// Represents the style value for `border` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border).
11///
12/// The border CSS property sets the color, style, and width of the line around an element.
13///
14/// The grammar is defined as:
15///
16/// ```text,ignore
17/// <line-width> || <line-style> || <color>
18/// ```
19///
20/// https://drafts.csswg.org/css-borders-4/#border
21#[syntax(" <line-width> || <line-style> || <color> ")]
22#[derive(
23	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
24)]
25#[declaration_metadata(
26    initial = "see individual properties",
27    inherits = Unknown,
28    applies_to = Unknown,
29    animation_type = Unknown,
30    percentages = Unknown,
31    longhands = BorderBottomColor|BorderBottomStyle|BorderBottomWidth|BorderColor|BorderLeftColor|BorderLeftStyle|BorderLeftWidth|BorderRightColor|BorderRightStyle|BorderRightWidth|BorderStyle|BorderTopColor|BorderTopStyle|BorderTopWidth|BorderWidth,
32    property_group = Borders,
33    computed_value_type = Unknown,
34    canonical_order = "per grammar",
35    box_side = Top|Bottom|Left|Right,
36    box_portion = Border,
37)]
38#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
39#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border"))]
40#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
41#[derive(csskit_derives::NodeWithMetadata)]
42pub struct BorderStyleValue;
43
44/// Represents the style value for `border-block` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block).
45///
46/// 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.
47///
48/// The grammar is defined as:
49///
50/// ```text,ignore
51/// <'border-block-start'>
52/// ```
53///
54/// https://drafts.csswg.org/css-borders-4/#border-block
55#[syntax(" <'border-block-start'> ")]
56#[derive(
57	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
58)]
59#[declaration_metadata(
60    initial = "see individual properties",
61    inherits = Unknown,
62    applies_to = Unknown,
63    animation_type = Unknown,
64    percentages = Unknown,
65    longhands = BorderBlockColor|BorderBlockStyle|BorderBlockWidth,
66    property_group = Borders,
67    computed_value_type = Unknown,
68    canonical_order = "per grammar",
69    box_side = BlockStart|BlockEnd,
70    box_portion = Border,
71)]
72#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
73#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block"))]
74#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
75#[derive(csskit_derives::NodeWithMetadata)]
76pub struct BorderBlockStyleValue;
77
78/// Represents the style value for `border-block-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-clip).
79///
80/// The grammar is defined as:
81///
82/// ```text,ignore
83/// <'border-top-clip'>
84/// ```
85///
86/// https://drafts.csswg.org/css-borders-4/#border-block-clip
87#[syntax(" <'border-top-clip'> ")]
88#[derive(
89	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
90)]
91#[declaration_metadata(
92    initial = "see individual properties",
93    inherits = Unknown,
94    applies_to = Unknown,
95    animation_type = Unknown,
96    percentages = Unknown,
97    property_group = Borders,
98    computed_value_type = Unknown,
99    canonical_order = "per grammar",
100    box_side = BlockStart|BlockEnd,
101    box_portion = Border,
102)]
103#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
104#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-clip"))]
105#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
106#[derive(csskit_derives::NodeWithMetadata)]
107pub struct BorderBlockClipStyleValue<'a>;
108
109/// Represents the style value for `border-block-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-color).
110///
111/// 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.
112///
113/// The grammar is defined as:
114///
115/// ```text,ignore
116/// <'border-top-color'>{1,2}
117/// ```
118///
119/// https://drafts.csswg.org/css-borders-4/#border-block-color
120#[syntax(" <'border-top-color'>{1,2} ")]
121#[derive(
122	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
123)]
124#[declaration_metadata(
125    initial = "see individual properties",
126    inherits = Unknown,
127    applies_to = Unknown,
128    animation_type = Unknown,
129    percentages = Unknown,
130    shorthand_group = BorderBlock,
131    property_group = Borders,
132    computed_value_type = Unknown,
133    canonical_order = "per grammar",
134    box_side = BlockStart|BlockEnd,
135    box_portion = Border,
136)]
137#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
138#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-color"))]
139#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
140#[derive(csskit_derives::NodeWithMetadata)]
141pub struct BorderBlockColorStyleValue<'a>;
142
143/// Represents the style value for `border-block-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end).
144///
145/// 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.
146///
147/// The grammar is defined as:
148///
149/// ```text,ignore
150/// <line-width> || <line-style> || <color>
151/// ```
152///
153/// https://drafts.csswg.org/css-borders-4/#border-block-end
154#[syntax(" <line-width> || <line-style> || <color> ")]
155#[derive(
156	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
157)]
158#[declaration_metadata(
159    initial = "See individual properties",
160    applies_to = Unknown,
161    animation_type = Unknown,
162    longhands = BorderBlockEndColor|BorderBlockEndStyle|BorderBlockEndWidth,
163    property_group = Borders,
164    computed_value_type = Unknown,
165    canonical_order = "per grammar",
166    box_side = BlockEnd,
167    box_portion = Border,
168)]
169#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
170#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end"))]
171#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
172#[derive(csskit_derives::NodeWithMetadata)]
173pub struct BorderBlockEndStyleValue;
174
175/// Represents the style value for `border-block-end-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-end-clip).
176///
177/// The grammar is defined as:
178///
179/// ```text,ignore
180/// none | [ <length-percentage [0,∞]> | <flex> ]+
181/// ```
182///
183/// https://drafts.csswg.org/css-borders-4/#border-block-end-clip
184#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
185#[derive(
186	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
187)]
188#[declaration_metadata(
189    initial = "none",
190    applies_to = Elements,
191    animation_type = ByComputedValue,
192    percentages = BorderEdge,
193    property_group = Borders,
194    computed_value_type = SpecifiedWithAbsoluteLengths,
195    canonical_order = "per grammar",
196    logical_property_group = BorderClip,
197    box_portion = Border,
198)]
199#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
200#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-clip"))]
201#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
202#[derive(csskit_derives::NodeWithMetadata)]
203pub struct BorderBlockEndClipStyleValue<'a>;
204
205/// 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).
206///
207/// 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.
208///
209/// The grammar is defined as:
210///
211/// ```text,ignore
212/// <color> | <image-1D>
213/// ```
214///
215/// https://drafts.csswg.org/css-borders-4/#border-block-end-color
216#[syntax(" <color> | <image-1D> ")]
217#[derive(
218	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
219)]
220#[declaration_metadata(
221    initial = "currentcolor",
222    applies_to = Unknown,
223    animation_type = Unknown,
224    shorthand_group = BorderBlockEnd,
225    property_group = Borders,
226    computed_value_type = Unknown,
227    canonical_order = "per grammar",
228    logical_property_group = BorderColor,
229    box_portion = Border,
230)]
231#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
232#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-color"))]
233#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
234#[derive(csskit_derives::NodeWithMetadata)]
235pub enum BorderBlockEndColorStyleValue<'a> {}
236
237// /// 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).
238// ///
239// /// The grammar is defined as:
240// ///
241// /// ```text,ignore
242// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
243// /// ```
244// ///
245// /// https://drafts.csswg.org/css-borders-4/#border-block-end-radius
246// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
247// #[derive(
248//     Parse,
249//     Peek,
250//     ToSpan,
251//     ToCursors,
252//     DeclarationMetadata,
253//     SemanticEq,
254//     Debug,
255//     Clone,
256//     PartialEq,
257//     Eq,
258//     PartialOrd,
259//     Ord,
260//     Hash,
261// )]
262// #[declaration_metadata(
263//     initial = "0",
264//     applies_to = Elements,
265//     animation_type = Unknown,
266//     percentages = BorderBox,
267//     property_group = Borders,
268//     computed_value_type = Unknown,
269//     canonical_order = "per grammar",
270//     box_portion = Border,
271// )]
272// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
273// #[cfg_attr(
274//     feature = "css_feature_data",
275//     derive(ToCSSFeature),
276//     css_feature("css.properties.border-block-end-radius")
277// )]
278// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
279// #[derive(csskit_derives::NodeWithMetadata)]
280// pub struct BorderBlockEndRadiusStyleValue;
281
282/// 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).
283///
284/// 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.
285///
286/// The grammar is defined as:
287///
288/// ```text,ignore
289/// <line-style>
290/// ```
291///
292/// https://drafts.csswg.org/css-borders-4/#border-block-end-style
293#[syntax(" <line-style> ")]
294#[derive(
295	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
296)]
297#[declaration_metadata(
298    initial = "none",
299    applies_to = Unknown,
300    animation_type = Discrete,
301    shorthand_group = BorderBlockEnd,
302    property_group = Borders,
303    computed_value_type = Unknown,
304    canonical_order = "per grammar",
305    logical_property_group = BorderStyle,
306    box_portion = Border,
307)]
308#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
309#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-style"))]
310#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
311#[derive(csskit_derives::NodeWithMetadata)]
312pub struct BorderBlockEndStyleStyleValue;
313
314/// 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).
315///
316/// 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.
317///
318/// The grammar is defined as:
319///
320/// ```text,ignore
321/// <line-width>
322/// ```
323///
324/// https://drafts.csswg.org/css-borders-4/#border-block-end-width
325#[syntax(" <line-width> ")]
326#[derive(
327	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
328)]
329#[declaration_metadata(
330    initial = "medium",
331    applies_to = Unknown,
332    animation_type = ByComputedValue,
333    shorthand_group = BorderBlockEnd,
334    property_group = Borders,
335    computed_value_type = AbsoluteLength,
336    canonical_order = "per grammar",
337    logical_property_group = BorderWidth,
338    box_portion = Border,
339)]
340#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
341#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-end-width"))]
342#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
343#[derive(csskit_derives::NodeWithMetadata)]
344pub struct BorderBlockEndWidthStyleValue;
345
346/// Represents the style value for `border-block-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start).
347///
348/// 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.
349///
350/// The grammar is defined as:
351///
352/// ```text,ignore
353/// <line-width> || <line-style> || <color>
354/// ```
355///
356/// https://drafts.csswg.org/css-borders-4/#border-block-start
357#[syntax(" <line-width> || <line-style> || <color> ")]
358#[derive(
359	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
360)]
361#[declaration_metadata(
362    initial = "See individual properties",
363    applies_to = Unknown,
364    animation_type = Unknown,
365    longhands = BorderBlockStartColor|BorderBlockStartStyle|BorderBlockStartWidth,
366    property_group = Borders,
367    computed_value_type = Unknown,
368    canonical_order = "per grammar",
369    box_side = BlockStart,
370    box_portion = Border,
371)]
372#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
373#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start"))]
374#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
375#[derive(csskit_derives::NodeWithMetadata)]
376pub struct BorderBlockStartStyleValue;
377
378/// Represents the style value for `border-block-start-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-start-clip).
379///
380/// The grammar is defined as:
381///
382/// ```text,ignore
383/// none | [ <length-percentage [0,∞]> | <flex> ]+
384/// ```
385///
386/// https://drafts.csswg.org/css-borders-4/#border-block-start-clip
387#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
388#[derive(
389	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
390)]
391#[declaration_metadata(
392    initial = "none",
393    applies_to = Elements,
394    animation_type = ByComputedValue,
395    percentages = BorderEdge,
396    property_group = Borders,
397    computed_value_type = SpecifiedWithAbsoluteLengths,
398    canonical_order = "per grammar",
399    logical_property_group = BorderClip,
400    box_portion = Border,
401)]
402#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
403#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-clip"))]
404#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
405#[derive(csskit_derives::NodeWithMetadata)]
406pub struct BorderBlockStartClipStyleValue<'a>;
407
408/// 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).
409///
410/// 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.
411///
412/// The grammar is defined as:
413///
414/// ```text,ignore
415/// <color> | <image-1D>
416/// ```
417///
418/// https://drafts.csswg.org/css-borders-4/#border-block-start-color
419#[syntax(" <color> | <image-1D> ")]
420#[derive(
421	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
422)]
423#[declaration_metadata(
424    initial = "currentcolor",
425    applies_to = Unknown,
426    animation_type = Unknown,
427    shorthand_group = BorderBlockStart,
428    property_group = Borders,
429    computed_value_type = Unknown,
430    canonical_order = "per grammar",
431    logical_property_group = BorderColor,
432    box_portion = Border,
433)]
434#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
435#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-color"))]
436#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
437#[derive(csskit_derives::NodeWithMetadata)]
438pub enum BorderBlockStartColorStyleValue<'a> {}
439
440// /// 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).
441// ///
442// /// The grammar is defined as:
443// ///
444// /// ```text,ignore
445// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
446// /// ```
447// ///
448// /// https://drafts.csswg.org/css-borders-4/#border-block-start-radius
449// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
450// #[derive(
451//     Parse,
452//     Peek,
453//     ToSpan,
454//     ToCursors,
455//     DeclarationMetadata,
456//     SemanticEq,
457//     Debug,
458//     Clone,
459//     PartialEq,
460//     Eq,
461//     PartialOrd,
462//     Ord,
463//     Hash,
464// )]
465// #[declaration_metadata(
466//     initial = "0",
467//     applies_to = Elements,
468//     animation_type = Unknown,
469//     percentages = BorderBox,
470//     property_group = Borders,
471//     computed_value_type = Unknown,
472//     canonical_order = "per grammar",
473//     box_portion = Border,
474// )]
475// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
476// #[cfg_attr(
477//     feature = "css_feature_data",
478//     derive(ToCSSFeature),
479//     css_feature("css.properties.border-block-start-radius")
480// )]
481// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
482// #[derive(csskit_derives::NodeWithMetadata)]
483// pub struct BorderBlockStartRadiusStyleValue;
484
485/// 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).
486///
487/// 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.
488///
489/// The grammar is defined as:
490///
491/// ```text,ignore
492/// <line-style>
493/// ```
494///
495/// https://drafts.csswg.org/css-borders-4/#border-block-start-style
496#[syntax(" <line-style> ")]
497#[derive(
498	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
499)]
500#[declaration_metadata(
501    initial = "none",
502    applies_to = Unknown,
503    animation_type = Discrete,
504    shorthand_group = BorderBlockStart,
505    property_group = Borders,
506    computed_value_type = Unknown,
507    canonical_order = "per grammar",
508    logical_property_group = BorderStyle,
509    box_portion = Border,
510)]
511#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
512#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-style"))]
513#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
514#[derive(csskit_derives::NodeWithMetadata)]
515pub struct BorderBlockStartStyleStyleValue;
516
517/// 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).
518///
519/// 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.
520///
521/// The grammar is defined as:
522///
523/// ```text,ignore
524/// <line-width>
525/// ```
526///
527/// https://drafts.csswg.org/css-borders-4/#border-block-start-width
528#[syntax(" <line-width> ")]
529#[derive(
530	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
531)]
532#[declaration_metadata(
533    initial = "medium",
534    applies_to = Unknown,
535    animation_type = ByComputedValue,
536    shorthand_group = BorderBlockStart,
537    property_group = Borders,
538    computed_value_type = AbsoluteLength,
539    canonical_order = "per grammar",
540    logical_property_group = BorderWidth,
541    box_portion = Border,
542)]
543#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
544#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-start-width"))]
545#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
546#[derive(csskit_derives::NodeWithMetadata)]
547pub struct BorderBlockStartWidthStyleValue;
548
549/// Represents the style value for `border-block-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-style).
550///
551/// 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.
552///
553/// The grammar is defined as:
554///
555/// ```text,ignore
556/// <'border-top-style'>{1,2}
557/// ```
558///
559/// https://drafts.csswg.org/css-borders-4/#border-block-style
560#[syntax(" <'border-top-style'>{1,2} ")]
561#[derive(
562	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
563)]
564#[declaration_metadata(
565    initial = "see individual properties",
566    inherits = Unknown,
567    applies_to = Unknown,
568    animation_type = Unknown,
569    percentages = Unknown,
570    shorthand_group = BorderBlock,
571    property_group = Borders,
572    computed_value_type = Unknown,
573    canonical_order = "per grammar",
574    box_side = BlockStart|BlockEnd,
575    box_portion = Border,
576)]
577#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
578#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-style"))]
579#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
580#[derive(csskit_derives::NodeWithMetadata)]
581pub struct BorderBlockStyleStyleValue;
582
583/// Represents the style value for `border-block-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-block-width).
584///
585/// 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.
586///
587/// The grammar is defined as:
588///
589/// ```text,ignore
590/// <'border-top-width'>{1,2}
591/// ```
592///
593/// https://drafts.csswg.org/css-borders-4/#border-block-width
594#[syntax(" <'border-top-width'>{1,2} ")]
595#[derive(
596	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
597)]
598#[declaration_metadata(
599    initial = "see individual properties",
600    inherits = Unknown,
601    applies_to = Unknown,
602    animation_type = Unknown,
603    percentages = Unknown,
604    shorthand_group = BorderBlock,
605    property_group = Borders,
606    computed_value_type = Unknown,
607    canonical_order = "per grammar",
608    box_side = BlockStart|BlockEnd,
609    box_portion = Border,
610)]
611#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
612#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-block-width"))]
613#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
614#[derive(csskit_derives::NodeWithMetadata)]
615pub struct BorderBlockWidthStyleValue;
616
617/// Represents the style value for `border-bottom` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom).
618///
619/// The border CSS property sets the color, style, and width of the line around an element.
620///
621/// The grammar is defined as:
622///
623/// ```text,ignore
624/// <line-width> || <line-style> || <color>
625/// ```
626///
627/// https://drafts.csswg.org/css-borders-4/#border-bottom
628#[syntax(" <line-width> || <line-style> || <color> ")]
629#[derive(
630	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
631)]
632#[declaration_metadata(
633    initial = "See individual properties",
634    applies_to = Unknown,
635    animation_type = Unknown,
636    longhands = BorderBottomColor|BorderBottomStyle|BorderBottomWidth,
637    property_group = Borders,
638    computed_value_type = Unknown,
639    canonical_order = "per grammar",
640    box_side = Bottom,
641    box_portion = Border,
642)]
643#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
644#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom"))]
645#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
646#[derive(csskit_derives::NodeWithMetadata)]
647pub struct BorderBottomStyleValue;
648
649/// Represents the style value for `border-bottom-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-clip).
650///
651/// The grammar is defined as:
652///
653/// ```text,ignore
654/// none | [ <length-percentage [0,∞]> | <flex> ]+
655/// ```
656///
657/// https://drafts.csswg.org/css-borders-4/#border-bottom-clip
658#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
659#[derive(
660	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
661)]
662#[declaration_metadata(
663    initial = "none",
664    applies_to = Elements,
665    animation_type = ByComputedValue,
666    percentages = BorderEdge,
667    property_group = Borders,
668    computed_value_type = SpecifiedWithAbsoluteLengths,
669    canonical_order = "per grammar",
670    logical_property_group = BorderClip,
671    box_portion = Border,
672)]
673#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
674#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-clip"))]
675#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
676#[derive(csskit_derives::NodeWithMetadata)]
677pub struct BorderBottomClipStyleValue<'a>;
678
679/// Represents the style value for `border-bottom-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-color).
680///
681/// The border CSS property sets the color, style, and width of the line around an element.
682///
683/// The grammar is defined as:
684///
685/// ```text,ignore
686/// <color> | <image-1D>
687/// ```
688///
689/// https://drafts.csswg.org/css-borders-4/#border-bottom-color
690#[syntax(" <color> | <image-1D> ")]
691#[derive(
692	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
693)]
694#[declaration_metadata(
695    initial = "currentcolor",
696    applies_to = Unknown,
697    animation_type = Unknown,
698    shorthand_group = Border,
699    property_group = Borders,
700    computed_value_type = Unknown,
701    canonical_order = "per grammar",
702    logical_property_group = BorderColor,
703    box_portion = Border,
704)]
705#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
706#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-color"))]
707#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
708#[derive(csskit_derives::NodeWithMetadata)]
709pub enum BorderBottomColorStyleValue<'a> {}
710
711/// 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).
712///
713/// The border-radius CSS property rounds the corners of the border drawn around an element.
714///
715/// The grammar is defined as:
716///
717/// ```text,ignore
718/// <border-radius>
719/// ```
720///
721/// https://drafts.csswg.org/css-borders-4/#border-bottom-left-radius
722#[syntax(" <border-radius> ")]
723#[derive(
724	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
725)]
726#[declaration_metadata(
727    initial = "0",
728    applies_to = Elements,
729    animation_type = ByComputedValue,
730    percentages = BorderBox,
731    shorthand_group = BorderRadius,
732    property_group = Borders,
733    computed_value_type = Unknown,
734    canonical_order = "per grammar",
735    logical_property_group = BorderRadius,
736    box_side = Bottom|Left,
737    box_portion = Border,
738)]
739#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
740#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-left-radius"))]
741#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
742#[derive(csskit_derives::NodeWithMetadata)]
743pub struct BorderBottomLeftRadiusStyleValue;
744
745// /// Represents the style value for `border-bottom-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-radius).
746// ///
747// /// The grammar is defined as:
748// ///
749// /// ```text,ignore
750// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
751// /// ```
752// ///
753// /// https://drafts.csswg.org/css-borders-4/#border-bottom-radius
754// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
755// #[derive(
756//     Parse,
757//     Peek,
758//     ToSpan,
759//     ToCursors,
760//     DeclarationMetadata,
761//     SemanticEq,
762//     Debug,
763//     Clone,
764//     PartialEq,
765//     Eq,
766//     PartialOrd,
767//     Ord,
768//     Hash,
769// )]
770// #[declaration_metadata(
771//     initial = "0",
772//     applies_to = Elements,
773//     animation_type = Unknown,
774//     percentages = BorderBox,
775//     property_group = Borders,
776//     computed_value_type = Unknown,
777//     canonical_order = "per grammar",
778//     box_portion = Border,
779// )]
780// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
781// #[cfg_attr(
782//     feature = "css_feature_data",
783//     derive(ToCSSFeature),
784//     css_feature("css.properties.border-bottom-radius")
785// )]
786// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
787// #[derive(csskit_derives::NodeWithMetadata)]
788// pub struct BorderBottomRadiusStyleValue;
789
790/// 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).
791///
792/// The border-radius CSS property rounds the corners of the border drawn around an element.
793///
794/// The grammar is defined as:
795///
796/// ```text,ignore
797/// <border-radius>
798/// ```
799///
800/// https://drafts.csswg.org/css-borders-4/#border-bottom-right-radius
801#[syntax(" <border-radius> ")]
802#[derive(
803	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
804)]
805#[declaration_metadata(
806    initial = "0",
807    applies_to = Elements,
808    animation_type = ByComputedValue,
809    percentages = BorderBox,
810    shorthand_group = BorderRadius,
811    property_group = Borders,
812    computed_value_type = Unknown,
813    canonical_order = "per grammar",
814    logical_property_group = BorderRadius,
815    box_side = Bottom|Right,
816    box_portion = Border,
817)]
818#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
819#[cfg_attr(
820	feature = "css_feature_data",
821	derive(ToCSSFeature),
822	css_feature("css.properties.border-bottom-right-radius")
823)]
824#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
825#[derive(csskit_derives::NodeWithMetadata)]
826pub struct BorderBottomRightRadiusStyleValue;
827
828/// Represents the style value for `border-bottom-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-style).
829///
830/// The border CSS property sets the color, style, and width of the line around an element.
831///
832/// The grammar is defined as:
833///
834/// ```text,ignore
835/// <line-style>
836/// ```
837///
838/// https://drafts.csswg.org/css-borders-4/#border-bottom-style
839#[syntax(" <line-style> ")]
840#[derive(
841	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
842)]
843#[declaration_metadata(
844    initial = "none",
845    applies_to = Unknown,
846    animation_type = Discrete,
847    shorthand_group = Border,
848    property_group = Borders,
849    computed_value_type = Unknown,
850    canonical_order = "per grammar",
851    logical_property_group = BorderStyle,
852    box_portion = Border,
853)]
854#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
855#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-style"))]
856#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
857#[derive(csskit_derives::NodeWithMetadata)]
858pub struct BorderBottomStyleStyleValue;
859
860/// Represents the style value for `border-bottom-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-bottom-width).
861///
862/// The border CSS property sets the color, style, and width of the line around an element.
863///
864/// The grammar is defined as:
865///
866/// ```text,ignore
867/// <line-width>
868/// ```
869///
870/// https://drafts.csswg.org/css-borders-4/#border-bottom-width
871#[syntax(" <line-width> ")]
872#[derive(
873	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
874)]
875#[declaration_metadata(
876    initial = "medium",
877    applies_to = Unknown,
878    animation_type = ByComputedValue,
879    shorthand_group = Border,
880    property_group = Borders,
881    computed_value_type = AbsoluteLength,
882    canonical_order = "per grammar",
883    logical_property_group = BorderWidth,
884    box_portion = Border,
885)]
886#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
887#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-bottom-width"))]
888#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
889#[derive(csskit_derives::NodeWithMetadata)]
890pub struct BorderBottomWidthStyleValue;
891
892/// Represents the style value for `border-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-clip).
893///
894/// The grammar is defined as:
895///
896/// ```text,ignore
897/// <'border-top-clip'>
898/// ```
899///
900/// https://drafts.csswg.org/css-borders-4/#border-clip
901#[syntax(" <'border-top-clip'> ")]
902#[derive(
903	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
904)]
905#[declaration_metadata(
906    initial = "see individual properties",
907    inherits = Unknown,
908    applies_to = Unknown,
909    animation_type = Unknown,
910    percentages = Unknown,
911    property_group = Borders,
912    computed_value_type = Unknown,
913    canonical_order = "per grammar",
914    box_portion = Border,
915)]
916#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
917#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-clip"))]
918#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
919#[derive(csskit_derives::NodeWithMetadata)]
920pub struct BorderClipStyleValue<'a>;
921
922// /// Represents the style value for `border-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-color).
923// ///
924// /// The border CSS property sets the color, style, and width of the line around an element.
925// ///
926// /// The grammar is defined as:
927// ///
928// /// ```text,ignore
929// /// [ <color> | <image-1D> ]{1,4}
930// /// ```
931// ///
932// /// https://drafts.csswg.org/css-borders-4/#border-color
933// #[syntax(" [ <color> | <image-1D> ]{1,4} ")]
934// #[derive(
935//     Parse,
936//     Peek,
937//     ToSpan,
938//     ToCursors,
939//     DeclarationMetadata,
940//     SemanticEq,
941//     Debug,
942//     Clone,
943//     PartialEq,
944//     Eq,
945//     PartialOrd,
946//     Ord,
947//     Hash,
948// )]
949// #[declaration_metadata(
950//     initial = "see individual properties",
951//     inherits = Unknown,
952//     applies_to = Unknown,
953//     animation_type = Unknown,
954//     percentages = Unknown,
955//     shorthand_group = Border,
956//     longhands = BorderBottomColor|BorderLeftColor|BorderRightColor|BorderTopColor,
957//     property_group = Borders,
958//     computed_value_type = Unknown,
959//     canonical_order = "per grammar",
960//     box_side = Top|Bottom|Left|Right,
961//     box_portion = Border,
962// )]
963// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
964// #[cfg_attr(
965//     feature = "css_feature_data",
966//     derive(ToCSSFeature),
967//     css_feature("css.properties.border-color")
968// )]
969// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
970// #[derive(csskit_derives::NodeWithMetadata)]
971// pub struct BorderColorStyleValue<'a>;
972
973/// 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).
974///
975/// 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.
976///
977/// The grammar is defined as:
978///
979/// ```text,ignore
980/// <border-radius>
981/// ```
982///
983/// https://drafts.csswg.org/css-borders-4/#border-end-end-radius
984#[syntax(" <border-radius> ")]
985#[derive(
986	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
987)]
988#[declaration_metadata(
989    initial = "0",
990    applies_to = Elements,
991    animation_type = ByComputedValue,
992    percentages = BorderBox,
993    property_group = Borders,
994    computed_value_type = Unknown,
995    canonical_order = "per grammar",
996    logical_property_group = BorderRadius,
997    box_side = BlockEnd|InlineEnd,
998    box_portion = Border,
999)]
1000#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1001#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-end-end-radius"))]
1002#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1003#[derive(csskit_derives::NodeWithMetadata)]
1004pub struct BorderEndEndRadiusStyleValue;
1005
1006/// 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).
1007///
1008/// 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.
1009///
1010/// The grammar is defined as:
1011///
1012/// ```text,ignore
1013/// <border-radius>
1014/// ```
1015///
1016/// https://drafts.csswg.org/css-borders-4/#border-end-start-radius
1017#[syntax(" <border-radius> ")]
1018#[derive(
1019	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1020)]
1021#[declaration_metadata(
1022    initial = "0",
1023    applies_to = Elements,
1024    animation_type = ByComputedValue,
1025    percentages = BorderBox,
1026    property_group = Borders,
1027    computed_value_type = Unknown,
1028    canonical_order = "per grammar",
1029    logical_property_group = BorderRadius,
1030    box_side = BlockEnd|InlineStart,
1031    box_portion = Border,
1032)]
1033#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1034#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-end-start-radius"))]
1035#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1036#[derive(csskit_derives::NodeWithMetadata)]
1037pub struct BorderEndStartRadiusStyleValue;
1038
1039// /// Represents the style value for `border-image` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image).
1040// ///
1041// /// The border-image CSS property draws an image around an element.
1042// ///
1043// /// The grammar is defined as:
1044// ///
1045// /// ```text,ignore
1046// /// <'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>
1047// /// ```
1048// ///
1049// /// https://drafts.csswg.org/css-borders-4/#border-image
1050// #[syntax(
1051//     " <'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'> "
1052// )]
1053// #[derive(
1054//     Parse,
1055//     Peek,
1056//     ToSpan,
1057//     ToCursors,
1058//     DeclarationMetadata,
1059//     SemanticEq,
1060//     Debug,
1061//     Clone,
1062//     PartialEq,
1063//     Eq,
1064//     PartialOrd,
1065//     Ord,
1066//     Hash,
1067// )]
1068// #[declaration_metadata(
1069//     initial = "See individual properties",
1070//     applies_to = Unknown,
1071//     animation_type = Unknown,
1072//     longhands = BorderImageOutset|BorderImageRepeat|BorderImageSlice|BorderImageSource|BorderImageWidth,
1073//     property_group = Borders,
1074//     computed_value_type = Unknown,
1075//     canonical_order = "per grammar",
1076//     box_portion = Border,
1077// )]
1078// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1079// #[cfg_attr(
1080//     feature = "css_feature_data",
1081//     derive(ToCSSFeature),
1082//     css_feature("css.properties.border-image")
1083// )]
1084// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1085// #[derive(csskit_derives::NodeWithMetadata)]
1086// pub struct BorderImageStyleValue;
1087
1088/// Represents the style value for `border-image-outset` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-outset).
1089///
1090/// The border-image CSS property draws an image around an element.
1091///
1092/// The grammar is defined as:
1093///
1094/// ```text,ignore
1095/// [ <length [0,∞]> | <number [0,∞]> ]{1,4}
1096/// ```
1097///
1098/// https://drafts.csswg.org/css-borders-4/#border-image-outset
1099#[syntax(" [ <length [0,∞]> | <number [0,∞]> ]{1,4} ")]
1100#[derive(
1101	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1102)]
1103#[declaration_metadata(
1104    initial = "0",
1105    applies_to = Unknown,
1106    animation_type = ByComputedValue,
1107    shorthand_group = BorderImage,
1108    property_group = Borders,
1109    computed_value_type = AbsoluteLength,
1110    canonical_order = "per grammar",
1111    box_portion = Border,
1112)]
1113#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1114#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-outset"))]
1115#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1116#[derive(csskit_derives::NodeWithMetadata)]
1117pub struct BorderImageOutsetStyleValue;
1118
1119/// Represents the style value for `border-image-repeat` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-repeat).
1120///
1121/// The border-image CSS property draws an image around an element.
1122///
1123/// The grammar is defined as:
1124///
1125/// ```text,ignore
1126/// [ stretch | repeat | round | space ]{1,2}
1127/// ```
1128///
1129/// https://drafts.csswg.org/css-borders-4/#border-image-repeat
1130#[syntax(" [ stretch | repeat | round | space ]{1,2} ")]
1131#[derive(
1132	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1133)]
1134#[declaration_metadata(
1135    initial = "stretch",
1136    applies_to = Unknown,
1137    animation_type = Discrete,
1138    shorthand_group = BorderImage,
1139    property_group = Borders,
1140    computed_value_type = Unknown,
1141    canonical_order = "per grammar",
1142    box_portion = Border,
1143)]
1144#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1145#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-repeat"))]
1146#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1147#[derive(csskit_derives::NodeWithMetadata)]
1148pub struct BorderImageRepeatStyleValue;
1149
1150// /// Represents the style value for `border-image-slice` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-slice).
1151// ///
1152// /// The border-image CSS property draws an image around an element.
1153// ///
1154// /// The grammar is defined as:
1155// ///
1156// /// ```text,ignore
1157// /// [<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill?
1158// /// ```
1159// ///
1160// /// https://drafts.csswg.org/css-borders-4/#border-image-slice
1161// #[syntax(" [<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill? ")]
1162// #[derive(
1163//     Parse,
1164//     Peek,
1165//     ToSpan,
1166//     ToCursors,
1167//     DeclarationMetadata,
1168//     SemanticEq,
1169//     Debug,
1170//     Clone,
1171//     PartialEq,
1172//     Eq,
1173//     PartialOrd,
1174//     Ord,
1175//     Hash,
1176// )]
1177// #[declaration_metadata(
1178//     initial = "100%",
1179//     applies_to = Unknown,
1180//     animation_type = ByComputedValue,
1181//     percentages = BorderImageArea,
1182//     shorthand_group = BorderImage,
1183//     property_group = Borders,
1184//     computed_value_type = Unknown,
1185//     canonical_order = "per grammar",
1186//     box_portion = Border,
1187// )]
1188// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1189// #[cfg_attr(
1190//     feature = "css_feature_data",
1191//     derive(ToCSSFeature),
1192//     css_feature("css.properties.border-image-slice")
1193// )]
1194// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1195// #[derive(csskit_derives::NodeWithMetadata)]
1196// pub struct BorderImageSliceStyleValue;
1197
1198/// Represents the style value for `border-image-source` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-source).
1199///
1200/// The border-image CSS property draws an image around an element.
1201///
1202/// The grammar is defined as:
1203///
1204/// ```text,ignore
1205/// none | <image>
1206/// ```
1207///
1208/// https://drafts.csswg.org/css-borders-4/#border-image-source
1209#[syntax(" none | <image> ")]
1210#[derive(
1211	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1212)]
1213#[declaration_metadata(
1214    initial = "none",
1215    applies_to = Unknown,
1216    animation_type = Discrete,
1217    shorthand_group = BorderImage,
1218    property_group = Borders,
1219    computed_value_type = Unknown,
1220    canonical_order = "per grammar",
1221    box_portion = Border,
1222)]
1223#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1224#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-image-source"))]
1225#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1226#[derive(csskit_derives::NodeWithMetadata)]
1227pub struct BorderImageSourceStyleValue<'a>;
1228
1229// /// Represents the style value for `border-image-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-image-width).
1230// ///
1231// /// The border-image CSS property draws an image around an element.
1232// ///
1233// /// The grammar is defined as:
1234// ///
1235// /// ```text,ignore
1236// /// [ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}
1237// /// ```
1238// ///
1239// /// https://drafts.csswg.org/css-borders-4/#border-image-width
1240// #[syntax(" [ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4} ")]
1241// #[derive(
1242//     Parse,
1243//     Peek,
1244//     ToSpan,
1245//     ToCursors,
1246//     DeclarationMetadata,
1247//     SemanticEq,
1248//     Debug,
1249//     Clone,
1250//     PartialEq,
1251//     Eq,
1252//     PartialOrd,
1253//     Ord,
1254//     Hash,
1255// )]
1256// #[declaration_metadata(
1257//     initial = "1",
1258//     applies_to = Unknown,
1259//     animation_type = ByComputedValue,
1260//     percentages = BorderImageArea,
1261//     shorthand_group = BorderImage,
1262//     property_group = Borders,
1263//     computed_value_type = Unknown,
1264//     canonical_order = "per grammar",
1265//     box_portion = Border,
1266// )]
1267// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1268// #[cfg_attr(
1269//     feature = "css_feature_data",
1270//     derive(ToCSSFeature),
1271//     css_feature("css.properties.border-image-width")
1272// )]
1273// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1274// #[derive(csskit_derives::NodeWithMetadata)]
1275// pub struct BorderImageWidthStyleValue;
1276
1277/// Represents the style value for `border-inline` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline).
1278///
1279/// 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.
1280///
1281/// The grammar is defined as:
1282///
1283/// ```text,ignore
1284/// <'border-block-start'>
1285/// ```
1286///
1287/// https://drafts.csswg.org/css-borders-4/#border-inline
1288#[syntax(" <'border-block-start'> ")]
1289#[derive(
1290	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1291)]
1292#[declaration_metadata(
1293    initial = "see individual properties",
1294    inherits = Unknown,
1295    applies_to = Unknown,
1296    animation_type = Unknown,
1297    percentages = Unknown,
1298    longhands = BorderInlineColor|BorderInlineStyle|BorderInlineWidth,
1299    property_group = Borders,
1300    computed_value_type = Unknown,
1301    canonical_order = "per grammar",
1302    box_side = InlineStart|InlineEnd,
1303    box_portion = Border,
1304)]
1305#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1306#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline"))]
1307#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1308#[derive(csskit_derives::NodeWithMetadata)]
1309pub struct BorderInlineStyleValue;
1310
1311/// Represents the style value for `border-inline-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-clip).
1312///
1313/// The grammar is defined as:
1314///
1315/// ```text,ignore
1316/// <'border-top-clip'>
1317/// ```
1318///
1319/// https://drafts.csswg.org/css-borders-4/#border-inline-clip
1320#[syntax(" <'border-top-clip'> ")]
1321#[derive(
1322	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1323)]
1324#[declaration_metadata(
1325    initial = "see individual properties",
1326    inherits = Unknown,
1327    applies_to = Unknown,
1328    animation_type = Unknown,
1329    percentages = Unknown,
1330    property_group = Borders,
1331    computed_value_type = Unknown,
1332    canonical_order = "per grammar",
1333    box_side = InlineStart|InlineEnd,
1334    box_portion = Border,
1335)]
1336#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1337#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-clip"))]
1338#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1339#[derive(csskit_derives::NodeWithMetadata)]
1340pub struct BorderInlineClipStyleValue<'a>;
1341
1342/// Represents the style value for `border-inline-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-color).
1343///
1344/// 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.
1345///
1346/// The grammar is defined as:
1347///
1348/// ```text,ignore
1349/// <'border-top-color'>{1,2}
1350/// ```
1351///
1352/// https://drafts.csswg.org/css-borders-4/#border-inline-color
1353#[syntax(" <'border-top-color'>{1,2} ")]
1354#[derive(
1355	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1356)]
1357#[declaration_metadata(
1358    initial = "see individual properties",
1359    inherits = Unknown,
1360    applies_to = Unknown,
1361    animation_type = Unknown,
1362    percentages = Unknown,
1363    shorthand_group = BorderInline,
1364    property_group = Borders,
1365    computed_value_type = Unknown,
1366    canonical_order = "per grammar",
1367    box_side = InlineStart|InlineEnd,
1368    box_portion = Border,
1369)]
1370#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1371#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-color"))]
1372#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1373#[derive(csskit_derives::NodeWithMetadata)]
1374pub struct BorderInlineColorStyleValue<'a>;
1375
1376/// Represents the style value for `border-inline-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end).
1377///
1378/// 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.
1379///
1380/// The grammar is defined as:
1381///
1382/// ```text,ignore
1383/// <line-width> || <line-style> || <color>
1384/// ```
1385///
1386/// https://drafts.csswg.org/css-borders-4/#border-inline-end
1387#[syntax(" <line-width> || <line-style> || <color> ")]
1388#[derive(
1389	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1390)]
1391#[declaration_metadata(
1392    initial = "See individual properties",
1393    applies_to = Unknown,
1394    animation_type = Unknown,
1395    longhands = BorderInlineEndColor|BorderInlineEndStyle|BorderInlineEndWidth,
1396    property_group = Borders,
1397    computed_value_type = Unknown,
1398    canonical_order = "per grammar",
1399    box_side = InlineEnd,
1400    box_portion = Border,
1401)]
1402#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1403#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end"))]
1404#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1405#[derive(csskit_derives::NodeWithMetadata)]
1406pub struct BorderInlineEndStyleValue;
1407
1408/// Represents the style value for `border-inline-end-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-end-clip).
1409///
1410/// The grammar is defined as:
1411///
1412/// ```text,ignore
1413/// none | [ <length-percentage [0,∞]> | <flex> ]+
1414/// ```
1415///
1416/// https://drafts.csswg.org/css-borders-4/#border-inline-end-clip
1417#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
1418#[derive(
1419	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1420)]
1421#[declaration_metadata(
1422    initial = "none",
1423    applies_to = Elements,
1424    animation_type = ByComputedValue,
1425    percentages = BorderEdge,
1426    property_group = Borders,
1427    computed_value_type = SpecifiedWithAbsoluteLengths,
1428    canonical_order = "per grammar",
1429    logical_property_group = BorderClip,
1430    box_portion = Border,
1431)]
1432#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1433#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-clip"))]
1434#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1435#[derive(csskit_derives::NodeWithMetadata)]
1436pub struct BorderInlineEndClipStyleValue<'a>;
1437
1438/// 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).
1439///
1440/// 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.
1441///
1442/// The grammar is defined as:
1443///
1444/// ```text,ignore
1445/// <color> | <image-1D>
1446/// ```
1447///
1448/// https://drafts.csswg.org/css-borders-4/#border-inline-end-color
1449#[syntax(" <color> | <image-1D> ")]
1450#[derive(
1451	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1452)]
1453#[declaration_metadata(
1454    initial = "currentcolor",
1455    applies_to = Unknown,
1456    animation_type = Unknown,
1457    shorthand_group = BorderInlineEnd,
1458    property_group = Borders,
1459    computed_value_type = Unknown,
1460    canonical_order = "per grammar",
1461    logical_property_group = BorderColor,
1462    box_portion = Border,
1463)]
1464#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1465#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-color"))]
1466#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1467#[derive(csskit_derives::NodeWithMetadata)]
1468pub enum BorderInlineEndColorStyleValue<'a> {}
1469
1470// /// 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).
1471// ///
1472// /// The grammar is defined as:
1473// ///
1474// /// ```text,ignore
1475// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1476// /// ```
1477// ///
1478// /// https://drafts.csswg.org/css-borders-4/#border-inline-end-radius
1479// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1480// #[derive(
1481//     Parse,
1482//     Peek,
1483//     ToSpan,
1484//     ToCursors,
1485//     DeclarationMetadata,
1486//     SemanticEq,
1487//     Debug,
1488//     Clone,
1489//     PartialEq,
1490//     Eq,
1491//     PartialOrd,
1492//     Ord,
1493//     Hash,
1494// )]
1495// #[declaration_metadata(
1496//     initial = "0",
1497//     applies_to = Elements,
1498//     animation_type = Unknown,
1499//     percentages = BorderBox,
1500//     property_group = Borders,
1501//     computed_value_type = Unknown,
1502//     canonical_order = "per grammar",
1503//     box_portion = Border,
1504// )]
1505// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1506// #[cfg_attr(
1507//     feature = "css_feature_data",
1508//     derive(ToCSSFeature),
1509//     css_feature("css.properties.border-inline-end-radius")
1510// )]
1511// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1512// #[derive(csskit_derives::NodeWithMetadata)]
1513// pub struct BorderInlineEndRadiusStyleValue;
1514
1515/// 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).
1516///
1517/// 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.
1518///
1519/// The grammar is defined as:
1520///
1521/// ```text,ignore
1522/// <line-style>
1523/// ```
1524///
1525/// https://drafts.csswg.org/css-borders-4/#border-inline-end-style
1526#[syntax(" <line-style> ")]
1527#[derive(
1528	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1529)]
1530#[declaration_metadata(
1531    initial = "none",
1532    applies_to = Unknown,
1533    animation_type = Discrete,
1534    shorthand_group = BorderInlineEnd,
1535    property_group = Borders,
1536    computed_value_type = Unknown,
1537    canonical_order = "per grammar",
1538    logical_property_group = BorderStyle,
1539    box_portion = Border,
1540)]
1541#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1542#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-style"))]
1543#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1544#[derive(csskit_derives::NodeWithMetadata)]
1545pub struct BorderInlineEndStyleStyleValue;
1546
1547/// 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).
1548///
1549/// 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.
1550///
1551/// The grammar is defined as:
1552///
1553/// ```text,ignore
1554/// <line-width>
1555/// ```
1556///
1557/// https://drafts.csswg.org/css-borders-4/#border-inline-end-width
1558#[syntax(" <line-width> ")]
1559#[derive(
1560	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1561)]
1562#[declaration_metadata(
1563    initial = "medium",
1564    applies_to = Unknown,
1565    animation_type = ByComputedValue,
1566    shorthand_group = BorderInlineEnd,
1567    property_group = Borders,
1568    computed_value_type = AbsoluteLength,
1569    canonical_order = "per grammar",
1570    logical_property_group = BorderWidth,
1571    box_portion = Border,
1572)]
1573#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1574#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-end-width"))]
1575#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1576#[derive(csskit_derives::NodeWithMetadata)]
1577pub struct BorderInlineEndWidthStyleValue;
1578
1579/// Represents the style value for `border-inline-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start).
1580///
1581/// 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.
1582///
1583/// The grammar is defined as:
1584///
1585/// ```text,ignore
1586/// <line-width> || <line-style> || <color>
1587/// ```
1588///
1589/// https://drafts.csswg.org/css-borders-4/#border-inline-start
1590#[syntax(" <line-width> || <line-style> || <color> ")]
1591#[derive(
1592	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1593)]
1594#[declaration_metadata(
1595    initial = "See individual properties",
1596    applies_to = Unknown,
1597    animation_type = Unknown,
1598    longhands = BorderInlineStartColor|BorderInlineStartStyle|BorderInlineStartWidth,
1599    property_group = Borders,
1600    computed_value_type = Unknown,
1601    canonical_order = "per grammar",
1602    box_side = InlineStart,
1603    box_portion = Border,
1604)]
1605#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1606#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start"))]
1607#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1608#[derive(csskit_derives::NodeWithMetadata)]
1609pub struct BorderInlineStartStyleValue;
1610
1611/// Represents the style value for `border-inline-start-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-start-clip).
1612///
1613/// The grammar is defined as:
1614///
1615/// ```text,ignore
1616/// none | [ <length-percentage [0,∞]> | <flex> ]+
1617/// ```
1618///
1619/// https://drafts.csswg.org/css-borders-4/#border-inline-start-clip
1620#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
1621#[derive(
1622	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1623)]
1624#[declaration_metadata(
1625    initial = "none",
1626    applies_to = Elements,
1627    animation_type = ByComputedValue,
1628    percentages = BorderEdge,
1629    property_group = Borders,
1630    computed_value_type = SpecifiedWithAbsoluteLengths,
1631    canonical_order = "per grammar",
1632    logical_property_group = BorderClip,
1633    box_portion = Border,
1634)]
1635#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1636#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-clip"))]
1637#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1638#[derive(csskit_derives::NodeWithMetadata)]
1639pub struct BorderInlineStartClipStyleValue<'a>;
1640
1641/// 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).
1642///
1643/// 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.
1644///
1645/// The grammar is defined as:
1646///
1647/// ```text,ignore
1648/// <color> | <image-1D>
1649/// ```
1650///
1651/// https://drafts.csswg.org/css-borders-4/#border-inline-start-color
1652#[syntax(" <color> | <image-1D> ")]
1653#[derive(
1654	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1655)]
1656#[declaration_metadata(
1657    initial = "currentcolor",
1658    applies_to = Unknown,
1659    animation_type = Unknown,
1660    shorthand_group = BorderInlineStart,
1661    property_group = Borders,
1662    computed_value_type = Unknown,
1663    canonical_order = "per grammar",
1664    logical_property_group = BorderColor,
1665    box_portion = Border,
1666)]
1667#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1668#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-color"))]
1669#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1670#[derive(csskit_derives::NodeWithMetadata)]
1671pub enum BorderInlineStartColorStyleValue<'a> {}
1672
1673// /// 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).
1674// ///
1675// /// The grammar is defined as:
1676// ///
1677// /// ```text,ignore
1678// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1679// /// ```
1680// ///
1681// /// https://drafts.csswg.org/css-borders-4/#border-inline-start-radius
1682// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1683// #[derive(
1684//     Parse,
1685//     Peek,
1686//     ToSpan,
1687//     ToCursors,
1688//     DeclarationMetadata,
1689//     SemanticEq,
1690//     Debug,
1691//     Clone,
1692//     PartialEq,
1693//     Eq,
1694//     PartialOrd,
1695//     Ord,
1696//     Hash,
1697// )]
1698// #[declaration_metadata(
1699//     initial = "0",
1700//     applies_to = Elements,
1701//     animation_type = Unknown,
1702//     percentages = BorderBox,
1703//     property_group = Borders,
1704//     computed_value_type = Unknown,
1705//     canonical_order = "per grammar",
1706//     box_portion = Border,
1707// )]
1708// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1709// #[cfg_attr(
1710//     feature = "css_feature_data",
1711//     derive(ToCSSFeature),
1712//     css_feature("css.properties.border-inline-start-radius")
1713// )]
1714// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1715// #[derive(csskit_derives::NodeWithMetadata)]
1716// pub struct BorderInlineStartRadiusStyleValue;
1717
1718/// 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).
1719///
1720/// 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.
1721///
1722/// The grammar is defined as:
1723///
1724/// ```text,ignore
1725/// <line-style>
1726/// ```
1727///
1728/// https://drafts.csswg.org/css-borders-4/#border-inline-start-style
1729#[syntax(" <line-style> ")]
1730#[derive(
1731	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1732)]
1733#[declaration_metadata(
1734    initial = "none",
1735    applies_to = Unknown,
1736    animation_type = Discrete,
1737    shorthand_group = BorderInlineStart,
1738    property_group = Borders,
1739    computed_value_type = Unknown,
1740    canonical_order = "per grammar",
1741    logical_property_group = BorderStyle,
1742    box_portion = Border,
1743)]
1744#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1745#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-style"))]
1746#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1747#[derive(csskit_derives::NodeWithMetadata)]
1748pub struct BorderInlineStartStyleStyleValue;
1749
1750/// 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).
1751///
1752/// 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.
1753///
1754/// The grammar is defined as:
1755///
1756/// ```text,ignore
1757/// <line-width>
1758/// ```
1759///
1760/// https://drafts.csswg.org/css-borders-4/#border-inline-start-width
1761#[syntax(" <line-width> ")]
1762#[derive(
1763	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1764)]
1765#[declaration_metadata(
1766    initial = "medium",
1767    applies_to = Unknown,
1768    animation_type = ByComputedValue,
1769    shorthand_group = BorderInlineStart,
1770    property_group = Borders,
1771    computed_value_type = AbsoluteLength,
1772    canonical_order = "per grammar",
1773    logical_property_group = BorderWidth,
1774    box_portion = Border,
1775)]
1776#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1777#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-start-width"))]
1778#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1779#[derive(csskit_derives::NodeWithMetadata)]
1780pub struct BorderInlineStartWidthStyleValue;
1781
1782/// Represents the style value for `border-inline-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-style).
1783///
1784/// 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.
1785///
1786/// The grammar is defined as:
1787///
1788/// ```text,ignore
1789/// <'border-top-style'>{1,2}
1790/// ```
1791///
1792/// https://drafts.csswg.org/css-borders-4/#border-inline-style
1793#[syntax(" <'border-top-style'>{1,2} ")]
1794#[derive(
1795	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1796)]
1797#[declaration_metadata(
1798    initial = "see individual properties",
1799    inherits = Unknown,
1800    applies_to = Unknown,
1801    animation_type = Unknown,
1802    percentages = Unknown,
1803    shorthand_group = BorderInline,
1804    property_group = Borders,
1805    computed_value_type = Unknown,
1806    canonical_order = "per grammar",
1807    box_side = InlineStart|InlineEnd,
1808    box_portion = Border,
1809)]
1810#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1811#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-style"))]
1812#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1813#[derive(csskit_derives::NodeWithMetadata)]
1814pub struct BorderInlineStyleStyleValue;
1815
1816/// Represents the style value for `border-inline-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-inline-width).
1817///
1818/// 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.
1819///
1820/// The grammar is defined as:
1821///
1822/// ```text,ignore
1823/// <'border-top-width'>{1,2}
1824/// ```
1825///
1826/// https://drafts.csswg.org/css-borders-4/#border-inline-width
1827#[syntax(" <'border-top-width'>{1,2} ")]
1828#[derive(
1829	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1830)]
1831#[declaration_metadata(
1832    initial = "see individual properties",
1833    inherits = Unknown,
1834    applies_to = Unknown,
1835    animation_type = Unknown,
1836    percentages = Unknown,
1837    shorthand_group = BorderInline,
1838    property_group = Borders,
1839    computed_value_type = Unknown,
1840    canonical_order = "per grammar",
1841    box_side = InlineStart|InlineEnd,
1842    box_portion = Border,
1843)]
1844#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1845#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-inline-width"))]
1846#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1847#[derive(csskit_derives::NodeWithMetadata)]
1848pub struct BorderInlineWidthStyleValue;
1849
1850/// Represents the style value for `border-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left).
1851///
1852/// The border CSS property sets the color, style, and width of the line around an element.
1853///
1854/// The grammar is defined as:
1855///
1856/// ```text,ignore
1857/// <line-width> || <line-style> || <color>
1858/// ```
1859///
1860/// https://drafts.csswg.org/css-borders-4/#border-left
1861#[syntax(" <line-width> || <line-style> || <color> ")]
1862#[derive(
1863	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1864)]
1865#[declaration_metadata(
1866    initial = "See individual properties",
1867    applies_to = Unknown,
1868    animation_type = Unknown,
1869    longhands = BorderLeftColor|BorderLeftStyle|BorderLeftWidth,
1870    property_group = Borders,
1871    computed_value_type = Unknown,
1872    canonical_order = "per grammar",
1873    box_side = Left,
1874    box_portion = Border,
1875)]
1876#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1877#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left"))]
1878#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1879#[derive(csskit_derives::NodeWithMetadata)]
1880pub struct BorderLeftStyleValue;
1881
1882/// Represents the style value for `border-left-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-clip).
1883///
1884/// The grammar is defined as:
1885///
1886/// ```text,ignore
1887/// none | [ <length-percentage [0,∞]> | <flex> ]+
1888/// ```
1889///
1890/// https://drafts.csswg.org/css-borders-4/#border-left-clip
1891#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
1892#[derive(
1893	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1894)]
1895#[declaration_metadata(
1896    initial = "none",
1897    applies_to = Elements,
1898    animation_type = ByComputedValue,
1899    percentages = BorderEdge,
1900    property_group = Borders,
1901    computed_value_type = SpecifiedWithAbsoluteLengths,
1902    canonical_order = "per grammar",
1903    logical_property_group = BorderClip,
1904    box_portion = Border,
1905)]
1906#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1907#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-clip"))]
1908#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1909#[derive(csskit_derives::NodeWithMetadata)]
1910pub struct BorderLeftClipStyleValue<'a>;
1911
1912/// Represents the style value for `border-left-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-color).
1913///
1914/// The border CSS property sets the color, style, and width of the line around an element.
1915///
1916/// The grammar is defined as:
1917///
1918/// ```text,ignore
1919/// <color> | <image-1D>
1920/// ```
1921///
1922/// https://drafts.csswg.org/css-borders-4/#border-left-color
1923#[syntax(" <color> | <image-1D> ")]
1924#[derive(
1925	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
1926)]
1927#[declaration_metadata(
1928    initial = "currentcolor",
1929    applies_to = Unknown,
1930    animation_type = Unknown,
1931    shorthand_group = Border,
1932    property_group = Borders,
1933    computed_value_type = Unknown,
1934    canonical_order = "per grammar",
1935    logical_property_group = BorderColor,
1936    box_portion = Border,
1937)]
1938#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1939#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-color"))]
1940#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1941#[derive(csskit_derives::NodeWithMetadata)]
1942pub enum BorderLeftColorStyleValue<'a> {}
1943
1944// /// Represents the style value for `border-left-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-radius).
1945// ///
1946// /// The grammar is defined as:
1947// ///
1948// /// ```text,ignore
1949// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
1950// /// ```
1951// ///
1952// /// https://drafts.csswg.org/css-borders-4/#border-left-radius
1953// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
1954// #[derive(
1955//     Parse,
1956//     Peek,
1957//     ToSpan,
1958//     ToCursors,
1959//     DeclarationMetadata,
1960//     SemanticEq,
1961//     Debug,
1962//     Clone,
1963//     PartialEq,
1964//     Eq,
1965//     PartialOrd,
1966//     Ord,
1967//     Hash,
1968// )]
1969// #[declaration_metadata(
1970//     initial = "0",
1971//     applies_to = Elements,
1972//     animation_type = Unknown,
1973//     percentages = BorderBox,
1974//     property_group = Borders,
1975//     computed_value_type = Unknown,
1976//     canonical_order = "per grammar",
1977//     box_portion = Border,
1978// )]
1979// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
1980// #[cfg_attr(
1981//     feature = "css_feature_data",
1982//     derive(ToCSSFeature),
1983//     css_feature("css.properties.border-left-radius")
1984// )]
1985// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
1986// #[derive(csskit_derives::NodeWithMetadata)]
1987// pub struct BorderLeftRadiusStyleValue;
1988
1989/// Represents the style value for `border-left-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-style).
1990///
1991/// The border CSS property sets the color, style, and width of the line around an element.
1992///
1993/// The grammar is defined as:
1994///
1995/// ```text,ignore
1996/// <line-style>
1997/// ```
1998///
1999/// https://drafts.csswg.org/css-borders-4/#border-left-style
2000#[syntax(" <line-style> ")]
2001#[derive(
2002	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2003)]
2004#[declaration_metadata(
2005    initial = "none",
2006    applies_to = Unknown,
2007    animation_type = Discrete,
2008    shorthand_group = Border,
2009    property_group = Borders,
2010    computed_value_type = Unknown,
2011    canonical_order = "per grammar",
2012    logical_property_group = BorderStyle,
2013    box_portion = Border,
2014)]
2015#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2016#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-style"))]
2017#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2018#[derive(csskit_derives::NodeWithMetadata)]
2019pub struct BorderLeftStyleStyleValue;
2020
2021/// Represents the style value for `border-left-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-left-width).
2022///
2023/// The border CSS property sets the color, style, and width of the line around an element.
2024///
2025/// The grammar is defined as:
2026///
2027/// ```text,ignore
2028/// <line-width>
2029/// ```
2030///
2031/// https://drafts.csswg.org/css-borders-4/#border-left-width
2032#[syntax(" <line-width> ")]
2033#[derive(
2034	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2035)]
2036#[declaration_metadata(
2037    initial = "medium",
2038    applies_to = Unknown,
2039    animation_type = ByComputedValue,
2040    shorthand_group = Border,
2041    property_group = Borders,
2042    computed_value_type = AbsoluteLength,
2043    canonical_order = "per grammar",
2044    logical_property_group = BorderWidth,
2045    box_portion = Border,
2046)]
2047#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2048#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-left-width"))]
2049#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2050#[derive(csskit_derives::NodeWithMetadata)]
2051pub struct BorderLeftWidthStyleValue;
2052
2053// /// Represents the style value for `border-limit` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-limit).
2054// ///
2055// /// The grammar is defined as:
2056// ///
2057// /// ```text,ignore
2058// /**all | [ sides | corners ] <length-percentage [0,∞]>?
2059// | [ top | right | bottom | left ] <length-percentage [0,∞]>*/
2060// /// ```
2061// ///
2062// /// https://drafts.csswg.org/css-borders-4/#border-limit
2063// #[syntax(
2064//     " all | [ sides | corners ] <length-percentage [0,∞]>? | [ top | right | bottom | left ] <length-percentage [0,∞]> "
2065// )]
2066// #[derive(
2067//     Parse,
2068//     Peek,
2069//     ToSpan,
2070//     ToCursors,
2071//     DeclarationMetadata,
2072//     SemanticEq,
2073//     Debug,
2074//     Clone,
2075//     PartialEq,
2076//     Eq,
2077//     PartialOrd,
2078//     Ord,
2079//     Hash,
2080// )]
2081// #[declaration_metadata(
2082//     initial = "all",
2083//     applies_to = Unknown,
2084//     animation_type = Discrete,
2085//     percentages = BorderBox,
2086//     property_group = Borders,
2087//     computed_value_type = AsSpecified,
2088//     canonical_order = "per grammar",
2089//     box_portion = Border,
2090// )]
2091// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2092// #[cfg_attr(
2093//     feature = "css_feature_data",
2094//     derive(ToCSSFeature),
2095//     css_feature("css.properties.border-limit")
2096// )]
2097// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2098// #[derive(csskit_derives::NodeWithMetadata)]
2099// pub enum BorderLimitStyleValue {}
2100
2101// /// Represents the style value for `border-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-radius).
2102// ///
2103// /// The border-radius CSS property rounds the corners of the border drawn around an element.
2104// ///
2105// /// The grammar is defined as:
2106// ///
2107// /// ```text,ignore
2108// /// <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?
2109// /// ```
2110// ///
2111// /// https://drafts.csswg.org/css-borders-4/#border-radius
2112// #[syntax(" <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]? ")]
2113// #[derive(
2114//     Parse,
2115//     Peek,
2116//     ToSpan,
2117//     ToCursors,
2118//     DeclarationMetadata,
2119//     SemanticEq,
2120//     Debug,
2121//     Clone,
2122//     PartialEq,
2123//     Eq,
2124//     PartialOrd,
2125//     Ord,
2126//     Hash,
2127// )]
2128// #[declaration_metadata(
2129//     initial = "see individual properties",
2130//     inherits = Unknown,
2131//     applies_to = Unknown,
2132//     animation_type = Unknown,
2133//     percentages = Unknown,
2134//     longhands = BorderBottomLeftRadius|BorderBottomRightRadius|BorderTopLeftRadius|BorderTopRightRadius,
2135//     property_group = Borders,
2136//     computed_value_type = Unknown,
2137//     canonical_order = "per grammar",
2138//     box_portion = Border,
2139// )]
2140// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2141// #[cfg_attr(
2142//     feature = "css_feature_data",
2143//     derive(ToCSSFeature),
2144//     css_feature("css.properties.border-radius")
2145// )]
2146// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2147// #[derive(csskit_derives::NodeWithMetadata)]
2148// pub struct BorderRadiusStyleValue;
2149
2150/// Represents the style value for `border-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right).
2151///
2152/// The border CSS property sets the color, style, and width of the line around an element.
2153///
2154/// The grammar is defined as:
2155///
2156/// ```text,ignore
2157/// <line-width> || <line-style> || <color>
2158/// ```
2159///
2160/// https://drafts.csswg.org/css-borders-4/#border-right
2161#[syntax(" <line-width> || <line-style> || <color> ")]
2162#[derive(
2163	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2164)]
2165#[declaration_metadata(
2166    initial = "See individual properties",
2167    applies_to = Unknown,
2168    animation_type = Unknown,
2169    longhands = BorderRightColor|BorderRightStyle|BorderRightWidth,
2170    property_group = Borders,
2171    computed_value_type = Unknown,
2172    canonical_order = "per grammar",
2173    box_side = Right,
2174    box_portion = Border,
2175)]
2176#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2177#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right"))]
2178#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2179#[derive(csskit_derives::NodeWithMetadata)]
2180pub struct BorderRightStyleValue;
2181
2182/// Represents the style value for `border-right-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-clip).
2183///
2184/// The grammar is defined as:
2185///
2186/// ```text,ignore
2187/// none | [ <length-percentage [0,∞]> | <flex> ]+
2188/// ```
2189///
2190/// https://drafts.csswg.org/css-borders-4/#border-right-clip
2191#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2192#[derive(
2193	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2194)]
2195#[declaration_metadata(
2196    initial = "none",
2197    applies_to = Elements,
2198    animation_type = ByComputedValue,
2199    percentages = BorderEdge,
2200    property_group = Borders,
2201    computed_value_type = SpecifiedWithAbsoluteLengths,
2202    canonical_order = "per grammar",
2203    logical_property_group = BorderClip,
2204    box_portion = Border,
2205)]
2206#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2207#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-clip"))]
2208#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2209#[derive(csskit_derives::NodeWithMetadata)]
2210pub struct BorderRightClipStyleValue<'a>;
2211
2212/// Represents the style value for `border-right-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-color).
2213///
2214/// The border CSS property sets the color, style, and width of the line around an element.
2215///
2216/// The grammar is defined as:
2217///
2218/// ```text,ignore
2219/// <color> | <image-1D>
2220/// ```
2221///
2222/// https://drafts.csswg.org/css-borders-4/#border-right-color
2223#[syntax(" <color> | <image-1D> ")]
2224#[derive(
2225	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2226)]
2227#[declaration_metadata(
2228    initial = "currentcolor",
2229    applies_to = Unknown,
2230    animation_type = Unknown,
2231    shorthand_group = Border,
2232    property_group = Borders,
2233    computed_value_type = Unknown,
2234    canonical_order = "per grammar",
2235    logical_property_group = BorderColor,
2236    box_portion = Border,
2237)]
2238#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2239#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-color"))]
2240#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2241#[derive(csskit_derives::NodeWithMetadata)]
2242pub enum BorderRightColorStyleValue<'a> {}
2243
2244// /// Represents the style value for `border-right-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-radius).
2245// ///
2246// /// The grammar is defined as:
2247// ///
2248// /// ```text,ignore
2249// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
2250// /// ```
2251// ///
2252// /// https://drafts.csswg.org/css-borders-4/#border-right-radius
2253// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
2254// #[derive(
2255//     Parse,
2256//     Peek,
2257//     ToSpan,
2258//     ToCursors,
2259//     DeclarationMetadata,
2260//     SemanticEq,
2261//     Debug,
2262//     Clone,
2263//     PartialEq,
2264//     Eq,
2265//     PartialOrd,
2266//     Ord,
2267//     Hash,
2268// )]
2269// #[declaration_metadata(
2270//     initial = "0",
2271//     applies_to = Elements,
2272//     animation_type = Unknown,
2273//     percentages = BorderBox,
2274//     property_group = Borders,
2275//     computed_value_type = Unknown,
2276//     canonical_order = "per grammar",
2277//     box_portion = Border,
2278// )]
2279// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2280// #[cfg_attr(
2281//     feature = "css_feature_data",
2282//     derive(ToCSSFeature),
2283//     css_feature("css.properties.border-right-radius")
2284// )]
2285// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2286// #[derive(csskit_derives::NodeWithMetadata)]
2287// pub struct BorderRightRadiusStyleValue;
2288
2289/// Represents the style value for `border-right-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-style).
2290///
2291/// The border CSS property sets the color, style, and width of the line around an element.
2292///
2293/// The grammar is defined as:
2294///
2295/// ```text,ignore
2296/// <line-style>
2297/// ```
2298///
2299/// https://drafts.csswg.org/css-borders-4/#border-right-style
2300#[syntax(" <line-style> ")]
2301#[derive(
2302	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2303)]
2304#[declaration_metadata(
2305    initial = "none",
2306    applies_to = Unknown,
2307    animation_type = Discrete,
2308    shorthand_group = Border,
2309    property_group = Borders,
2310    computed_value_type = Unknown,
2311    canonical_order = "per grammar",
2312    logical_property_group = BorderStyle,
2313    box_portion = Border,
2314)]
2315#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2316#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-style"))]
2317#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2318#[derive(csskit_derives::NodeWithMetadata)]
2319pub struct BorderRightStyleStyleValue;
2320
2321/// Represents the style value for `border-right-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-right-width).
2322///
2323/// The border CSS property sets the color, style, and width of the line around an element.
2324///
2325/// The grammar is defined as:
2326///
2327/// ```text,ignore
2328/// <line-width>
2329/// ```
2330///
2331/// https://drafts.csswg.org/css-borders-4/#border-right-width
2332#[syntax(" <line-width> ")]
2333#[derive(
2334	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2335)]
2336#[declaration_metadata(
2337    initial = "medium",
2338    applies_to = Unknown,
2339    animation_type = ByComputedValue,
2340    shorthand_group = Border,
2341    property_group = Borders,
2342    computed_value_type = AbsoluteLength,
2343    canonical_order = "per grammar",
2344    logical_property_group = BorderWidth,
2345    box_portion = Border,
2346)]
2347#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2348#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-right-width"))]
2349#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2350#[derive(csskit_derives::NodeWithMetadata)]
2351pub struct BorderRightWidthStyleValue;
2352
2353// /// Represents the style value for `border-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-shape).
2354// ///
2355// /// The grammar is defined as:
2356// ///
2357// /// ```text,ignore
2358// /// none | [ <basic-shape> <geometry-box>?]{1,2}
2359// /// ```
2360// ///
2361// /// https://drafts.csswg.org/css-borders-4/#border-shape
2362// #[syntax(" none | [ <basic-shape> <geometry-box>?]{1,2} ")]
2363// #[derive(
2364//     Parse,
2365//     Peek,
2366//     ToSpan,
2367//     ToCursors,
2368//     DeclarationMetadata,
2369//     SemanticEq,
2370//     Debug,
2371//     Clone,
2372//     PartialEq,
2373//     Eq,
2374//     PartialOrd,
2375//     Ord,
2376//     Hash,
2377// )]
2378// #[declaration_metadata(
2379//     initial = "none",
2380//     applies_to = Elements,
2381//     animation_type = ByComputedValue,
2382//     percentages = Unknown,
2383//     property_group = Borders,
2384//     computed_value_type = Unknown,
2385//     canonical_order = "per grammar",
2386//     box_portion = Border,
2387// )]
2388// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2389// #[cfg_attr(
2390//     feature = "css_feature_data",
2391//     derive(ToCSSFeature),
2392//     css_feature("css.properties.border-shape")
2393// )]
2394// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2395// #[derive(csskit_derives::NodeWithMetadata)]
2396// pub struct BorderShapeStyleValue;
2397
2398/// 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).
2399///
2400/// 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.
2401///
2402/// The grammar is defined as:
2403///
2404/// ```text,ignore
2405/// <border-radius>
2406/// ```
2407///
2408/// https://drafts.csswg.org/css-borders-4/#border-start-end-radius
2409#[syntax(" <border-radius> ")]
2410#[derive(
2411	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2412)]
2413#[declaration_metadata(
2414    initial = "0",
2415    applies_to = Elements,
2416    animation_type = ByComputedValue,
2417    percentages = BorderBox,
2418    property_group = Borders,
2419    computed_value_type = Unknown,
2420    canonical_order = "per grammar",
2421    logical_property_group = BorderRadius,
2422    box_side = BlockStart|InlineEnd,
2423    box_portion = Border,
2424)]
2425#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2426#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-start-end-radius"))]
2427#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2428#[derive(csskit_derives::NodeWithMetadata)]
2429pub struct BorderStartEndRadiusStyleValue;
2430
2431/// 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).
2432///
2433/// 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.
2434///
2435/// The grammar is defined as:
2436///
2437/// ```text,ignore
2438/// <border-radius>
2439/// ```
2440///
2441/// https://drafts.csswg.org/css-borders-4/#border-start-start-radius
2442#[syntax(" <border-radius> ")]
2443#[derive(
2444	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2445)]
2446#[declaration_metadata(
2447    initial = "0",
2448    applies_to = Elements,
2449    animation_type = ByComputedValue,
2450    percentages = BorderBox,
2451    property_group = Borders,
2452    computed_value_type = Unknown,
2453    canonical_order = "per grammar",
2454    logical_property_group = BorderRadius,
2455    box_side = BlockStart|InlineStart,
2456    box_portion = Border,
2457)]
2458#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2459#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-start-start-radius"))]
2460#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2461#[derive(csskit_derives::NodeWithMetadata)]
2462pub struct BorderStartStartRadiusStyleValue;
2463
2464/// Represents the style value for `border-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-style).
2465///
2466/// The border CSS property sets the color, style, and width of the line around an element.
2467///
2468/// The grammar is defined as:
2469///
2470/// ```text,ignore
2471/// <'border-top-style'>{1,4}
2472/// ```
2473///
2474/// https://drafts.csswg.org/css-borders-4/#border-style
2475#[syntax(" <'border-top-style'>{1,4} ")]
2476#[derive(
2477	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2478)]
2479#[declaration_metadata(
2480    initial = "see individual properties",
2481    inherits = Unknown,
2482    applies_to = Unknown,
2483    animation_type = Unknown,
2484    percentages = Unknown,
2485    shorthand_group = Border,
2486    longhands = BorderBottomStyle|BorderLeftStyle|BorderRightStyle|BorderTopStyle,
2487    property_group = Borders,
2488    computed_value_type = Unknown,
2489    canonical_order = "per grammar",
2490    box_side = Top|Bottom|Left|Right,
2491    box_portion = Border,
2492)]
2493#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2494#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-style"))]
2495#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2496#[derive(csskit_derives::NodeWithMetadata)]
2497pub struct BorderStyleStyleValue;
2498
2499/// Represents the style value for `border-top` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top).
2500///
2501/// The border CSS property sets the color, style, and width of the line around an element.
2502///
2503/// The grammar is defined as:
2504///
2505/// ```text,ignore
2506/// <line-width> || <line-style> || <color>
2507/// ```
2508///
2509/// https://drafts.csswg.org/css-borders-4/#border-top
2510#[syntax(" <line-width> || <line-style> || <color> ")]
2511#[derive(
2512	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2513)]
2514#[declaration_metadata(
2515    initial = "See individual properties",
2516    applies_to = Unknown,
2517    animation_type = Unknown,
2518    longhands = BorderTopColor|BorderTopStyle|BorderTopWidth,
2519    property_group = Borders,
2520    computed_value_type = Unknown,
2521    canonical_order = "per grammar",
2522    box_side = Top,
2523    box_portion = Border,
2524)]
2525#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2526#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top"))]
2527#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2528#[derive(csskit_derives::NodeWithMetadata)]
2529pub struct BorderTopStyleValue;
2530
2531/// Represents the style value for `border-top-clip` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-clip).
2532///
2533/// The grammar is defined as:
2534///
2535/// ```text,ignore
2536/// none | [ <length-percentage [0,∞]> | <flex> ]+
2537/// ```
2538///
2539/// https://drafts.csswg.org/css-borders-4/#border-top-clip
2540#[syntax(" none | [ <length-percentage [0,∞]> | <flex> ]+ ")]
2541#[derive(
2542	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2543)]
2544#[declaration_metadata(
2545    initial = "none",
2546    applies_to = Elements,
2547    animation_type = ByComputedValue,
2548    percentages = BorderEdge,
2549    property_group = Borders,
2550    computed_value_type = SpecifiedWithAbsoluteLengths,
2551    canonical_order = "per grammar",
2552    logical_property_group = BorderClip,
2553    box_portion = Border,
2554)]
2555#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2556#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-clip"))]
2557#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2558#[derive(csskit_derives::NodeWithMetadata)]
2559pub struct BorderTopClipStyleValue<'a>;
2560
2561/// Represents the style value for `border-top-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-color).
2562///
2563/// The border CSS property sets the color, style, and width of the line around an element.
2564///
2565/// The grammar is defined as:
2566///
2567/// ```text,ignore
2568/// <color> | <image-1D>
2569/// ```
2570///
2571/// https://drafts.csswg.org/css-borders-4/#border-top-color
2572#[syntax(" <color> | <image-1D> ")]
2573#[derive(
2574	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2575)]
2576#[declaration_metadata(
2577    initial = "currentcolor",
2578    applies_to = Unknown,
2579    animation_type = Unknown,
2580    shorthand_group = Border,
2581    property_group = Borders,
2582    computed_value_type = Unknown,
2583    canonical_order = "per grammar",
2584    logical_property_group = BorderColor,
2585    box_portion = Border,
2586)]
2587#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2588#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-color"))]
2589#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2590#[derive(csskit_derives::NodeWithMetadata)]
2591pub enum BorderTopColorStyleValue<'a> {}
2592
2593/// 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).
2594///
2595/// The border-radius CSS property rounds the corners of the border drawn around an element.
2596///
2597/// The grammar is defined as:
2598///
2599/// ```text,ignore
2600/// <border-radius>
2601/// ```
2602///
2603/// https://drafts.csswg.org/css-borders-4/#border-top-left-radius
2604#[syntax(" <border-radius> ")]
2605#[derive(
2606	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2607)]
2608#[declaration_metadata(
2609    initial = "0",
2610    applies_to = Elements,
2611    animation_type = ByComputedValue,
2612    percentages = BorderBox,
2613    shorthand_group = BorderRadius,
2614    property_group = Borders,
2615    computed_value_type = Unknown,
2616    canonical_order = "per grammar",
2617    logical_property_group = BorderRadius,
2618    box_side = Top|Left,
2619    box_portion = Border,
2620)]
2621#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2622#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-left-radius"))]
2623#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2624#[derive(csskit_derives::NodeWithMetadata)]
2625pub struct BorderTopLeftRadiusStyleValue;
2626
2627// /// Represents the style value for `border-top-radius` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-radius).
2628// ///
2629// /// The grammar is defined as:
2630// ///
2631// /// ```text,ignore
2632// /// <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?
2633// /// ```
2634// ///
2635// /// https://drafts.csswg.org/css-borders-4/#border-top-radius
2636// #[syntax(" <length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]? ")]
2637// #[derive(
2638//     Parse,
2639//     Peek,
2640//     ToSpan,
2641//     ToCursors,
2642//     DeclarationMetadata,
2643//     SemanticEq,
2644//     Debug,
2645//     Clone,
2646//     PartialEq,
2647//     Eq,
2648//     PartialOrd,
2649//     Ord,
2650//     Hash,
2651// )]
2652// #[declaration_metadata(
2653//     initial = "0",
2654//     applies_to = Elements,
2655//     animation_type = Unknown,
2656//     percentages = BorderBox,
2657//     property_group = Borders,
2658//     computed_value_type = Unknown,
2659//     canonical_order = "per grammar",
2660//     box_portion = Border,
2661// )]
2662// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2663// #[cfg_attr(
2664//     feature = "css_feature_data",
2665//     derive(ToCSSFeature),
2666//     css_feature("css.properties.border-top-radius")
2667// )]
2668// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2669// #[derive(csskit_derives::NodeWithMetadata)]
2670// pub struct BorderTopRadiusStyleValue;
2671
2672/// 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).
2673///
2674/// The border-radius CSS property rounds the corners of the border drawn around an element.
2675///
2676/// The grammar is defined as:
2677///
2678/// ```text,ignore
2679/// <border-radius>
2680/// ```
2681///
2682/// https://drafts.csswg.org/css-borders-4/#border-top-right-radius
2683#[syntax(" <border-radius> ")]
2684#[derive(
2685	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2686)]
2687#[declaration_metadata(
2688    initial = "0",
2689    applies_to = Elements,
2690    animation_type = ByComputedValue,
2691    percentages = BorderBox,
2692    shorthand_group = BorderRadius,
2693    property_group = Borders,
2694    computed_value_type = Unknown,
2695    canonical_order = "per grammar",
2696    logical_property_group = BorderRadius,
2697    box_side = Top|Right,
2698    box_portion = Border,
2699)]
2700#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2701#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-right-radius"))]
2702#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2703#[derive(csskit_derives::NodeWithMetadata)]
2704pub struct BorderTopRightRadiusStyleValue;
2705
2706/// Represents the style value for `border-top-style` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-style).
2707///
2708/// The border CSS property sets the color, style, and width of the line around an element.
2709///
2710/// The grammar is defined as:
2711///
2712/// ```text,ignore
2713/// <line-style>
2714/// ```
2715///
2716/// https://drafts.csswg.org/css-borders-4/#border-top-style
2717#[syntax(" <line-style> ")]
2718#[derive(
2719	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2720)]
2721#[declaration_metadata(
2722    initial = "none",
2723    applies_to = Unknown,
2724    animation_type = Discrete,
2725    shorthand_group = Border,
2726    property_group = Borders,
2727    computed_value_type = Unknown,
2728    canonical_order = "per grammar",
2729    logical_property_group = BorderStyle,
2730    box_portion = Border,
2731)]
2732#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2733#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-style"))]
2734#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2735#[derive(csskit_derives::NodeWithMetadata)]
2736pub struct BorderTopStyleStyleValue;
2737
2738/// Represents the style value for `border-top-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-top-width).
2739///
2740/// The border CSS property sets the color, style, and width of the line around an element.
2741///
2742/// The grammar is defined as:
2743///
2744/// ```text,ignore
2745/// <line-width>
2746/// ```
2747///
2748/// https://drafts.csswg.org/css-borders-4/#border-top-width
2749#[syntax(" <line-width> ")]
2750#[derive(
2751	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2752)]
2753#[declaration_metadata(
2754    initial = "medium",
2755    applies_to = Unknown,
2756    animation_type = ByComputedValue,
2757    shorthand_group = Border,
2758    property_group = Borders,
2759    computed_value_type = AbsoluteLength,
2760    canonical_order = "per grammar",
2761    logical_property_group = BorderWidth,
2762    box_portion = Border,
2763)]
2764#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2765#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-top-width"))]
2766#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2767#[derive(csskit_derives::NodeWithMetadata)]
2768pub struct BorderTopWidthStyleValue;
2769
2770/// Represents the style value for `border-width` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#border-width).
2771///
2772/// The border CSS property sets the color, style, and width of the line around an element.
2773///
2774/// The grammar is defined as:
2775///
2776/// ```text,ignore
2777/// <'border-top-width'>{1,4}
2778/// ```
2779///
2780/// https://drafts.csswg.org/css-borders-4/#border-width
2781#[syntax(" <'border-top-width'>{1,4} ")]
2782#[derive(
2783	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2784)]
2785#[declaration_metadata(
2786    initial = "see individual properties",
2787    inherits = Unknown,
2788    applies_to = Unknown,
2789    animation_type = Unknown,
2790    percentages = Unknown,
2791    shorthand_group = Border,
2792    longhands = BorderBottomWidth|BorderLeftWidth|BorderRightWidth|BorderTopWidth,
2793    property_group = Borders,
2794    computed_value_type = Unknown,
2795    canonical_order = "per grammar",
2796    box_side = Top|Bottom|Left|Right,
2797    box_portion = Border,
2798)]
2799#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2800#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.border-width"))]
2801#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2802#[derive(csskit_derives::NodeWithMetadata)]
2803pub struct BorderWidthStyleValue;
2804
2805/// Represents the style value for `box-shadow` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow).
2806///
2807/// The box-shadow CSS property applies shadow effects around an element's frame. This can create drop shadow and inner shadow effects.
2808///
2809/// The grammar is defined as:
2810///
2811/// ```text,ignore
2812/// <spread-shadow>#
2813/// ```
2814///
2815/// https://drafts.csswg.org/css-borders-4/#box-shadow
2816#[syntax(" <spread-shadow># ")]
2817#[derive(
2818	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2819)]
2820#[declaration_metadata(
2821    initial = "none",
2822    applies_to = Elements,
2823    animation_type = Unknown,
2824    property_group = Borders,
2825    computed_value_type = Unknown,
2826    canonical_order = "per grammar",
2827)]
2828#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2829#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow"))]
2830#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2831#[derive(csskit_derives::NodeWithMetadata)]
2832pub struct BoxShadowStyleValue<'a>;
2833
2834/// Represents the style value for `box-shadow-blur` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-blur).
2835///
2836/// The grammar is defined as:
2837///
2838/// ```text,ignore
2839/// <length [0,∞]>#
2840/// ```
2841///
2842/// https://drafts.csswg.org/css-borders-4/#box-shadow-blur
2843#[syntax(" <length [0,∞]># ")]
2844#[derive(
2845	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2846)]
2847#[declaration_metadata(
2848    initial = "0",
2849    applies_to = Elements,
2850    animation_type = ByComputedValue,
2851    property_group = Borders,
2852    computed_value_type = Unknown,
2853    canonical_order = "per grammar",
2854)]
2855#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2856#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-blur"))]
2857#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2858#[derive(csskit_derives::NodeWithMetadata)]
2859pub struct BoxShadowBlurStyleValue<'a>;
2860
2861/// Represents the style value for `box-shadow-color` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-color).
2862///
2863/// The grammar is defined as:
2864///
2865/// ```text,ignore
2866/// <color>#
2867/// ```
2868///
2869/// https://drafts.csswg.org/css-borders-4/#box-shadow-color
2870#[syntax(" <color># ")]
2871#[derive(
2872	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2873)]
2874#[declaration_metadata(
2875    initial = "currentcolor",
2876    applies_to = Elements,
2877    animation_type = ByComputedValue,
2878    property_group = Borders,
2879    computed_value_type = Unknown,
2880    canonical_order = "per grammar",
2881)]
2882#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2883#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-color"))]
2884#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2885#[derive(csskit_derives::NodeWithMetadata)]
2886pub struct BoxShadowColorStyleValue<'a>;
2887
2888// /// Represents the style value for `box-shadow-offset` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-offset).
2889// ///
2890// /// The grammar is defined as:
2891// ///
2892// /// ```text,ignore
2893// /// [ none | <length>{1,2} ]#
2894// /// ```
2895// ///
2896// /// https://drafts.csswg.org/css-borders-4/#box-shadow-offset
2897// #[syntax(" [ none | <length>{1,2} ]# ")]
2898// #[derive(
2899//     Parse,
2900//     Peek,
2901//     ToSpan,
2902//     ToCursors,
2903//     DeclarationMetadata,
2904//     SemanticEq,
2905//     Debug,
2906//     Clone,
2907//     PartialEq,
2908//     Eq,
2909//     PartialOrd,
2910//     Ord,
2911//     Hash,
2912// )]
2913// #[declaration_metadata(
2914//     initial = "none",
2915//     applies_to = Elements,
2916//     animation_type = ByComputedValue,
2917//     property_group = Borders,
2918//     computed_value_type = Unknown,
2919//     canonical_order = "per grammar",
2920// )]
2921// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2922// #[cfg_attr(
2923//     feature = "css_feature_data",
2924//     derive(ToCSSFeature),
2925//     css_feature("css.properties.box-shadow-offset")
2926// )]
2927// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2928// #[derive(csskit_derives::NodeWithMetadata)]
2929// pub struct BoxShadowOffsetStyleValue<'a>;
2930
2931/// Represents the style value for `box-shadow-position` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-position).
2932///
2933/// The grammar is defined as:
2934///
2935/// ```text,ignore
2936/// [ outset | inset ]#
2937/// ```
2938///
2939/// https://drafts.csswg.org/css-borders-4/#box-shadow-position
2940#[syntax(" [ outset | inset ]# ")]
2941#[derive(
2942	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2943)]
2944#[declaration_metadata(
2945    initial = "outset",
2946    applies_to = Elements,
2947    animation_type = ByComputedValue,
2948    property_group = Borders,
2949    computed_value_type = Unknown,
2950    canonical_order = "per grammar",
2951)]
2952#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2953#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-position"))]
2954#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2955#[derive(csskit_derives::NodeWithMetadata)]
2956pub struct BoxShadowPositionStyleValue<'a>;
2957
2958/// Represents the style value for `box-shadow-spread` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#box-shadow-spread).
2959///
2960/// The grammar is defined as:
2961///
2962/// ```text,ignore
2963/// <length>#
2964/// ```
2965///
2966/// https://drafts.csswg.org/css-borders-4/#box-shadow-spread
2967#[syntax(" <length># ")]
2968#[derive(
2969	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
2970)]
2971#[declaration_metadata(
2972    initial = "0",
2973    applies_to = Elements,
2974    animation_type = ByComputedValue,
2975    property_group = Borders,
2976    computed_value_type = Unknown,
2977    canonical_order = "per grammar",
2978)]
2979#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
2980#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.box-shadow-spread"))]
2981#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
2982#[derive(csskit_derives::NodeWithMetadata)]
2983pub struct BoxShadowSpreadStyleValue<'a>;
2984
2985// /// Represents the style value for `corner` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner).
2986// ///
2987// /// The grammar is defined as:
2988// ///
2989// /// ```text,ignore
2990// /// <'border-radius'> || <'corner-shape'>
2991// /// ```
2992// ///
2993// /// https://drafts.csswg.org/css-borders-4/#corner
2994// #[syntax(" <'border-radius'> || <'corner-shape'> ")]
2995// #[derive(
2996//     Parse,
2997//     Peek,
2998//     ToSpan,
2999//     ToCursors,
3000//     DeclarationMetadata,
3001//     SemanticEq,
3002//     Debug,
3003//     Clone,
3004//     PartialEq,
3005//     Eq,
3006//     PartialOrd,
3007//     Ord,
3008//     Hash,
3009// )]
3010// #[declaration_metadata(
3011//     initial = "0",
3012//     applies_to = Elements,
3013//     animation_type = Unknown,
3014//     percentages = BorderBox,
3015//     property_group = Borders,
3016//     computed_value_type = Unknown,
3017//     canonical_order = "per grammar",
3018// )]
3019// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3020// #[cfg_attr(
3021//     feature = "css_feature_data",
3022//     derive(ToCSSFeature),
3023//     css_feature("css.properties.corner")
3024// )]
3025// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3026// #[derive(csskit_derives::NodeWithMetadata)]
3027// pub struct CornerStyleValue;
3028
3029// /// Represents the style value for `corner-block-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-end).
3030// ///
3031// /// The grammar is defined as:
3032// ///
3033// /// ```text,ignore
3034// /// <'border-top-radius'> || <'corner-top-shape'>
3035// /// ```
3036// ///
3037// /// https://drafts.csswg.org/css-borders-4/#corner-block-end
3038// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3039// #[derive(
3040//     Parse,
3041//     Peek,
3042//     ToSpan,
3043//     ToCursors,
3044//     DeclarationMetadata,
3045//     SemanticEq,
3046//     Debug,
3047//     Clone,
3048//     PartialEq,
3049//     Eq,
3050//     PartialOrd,
3051//     Ord,
3052//     Hash,
3053// )]
3054// #[declaration_metadata(
3055//     initial = "0",
3056//     applies_to = Elements,
3057//     animation_type = Unknown,
3058//     percentages = BorderBox,
3059//     property_group = Borders,
3060//     computed_value_type = Unknown,
3061//     canonical_order = "per grammar",
3062//     box_side = BlockEnd,
3063// )]
3064// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3065// #[cfg_attr(
3066//     feature = "css_feature_data",
3067//     derive(ToCSSFeature),
3068//     css_feature("css.properties.corner-block-end")
3069// )]
3070// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3071// #[derive(csskit_derives::NodeWithMetadata)]
3072// pub struct CornerBlockEndStyleValue;
3073
3074/// 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).
3075///
3076/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3077///
3078/// The grammar is defined as:
3079///
3080/// ```text,ignore
3081/// <'corner-top-left-shape'>{1,2}
3082/// ```
3083///
3084/// https://drafts.csswg.org/css-borders-4/#corner-block-end-shape
3085#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3086#[derive(
3087	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3088)]
3089#[declaration_metadata(
3090    initial = "see individual properties",
3091    inherits = Unknown,
3092    applies_to = Unknown,
3093    animation_type = Unknown,
3094    percentages = Unknown,
3095    property_group = Borders,
3096    computed_value_type = Unknown,
3097    canonical_order = "per grammar",
3098)]
3099#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3100#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-end-shape"))]
3101#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3102#[derive(csskit_derives::NodeWithMetadata)]
3103pub struct CornerBlockEndShapeStyleValue;
3104
3105// /// Represents the style value for `corner-block-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-block-start).
3106// ///
3107// /// The grammar is defined as:
3108// ///
3109// /// ```text,ignore
3110// /// <'border-top-radius'> || <'corner-top-shape'>
3111// /// ```
3112// ///
3113// /// https://drafts.csswg.org/css-borders-4/#corner-block-start
3114// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3115// #[derive(
3116//     Parse,
3117//     Peek,
3118//     ToSpan,
3119//     ToCursors,
3120//     DeclarationMetadata,
3121//     SemanticEq,
3122//     Debug,
3123//     Clone,
3124//     PartialEq,
3125//     Eq,
3126//     PartialOrd,
3127//     Ord,
3128//     Hash,
3129// )]
3130// #[declaration_metadata(
3131//     initial = "0",
3132//     applies_to = Elements,
3133//     animation_type = Unknown,
3134//     percentages = BorderBox,
3135//     property_group = Borders,
3136//     computed_value_type = Unknown,
3137//     canonical_order = "per grammar",
3138//     box_side = BlockStart,
3139// )]
3140// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3141// #[cfg_attr(
3142//     feature = "css_feature_data",
3143//     derive(ToCSSFeature),
3144//     css_feature("css.properties.corner-block-start")
3145// )]
3146// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3147// #[derive(csskit_derives::NodeWithMetadata)]
3148// pub struct CornerBlockStartStyleValue;
3149
3150/// 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).
3151///
3152/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3153///
3154/// The grammar is defined as:
3155///
3156/// ```text,ignore
3157/// <'corner-top-left-shape'>{1,2}
3158/// ```
3159///
3160/// https://drafts.csswg.org/css-borders-4/#corner-block-start-shape
3161#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3162#[derive(
3163	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3164)]
3165#[declaration_metadata(
3166    initial = "see individual properties",
3167    inherits = Unknown,
3168    applies_to = Unknown,
3169    animation_type = Unknown,
3170    percentages = Unknown,
3171    property_group = Borders,
3172    computed_value_type = Unknown,
3173    canonical_order = "per grammar",
3174)]
3175#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3176#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-block-start-shape"))]
3177#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3178#[derive(csskit_derives::NodeWithMetadata)]
3179pub struct CornerBlockStartShapeStyleValue;
3180
3181// /// Represents the style value for `corner-bottom` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom).
3182// ///
3183// /// The grammar is defined as:
3184// ///
3185// /// ```text,ignore
3186// /// <'border-top-radius'> || <'corner-top-shape'>
3187// /// ```
3188// ///
3189// /// https://drafts.csswg.org/css-borders-4/#corner-bottom
3190// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3191// #[derive(
3192//     Parse,
3193//     Peek,
3194//     ToSpan,
3195//     ToCursors,
3196//     DeclarationMetadata,
3197//     SemanticEq,
3198//     Debug,
3199//     Clone,
3200//     PartialEq,
3201//     Eq,
3202//     PartialOrd,
3203//     Ord,
3204//     Hash,
3205// )]
3206// #[declaration_metadata(
3207//     initial = "0",
3208//     applies_to = Elements,
3209//     animation_type = Unknown,
3210//     percentages = BorderBox,
3211//     property_group = Borders,
3212//     computed_value_type = Unknown,
3213//     canonical_order = "per grammar",
3214//     box_side = Bottom,
3215// )]
3216// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3217// #[cfg_attr(
3218//     feature = "css_feature_data",
3219//     derive(ToCSSFeature),
3220//     css_feature("css.properties.corner-bottom")
3221// )]
3222// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3223// #[derive(csskit_derives::NodeWithMetadata)]
3224// pub struct CornerBottomStyleValue;
3225
3226// /// Represents the style value for `corner-bottom-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-left).
3227// ///
3228// /// The grammar is defined as:
3229// ///
3230// /// ```text,ignore
3231// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3232// /// ```
3233// ///
3234// /// https://drafts.csswg.org/css-borders-4/#corner-bottom-left
3235// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3236// #[derive(
3237//     Parse,
3238//     Peek,
3239//     ToSpan,
3240//     ToCursors,
3241//     DeclarationMetadata,
3242//     SemanticEq,
3243//     Debug,
3244//     Clone,
3245//     PartialEq,
3246//     Eq,
3247//     PartialOrd,
3248//     Ord,
3249//     Hash,
3250// )]
3251// #[declaration_metadata(
3252//     initial = "0",
3253//     applies_to = Elements,
3254//     animation_type = Unknown,
3255//     percentages = BorderBox,
3256//     property_group = Borders,
3257//     computed_value_type = Unknown,
3258//     canonical_order = "per grammar",
3259//     box_side = Bottom|Left,
3260// )]
3261// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3262// #[cfg_attr(
3263//     feature = "css_feature_data",
3264//     derive(ToCSSFeature),
3265//     css_feature("css.properties.corner-bottom-left")
3266// )]
3267// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3268// #[derive(csskit_derives::NodeWithMetadata)]
3269// pub struct CornerBottomLeftStyleValue;
3270
3271/// 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).
3272///
3273/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3274///
3275/// The grammar is defined as:
3276///
3277/// ```text,ignore
3278/// <corner-shape-value>
3279/// ```
3280///
3281/// https://drafts.csswg.org/css-borders-4/#corner-bottom-left-shape
3282#[syntax(" <corner-shape-value> ")]
3283#[derive(
3284	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3285)]
3286#[declaration_metadata(
3287    initial = "round",
3288    applies_to = Unknown,
3289    animation_type = Unknown,
3290    property_group = Borders,
3291    computed_value_type = Unknown,
3292    canonical_order = "per grammar",
3293    logical_property_group = CornerShape,
3294    box_side = Bottom|Left,
3295)]
3296#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3297#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-left-shape"))]
3298#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3299#[derive(csskit_derives::NodeWithMetadata)]
3300pub struct CornerBottomLeftShapeStyleValue;
3301
3302// /// Represents the style value for `corner-bottom-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-right).
3303// ///
3304// /// The grammar is defined as:
3305// ///
3306// /// ```text,ignore
3307// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3308// /// ```
3309// ///
3310// /// https://drafts.csswg.org/css-borders-4/#corner-bottom-right
3311// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3312// #[derive(
3313//     Parse,
3314//     Peek,
3315//     ToSpan,
3316//     ToCursors,
3317//     DeclarationMetadata,
3318//     SemanticEq,
3319//     Debug,
3320//     Clone,
3321//     PartialEq,
3322//     Eq,
3323//     PartialOrd,
3324//     Ord,
3325//     Hash,
3326// )]
3327// #[declaration_metadata(
3328//     initial = "0",
3329//     applies_to = Elements,
3330//     animation_type = Unknown,
3331//     percentages = BorderBox,
3332//     property_group = Borders,
3333//     computed_value_type = Unknown,
3334//     canonical_order = "per grammar",
3335//     box_side = Bottom|Right,
3336// )]
3337// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3338// #[cfg_attr(
3339//     feature = "css_feature_data",
3340//     derive(ToCSSFeature),
3341//     css_feature("css.properties.corner-bottom-right")
3342// )]
3343// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3344// #[derive(csskit_derives::NodeWithMetadata)]
3345// pub struct CornerBottomRightStyleValue;
3346
3347/// 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).
3348///
3349/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3350///
3351/// The grammar is defined as:
3352///
3353/// ```text,ignore
3354/// <corner-shape-value>
3355/// ```
3356///
3357/// https://drafts.csswg.org/css-borders-4/#corner-bottom-right-shape
3358#[syntax(" <corner-shape-value> ")]
3359#[derive(
3360	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3361)]
3362#[declaration_metadata(
3363    initial = "round",
3364    applies_to = Unknown,
3365    animation_type = Unknown,
3366    property_group = Borders,
3367    computed_value_type = Unknown,
3368    canonical_order = "per grammar",
3369    logical_property_group = CornerShape,
3370    box_side = Bottom|Right,
3371)]
3372#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3373#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-right-shape"))]
3374#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3375#[derive(csskit_derives::NodeWithMetadata)]
3376pub struct CornerBottomRightShapeStyleValue;
3377
3378/// Represents the style value for `corner-bottom-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-bottom-shape).
3379///
3380/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3381///
3382/// The grammar is defined as:
3383///
3384/// ```text,ignore
3385/// <'corner-top-left-shape'>{1,2}
3386/// ```
3387///
3388/// https://drafts.csswg.org/css-borders-4/#corner-bottom-shape
3389#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3390#[derive(
3391	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3392)]
3393#[declaration_metadata(
3394    initial = "see individual properties",
3395    inherits = Unknown,
3396    applies_to = Unknown,
3397    animation_type = Unknown,
3398    percentages = Unknown,
3399    property_group = Borders,
3400    computed_value_type = Unknown,
3401    canonical_order = "per grammar",
3402)]
3403#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3404#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-bottom-shape"))]
3405#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3406#[derive(csskit_derives::NodeWithMetadata)]
3407pub struct CornerBottomShapeStyleValue;
3408
3409// /// Represents the style value for `corner-end-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-end).
3410// ///
3411// /// The grammar is defined as:
3412// ///
3413// /// ```text,ignore
3414// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3415// /// ```
3416// ///
3417// /// https://drafts.csswg.org/css-borders-4/#corner-end-end
3418// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3419// #[derive(
3420//     Parse,
3421//     Peek,
3422//     ToSpan,
3423//     ToCursors,
3424//     DeclarationMetadata,
3425//     SemanticEq,
3426//     Debug,
3427//     Clone,
3428//     PartialEq,
3429//     Eq,
3430//     PartialOrd,
3431//     Ord,
3432//     Hash,
3433// )]
3434// #[declaration_metadata(
3435//     initial = "0",
3436//     applies_to = Elements,
3437//     animation_type = Unknown,
3438//     percentages = BorderBox,
3439//     property_group = Borders,
3440//     computed_value_type = Unknown,
3441//     canonical_order = "per grammar",
3442//     box_side = BlockEnd|InlineEnd,
3443// )]
3444// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3445// #[cfg_attr(
3446//     feature = "css_feature_data",
3447//     derive(ToCSSFeature),
3448//     css_feature("css.properties.corner-end-end")
3449// )]
3450// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3451// #[derive(csskit_derives::NodeWithMetadata)]
3452// pub struct CornerEndEndStyleValue;
3453
3454/// 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).
3455///
3456/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3457///
3458/// The grammar is defined as:
3459///
3460/// ```text,ignore
3461/// <corner-shape-value>
3462/// ```
3463///
3464/// https://drafts.csswg.org/css-borders-4/#corner-end-end-shape
3465#[syntax(" <corner-shape-value> ")]
3466#[derive(
3467	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3468)]
3469#[declaration_metadata(
3470    initial = "round",
3471    applies_to = Unknown,
3472    animation_type = Unknown,
3473    property_group = Borders,
3474    computed_value_type = Unknown,
3475    canonical_order = "per grammar",
3476    logical_property_group = CornerShape,
3477    box_side = BlockEnd|InlineEnd,
3478)]
3479#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3480#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-end-shape"))]
3481#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3482#[derive(csskit_derives::NodeWithMetadata)]
3483pub struct CornerEndEndShapeStyleValue;
3484
3485// /// Represents the style value for `corner-end-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-end-start).
3486// ///
3487// /// The grammar is defined as:
3488// ///
3489// /// ```text,ignore
3490// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3491// /// ```
3492// ///
3493// /// https://drafts.csswg.org/css-borders-4/#corner-end-start
3494// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3495// #[derive(
3496//     Parse,
3497//     Peek,
3498//     ToSpan,
3499//     ToCursors,
3500//     DeclarationMetadata,
3501//     SemanticEq,
3502//     Debug,
3503//     Clone,
3504//     PartialEq,
3505//     Eq,
3506//     PartialOrd,
3507//     Ord,
3508//     Hash,
3509// )]
3510// #[declaration_metadata(
3511//     initial = "0",
3512//     applies_to = Elements,
3513//     animation_type = Unknown,
3514//     percentages = BorderBox,
3515//     property_group = Borders,
3516//     computed_value_type = Unknown,
3517//     canonical_order = "per grammar",
3518//     box_side = BlockEnd|InlineStart,
3519// )]
3520// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3521// #[cfg_attr(
3522//     feature = "css_feature_data",
3523//     derive(ToCSSFeature),
3524//     css_feature("css.properties.corner-end-start")
3525// )]
3526// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3527// #[derive(csskit_derives::NodeWithMetadata)]
3528// pub struct CornerEndStartStyleValue;
3529
3530/// 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).
3531///
3532/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3533///
3534/// The grammar is defined as:
3535///
3536/// ```text,ignore
3537/// <corner-shape-value>
3538/// ```
3539///
3540/// https://drafts.csswg.org/css-borders-4/#corner-end-start-shape
3541#[syntax(" <corner-shape-value> ")]
3542#[derive(
3543	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3544)]
3545#[declaration_metadata(
3546    initial = "round",
3547    applies_to = Unknown,
3548    animation_type = Unknown,
3549    property_group = Borders,
3550    computed_value_type = Unknown,
3551    canonical_order = "per grammar",
3552    logical_property_group = CornerShape,
3553    box_side = BlockEnd|InlineStart,
3554)]
3555#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3556#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-end-start-shape"))]
3557#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3558#[derive(csskit_derives::NodeWithMetadata)]
3559pub struct CornerEndStartShapeStyleValue;
3560
3561// /// Represents the style value for `corner-inline-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-end).
3562// ///
3563// /// The grammar is defined as:
3564// ///
3565// /// ```text,ignore
3566// /// <'border-top-radius'> || <'corner-top-shape'>
3567// /// ```
3568// ///
3569// /// https://drafts.csswg.org/css-borders-4/#corner-inline-end
3570// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3571// #[derive(
3572//     Parse,
3573//     Peek,
3574//     ToSpan,
3575//     ToCursors,
3576//     DeclarationMetadata,
3577//     SemanticEq,
3578//     Debug,
3579//     Clone,
3580//     PartialEq,
3581//     Eq,
3582//     PartialOrd,
3583//     Ord,
3584//     Hash,
3585// )]
3586// #[declaration_metadata(
3587//     initial = "0",
3588//     applies_to = Elements,
3589//     animation_type = Unknown,
3590//     percentages = BorderBox,
3591//     property_group = Borders,
3592//     computed_value_type = Unknown,
3593//     canonical_order = "per grammar",
3594//     box_side = InlineEnd,
3595// )]
3596// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3597// #[cfg_attr(
3598//     feature = "css_feature_data",
3599//     derive(ToCSSFeature),
3600//     css_feature("css.properties.corner-inline-end")
3601// )]
3602// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3603// #[derive(csskit_derives::NodeWithMetadata)]
3604// pub struct CornerInlineEndStyleValue;
3605
3606/// 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).
3607///
3608/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3609///
3610/// The grammar is defined as:
3611///
3612/// ```text,ignore
3613/// <'corner-top-left-shape'>{1,2}
3614/// ```
3615///
3616/// https://drafts.csswg.org/css-borders-4/#corner-inline-end-shape
3617#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3618#[derive(
3619	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3620)]
3621#[declaration_metadata(
3622    initial = "see individual properties",
3623    inherits = Unknown,
3624    applies_to = Unknown,
3625    animation_type = Unknown,
3626    percentages = Unknown,
3627    property_group = Borders,
3628    computed_value_type = Unknown,
3629    canonical_order = "per grammar",
3630)]
3631#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3632#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-end-shape"))]
3633#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3634#[derive(csskit_derives::NodeWithMetadata)]
3635pub struct CornerInlineEndShapeStyleValue;
3636
3637// /// Represents the style value for `corner-inline-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-inline-start).
3638// ///
3639// /// The grammar is defined as:
3640// ///
3641// /// ```text,ignore
3642// /// <'border-top-radius'> || <'corner-top-shape'>
3643// /// ```
3644// ///
3645// /// https://drafts.csswg.org/css-borders-4/#corner-inline-start
3646// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3647// #[derive(
3648//     Parse,
3649//     Peek,
3650//     ToSpan,
3651//     ToCursors,
3652//     DeclarationMetadata,
3653//     SemanticEq,
3654//     Debug,
3655//     Clone,
3656//     PartialEq,
3657//     Eq,
3658//     PartialOrd,
3659//     Ord,
3660//     Hash,
3661// )]
3662// #[declaration_metadata(
3663//     initial = "0",
3664//     applies_to = Elements,
3665//     animation_type = Unknown,
3666//     percentages = BorderBox,
3667//     property_group = Borders,
3668//     computed_value_type = Unknown,
3669//     canonical_order = "per grammar",
3670//     box_side = InlineStart,
3671// )]
3672// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3673// #[cfg_attr(
3674//     feature = "css_feature_data",
3675//     derive(ToCSSFeature),
3676//     css_feature("css.properties.corner-inline-start")
3677// )]
3678// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3679// #[derive(csskit_derives::NodeWithMetadata)]
3680// pub struct CornerInlineStartStyleValue;
3681
3682/// 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).
3683///
3684/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3685///
3686/// The grammar is defined as:
3687///
3688/// ```text,ignore
3689/// <'corner-top-left-shape'>{1,2}
3690/// ```
3691///
3692/// https://drafts.csswg.org/css-borders-4/#corner-inline-start-shape
3693#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3694#[derive(
3695	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3696)]
3697#[declaration_metadata(
3698    initial = "see individual properties",
3699    inherits = Unknown,
3700    applies_to = Unknown,
3701    animation_type = Unknown,
3702    percentages = Unknown,
3703    property_group = Borders,
3704    computed_value_type = Unknown,
3705    canonical_order = "per grammar",
3706)]
3707#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3708#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-inline-start-shape"))]
3709#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3710#[derive(csskit_derives::NodeWithMetadata)]
3711pub struct CornerInlineStartShapeStyleValue;
3712
3713// /// Represents the style value for `corner-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-left).
3714// ///
3715// /// The grammar is defined as:
3716// ///
3717// /// ```text,ignore
3718// /// <'border-top-radius'> || <'corner-top-shape'>
3719// /// ```
3720// ///
3721// /// https://drafts.csswg.org/css-borders-4/#corner-left
3722// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3723// #[derive(
3724//     Parse,
3725//     Peek,
3726//     ToSpan,
3727//     ToCursors,
3728//     DeclarationMetadata,
3729//     SemanticEq,
3730//     Debug,
3731//     Clone,
3732//     PartialEq,
3733//     Eq,
3734//     PartialOrd,
3735//     Ord,
3736//     Hash,
3737// )]
3738// #[declaration_metadata(
3739//     initial = "0",
3740//     applies_to = Elements,
3741//     animation_type = Unknown,
3742//     percentages = BorderBox,
3743//     property_group = Borders,
3744//     computed_value_type = Unknown,
3745//     canonical_order = "per grammar",
3746//     box_side = Left,
3747// )]
3748// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3749// #[cfg_attr(
3750//     feature = "css_feature_data",
3751//     derive(ToCSSFeature),
3752//     css_feature("css.properties.corner-left")
3753// )]
3754// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3755// #[derive(csskit_derives::NodeWithMetadata)]
3756// pub struct CornerLeftStyleValue;
3757
3758/// Represents the style value for `corner-left-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-left-shape).
3759///
3760/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3761///
3762/// The grammar is defined as:
3763///
3764/// ```text,ignore
3765/// <'corner-top-left-shape'>{1,2}
3766/// ```
3767///
3768/// https://drafts.csswg.org/css-borders-4/#corner-left-shape
3769#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3770#[derive(
3771	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3772)]
3773#[declaration_metadata(
3774    initial = "see individual properties",
3775    inherits = Unknown,
3776    applies_to = Unknown,
3777    animation_type = Unknown,
3778    percentages = Unknown,
3779    property_group = Borders,
3780    computed_value_type = Unknown,
3781    canonical_order = "per grammar",
3782)]
3783#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3784#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-left-shape"))]
3785#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3786#[derive(csskit_derives::NodeWithMetadata)]
3787pub struct CornerLeftShapeStyleValue;
3788
3789// /// Represents the style value for `corner-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-right).
3790// ///
3791// /// The grammar is defined as:
3792// ///
3793// /// ```text,ignore
3794// /// <'border-top-radius'> || <'corner-top-shape'>
3795// /// ```
3796// ///
3797// /// https://drafts.csswg.org/css-borders-4/#corner-right
3798// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
3799// #[derive(
3800//     Parse,
3801//     Peek,
3802//     ToSpan,
3803//     ToCursors,
3804//     DeclarationMetadata,
3805//     SemanticEq,
3806//     Debug,
3807//     Clone,
3808//     PartialEq,
3809//     Eq,
3810//     PartialOrd,
3811//     Ord,
3812//     Hash,
3813// )]
3814// #[declaration_metadata(
3815//     initial = "0",
3816//     applies_to = Elements,
3817//     animation_type = Unknown,
3818//     percentages = BorderBox,
3819//     property_group = Borders,
3820//     computed_value_type = Unknown,
3821//     canonical_order = "per grammar",
3822//     box_side = Right,
3823// )]
3824// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3825// #[cfg_attr(
3826//     feature = "css_feature_data",
3827//     derive(ToCSSFeature),
3828//     css_feature("css.properties.corner-right")
3829// )]
3830// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3831// #[derive(csskit_derives::NodeWithMetadata)]
3832// pub struct CornerRightStyleValue;
3833
3834/// Represents the style value for `corner-right-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-right-shape).
3835///
3836/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3837///
3838/// The grammar is defined as:
3839///
3840/// ```text,ignore
3841/// <'corner-top-left-shape'>{1,2}
3842/// ```
3843///
3844/// https://drafts.csswg.org/css-borders-4/#corner-right-shape
3845#[syntax(" <'corner-top-left-shape'>{1,2} ")]
3846#[derive(
3847	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3848)]
3849#[declaration_metadata(
3850    initial = "see individual properties",
3851    inherits = Unknown,
3852    applies_to = Unknown,
3853    animation_type = Unknown,
3854    percentages = Unknown,
3855    property_group = Borders,
3856    computed_value_type = Unknown,
3857    canonical_order = "per grammar",
3858)]
3859#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3860#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-right-shape"))]
3861#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3862#[derive(csskit_derives::NodeWithMetadata)]
3863pub struct CornerRightShapeStyleValue;
3864
3865/// Represents the style value for `corner-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-shape).
3866///
3867/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3868///
3869/// The grammar is defined as:
3870///
3871/// ```text,ignore
3872/// <'corner-top-left-shape'>{1,4}
3873/// ```
3874///
3875/// https://drafts.csswg.org/css-borders-4/#corner-shape
3876#[syntax(" <'corner-top-left-shape'>{1,4} ")]
3877#[derive(
3878	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3879)]
3880#[declaration_metadata(
3881    initial = "round",
3882    applies_to = Unknown,
3883    animation_type = Unknown,
3884    percentages = Unknown,
3885    property_group = Borders,
3886    computed_value_type = Unknown,
3887    canonical_order = "per grammar",
3888)]
3889#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3890#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-shape"))]
3891#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3892#[derive(csskit_derives::NodeWithMetadata)]
3893pub struct CornerShapeStyleValue;
3894
3895// /// Represents the style value for `corner-start-end` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-end).
3896// ///
3897// /// The grammar is defined as:
3898// ///
3899// /// ```text,ignore
3900// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3901// /// ```
3902// ///
3903// /// https://drafts.csswg.org/css-borders-4/#corner-start-end
3904// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3905// #[derive(
3906//     Parse,
3907//     Peek,
3908//     ToSpan,
3909//     ToCursors,
3910//     DeclarationMetadata,
3911//     SemanticEq,
3912//     Debug,
3913//     Clone,
3914//     PartialEq,
3915//     Eq,
3916//     PartialOrd,
3917//     Ord,
3918//     Hash,
3919// )]
3920// #[declaration_metadata(
3921//     initial = "0",
3922//     applies_to = Elements,
3923//     animation_type = Unknown,
3924//     percentages = BorderBox,
3925//     property_group = Borders,
3926//     computed_value_type = Unknown,
3927//     canonical_order = "per grammar",
3928//     box_side = BlockStart|InlineEnd,
3929// )]
3930// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3931// #[cfg_attr(
3932//     feature = "css_feature_data",
3933//     derive(ToCSSFeature),
3934//     css_feature("css.properties.corner-start-end")
3935// )]
3936// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3937// #[derive(csskit_derives::NodeWithMetadata)]
3938// pub struct CornerStartEndStyleValue;
3939
3940/// 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).
3941///
3942/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
3943///
3944/// The grammar is defined as:
3945///
3946/// ```text,ignore
3947/// <corner-shape-value>
3948/// ```
3949///
3950/// https://drafts.csswg.org/css-borders-4/#corner-start-end-shape
3951#[syntax(" <corner-shape-value> ")]
3952#[derive(
3953	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
3954)]
3955#[declaration_metadata(
3956    initial = "round",
3957    applies_to = Unknown,
3958    animation_type = Unknown,
3959    property_group = Borders,
3960    computed_value_type = Unknown,
3961    canonical_order = "per grammar",
3962    logical_property_group = CornerShape,
3963    box_side = BlockStart|InlineEnd,
3964)]
3965#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
3966#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-end-shape"))]
3967#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
3968#[derive(csskit_derives::NodeWithMetadata)]
3969pub struct CornerStartEndShapeStyleValue;
3970
3971// /// Represents the style value for `corner-start-start` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-start-start).
3972// ///
3973// /// The grammar is defined as:
3974// ///
3975// /// ```text,ignore
3976// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
3977// /// ```
3978// ///
3979// /// https://drafts.csswg.org/css-borders-4/#corner-start-start
3980// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
3981// #[derive(
3982//     Parse,
3983//     Peek,
3984//     ToSpan,
3985//     ToCursors,
3986//     DeclarationMetadata,
3987//     SemanticEq,
3988//     Debug,
3989//     Clone,
3990//     PartialEq,
3991//     Eq,
3992//     PartialOrd,
3993//     Ord,
3994//     Hash,
3995// )]
3996// #[declaration_metadata(
3997//     initial = "0",
3998//     applies_to = Elements,
3999//     animation_type = Unknown,
4000//     percentages = BorderBox,
4001//     property_group = Borders,
4002//     computed_value_type = Unknown,
4003//     canonical_order = "per grammar",
4004//     box_side = BlockStart|InlineStart,
4005// )]
4006// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4007// #[cfg_attr(
4008//     feature = "css_feature_data",
4009//     derive(ToCSSFeature),
4010//     css_feature("css.properties.corner-start-start")
4011// )]
4012// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4013// #[derive(csskit_derives::NodeWithMetadata)]
4014// pub struct CornerStartStartStyleValue;
4015
4016/// 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).
4017///
4018/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
4019///
4020/// The grammar is defined as:
4021///
4022/// ```text,ignore
4023/// <corner-shape-value>
4024/// ```
4025///
4026/// https://drafts.csswg.org/css-borders-4/#corner-start-start-shape
4027#[syntax(" <corner-shape-value> ")]
4028#[derive(
4029	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
4030)]
4031#[declaration_metadata(
4032    initial = "round",
4033    applies_to = Unknown,
4034    animation_type = Unknown,
4035    property_group = Borders,
4036    computed_value_type = Unknown,
4037    canonical_order = "per grammar",
4038    logical_property_group = CornerShape,
4039    box_side = BlockStart|InlineStart,
4040)]
4041#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4042#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-start-start-shape"))]
4043#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4044#[derive(csskit_derives::NodeWithMetadata)]
4045pub struct CornerStartStartShapeStyleValue;
4046
4047// /// Represents the style value for `corner-top` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top).
4048// ///
4049// /// The grammar is defined as:
4050// ///
4051// /// ```text,ignore
4052// /// <'border-top-radius'> || <'corner-top-shape'>
4053// /// ```
4054// ///
4055// /// https://drafts.csswg.org/css-borders-4/#corner-top
4056// #[syntax(" <'border-top-radius'> || <'corner-top-shape'> ")]
4057// #[derive(
4058//     Parse,
4059//     Peek,
4060//     ToSpan,
4061//     ToCursors,
4062//     DeclarationMetadata,
4063//     SemanticEq,
4064//     Debug,
4065//     Clone,
4066//     PartialEq,
4067//     Eq,
4068//     PartialOrd,
4069//     Ord,
4070//     Hash,
4071// )]
4072// #[declaration_metadata(
4073//     initial = "0",
4074//     applies_to = Elements,
4075//     animation_type = Unknown,
4076//     percentages = BorderBox,
4077//     property_group = Borders,
4078//     computed_value_type = Unknown,
4079//     canonical_order = "per grammar",
4080//     box_side = Top,
4081// )]
4082// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4083// #[cfg_attr(
4084//     feature = "css_feature_data",
4085//     derive(ToCSSFeature),
4086//     css_feature("css.properties.corner-top")
4087// )]
4088// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4089// #[derive(csskit_derives::NodeWithMetadata)]
4090// pub struct CornerTopStyleValue;
4091
4092// /// Represents the style value for `corner-top-left` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-left).
4093// ///
4094// /// The grammar is defined as:
4095// ///
4096// /// ```text,ignore
4097// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
4098// /// ```
4099// ///
4100// /// https://drafts.csswg.org/css-borders-4/#corner-top-left
4101// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
4102// #[derive(
4103//     Parse,
4104//     Peek,
4105//     ToSpan,
4106//     ToCursors,
4107//     DeclarationMetadata,
4108//     SemanticEq,
4109//     Debug,
4110//     Clone,
4111//     PartialEq,
4112//     Eq,
4113//     PartialOrd,
4114//     Ord,
4115//     Hash,
4116// )]
4117// #[declaration_metadata(
4118//     initial = "0",
4119//     applies_to = Elements,
4120//     animation_type = Unknown,
4121//     percentages = BorderBox,
4122//     property_group = Borders,
4123//     computed_value_type = Unknown,
4124//     canonical_order = "per grammar",
4125//     box_side = Top|Left,
4126// )]
4127// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4128// #[cfg_attr(
4129//     feature = "css_feature_data",
4130//     derive(ToCSSFeature),
4131//     css_feature("css.properties.corner-top-left")
4132// )]
4133// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4134// #[derive(csskit_derives::NodeWithMetadata)]
4135// pub struct CornerTopLeftStyleValue;
4136
4137/// 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).
4138///
4139/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
4140///
4141/// The grammar is defined as:
4142///
4143/// ```text,ignore
4144/// <corner-shape-value>
4145/// ```
4146///
4147/// https://drafts.csswg.org/css-borders-4/#corner-top-left-shape
4148#[syntax(" <corner-shape-value> ")]
4149#[derive(
4150	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
4151)]
4152#[declaration_metadata(
4153    initial = "round",
4154    applies_to = Unknown,
4155    animation_type = Unknown,
4156    property_group = Borders,
4157    computed_value_type = Unknown,
4158    canonical_order = "per grammar",
4159    logical_property_group = CornerShape,
4160    box_side = Top|Left,
4161)]
4162#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4163#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-left-shape"))]
4164#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4165#[derive(csskit_derives::NodeWithMetadata)]
4166pub struct CornerTopLeftShapeStyleValue;
4167
4168// /// Represents the style value for `corner-top-right` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-right).
4169// ///
4170// /// The grammar is defined as:
4171// ///
4172// /// ```text,ignore
4173// /// <'border-top-left-radius'> || <'corner-top-left-shape'>
4174// /// ```
4175// ///
4176// /// https://drafts.csswg.org/css-borders-4/#corner-top-right
4177// #[syntax(" <'border-top-left-radius'> || <'corner-top-left-shape'> ")]
4178// #[derive(
4179//     Parse,
4180//     Peek,
4181//     ToSpan,
4182//     ToCursors,
4183//     DeclarationMetadata,
4184//     SemanticEq,
4185//     Debug,
4186//     Clone,
4187//     PartialEq,
4188//     Eq,
4189//     PartialOrd,
4190//     Ord,
4191//     Hash,
4192// )]
4193// #[declaration_metadata(
4194//     initial = "0",
4195//     applies_to = Elements,
4196//     animation_type = Unknown,
4197//     percentages = BorderBox,
4198//     property_group = Borders,
4199//     computed_value_type = Unknown,
4200//     canonical_order = "per grammar",
4201//     box_side = Top|Right,
4202// )]
4203// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4204// #[cfg_attr(
4205//     feature = "css_feature_data",
4206//     derive(ToCSSFeature),
4207//     css_feature("css.properties.corner-top-right")
4208// )]
4209// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4210// #[derive(csskit_derives::NodeWithMetadata)]
4211// pub struct CornerTopRightStyleValue;
4212
4213/// 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).
4214///
4215/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
4216///
4217/// The grammar is defined as:
4218///
4219/// ```text,ignore
4220/// <corner-shape-value>
4221/// ```
4222///
4223/// https://drafts.csswg.org/css-borders-4/#corner-top-right-shape
4224#[syntax(" <corner-shape-value> ")]
4225#[derive(
4226	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
4227)]
4228#[declaration_metadata(
4229    initial = "round",
4230    applies_to = Unknown,
4231    animation_type = Unknown,
4232    property_group = Borders,
4233    computed_value_type = Unknown,
4234    canonical_order = "per grammar",
4235    logical_property_group = CornerShape,
4236    box_side = Top|Right,
4237)]
4238#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4239#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-right-shape"))]
4240#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4241#[derive(csskit_derives::NodeWithMetadata)]
4242pub struct CornerTopRightShapeStyleValue;
4243
4244/// Represents the style value for `corner-top-shape` as defined in [css-borders-4](https://drafts.csswg.org/css-borders-4/#corner-top-shape).
4245///
4246/// The corner-shape CSS property sets the shape of an element's corners when using border-radius, allowing for shapes other than rounded corners. For example, corner-shape: squircle is a shape in between a square and rounded corner.
4247///
4248/// The grammar is defined as:
4249///
4250/// ```text,ignore
4251/// <'corner-top-left-shape'>{1,2}
4252/// ```
4253///
4254/// https://drafts.csswg.org/css-borders-4/#corner-top-shape
4255#[syntax(" <'corner-top-left-shape'>{1,2} ")]
4256#[derive(
4257	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
4258)]
4259#[declaration_metadata(
4260    initial = "see individual properties",
4261    inherits = Unknown,
4262    applies_to = Unknown,
4263    animation_type = Unknown,
4264    percentages = Unknown,
4265    property_group = Borders,
4266    computed_value_type = Unknown,
4267    canonical_order = "per grammar",
4268)]
4269#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
4270#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.corner-top-shape"))]
4271#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
4272#[derive(csskit_derives::NodeWithMetadata)]
4273pub struct CornerTopShapeStyleValue;