/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ //! Generic types for CSS values related to effects. /// A generic value for a single `box-shadow`. #[derive( Animate, Clone, ComputeSquaredDistance, Debug, MallocSizeOf, PartialEq, SpecifiedValueInfo, ToAnimatedValue, ToAnimatedZero, ToCss, ToResolvedValue, ToShmem, )] #[repr(C)] pub struct GenericBoxShadow { /// The base shadow. pub base: GenericSimpleShadow, /// The spread radius. pub spread: ShapeLength, /// Whether this is an inset box shadow. #[animation(constant)] #[css(represents_keyword)] pub inset: bool, } pub use self::GenericBoxShadow as BoxShadow; /// A generic value for a single `filter`. #[cfg_attr(feature = "servo", derive(Deserialize, Serialize))] #[derive( Clone, ComputeSquaredDistance, Debug, MallocSizeOf, PartialEq, SpecifiedValueInfo, ToAnimatedValue, ToComputedValue, ToCss, ToResolvedValue, ToShmem, )] #[animation(no_bound(U))] #[repr(C, u8)] pub enum GenericFilter { /// `blur()` #[css(function)] Blur(Length), /// `brightness()` #[css(function)] Brightness(NonNegativeFactor), /// `contrast()` #[css(function)] Contrast(NonNegativeFactor), /// `grayscale()` #[css(function)] Grayscale(ZeroToOneFactor), /// `hue-rotate()` #[css(function)] HueRotate(Angle), /// `invert()` #[css(function)] Invert(ZeroToOneFactor), /// `opacity()` #[css(function)] Opacity(ZeroToOneFactor), /// `saturate()` #[css(function)] Saturate(NonNegativeFactor), /// `sepia()` #[css(function)] Sepia(ZeroToOneFactor), /// `drop-shadow(...)` #[css(function)] DropShadow(Shadow), /// `` #[animation(error)] Url(U), } pub use self::GenericFilter as Filter; /// A generic value for the `drop-shadow()` filter and the `text-shadow` property. /// /// Contrary to the canonical order from the spec, the color is serialised /// first, like in Gecko and Webkit. #[derive( Animate, Clone, ComputeSquaredDistance, Debug, MallocSizeOf, PartialEq, SpecifiedValueInfo, ToAnimatedValue, ToAnimatedZero, ToCss, ToResolvedValue, ToShmem, )] #[repr(C)] pub struct GenericSimpleShadow { /// Color. pub color: Color, /// Horizontal radius. pub horizontal: SizeLength, /// Vertical radius. pub vertical: SizeLength, /// Blur radius. pub blur: ShapeLength, } pub use self::GenericSimpleShadow as SimpleShadow;