Skip to main content

css_ast/values/fill_stroke/
mod.rs

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