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