animation.rs (1226B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ 4 5 //! Resolved animation values. 6 7 use super::{Context, ToResolvedValue}; 8 9 use crate::values::computed::time::Time; 10 use crate::values::computed::AnimationDuration; 11 12 impl ToResolvedValue for AnimationDuration { 13 type ResolvedValue = Self; 14 15 fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue { 16 match self { 17 // For backwards-compatibility with Level 1, when the computed value of 18 // animation-timeline is auto (i.e. only one list value, and that value being auto), 19 // the resolved value of auto for animation-duration is 0s whenever its used value 20 // would also be 0s. 21 // https://drafts.csswg.org/css-animations-2/#animation-duration 22 Self::Auto if context.style.get_ui().has_initial_animation_timeline() => { 23 Self::Time(Time::from_seconds(0.0f32)) 24 }, 25 _ => self, 26 } 27 } 28 29 #[inline] 30 fn from_resolved_value(value: Self::ResolvedValue) -> Self { 31 value 32 } 33 }