Skip to main content

css_ast/values/masking/
mod.rs

1// AUTO-GENERATED from w3c/csswg-drafts
2// Commit: https://github.com/w3c/csswg-drafts/commit/ddbceaa3cee88f134d557c3051c26fcb5554a535
3// Do not edit this file directly.
4#![allow(warnings)]
5//! https://drafts.csswg.org/css-masking-1/
6
7mod impls;
8use super::prelude::*;
9use impls::*;
10/// Represents the style value for `clip` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#clip).
11///
12/// The clip CSS property sets the visible area of an absolutely positioned element.
13///
14/// The grammar is defined as:
15///
16/// ```text,ignore
17/// <rect()> | auto
18/// ```
19///
20/// https://drafts.csswg.org/css-masking-1/#clip
21#[syntax(" <rect()> | auto ")]
22#[derive(
23	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
24)]
25#[declaration_metadata(
26    initial = "auto",
27    applies_to = Unknown,
28    animation_type = ByComputedValue,
29    property_group = Masking,
30    computed_value_type = AsSpecified,
31    canonical_order = "per grammar",
32)]
33#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
34#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.clip"))]
35#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
36#[derive(csskit_derives::NodeWithMetadata)]
37pub struct ClipStyleValue;
38
39/// Represents the style value for `clip-path` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#clip-path).
40///
41/// The clip-path CSS property and SVG attribute set the visible area of an element. Everything outside the area will be hidden.
42///
43/// The grammar is defined as:
44///
45/// ```text,ignore
46/// <clip-source> | [ <basic-shape> || <geometry-box> ] | none
47/// ```
48///
49/// https://drafts.csswg.org/css-masking-1/#clip-path
50#[syntax(" <clip-source> | [ <basic-shape> || <geometry-box> ] | none ")]
51#[derive(
52	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
53)]
54#[declaration_metadata(
55    initial = "none",
56    applies_to = Unknown,
57    animation_type = ByComputedValue,
58    property_group = Masking,
59    computed_value_type = SpecifiedWithAbsoluteUrls,
60    canonical_order = "per grammar",
61)]
62#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
63#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.clip-path"))]
64#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
65#[derive(csskit_derives::NodeWithMetadata)]
66pub enum ClipPathStyleValue {}
67
68/// Represents the style value for `clip-rule` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#clip-rule).
69///
70/// The SVG image format, represented by the <svg> element, creates two-dimensional vector graphics with declarative or scripted interaction and animation.
71///
72/// The grammar is defined as:
73///
74/// ```text,ignore
75/// nonzero | evenodd
76/// ```
77///
78/// https://drafts.csswg.org/css-masking-1/#clip-rule
79#[syntax(" nonzero | evenodd ")]
80#[derive(
81	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
82)]
83#[declaration_metadata(
84    initial = "nonzero",
85    inherits,
86    applies_to = Unknown,
87    animation_type = Discrete,
88    property_group = Masking,
89    computed_value_type = AsSpecified,
90    canonical_order = "per grammar",
91)]
92#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
93#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.clip-rule"))]
94#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
95#[derive(csskit_derives::NodeWithMetadata)]
96pub enum ClipRuleStyleValue {}
97
98/// Represents the style value for `mask` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask).
99///
100/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
101///
102/// The grammar is defined as:
103///
104/// ```text,ignore
105/// <mask-layer>#
106/// ```
107///
108/// https://drafts.csswg.org/css-masking-1/#mask
109#[syntax(" <mask-layer># ")]
110#[derive(
111	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
112)]
113#[declaration_metadata(
114    initial = "see individual properties",
115    applies_to = Unknown,
116    animation_type = Unknown,
117    percentages = Unknown,
118    longhands = MaskClip|MaskComposite|MaskImage|MaskMode|MaskOrigin|MaskPosition|MaskRepeat|MaskSize,
119    property_group = Masking,
120    computed_value_type = Unknown,
121    canonical_order = "per grammar",
122)]
123#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
124#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask"))]
125#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
126#[derive(csskit_derives::NodeWithMetadata)]
127pub struct MaskStyleValue<'a>;
128
129// /// Represents the style value for `mask-border` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-border).
130// ///
131// /// The mask-border CSS property sets how the edges of an element are masked. It is a shorthand for mask-border-outset, mask-border-repeat, mask-border-slice, mask-border-source, and mask-border-width.
132// ///
133// /// The grammar is defined as:
134// ///
135// /// ```text,ignore
136// /// <'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>
137// /// ```
138// ///
139// /// https://drafts.csswg.org/css-masking-1/#mask-border
140// #[syntax(
141//     " <'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'> "
142// )]
143// #[derive(
144//     Parse,
145//     Peek,
146//     ToSpan,
147//     ToCursors,
148//     DeclarationMetadata,
149//     SemanticEq,
150//     Debug,
151//     Clone,
152//     PartialEq,
153//     Eq,
154//     PartialOrd,
155//     Ord,
156//     Hash,
157// )]
158// #[declaration_metadata(
159//     initial = "See individual properties",
160//     applies_to = Unknown,
161//     animation_type = Unknown,
162//     longhands = MaskBorderMode|MaskBorderOutset|MaskBorderRepeat|MaskBorderSlice|MaskBorderSource|MaskBorderWidth,
163//     property_group = Masking,
164//     computed_value_type = Unknown,
165//     canonical_order = "per grammar",
166// )]
167// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
168// #[cfg_attr(
169//     feature = "css_feature_data",
170//     derive(ToCSSFeature),
171//     css_feature("css.properties.mask-border")
172// )]
173// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
174// #[derive(csskit_derives::NodeWithMetadata)]
175// pub struct MaskBorderStyleValue<'a>;
176
177/// Represents the style value for `mask-border-mode` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-border-mode).
178///
179/// The grammar is defined as:
180///
181/// ```text,ignore
182/// luminance | alpha
183/// ```
184///
185/// https://drafts.csswg.org/css-masking-1/#mask-border-mode
186#[syntax(" luminance | alpha ")]
187#[derive(
188	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
189)]
190#[declaration_metadata(
191    initial = "alpha",
192    applies_to = Unknown,
193    animation_type = Discrete,
194    shorthand_group = MaskBorder,
195    property_group = Masking,
196    computed_value_type = AsSpecified,
197    canonical_order = "per grammar",
198)]
199#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
200#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-border-mode"))]
201#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
202#[derive(csskit_derives::NodeWithMetadata)]
203pub enum MaskBorderModeStyleValue {}
204
205/// Represents the style value for `mask-border-outset` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-border-outset).
206///
207/// The mask-border CSS property sets how the edges of an element are masked. It is a shorthand for mask-border-outset, mask-border-repeat, mask-border-slice, mask-border-source, and mask-border-width.
208///
209/// The grammar is defined as:
210///
211/// ```text,ignore
212/// <'border-image-outset'>
213/// ```
214///
215/// https://drafts.csswg.org/css-masking-1/#mask-border-outset
216#[syntax(" <'border-image-outset'> ")]
217#[derive(
218	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
219)]
220#[declaration_metadata(
221    initial = "0",
222    applies_to = Unknown,
223    animation_type = ByComputedValue,
224    shorthand_group = MaskBorder,
225    property_group = Masking,
226    computed_value_type = Unknown,
227    canonical_order = "per grammar",
228)]
229#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
230#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-border-outset"))]
231#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
232#[derive(csskit_derives::NodeWithMetadata)]
233pub struct MaskBorderOutsetStyleValue;
234
235/// Represents the style value for `mask-border-repeat` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-border-repeat).
236///
237/// The mask-border CSS property sets how the edges of an element are masked. It is a shorthand for mask-border-outset, mask-border-repeat, mask-border-slice, mask-border-source, and mask-border-width.
238///
239/// The grammar is defined as:
240///
241/// ```text,ignore
242/// <'border-image-repeat'>
243/// ```
244///
245/// https://drafts.csswg.org/css-masking-1/#mask-border-repeat
246#[syntax(" <'border-image-repeat'> ")]
247#[derive(
248	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
249)]
250#[declaration_metadata(
251    initial = "stretch",
252    applies_to = Unknown,
253    animation_type = Discrete,
254    shorthand_group = MaskBorder,
255    property_group = Masking,
256    computed_value_type = AsSpecified,
257    canonical_order = "per grammar",
258)]
259#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
260#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-border-repeat"))]
261#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
262#[derive(csskit_derives::NodeWithMetadata)]
263pub struct MaskBorderRepeatStyleValue;
264
265/// Represents the style value for `mask-border-slice` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-border-slice).
266///
267/// The mask-border CSS property sets how the edges of an element are masked. It is a shorthand for mask-border-outset, mask-border-repeat, mask-border-slice, mask-border-source, and mask-border-width.
268///
269/// The grammar is defined as:
270///
271/// ```text,ignore
272/// <'border-image-slice'>
273/// ```
274///
275/// https://drafts.csswg.org/css-masking-1/#mask-border-slice
276#[syntax(" <'border-image-slice'> ")]
277#[derive(
278	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
279)]
280#[declaration_metadata(
281    initial = "0",
282    applies_to = Unknown,
283    animation_type = ByComputedValue,
284    percentages = BorderImageArea,
285    shorthand_group = MaskBorder,
286    property_group = Masking,
287    computed_value_type = AsSpecified,
288    canonical_order = "per grammar",
289)]
290#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
291#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-border-slice"))]
292#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
293#[derive(csskit_derives::NodeWithMetadata)]
294pub struct MaskBorderSliceStyleValue;
295
296/// Represents the style value for `mask-border-source` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-border-source).
297///
298/// The mask-border CSS property sets how the edges of an element are masked. It is a shorthand for mask-border-outset, mask-border-repeat, mask-border-slice, mask-border-source, and mask-border-width.
299///
300/// The grammar is defined as:
301///
302/// ```text,ignore
303/// <'border-image-source'>
304/// ```
305///
306/// https://drafts.csswg.org/css-masking-1/#mask-border-source
307#[syntax(" <'border-image-source'> ")]
308#[derive(
309	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
310)]
311#[declaration_metadata(
312    initial = "none",
313    applies_to = Unknown,
314    animation_type = Discrete,
315    shorthand_group = MaskBorder,
316    property_group = Masking,
317    computed_value_type = Unknown,
318    canonical_order = "per grammar",
319)]
320#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
321#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-border-source"))]
322#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
323#[derive(csskit_derives::NodeWithMetadata)]
324pub struct MaskBorderSourceStyleValue<'a>;
325
326/// Represents the style value for `mask-border-width` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-border-width).
327///
328/// The mask-border CSS property sets how the edges of an element are masked. It is a shorthand for mask-border-outset, mask-border-repeat, mask-border-slice, mask-border-source, and mask-border-width.
329///
330/// The grammar is defined as:
331///
332/// ```text,ignore
333/// <'border-image-width'>
334/// ```
335///
336/// https://drafts.csswg.org/css-masking-1/#mask-border-width
337#[syntax(" <'border-image-width'> ")]
338#[derive(
339	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
340)]
341#[declaration_metadata(
342    initial = "auto",
343    applies_to = Unknown,
344    animation_type = ByComputedValue,
345    percentages = BorderImageArea,
346    shorthand_group = MaskBorder,
347    property_group = Masking,
348    computed_value_type = Unknown,
349    canonical_order = "per grammar",
350)]
351#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
352#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-border-width"))]
353#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
354#[derive(csskit_derives::NodeWithMetadata)]
355pub struct MaskBorderWidthStyleValue;
356
357/// Represents the style value for `mask-clip` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-clip).
358///
359/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
360///
361/// The grammar is defined as:
362///
363/// ```text,ignore
364/// [ <coord-box> | no-clip ]#
365/// ```
366///
367/// https://drafts.csswg.org/css-masking-1/#mask-clip
368#[syntax(" [ <coord-box> | no-clip ]# ")]
369#[derive(
370	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
371)]
372#[declaration_metadata(
373    initial = "border-box",
374    applies_to = Unknown,
375    animation_type = Discrete,
376    shorthand_group = Mask,
377    property_group = Masking,
378    computed_value_type = Unknown,
379    canonical_order = "per grammar",
380)]
381#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
382#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-clip"))]
383#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
384#[derive(csskit_derives::NodeWithMetadata)]
385pub struct MaskClipStyleValue<'a>;
386
387/// Represents the style value for `mask-composite` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-composite).
388///
389/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
390///
391/// The grammar is defined as:
392///
393/// ```text,ignore
394/// <compositing-operator>#
395/// ```
396///
397/// https://drafts.csswg.org/css-masking-1/#mask-composite
398#[syntax(" <compositing-operator># ")]
399#[derive(
400	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
401)]
402#[declaration_metadata(
403    initial = "add",
404    applies_to = Unknown,
405    animation_type = Discrete,
406    shorthand_group = Mask,
407    property_group = Masking,
408    computed_value_type = Unknown,
409    canonical_order = "per grammar",
410)]
411#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
412#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-composite"))]
413#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
414#[derive(csskit_derives::NodeWithMetadata)]
415pub struct MaskCompositeStyleValue<'a>;
416
417/// Represents the style value for `mask-image` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-image).
418///
419/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
420///
421/// The grammar is defined as:
422///
423/// ```text,ignore
424/// <mask-reference>#
425/// ```
426///
427/// https://drafts.csswg.org/css-masking-1/#mask-image
428#[syntax(" <mask-reference># ")]
429#[derive(
430	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
431)]
432#[declaration_metadata(
433    initial = "none",
434    applies_to = Unknown,
435    animation_type = Discrete,
436    shorthand_group = Mask,
437    property_group = Masking,
438    computed_value_type = Unknown,
439    canonical_order = "per grammar",
440)]
441#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
442#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-image"))]
443#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
444#[derive(csskit_derives::NodeWithMetadata)]
445pub struct MaskImageStyleValue<'a>;
446
447/// Represents the style value for `mask-mode` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-mode).
448///
449/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
450///
451/// The grammar is defined as:
452///
453/// ```text,ignore
454/// <masking-mode>#
455/// ```
456///
457/// https://drafts.csswg.org/css-masking-1/#mask-mode
458#[syntax(" <masking-mode># ")]
459#[derive(
460	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
461)]
462#[declaration_metadata(
463    initial = "match-source",
464    applies_to = Unknown,
465    animation_type = Discrete,
466    shorthand_group = Mask,
467    property_group = Masking,
468    computed_value_type = Unknown,
469    canonical_order = "per grammar",
470)]
471#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
472#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-mode"))]
473#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
474#[derive(csskit_derives::NodeWithMetadata)]
475pub struct MaskModeStyleValue<'a>;
476
477/// Represents the style value for `mask-origin` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-origin).
478///
479/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
480///
481/// The grammar is defined as:
482///
483/// ```text,ignore
484/// <coord-box>#
485/// ```
486///
487/// https://drafts.csswg.org/css-masking-1/#mask-origin
488#[syntax(" <coord-box># ")]
489#[derive(
490	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
491)]
492#[declaration_metadata(
493    initial = "border-box",
494    applies_to = Unknown,
495    animation_type = Discrete,
496    shorthand_group = Mask,
497    property_group = Masking,
498    computed_value_type = Unknown,
499    canonical_order = "per grammar",
500)]
501#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
502#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-origin"))]
503#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
504#[derive(csskit_derives::NodeWithMetadata)]
505pub struct MaskOriginStyleValue<'a>;
506
507/// Represents the style value for `mask-position` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-position).
508///
509/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
510///
511/// The grammar is defined as:
512///
513/// ```text,ignore
514/// <position>#
515/// ```
516///
517/// https://drafts.csswg.org/css-masking-1/#mask-position
518#[syntax(" <position># ")]
519#[derive(
520	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
521)]
522#[declaration_metadata(
523    initial = "0% 0%",
524    applies_to = Unknown,
525    animation_type = RepeatableList,
526    percentages = Unknown,
527    shorthand_group = Mask,
528    property_group = Masking,
529    computed_value_type = AbsoluteLengthOrPercentage,
530    canonical_order = "per grammar",
531)]
532#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
533#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-position"))]
534#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
535#[derive(csskit_derives::NodeWithMetadata)]
536pub struct MaskPositionStyleValue<'a>;
537
538/// Represents the style value for `mask-repeat` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-repeat).
539///
540/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
541///
542/// The grammar is defined as:
543///
544/// ```text,ignore
545/// <repeat-style>#
546/// ```
547///
548/// https://drafts.csswg.org/css-masking-1/#mask-repeat
549#[syntax(" <repeat-style># ")]
550#[derive(
551	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
552)]
553#[declaration_metadata(
554    initial = "repeat",
555    applies_to = Unknown,
556    animation_type = Discrete,
557    shorthand_group = Mask,
558    property_group = Masking,
559    computed_value_type = Unknown,
560    canonical_order = "per grammar",
561)]
562#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
563#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-repeat"))]
564#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
565#[derive(csskit_derives::NodeWithMetadata)]
566pub struct MaskRepeatStyleValue<'a>;
567
568/// Represents the style value for `mask-size` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-size).
569///
570/// The mask CSS property (and several longhand properties) partially or completely hides an element according to the shape and depth of an image.
571///
572/// The grammar is defined as:
573///
574/// ```text,ignore
575/// <bg-size>#
576/// ```
577///
578/// https://drafts.csswg.org/css-masking-1/#mask-size
579#[syntax(" <bg-size># ")]
580#[derive(
581	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
582)]
583#[declaration_metadata(
584    initial = "auto",
585    applies_to = Unknown,
586    animation_type = RepeatableList,
587    shorthand_group = Mask,
588    property_group = Masking,
589    computed_value_type = Unknown,
590    canonical_order = "per grammar",
591)]
592#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
593#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-size"))]
594#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
595#[derive(csskit_derives::NodeWithMetadata)]
596pub struct MaskSizeStyleValue<'a>;
597
598/// Represents the style value for `mask-type` as defined in [css-masking-1](https://drafts.csswg.org/css-masking-1/#mask-type).
599///
600/// The mask-type CSS property on an SVG <mask> element sets whether the mask is a luminance or alpha mask.
601///
602/// The grammar is defined as:
603///
604/// ```text,ignore
605/// luminance | alpha
606/// ```
607///
608/// https://drafts.csswg.org/css-masking-1/#mask-type
609#[syntax(" luminance | alpha ")]
610#[derive(
611	Parse, Peek, ToSpan, ToCursors, DeclarationMetadata, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
612)]
613#[declaration_metadata(
614    initial = "luminance",
615    applies_to = Unknown,
616    animation_type = Discrete,
617    property_group = Masking,
618    computed_value_type = AsSpecified,
619    canonical_order = "per grammar",
620)]
621#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
622#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.mask-type"))]
623#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
624#[derive(csskit_derives::NodeWithMetadata)]
625pub enum MaskTypeStyleValue {}