Skip to main content

Variant

Enum Variant 

Source
pub enum Variant {
    Monochrome,
    Neutral,
    TonalSpot,
    Vibrant,
    Expressive,
    Fidelity,
    Content,
    Rainbow,
    FruitSalad,
}
Expand description

Enumeration of dynamic color scheme variants for Material Design 3.

Each variant represents a different approach to generating color schemes from a source color, balancing different aesthetic and functional properties.

Variants§

§

Monochrome

Monochrome variant using only lightness and saturation variations.

Creates a scheme using a single hue, varying only the tone (lightness). Useful for minimalist, accessibility-focused designs.

§

Neutral

Neutral variant with subtle color shifts.

Generates a scheme that is mostly neutral with very subtle chromatic content. Best for conservative, professional designs.

§

TonalSpot

Tonal spot variant emphasizing the source color with tonal adjustments.

Uses the source color as an accent with complementary tones. This is the most commonly used variant and the default.

§

Vibrant

Vibrant variant with saturated, bold colors.

Generates a scheme with maximum saturation while maintaining readability. Ideal for energetic, modern designs.

§

Expressive

Expressive variant with creative color manipulation.

Uses complex color transformations to create unexpected but harmonious combinations. Best for distinctive, artistic designs.

§

Fidelity

Fidelity variant that closely follows the source color’s hue and chroma.

Prioritizes accuracy in reproducing the source color’s visual characteristics. Useful when precise color representation is critical.

§

Content

Content variant that extracts dominant colors from images.

Designed to work with extracted colors from images or artwork. Adapts to the dominant colors in visual content.

§

Rainbow

Rainbow variant creating a spectrum-inspired color scheme.

Generates colors distributed across the full hue range. Best for playful, colorful designs.

§

FruitSalad

Fruit salad variant with warm, saturated colors.

Creates a scheme with warm hues and high saturation, inspired by fruit colors. Ideal for fun, appetizing designs.

Trait Implementations§

Source§

impl Clone for Variant

Source§

fn clone(&self) -> Variant

Returns a duplicate 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 Variant

Source§

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

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

impl Default for Variant

Source§

fn default() -> Variant

The default variant is TonalSpot, the most commonly used variant.

Source§

impl Hash for Variant

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Variant

Source§

fn eq(&self, other: &Variant) -> 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 Copy for Variant

Source§

impl Eq for Variant

Source§

impl StructuralPartialEq for Variant

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> 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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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> 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.