Skip to main content

css_ast/values/borders/
mod.rs

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