css_ast/values/fill_stroke/
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/fill-stroke-3/
6
7mod impls;
8use super::prelude::*;
9use impls::*;
10// /// Represents the style value for `fill` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill).
11// ///
12// /// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
13// ///
14// /// The grammar is defined as:
15// ///
16// /// ```text,ignore
17// /// <'background'> with modifications
18// /// ```
19// ///
20// /// https://drafts.csswg.org/fill-stroke-3/#fill
21// #[syntax(" <'background'> with modifications ")]
22// #[derive(
23//     Parse,
24//     Peek,
25//     ToSpan,
26//     ToCursors,
27//     DeclarationMetadata,
28//     SemanticEq,
29//     Debug,
30//     Clone,
31//     PartialEq,
32//     Eq,
33//     PartialOrd,
34//     Ord,
35//     Hash,
36// )]
37// #[declaration_metadata(
38//     initial = "See individual properties",
39//     inherits = Unknown,
40//     applies_to = Unknown,
41//     animation_type = Unknown,
42//     property_group = FillStroke,
43//     computed_value_type = Unknown,
44//     canonical_order = "per grammar",
45// )]
46// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
47// #[cfg_attr(
48//     feature = "css_feature_data",
49//     derive(ToCSSFeature),
50//     css_feature("css.properties.fill")
51// )]
52// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
53// #[derive(csskit_derives::NodeWithMetadata)]
54// pub struct FillStyleValue;
55
56/// Represents the style value for `fill-break` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-break).
57///
58/// The grammar is defined as:
59///
60/// ```text,ignore
61/// bounding-box | slice | clone
62/// ```
63///
64/// https://drafts.csswg.org/fill-stroke-3/#fill-break
65#[syntax(" bounding-box | slice | clone ")]
66#[derive(
67	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
68)]
69#[declaration_metadata(
70    initial = "bounding-box",
71    inherits = Unknown,
72    applies_to = Elements,
73    animation_type = Discrete,
74    property_group = FillStroke,
75    computed_value_type = AsSpecified,
76    canonical_order = "per grammar",
77)]
78#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
79#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-break"))]
80#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
81#[derive(csskit_derives::NodeWithMetadata)]
82pub enum FillBreakStyleValue {}
83
84/// Represents the style value for `fill-color` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-color).
85///
86/// The grammar is defined as:
87///
88/// ```text,ignore
89/// <color>
90/// ```
91///
92/// https://drafts.csswg.org/fill-stroke-3/#fill-color
93#[syntax(" <color> ")]
94#[derive(
95	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
96)]
97#[declaration_metadata(
98    initial = "currentcolor",
99    inherits,
100    applies_to = Unknown,
101    animation_type = ByComputedValue,
102    property_group = FillStroke,
103    computed_value_type = Unknown,
104    canonical_order = "per grammar",
105)]
106#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
107#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-color"))]
108#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
109#[derive(csskit_derives::NodeWithMetadata)]
110pub struct FillColorStyleValue;
111
112// /// Represents the style value for `fill-image` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-image).
113// ///
114// /// The grammar is defined as:
115// ///
116// /// ```text,ignore
117// /// <paint>#
118// /// ```
119// ///
120// /// https://drafts.csswg.org/fill-stroke-3/#fill-image
121// #[syntax(" <paint># ")]
122// #[derive(
123//     Parse,
124//     Peek,
125//     ToSpan,
126//     ToCursors,
127//     DeclarationMetadata,
128//     SemanticEq,
129//     Debug,
130//     Clone,
131//     PartialEq,
132//     Eq,
133//     PartialOrd,
134//     Ord,
135//     Hash,
136// )]
137// #[declaration_metadata(
138//     initial = "none",
139//     inherits,
140//     applies_to = Unknown,
141//     animation_type = RepeatableList,
142//     property_group = FillStroke,
143//     computed_value_type = AsSpecified,
144//     canonical_order = "per grammar",
145// )]
146// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
147// #[cfg_attr(
148//     feature = "css_feature_data",
149//     derive(ToCSSFeature),
150//     css_feature("css.properties.fill-image")
151// )]
152// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
153// #[derive(csskit_derives::NodeWithMetadata)]
154// pub struct FillImageStyleValue<'a>;
155
156/// Represents the style value for `fill-opacity` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-opacity).
157///
158/// The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.
159///
160/// The grammar is defined as:
161///
162/// ```text,ignore
163/// <'opacity'>
164/// ```
165///
166/// https://drafts.csswg.org/fill-stroke-3/#fill-opacity
167#[syntax(" <'opacity'> ")]
168#[derive(
169	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
170)]
171#[declaration_metadata(
172    initial = "1",
173    inherits,
174    applies_to = Unknown,
175    animation_type = ByComputedValue,
176    property_group = FillStroke,
177    computed_value_type = Unknown,
178    canonical_order = "per grammar",
179)]
180#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
181#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-opacity"))]
182#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
183#[derive(csskit_derives::NodeWithMetadata)]
184pub struct FillOpacityStyleValue;
185
186/// Represents the style value for `fill-origin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-origin).
187///
188/// The grammar is defined as:
189///
190/// ```text,ignore
191/// match-parent | fill-box | stroke-box | content-box | padding-box | border-box
192/// ```
193///
194/// https://drafts.csswg.org/fill-stroke-3/#fill-origin
195#[syntax(" match-parent | fill-box | stroke-box | content-box | padding-box | border-box ")]
196#[derive(
197	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
198)]
199#[declaration_metadata(
200    initial = "match-parent",
201    applies_to = Elements,
202    animation_type = Discrete,
203    property_group = FillStroke,
204    computed_value_type = AsSpecified,
205    canonical_order = "per grammar",
206)]
207#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
208#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-origin"))]
209#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
210#[derive(csskit_derives::NodeWithMetadata)]
211pub enum FillOriginStyleValue {}
212
213/// Represents the style value for `fill-position` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-position).
214///
215/// The grammar is defined as:
216///
217/// ```text,ignore
218/// <position>#
219/// ```
220///
221/// https://drafts.csswg.org/fill-stroke-3/#fill-position
222#[syntax(" <position># ")]
223#[derive(
224	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
225)]
226#[declaration_metadata(
227    initial = "0% 0%",
228    inherits,
229    applies_to = Unknown,
230    animation_type = RepeatableList,
231    property_group = FillStroke,
232    computed_value_type = AbsoluteLengthOrPercentage,
233    canonical_order = "per grammar",
234)]
235#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
236#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-position"))]
237#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
238#[derive(csskit_derives::NodeWithMetadata)]
239pub struct FillPositionStyleValue<'a>;
240
241/// Represents the style value for `fill-repeat` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-repeat).
242///
243/// The grammar is defined as:
244///
245/// ```text,ignore
246/// <repeat-style>#
247/// ```
248///
249/// https://drafts.csswg.org/fill-stroke-3/#fill-repeat
250#[syntax(" <repeat-style># ")]
251#[derive(
252	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
253)]
254#[declaration_metadata(
255    initial = "repeat",
256    inherits,
257    applies_to = Unknown,
258    animation_type = Discrete,
259    property_group = FillStroke,
260    computed_value_type = Unknown,
261    canonical_order = "per grammar",
262)]
263#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
264#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-repeat"))]
265#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
266#[derive(csskit_derives::NodeWithMetadata)]
267pub struct FillRepeatStyleValue<'a>;
268
269/// Represents the style value for `fill-rule` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-rule).
270///
271/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
272///
273/// The grammar is defined as:
274///
275/// ```text,ignore
276/// nonzero | evenodd
277/// ```
278///
279/// https://drafts.csswg.org/fill-stroke-3/#fill-rule
280#[syntax(" nonzero | evenodd ")]
281#[derive(
282	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
283)]
284#[declaration_metadata(
285    initial = "nonzero",
286    inherits,
287    applies_to = Unknown,
288    animation_type = Discrete,
289    property_group = FillStroke,
290    computed_value_type = AsSpecified,
291    canonical_order = "per grammar",
292)]
293#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
294#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-rule"))]
295#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
296#[derive(csskit_derives::NodeWithMetadata)]
297pub enum FillRuleStyleValue {}
298
299/// Represents the style value for `fill-size` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#fill-size).
300///
301/// The grammar is defined as:
302///
303/// ```text,ignore
304/// <bg-size>#
305/// ```
306///
307/// https://drafts.csswg.org/fill-stroke-3/#fill-size
308#[syntax(" <bg-size># ")]
309#[derive(
310	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
311)]
312#[declaration_metadata(
313    initial = "auto",
314    inherits,
315    applies_to = Unknown,
316    animation_type = RepeatableList,
317    property_group = FillStroke,
318    computed_value_type = AsSpecified,
319    canonical_order = "per grammar",
320)]
321#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
322#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.fill-size"))]
323#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
324#[derive(csskit_derives::NodeWithMetadata)]
325pub struct FillSizeStyleValue<'a>;
326
327// /// Represents the style value for `stroke` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke).
328// ///
329// /// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
330// ///
331// /// The grammar is defined as:
332// ///
333// /// ```text,ignore
334// /// <'background'> with modifications
335// /// ```
336// ///
337// /// https://drafts.csswg.org/fill-stroke-3/#stroke
338// #[syntax(" <'background'> with modifications ")]
339// #[derive(
340//     Parse,
341//     Peek,
342//     ToSpan,
343//     ToCursors,
344//     DeclarationMetadata,
345//     SemanticEq,
346//     Debug,
347//     Clone,
348//     PartialEq,
349//     Eq,
350//     PartialOrd,
351//     Ord,
352//     Hash,
353// )]
354// #[declaration_metadata(
355//     initial = "See individual properties",
356//     inherits = Unknown,
357//     applies_to = Unknown,
358//     animation_type = Unknown,
359//     property_group = FillStroke,
360//     computed_value_type = Unknown,
361//     canonical_order = "per grammar",
362// )]
363// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
364// #[cfg_attr(
365//     feature = "css_feature_data",
366//     derive(ToCSSFeature),
367//     css_feature("css.properties.stroke")
368// )]
369// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
370// #[derive(csskit_derives::NodeWithMetadata)]
371// pub struct StrokeStyleValue;
372
373/// Represents the style value for `stroke-align` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-align).
374///
375/// The grammar is defined as:
376///
377/// ```text,ignore
378/// center | inset | outset
379/// ```
380///
381/// https://drafts.csswg.org/fill-stroke-3/#stroke-align
382#[syntax(" center | inset | outset ")]
383#[derive(
384	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
385)]
386#[declaration_metadata(
387    initial = "center",
388    inherits,
389    applies_to = Unknown,
390    animation_type = Discrete,
391    property_group = FillStroke,
392    computed_value_type = AsSpecified,
393    canonical_order = "per grammar",
394)]
395#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
396#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-align"))]
397#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
398#[derive(csskit_derives::NodeWithMetadata)]
399pub enum StrokeAlignStyleValue {}
400
401/// Represents the style value for `stroke-break` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-break).
402///
403/// The grammar is defined as:
404///
405/// ```text,ignore
406/// bounding-box | slice | clone
407/// ```
408///
409/// https://drafts.csswg.org/fill-stroke-3/#stroke-break
410#[syntax(" bounding-box | slice | clone ")]
411#[derive(
412	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
413)]
414#[declaration_metadata(
415    initial = "bounding-box",
416    inherits = Unknown,
417    applies_to = Elements,
418    animation_type = Discrete,
419    property_group = FillStroke,
420    computed_value_type = AsSpecified,
421    canonical_order = "per grammar",
422)]
423#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
424#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-break"))]
425#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
426#[derive(csskit_derives::NodeWithMetadata)]
427pub enum StrokeBreakStyleValue {}
428
429/// Represents the style value for `stroke-color` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-color).
430///
431/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
432///
433/// The grammar is defined as:
434///
435/// ```text,ignore
436/// <color>#
437/// ```
438///
439/// https://drafts.csswg.org/fill-stroke-3/#stroke-color
440#[syntax(" <color># ")]
441#[derive(
442	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
443)]
444#[declaration_metadata(
445    initial = "transparent",
446    inherits,
447    applies_to = Unknown,
448    animation_type = ByComputedValue,
449    property_group = FillStroke,
450    computed_value_type = Unknown,
451    canonical_order = "per grammar",
452)]
453#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
454#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-color"))]
455#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
456#[derive(csskit_derives::NodeWithMetadata)]
457pub struct StrokeColorStyleValue<'a>;
458
459/// Represents the style value for `stroke-dash-corner` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dash-corner).
460///
461/// The grammar is defined as:
462///
463/// ```text,ignore
464/// none | <length>
465/// ```
466///
467/// https://drafts.csswg.org/fill-stroke-3/#stroke-dash-corner
468#[syntax(" none | <length> ")]
469#[derive(
470	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
471)]
472#[declaration_metadata(
473    initial = "none",
474    inherits,
475    applies_to = Unknown,
476    animation_type = Discrete,
477    property_group = FillStroke,
478    computed_value_type = Unknown,
479    canonical_order = "per grammar",
480)]
481#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
482#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dash-corner"))]
483#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
484#[derive(csskit_derives::NodeWithMetadata)]
485pub struct StrokeDashCornerStyleValue;
486
487// /// Represents the style value for `stroke-dash-justify` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dash-justify).
488// ///
489// /// The grammar is defined as:
490// ///
491// /// ```text,ignore
492// /// none | [ stretch | compress ] || [ dashes || gaps ]
493// /// ```
494// ///
495// /// https://drafts.csswg.org/fill-stroke-3/#stroke-dash-justify
496// #[syntax(" none | [ stretch | compress ] || [ dashes || gaps ] ")]
497// #[derive(
498//     Parse,
499//     Peek,
500//     ToSpan,
501//     ToCursors,
502//     DeclarationMetadata,
503//     SemanticEq,
504//     Debug,
505//     Clone,
506//     PartialEq,
507//     Eq,
508//     PartialOrd,
509//     Ord,
510//     Hash,
511// )]
512// #[declaration_metadata(
513//     initial = "none",
514//     inherits,
515//     applies_to = Unknown,
516//     animation_type = Discrete,
517//     property_group = FillStroke,
518//     computed_value_type = Unknown,
519//     canonical_order = "per grammar",
520// )]
521// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
522// #[cfg_attr(
523//     feature = "css_feature_data",
524//     derive(ToCSSFeature),
525//     css_feature("css.properties.stroke-dash-justify")
526// )]
527// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
528// #[derive(csskit_derives::NodeWithMetadata)]
529// pub struct StrokeDashJustifyStyleValue;
530
531/// Represents the style value for `stroke-dasharray` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dasharray).
532///
533/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
534///
535/// The grammar is defined as:
536///
537/// ```text,ignore
538/// none | <length-percentage>+#
539/// ```
540///
541/// https://drafts.csswg.org/fill-stroke-3/#stroke-dasharray
542#[syntax(" none | <length-percentage>+# ")]
543#[derive(
544	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
545)]
546#[declaration_metadata(
547    initial = "none",
548    inherits,
549    applies_to = Unknown,
550    animation_type = RepeatableList,
551    percentages = Unknown,
552    property_group = FillStroke,
553    computed_value_type = AsSpecified,
554    canonical_order = "per grammar",
555)]
556#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
557#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dasharray"))]
558#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
559#[derive(csskit_derives::NodeWithMetadata)]
560pub struct StrokeDasharrayStyleValue<'a>;
561
562/// Represents the style value for `stroke-dashoffset` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-dashoffset).
563///
564/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
565///
566/// The grammar is defined as:
567///
568/// ```text,ignore
569/// <length-percentage>
570/// ```
571///
572/// https://drafts.csswg.org/fill-stroke-3/#stroke-dashoffset
573#[syntax(" <length-percentage> ")]
574#[derive(
575	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
576)]
577#[declaration_metadata(
578    initial = "0",
579    inherits,
580    applies_to = Unknown,
581    animation_type = RepeatableList,
582    percentages = Unknown,
583    property_group = FillStroke,
584    computed_value_type = AsSpecified,
585    canonical_order = "per grammar",
586)]
587#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
588#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-dashoffset"))]
589#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
590#[derive(csskit_derives::NodeWithMetadata)]
591pub struct StrokeDashoffsetStyleValue;
592
593// /// Represents the style value for `stroke-image` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-image).
594// ///
595// /// The grammar is defined as:
596// ///
597// /// ```text,ignore
598// /// <paint>#
599// /// ```
600// ///
601// /// https://drafts.csswg.org/fill-stroke-3/#stroke-image
602// #[syntax(" <paint># ")]
603// #[derive(
604//     Parse,
605//     Peek,
606//     ToSpan,
607//     ToCursors,
608//     DeclarationMetadata,
609//     SemanticEq,
610//     Debug,
611//     Clone,
612//     PartialEq,
613//     Eq,
614//     PartialOrd,
615//     Ord,
616//     Hash,
617// )]
618// #[declaration_metadata(
619//     initial = "none",
620//     inherits,
621//     applies_to = Unknown,
622//     animation_type = RepeatableList,
623//     property_group = FillStroke,
624//     computed_value_type = AsSpecified,
625//     canonical_order = "per grammar",
626// )]
627// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
628// #[cfg_attr(
629//     feature = "css_feature_data",
630//     derive(ToCSSFeature),
631//     css_feature("css.properties.stroke-image")
632// )]
633// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
634// #[derive(csskit_derives::NodeWithMetadata)]
635// pub struct StrokeImageStyleValue<'a>;
636
637/// Represents the style value for `stroke-linecap` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-linecap).
638///
639/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
640///
641/// The grammar is defined as:
642///
643/// ```text,ignore
644/// butt | round | square
645/// ```
646///
647/// https://drafts.csswg.org/fill-stroke-3/#stroke-linecap
648#[syntax(" butt | round | square ")]
649#[derive(
650	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
651)]
652#[declaration_metadata(
653    initial = "butt",
654    inherits,
655    applies_to = Unknown,
656    animation_type = Discrete,
657    property_group = FillStroke,
658    computed_value_type = AsSpecified,
659    canonical_order = "per grammar",
660)]
661#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
662#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-linecap"))]
663#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
664#[derive(csskit_derives::NodeWithMetadata)]
665pub enum StrokeLinecapStyleValue {}
666
667// /// Represents the style value for `stroke-linejoin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-linejoin).
668// ///
669// /// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
670// ///
671// /// The grammar is defined as:
672// ///
673// /// ```text,ignore
674// /// [ crop | arcs | miter ] || [ bevel | round | fallback ]
675// /// ```
676// ///
677// /// https://drafts.csswg.org/fill-stroke-3/#stroke-linejoin
678// #[syntax(" [ crop | arcs | miter ] || [ bevel | round | fallback ] ")]
679// #[derive(
680//     Parse,
681//     Peek,
682//     ToSpan,
683//     ToCursors,
684//     DeclarationMetadata,
685//     SemanticEq,
686//     Debug,
687//     Clone,
688//     PartialEq,
689//     Eq,
690//     PartialOrd,
691//     Ord,
692//     Hash,
693// )]
694// #[declaration_metadata(
695//     initial = "miter",
696//     inherits,
697//     applies_to = Unknown,
698//     animation_type = Discrete,
699//     property_group = FillStroke,
700//     computed_value_type = AsSpecified,
701//     canonical_order = "per grammar",
702// )]
703// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
704// #[cfg_attr(
705//     feature = "css_feature_data",
706//     derive(ToCSSFeature),
707//     css_feature("css.properties.stroke-linejoin")
708// )]
709// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
710// #[derive(csskit_derives::NodeWithMetadata)]
711// pub struct StrokeLinejoinStyleValue;
712
713/// Represents the style value for `stroke-miterlimit` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-miterlimit).
714///
715/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
716///
717/// The grammar is defined as:
718///
719/// ```text,ignore
720/// <number>
721/// ```
722///
723/// https://drafts.csswg.org/fill-stroke-3/#stroke-miterlimit
724#[syntax(" <number> ")]
725#[derive(
726	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
727)]
728#[declaration_metadata(
729    initial = "4",
730    inherits,
731    applies_to = Unknown,
732    animation_type = Discrete,
733    property_group = FillStroke,
734    computed_value_type = Unknown,
735    canonical_order = "per grammar",
736)]
737#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
738#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-miterlimit"))]
739#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
740#[derive(csskit_derives::NodeWithMetadata)]
741pub struct StrokeMiterlimitStyleValue;
742
743/// Represents the style value for `stroke-opacity` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-opacity).
744///
745/// The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.
746///
747/// The grammar is defined as:
748///
749/// ```text,ignore
750/// <'opacity'>
751/// ```
752///
753/// https://drafts.csswg.org/fill-stroke-3/#stroke-opacity
754#[syntax(" <'opacity'> ")]
755#[derive(
756	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
757)]
758#[declaration_metadata(
759    initial = "1",
760    inherits,
761    applies_to = Unknown,
762    animation_type = ByComputedValue,
763    property_group = FillStroke,
764    computed_value_type = Unknown,
765    canonical_order = "per grammar",
766)]
767#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
768#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-opacity"))]
769#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
770#[derive(csskit_derives::NodeWithMetadata)]
771pub struct StrokeOpacityStyleValue;
772
773/// Represents the style value for `stroke-origin` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-origin).
774///
775/// The grammar is defined as:
776///
777/// ```text,ignore
778/// match-parent | fill-box | stroke-box | content-box | padding-box | border-box
779/// ```
780///
781/// https://drafts.csswg.org/fill-stroke-3/#stroke-origin
782#[syntax(" match-parent | fill-box | stroke-box | content-box | padding-box | border-box ")]
783#[derive(
784	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
785)]
786#[declaration_metadata(
787    initial = "match-parent",
788    applies_to = Elements,
789    animation_type = Discrete,
790    property_group = FillStroke,
791    computed_value_type = AsSpecified,
792    canonical_order = "per grammar",
793)]
794#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
795#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-origin"))]
796#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
797#[derive(csskit_derives::NodeWithMetadata)]
798pub enum StrokeOriginStyleValue {}
799
800/// Represents the style value for `stroke-position` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-position).
801///
802/// The grammar is defined as:
803///
804/// ```text,ignore
805/// <position>#
806/// ```
807///
808/// https://drafts.csswg.org/fill-stroke-3/#stroke-position
809#[syntax(" <position># ")]
810#[derive(
811	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
812)]
813#[declaration_metadata(
814    initial = "0% 0%",
815    inherits,
816    applies_to = Unknown,
817    animation_type = RepeatableList,
818    property_group = FillStroke,
819    computed_value_type = AbsoluteLengthOrPercentage,
820    canonical_order = "per grammar",
821)]
822#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
823#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-position"))]
824#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
825#[derive(csskit_derives::NodeWithMetadata)]
826pub struct StrokePositionStyleValue<'a>;
827
828/// Represents the style value for `stroke-repeat` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-repeat).
829///
830/// The grammar is defined as:
831///
832/// ```text,ignore
833/// <repeat-style>#
834/// ```
835///
836/// https://drafts.csswg.org/fill-stroke-3/#stroke-repeat
837#[syntax(" <repeat-style># ")]
838#[derive(
839	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
840)]
841#[declaration_metadata(
842    initial = "repeat",
843    inherits,
844    applies_to = Unknown,
845    animation_type = Discrete,
846    property_group = FillStroke,
847    computed_value_type = Unknown,
848    canonical_order = "per grammar",
849)]
850#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
851#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-repeat"))]
852#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
853#[derive(csskit_derives::NodeWithMetadata)]
854pub struct StrokeRepeatStyleValue<'a>;
855
856/// Represents the style value for `stroke-size` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-size).
857///
858/// The grammar is defined as:
859///
860/// ```text,ignore
861/// <bg-size>#
862/// ```
863///
864/// https://drafts.csswg.org/fill-stroke-3/#stroke-size
865#[syntax(" <bg-size># ")]
866#[derive(
867	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
868)]
869#[declaration_metadata(
870    initial = "auto",
871    inherits,
872    applies_to = Unknown,
873    animation_type = RepeatableList,
874    property_group = FillStroke,
875    computed_value_type = AsSpecified,
876    canonical_order = "per grammar",
877)]
878#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
879#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-size"))]
880#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
881#[derive(csskit_derives::NodeWithMetadata)]
882pub struct StrokeSizeStyleValue<'a>;
883
884/// Represents the style value for `stroke-width` as defined in [fill-stroke-3](https://drafts.csswg.org/fill-stroke-3/#stroke-width).
885///
886/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
887///
888/// The grammar is defined as:
889///
890/// ```text,ignore
891/// <length-percentage>#
892/// ```
893///
894/// https://drafts.csswg.org/fill-stroke-3/#stroke-width
895#[syntax(" <length-percentage># ")]
896#[derive(
897	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
898)]
899#[declaration_metadata(
900    initial = "1px",
901    inherits,
902    applies_to = Unknown,
903    animation_type = ByComputedValue,
904    percentages = Unknown,
905    property_group = FillStroke,
906    computed_value_type = AbsoluteLengthOrPercentage,
907    canonical_order = "per grammar",
908)]
909#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
910#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.stroke-width"))]
911#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
912#[derive(csskit_derives::NodeWithMetadata)]
913pub struct StrokeWidthStyleValue<'a>;