lightningcss::values::color

Enum CssColor

Source
pub enum CssColor {
    CurrentColor,
    RGBA(RGBA),
    LAB(Box<LABColor>),
    Predefined(Box<PredefinedColor>),
    Float(Box<FloatColor>),
    LightDark(Box<CssColor>, Box<CssColor>),
    System(SystemColor),
}
Expand description

A CSS <color> value.

CSS supports many different color spaces to represent colors. The most common values are stored as RGBA using a single byte per component. Less common values are stored using a Box to reduce the amount of memory used per color.

Each color space is represented as a struct that implements the From and Into traits for all other color spaces, so it is possible to convert between color spaces easily. In addition, colors support interpolation as in the color-mix() function.

Variants§

§

CurrentColor

The currentColor keyword.

§

RGBA(RGBA)

An value in the RGB color space, including values parsed as hex colors, or the rgb(), hsl(), and hwb() functions.

§

LAB(Box<LABColor>)

A value in a LAB color space, including the lab(), lch(), oklab(), and oklch() functions.

§

Predefined(Box<PredefinedColor>)

A value in a predefined color space, e.g. display-p3.

§

Float(Box<FloatColor>)

A floating point representation of an RGB, HSL, or HWB color when it contains none components.

§

LightDark(Box<CssColor>, Box<CssColor>)

The light-dark() function.

§

System(SystemColor)

A system color keyword.

Implementations§

Source§

impl CssColor

Source

pub fn current_color() -> CssColor

Returns the currentColor keyword.

Source

pub fn transparent() -> CssColor

Returns the transparent keyword.

Source

pub fn to_rgb(&self) -> Result<CssColor, ()>

Converts the color to RGBA.

Source

pub fn to_lab(&self) -> Result<CssColor, ()>

Converts the color to the LAB color space.

Source

pub fn to_p3(&self) -> Result<CssColor, ()>

Converts the color to the P3 color space.

Source

pub fn get_necessary_fallbacks(&self, targets: Targets) -> ColorFallbackKind

Returns the color fallback types needed for the given browser targets.

Source

pub fn get_fallback(&self, kind: ColorFallbackKind) -> CssColor

Returns a fallback color for the given fallback type.

Source§

impl CssColor

Source

pub fn interpolate<T>( &self, p1: f32, other: &CssColor, p2: f32, method: HueInterpolationMethod, ) -> Result<CssColor, ()>
where for<'a> T: 'static + TryFrom<&'a CssColor> + Interpolate + Into<CssColor> + Into<OKLCH> + ColorGamut + Into<OKLAB> + From<OKLCH> + Copy,

Mixes this color with another color, including the specified amount of each. Implemented according to the color-mix() function.

Trait Implementations§

Source§

impl Clone for CssColor

Source§

fn clone(&self) -> CssColor

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CssColor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for CssColor

Source§

fn default() -> CssColor

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for CssColor

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<A98> for CssColor

Source§

fn from(color: A98) -> CssColor

Converts to this type from the input type.
Source§

impl From<HSL> for CssColor

Source§

fn from(color: HSL) -> CssColor

Converts to this type from the input type.
Source§

impl From<HWB> for CssColor

Source§

fn from(color: HWB) -> CssColor

Converts to this type from the input type.
Source§

impl From<LAB> for CssColor

Source§

fn from(color: LAB) -> CssColor

Converts to this type from the input type.
Source§

impl From<LCH> for CssColor

Source§

fn from(color: LCH) -> CssColor

Converts to this type from the input type.
Source§

impl From<OKLAB> for CssColor

Source§

fn from(color: OKLAB) -> CssColor

Converts to this type from the input type.
Source§

impl From<OKLCH> for CssColor

Source§

fn from(color: OKLCH) -> CssColor

Converts to this type from the input type.
Source§

impl From<P3> for CssColor

Source§

fn from(color: P3) -> CssColor

Converts to this type from the input type.
Source§

impl From<ProPhoto> for CssColor

Source§

fn from(color: ProPhoto) -> CssColor

Converts to this type from the input type.
Source§

impl From<RGBA> for CssColor

Source§

fn from(color: RGBA) -> CssColor

Converts to this type from the input type.
Source§

impl From<Rec2020> for CssColor

Source§

fn from(color: Rec2020) -> CssColor

Converts to this type from the input type.
Source§

impl From<SRGB> for CssColor

Source§

fn from(color: SRGB) -> CssColor

Converts to this type from the input type.
Source§

impl From<SRGBLinear> for CssColor

Source§

fn from(color: SRGBLinear) -> CssColor

Converts to this type from the input type.
Source§

impl From<XYZd50> for CssColor

Source§

fn from(color: XYZd50) -> CssColor

Converts to this type from the input type.
Source§

impl From<XYZd65> for CssColor

Source§

fn from(color: XYZd65) -> CssColor

Converts to this type from the input type.
Source§

impl<'any> IntoOwned<'any> for CssColor

Source§

type Owned = CssColor

A variant of Self with a new lifetime.
Source§

fn into_owned(self) -> Self

Make lifetime of self 'static.
Source§

impl IsCompatible for CssColor

Source§

fn is_compatible(&self, browsers: Browsers) -> bool

Returns whether the value is compatible with all of the given browser targets.
Source§

impl JsonSchema for CssColor

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl<'i> Parse<'i> for CssColor

Source§

fn parse<'t>( input: &mut Parser<'i, 't>, ) -> Result<Self, ParseError<'i, ParserError<'i>>>

Parse a value of this type using an existing parser.
Source§

fn parse_string(input: &'i str) -> Result<Self, ParseError<'i, ParserError<'i>>>

Parse a value from a string. Read more
Source§

impl PartialEq for CssColor

Source§

fn eq(&self, other: &CssColor) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for CssColor

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ToCss for CssColor

Source§

fn to_css<W>( &self, dest: &mut Printer<'_, '_, '_, W>, ) -> Result<(), PrinterError>
where W: Write,

Serialize self in CSS syntax, writing to dest.
Source§

fn to_css_string( &self, options: PrinterOptions<'_>, ) -> Result<String, PrinterError>

Serialize self in CSS syntax and return a string. Read more
Source§

impl TryFrom<&CssColor> for A98

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<A98, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for HSL

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<HSL, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for HWB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<HWB, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for LAB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<LAB, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for LCH

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<LCH, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for OKLAB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<OKLAB, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for OKLCH

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<OKLCH, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for P3

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<P3, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for ProPhoto

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<ProPhoto, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for RGBA

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<RGBA, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for Rec2020

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<Rec2020, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for SRGB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<SRGB, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for SRGBLinear

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<SRGBLinear, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for XYZd50

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<XYZd50, ()>

Performs the conversion.
Source§

impl TryFrom<&CssColor> for XYZd65

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: &CssColor) -> Result<XYZd65, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for A98

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<A98, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for HSL

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<HSL, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for HWB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<HWB, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for LAB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<LAB, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for LCH

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<LCH, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for OKLAB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<OKLAB, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for OKLCH

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<OKLCH, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for P3

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<P3, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for ProPhoto

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<ProPhoto, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for RGBA

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<RGBA, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for Rec2020

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<Rec2020, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for SRGB

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<SRGB, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for SRGBLinear

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<SRGBLinear, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for XYZd50

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<XYZd50, ()>

Performs the conversion.
Source§

impl TryFrom<CssColor> for XYZd65

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(color: CssColor) -> Result<XYZd65, ()>

Performs the conversion.
Source§

impl<'i, __T: Visit<'i, __T, __V>, __V: ?Sized + Visitor<'i, __T>> Visit<'i, __T, __V> for CssColor

Source§

const CHILD_TYPES: VisitTypes = _

Available on crate feature visitor only.
The types of values contained within this value and its children. This is used to skip branches that don’t have any values requested by the Visitor.
Source§

fn visit(&mut self, visitor: &mut __V) -> Result<(), __V::Error>

Available on crate feature visitor only.
Visits the value by calling an appropriate method on the Visitor. If no corresponding visitor method exists, then the children are visited.
Source§

fn visit_children(&mut self, visitor: &mut __V) -> Result<(), __V::Error>

Available on crate feature visitor only.
Visit the children of this value.
Source§

impl StructuralPartialEq for CssColor

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

Source§

fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<'i, T> ParseWithOptions<'i> for T
where T: Parse<'i>,

Source§

fn parse_with_options<'t>( input: &mut Parser<'i, 't>, _options: &ParserOptions<'_, '_>, ) -> Result<T, ParseError<'i, ParserError<'i>>>

Parse a value of this type with the given options.
Source§

fn parse_string_with_options( input: &'i str, options: ParserOptions<'_, 'i>, ) -> Result<Self, ParseError<'i, ParserError<'i>>>

Parse a value from a string with the given options.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize = _

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The type for metadata in pointers and references to Self.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,