/* 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/. */ //! Computed types for SVG properties. use crate::values::computed::color::Color; use crate::values::computed::url::ComputedUrl; use crate::values::computed::{LengthPercentage, NonNegativeLengthPercentage, Opacity}; use crate::values::generics::svg as generic; use crate::Zero; pub use crate::values::specified::{DProperty, MozContextProperties, SVGPaintOrder, VectorEffect}; /// Computed SVG Paint value pub type SVGPaint = generic::GenericSVGPaint; /// Computed SVG Paint Kind value pub type SVGPaintKind = generic::GenericSVGPaintKind; impl SVGPaint { /// Opaque black color pub const BLACK: Self = Self { kind: generic::SVGPaintKind::Color(Color::BLACK), fallback: generic::SVGPaintFallback::Unset, }; } /// | | | context-value pub type SVGLength = generic::GenericSVGLength; impl SVGLength { /// `0px` pub fn zero() -> Self { generic::SVGLength::LengthPercentage(LengthPercentage::zero()) } } /// An non-negative wrapper of SVGLength. pub type SVGWidth = generic::GenericSVGLength; impl SVGWidth { /// `1px`. pub fn one() -> Self { use crate::values::generics::NonNegative; generic::SVGLength::LengthPercentage(NonNegative(LengthPercentage::one())) } } /// [ | | ]# | context-value pub type SVGStrokeDashArray = generic::GenericSVGStrokeDashArray; impl Default for SVGStrokeDashArray { fn default() -> Self { generic::SVGStrokeDashArray::Values(Default::default()) } } /// | context-fill-opacity | context-stroke-opacity pub type SVGOpacity = generic::GenericSVGOpacity; impl Default for SVGOpacity { fn default() -> Self { generic::SVGOpacity::Opacity(1.) } }