css_ast/values/animations/mod.rs
1#![allow(warnings)]
2//! CSS Animations Module Level 2
3//! https://drafts.csswg.org/css-animations-2/
4
5mod impls;
6
7use super::prelude::*;
8use impls::*;
9
10// /// Represents the style value for `animation` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation).
11// ///
12// /// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
13// ///
14// /// The grammar is defined as:
15// ///
16// /// ```text,ignore
17// /// <single-animation>#
18// /// ```
19// ///
20// // https://drafts.csswg.org/css-animations-2/#animation
21// #[syntax(" <single-animation># ")]
22// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
23// #[style_value(
24// initial = "see individual properties",
25// applies_to = "all elements",
26// inherited = "no",
27// percentages = "n/a",
28// canonical_order = "per grammar",
29// animation_type = "not animatable",
30// )]
31// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
32// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation"))]
33// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
34// pub struct AnimationStyleValue<'a>;
35
36/// Represents the style value for `animation-composition` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-composition).
37///
38/// The animation-composition CSS property chooses how to combine animations that affect the same property.
39///
40/// The grammar is defined as:
41///
42/// ```text,ignore
43/// <single-animation-composition>#
44/// ```
45///
46// https://drafts.csswg.org/css-animations-2/#animation-composition
47#[syntax(" <single-animation-composition># ")]
48#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
49#[style_value(
50 initial = "replace",
51 applies_to = "all elements",
52 inherited = "no",
53 percentages = "n/a",
54 canonical_order = "per grammar",
55 animation_type = "not animatable"
56)]
57#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
58#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-composition"))]
59#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
60pub struct AnimationCompositionStyleValue<'a>;
61
62/// Represents the style value for `animation-delay` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-delay).
63///
64/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
65///
66/// The grammar is defined as:
67///
68/// ```text,ignore
69/// <time>#
70/// ```
71///
72// https://drafts.csswg.org/css-animations-2/#animation-delay
73#[syntax(" <time># ")]
74#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
75#[style_value(
76 initial = "0s",
77 applies_to = "all elements",
78 inherited = "no",
79 percentages = "n/a",
80 canonical_order = "per grammar",
81 animation_type = "not animatable"
82)]
83#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
84#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-delay"))]
85#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
86pub struct AnimationDelayStyleValue<'a>;
87
88/// Represents the style value for `animation-direction` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-direction).
89///
90/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
91///
92/// The grammar is defined as:
93///
94/// ```text,ignore
95/// <single-animation-direction>#
96/// ```
97///
98// https://drafts.csswg.org/css-animations-2/#animation-direction
99#[syntax(" <single-animation-direction># ")]
100#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
101#[style_value(
102 initial = "normal",
103 applies_to = "all elements",
104 inherited = "no",
105 percentages = "n/a",
106 canonical_order = "per grammar",
107 animation_type = "not animatable"
108)]
109#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
110#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-direction"))]
111#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
112pub struct AnimationDirectionStyleValue<'a>;
113
114/// Represents the style value for `animation-duration` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-duration).
115///
116/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
117///
118/// The grammar is defined as:
119///
120/// ```text,ignore
121/// [ auto | <time [0s,∞]> ]#
122/// ```
123///
124// https://drafts.csswg.org/css-animations-2/#animation-duration
125#[syntax(" [ auto | <time [0s,∞]> ]# ")]
126#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
127#[style_value(
128 initial = "auto",
129 applies_to = "all elements",
130 inherited = "no",
131 percentages = "n/a",
132 canonical_order = "per grammar",
133 animation_type = "not animatable"
134)]
135#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
136#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-duration"))]
137#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
138pub struct AnimationDurationStyleValue<'a>;
139
140/// Represents the style value for `animation-fill-mode` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-fill-mode).
141///
142/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
143///
144/// The grammar is defined as:
145///
146/// ```text,ignore
147/// <single-animation-fill-mode>#
148/// ```
149///
150// https://drafts.csswg.org/css-animations-2/#animation-fill-mode
151#[syntax(" <single-animation-fill-mode># ")]
152#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
153#[style_value(
154 initial = "none",
155 applies_to = "all elements",
156 inherited = "no",
157 percentages = "n/a",
158 canonical_order = "per grammar",
159 animation_type = "not animatable"
160)]
161#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
162#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-fill-mode"))]
163#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
164pub struct AnimationFillModeStyleValue<'a>;
165
166/// Represents the style value for `animation-iteration-count` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-iteration-count).
167///
168/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
169///
170/// The grammar is defined as:
171///
172/// ```text,ignore
173/// <single-animation-iteration-count>#
174/// ```
175///
176// https://drafts.csswg.org/css-animations-2/#animation-iteration-count
177#[syntax(" <single-animation-iteration-count># ")]
178#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
179#[style_value(
180 initial = "1",
181 applies_to = "all elements",
182 inherited = "no",
183 percentages = "n/a",
184 canonical_order = "per grammar",
185 animation_type = "not animatable"
186)]
187#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
188#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-iteration-count"))]
189#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
190pub struct AnimationIterationCountStyleValue<'a>;
191
192/// Represents the style value for `animation-name` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-name).
193///
194/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
195///
196/// The grammar is defined as:
197///
198/// ```text,ignore
199/// [ none | <keyframes-name> ]#
200/// ```
201///
202// https://drafts.csswg.org/css-animations-2/#animation-name
203#[syntax(" [ none | <keyframes-name> ]# ")]
204#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
205#[style_value(
206 initial = "none",
207 applies_to = "all elements",
208 inherited = "no",
209 percentages = "n/a",
210 canonical_order = "per grammar",
211 animation_type = "not animatable"
212)]
213#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
214#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-name"))]
215#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
216pub struct AnimationNameStyleValue<'a>;
217
218/// Represents the style value for `animation-play-state` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-play-state).
219///
220/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
221///
222/// The grammar is defined as:
223///
224/// ```text,ignore
225/// <single-animation-play-state>#
226/// ```
227///
228// https://drafts.csswg.org/css-animations-2/#animation-play-state
229#[syntax(" <single-animation-play-state># ")]
230#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
231#[style_value(
232 initial = "running",
233 applies_to = "all elements",
234 inherited = "no",
235 percentages = "n/a",
236 canonical_order = "per grammar",
237 animation_type = "not animatable"
238)]
239#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
240#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-play-state"))]
241#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
242pub struct AnimationPlayStateStyleValue<'a>;
243
244/// Represents the style value for `animation-timeline` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-timeline).
245///
246/// The animation-timeline, scroll-timeline, and view-timeline CSS properties advance animations based on the user's scroll position.
247///
248/// The grammar is defined as:
249///
250/// ```text,ignore
251/// <single-animation-timeline>#
252/// ```
253///
254// https://drafts.csswg.org/css-animations-2/#animation-timeline
255#[syntax(" <single-animation-timeline># ")]
256#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
257#[style_value(
258 initial = "auto",
259 applies_to = "all elements",
260 inherited = "no",
261 percentages = "n/a",
262 canonical_order = "per grammar",
263 animation_type = "not animatable"
264)]
265#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
266#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-timeline"))]
267#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
268pub struct AnimationTimelineStyleValue<'a>;
269
270/// Represents the style value for `animation-timing-function` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-timing-function).
271///
272/// The animation CSS property animates an element's style over time, using keyframes described in @keyframes rules.
273///
274/// The grammar is defined as:
275///
276/// ```text,ignore
277/// <easing-function>#
278/// ```
279///
280// https://drafts.csswg.org/css-animations-2/#animation-timing-function
281#[syntax(" <easing-function># ")]
282#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
283#[style_value(
284 initial = "ease",
285 applies_to = "all elements",
286 inherited = "no",
287 percentages = "n/a",
288 canonical_order = "per grammar",
289 animation_type = "not animatable"
290)]
291#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
292#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-timing-function"))]
293#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
294pub struct AnimationTimingFunctionStyleValue<'a>;
295
296/// Represents the style value for `animation-trigger` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger).
297///
298/// The grammar is defined as:
299///
300/// ```text,ignore
301/// <single-animation-trigger>#
302/// ```
303///
304// https://drafts.csswg.org/css-animations-2/#animation-trigger
305#[syntax(" <single-animation-trigger># ")]
306#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
307#[style_value(
308 initial = "see individual properties",
309 applies_to = "all elements",
310 inherited = "no",
311 percentages = "n/a",
312 canonical_order = "per grammar",
313 animation_type = "not animatable"
314)]
315#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
316#[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-trigger"))]
317#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
318pub struct AnimationTriggerStyleValue<'a>;
319
320/// Represents the style value for `animation-trigger-behavior` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-behavior).
321///
322/// The grammar is defined as:
323///
324/// ```text,ignore
325/// <single-animation-trigger-behavior>#
326/// ```
327///
328// https://drafts.csswg.org/css-animations-2/#animation-trigger-behavior
329#[syntax(" <single-animation-trigger-behavior># ")]
330#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
331#[style_value(
332 initial = "once",
333 applies_to = "all elements",
334 inherited = "no",
335 percentages = "n/a",
336 canonical_order = "per grammar",
337 animation_type = "not animatable"
338)]
339#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
340#[cfg_attr(
341 feature = "css_feature_data",
342 derive(ToCSSFeature),
343 css_feature("css.properties.animation-trigger-behavior")
344)]
345#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
346pub struct AnimationTriggerBehaviorStyleValue<'a>;
347
348// /// Represents the style value for `animation-trigger-exit-range` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-exit-range).
349// ///
350// /// The grammar is defined as:
351// ///
352// /// ```text,ignore
353// /// [ <'animation-trigger-exit-range-start'> <'animation-trigger-exit-range-end'>? ]#
354// /// ```
355// ///
356// // https://drafts.csswg.org/css-animations-2/#animation-trigger-exit-range
357// #[syntax(" [ <'animation-trigger-exit-range-start'> <'animation-trigger-exit-range-end'>? ]# ")]
358// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
359// #[style_value(
360// initial = "see individual properties",
361// applies_to = "see individual properties",
362// inherited = "see individual properties",
363// percentages = "see individual properties",
364// canonical_order = "per grammar",
365// animation_type = "see individual properties",
366// )]
367// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
368// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-trigger-exit-range"))]
369// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
370// pub struct AnimationTriggerExitRangeStyleValue<'a>;
371
372// /// Represents the style value for `animation-trigger-exit-range-end` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-exit-range-end).
373// ///
374// /// The grammar is defined as:
375// ///
376// /// ```text,ignore
377// /// [ auto | normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
378// /// ```
379// ///
380// // https://drafts.csswg.org/css-animations-2/#animation-trigger-exit-range-end
381// #[syntax(" [ auto | normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]# ")]
382// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
383// #[style_value(
384// initial = "auto",
385// applies_to = "all elements",
386// inherited = "no",
387// percentages = "relative to the specified named timeline range if one was specified, else to the entire timeline",
388// canonical_order = "per grammar",
389// animation_type = "not animatable",
390// )]
391// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
392// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-trigger-exit-range-end"))]
393// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
394// pub struct AnimationTriggerExitRangeEndStyleValue<'a>;
395
396// /// Represents the style value for `animation-trigger-exit-range-start` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-exit-range-start).
397// ///
398// /// The grammar is defined as:
399// ///
400// /// ```text,ignore
401// /// [ auto | normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
402// /// ```
403// ///
404// // https://drafts.csswg.org/css-animations-2/#animation-trigger-exit-range-start
405// #[syntax(" [ auto | normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]# ")]
406// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
407// #[style_value(
408// initial = "auto",
409// applies_to = "all elements",
410// inherited = "no",
411// percentages = "relative to the specified named timeline range if one was specified, else to the entire timeline",
412// canonical_order = "per grammar",
413// animation_type = "not animatable",
414// )]
415// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
416// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-trigger-exit-range-start"))]
417// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
418// pub struct AnimationTriggerExitRangeStartStyleValue<'a>;
419
420// /// Represents the style value for `animation-trigger-range` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-range).
421// ///
422// /// The grammar is defined as:
423// ///
424// /// ```text,ignore
425// /// [ <'animation-trigger-range-start'> <'animation-trigger-range-end'>? ]#
426// /// ```
427// ///
428// // https://drafts.csswg.org/css-animations-2/#animation-trigger-range
429// #[syntax(" [ <'animation-trigger-range-start'> <'animation-trigger-range-end'>? ]# ")]
430// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
431// #[style_value(
432// initial = "see individual properties",
433// applies_to = "see individual properties",
434// inherited = "see individual properties",
435// percentages = "see individual properties",
436// canonical_order = "per grammar",
437// animation_type = "see individual properties",
438// )]
439// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
440// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-trigger-range"))]
441// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
442// pub struct AnimationTriggerRangeStyleValue<'a>;
443
444// /// Represents the style value for `animation-trigger-range-end` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-range-end).
445// ///
446// /// The grammar is defined as:
447// ///
448// /// ```text,ignore
449// /// [ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
450// /// ```
451// ///
452// // https://drafts.csswg.org/css-animations-2/#animation-trigger-range-end
453// #[syntax(" [ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]# ")]
454// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
455// #[style_value(
456// initial = "normal",
457// applies_to = "all elements",
458// inherited = "no",
459// percentages = "relative to the specified named timeline range if one was specified, else to the entire timeline",
460// canonical_order = "per grammar",
461// animation_type = "not animatable",
462// )]
463// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
464// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-trigger-range-end"))]
465// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
466// pub struct AnimationTriggerRangeEndStyleValue<'a>;
467
468// /// Represents the style value for `animation-trigger-range-start` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-range-start).
469// ///
470// /// The grammar is defined as:
471// ///
472// /// ```text,ignore
473// /// [ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
474// /// ```
475// ///
476// // https://drafts.csswg.org/css-animations-2/#animation-trigger-range-start
477// #[syntax(" [ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]# ")]
478// #[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
479// #[style_value(
480// initial = "normal",
481// applies_to = "all elements",
482// inherited = "no",
483// percentages = "relative to the specified named timeline range if one was specified, else to the entire timeline",
484// canonical_order = "per grammar",
485// animation_type = "not animatable",
486// )]
487// #[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
488// #[cfg_attr(feature = "css_feature_data", derive(ToCSSFeature), css_feature("css.properties.animation-trigger-range-start"))]
489// #[cfg_attr(feature = "visitable", derive(Visitable), visit)]
490// pub struct AnimationTriggerRangeStartStyleValue<'a>;
491
492/// Represents the style value for `animation-trigger-timeline` as defined in [css-animations-2](https://drafts.csswg.org/css-animations-2/#animation-trigger-timeline).
493///
494/// The grammar is defined as:
495///
496/// ```text,ignore
497/// <single-animation-timeline>#
498/// ```
499///
500// https://drafts.csswg.org/css-animations-2/#animation-trigger-timeline
501#[syntax(" <single-animation-timeline># ")]
502#[derive(Parse, Peek, ToSpan, ToCursors, StyleValue, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
503#[style_value(
504 initial = "auto",
505 applies_to = "all elements",
506 inherited = "no",
507 percentages = "n/a",
508 canonical_order = "per grammar",
509 animation_type = "not animatable"
510)]
511#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
512#[cfg_attr(
513 feature = "css_feature_data",
514 derive(ToCSSFeature),
515 css_feature("css.properties.animation-trigger-timeline")
516)]
517#[cfg_attr(feature = "visitable", derive(Visitable), visit)]
518pub struct AnimationTriggerTimelineStyleValue<'a>;