Struct palette::Oklch [−][src]
#[repr(C)]pub struct Oklch<T = f32> where
T: FloatComponent, { pub l: T, pub chroma: T, pub hue: OklabHue<T>, }
Expand description
Oklch, a polar version of Oklab.
It is Oklab’s equivalent of CIE L*C*h°.
It’s a cylindrical color space, like HSL and HSV. This gives it the same ability to directly change the hue and colorfulness of a color, while preserving other visual aspects.
It assumes a D65 whitepoint and normal well-lit viewing conditions, like Oklab.
Fields
l: T
L is the lightness of the color. 0 gives absolute black and 1 gives the brightest white.
chroma: T
C is the colorfulness of the color, from greyscale at 0 to the most colorful at 1.
hue: OklabHue<T>
h is the hue of the color, in degrees. Decides if it’s red, blue, purple, etc.
Implementations
Convert to a (L, C, h)
tuple.
Convert from a (L, C, h)
tuple.
Return the chroma
value minimum.
Return the chroma
value maximum.
Trait Implementations
impl<T> AbsDiffEq<Oklch<T>> for Oklch<T> where
T: FloatComponent + AbsDiffEq,
T::Epsilon: Copy + FloatComponent,
impl<T> AbsDiffEq<Oklch<T>> for Oklch<T> where
T: FloatComponent + AbsDiffEq,
T::Epsilon: Copy + FloatComponent,
The default tolerance to use when testing values that are close together. Read more
A test for equality that uses the absolute difference to compute the approximate equality of two numbers. Read more
The inverse of AbsDiffEq::abs_diff_eq
.
Performs the +=
operation. Read more
Performs the +=
operation. Read more
impl<T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
_C: IntoColorUnclamped<Self>,
_A: Component,
impl<T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
_C: IntoColorUnclamped<Self>,
_A: Component,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T, _S> FromColorUnclamped<Hsl<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
impl<T, _S> FromColorUnclamped<Hsl<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
impl<T> FromColorUnclamped<Hsluv<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T, _S> FromColorUnclamped<Hsv<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
impl<T, _S> FromColorUnclamped<Hsv<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T, _S> FromColorUnclamped<Hwb<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
impl<T, _S> FromColorUnclamped<Hwb<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
impl<T> FromColorUnclamped<Lab<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
impl<T> FromColorUnclamped<Lch<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
impl<T> FromColorUnclamped<Lchuv<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T, _S> FromColorUnclamped<Luma<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: LumaStandard<WhitePoint = D65>,
impl<T, _S> FromColorUnclamped<Luma<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: LumaStandard<WhitePoint = D65>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
impl<T> FromColorUnclamped<Luv<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsl<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklch<T>>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsl<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Hsluv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Lchuv<Wp, T>: FromColorUnclamped<Oklch<T>>,
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Hsluv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Lchuv<Wp, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S: RgbStandard, T: Component> FromColorUnclamped<Oklch<T>> for Rgb<S, T> where
T: FloatComponent,
T: FloatComponent,
Xyz<<S::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Oklch<T>>,
impl<S: RgbStandard, T: Component> FromColorUnclamped<Oklch<T>> for Rgb<S, T> where
T: FloatComponent,
T: FloatComponent,
Xyz<<S::Space as RgbSpace>::WhitePoint, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Yxy<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Yxy<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklch<T>>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Hsv<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Rgb<S, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Oklch<T>> for Hwb<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Hsv<S, T>: FromColorUnclamped<Oklch<T>>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Hwb<S, T> where
T: FloatComponent,
S: RgbStandard,
T: FloatComponent,
T: FloatComponent,
Hsv<S, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Lab<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Lab<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Lch<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Lch<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Lchuv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Luv<Wp, T>: FromColorUnclamped<Oklch<T>>,
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Lchuv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Luv<Wp, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<S, T> FromColorUnclamped<Oklch<T>> for Luma<S, T> where
T: Component,
S: LumaStandard,
T: FloatComponent,
T: FloatComponent,
Xyz<S::WhitePoint, T>: FromColorUnclamped<Oklch<T>>,
impl<S, T> FromColorUnclamped<Oklch<T>> for Luma<S, T> where
T: Component,
S: LumaStandard,
T: FloatComponent,
T: FloatComponent,
Xyz<S::WhitePoint, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Luv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
impl<Wp, T> FromColorUnclamped<Oklch<T>> for Luv<Wp, T> where
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Wp: WhitePoint,
T: FloatComponent,
Xyz<Wp, T>: FromColorUnclamped<Oklch<T>>,
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T, _S> FromColorUnclamped<Rgb<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
impl<T, _S> FromColorUnclamped<Rgb<_S, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
_S: RgbStandard,
_S::Space: RgbSpace<WhitePoint = D65>,
Convert from T. The resulting color might be invalid in its color space. Read more
Convert from T. The resulting color might be invalid in its color space. Read more
impl<T> FromColorUnclamped<Yxy<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
impl<T> FromColorUnclamped<Yxy<D65, T>> for Oklch<T> where
T: FloatComponent,
T: FloatComponent,
T: FloatComponent,
Convert from T. The resulting color might be invalid in its color space. Read more
Cast as a mutable reference to raw color components.
Convert into raw color components.
Cast from a reference to raw color components.
Cast from a mutable reference to raw color components.
Cast a slice of raw color components to a slice of colors. Read more
Cast a mutable slice of raw color components to a mutable slice of colors. Read more
Cast a slice of colors to a slice of raw color components. Read more
Cast a mutable slice of colors to a mutable slice of raw color components. Read more
type Scalar = T
type Scalar = T
The type of the contrast ratio.
Calculate the contrast ratio between two colors.
Verify the contrast between two colors satisfies SC 1.4.3. Contrast is at least 4.5:1 (Level AA). Read more
Verify the contrast between two colors satisfies SC 1.4.3 for large text. Contrast is at least 3:1 (Level AA). Read more
Verify the contrast between two colors satisfies SC 1.4.6. Contrast is at least 7:1 (Level AAA). Read more
Verify the contrast between two colors satisfies SC 1.4.6 for large text. Contrast is at least 4.5:1 (Level AAA). Read more
Verify the contrast between two colors satisfies SC 1.4.11 for graphical objects. Contrast is at least 3:1 (Level AA). Read more
impl<T> RelativeEq<Oklch<T>> for Oklch<T> where
T: FloatComponent + RelativeEq,
T::Epsilon: Copy + FloatComponent,
impl<T> RelativeEq<Oklch<T>> for Oklch<T> where
T: FloatComponent + RelativeEq,
T::Epsilon: Copy + FloatComponent,
The default relative tolerance for testing values that are far-apart. Read more
A test for equality that uses a relative comparison if the values are far apart.
The inverse of RelativeEq::relative_eq
.
type Scalar = T
type Scalar = T
The type of the (de)saturation modifier.
Scale the color towards the maximum saturation by factor
, a value
ranging from 0.0
to 1.0
. Read more
Increase the saturation by amount
, a value ranging from 0.0
to
1.0
. Read more
Scale the color towards the minimum saturation by factor
, a value
ranging from 0.0
to 1.0
. Read more
Increase the saturation by amount
, a value ranging from 0.0
to
1.0
. Read more
type Scalar = T
type Scalar = T
The type of the lighten/darken modifier.
Scale the color towards the maximum lightness by factor
, a value
ranging from 0.0
to 1.0
. Read more
Lighten the color by amount
, a value ranging from 0.0
to 1.0
. Read more
Scale the color towards the minimum lightness by factor
, a value
ranging from 0.0
to 1.0
. Read more
Darken the color by amount
, a value ranging from 0.0
to 1.0
. Read more
Performs the -=
operation. Read more
Performs the -=
operation. Read more
impl<T> UlpsEq<Oklch<T>> for Oklch<T> where
T: FloatComponent + UlpsEq,
T::Epsilon: Copy + FloatComponent,
impl<T> UlpsEq<Oklch<T>> for Oklch<T> where
T: FloatComponent + UlpsEq,
T::Epsilon: Copy + FloatComponent,
The default ULPs to tolerate when testing values that are far-apart. Read more
A test for equality that uses units in the last place (ULP) if the values are far apart.
Transforms the color into a transparent color with the provided
alpha value. If Self
already has a transparency, it is
overwritten. Read more
Removes the transparency from the color. If Self::Color
has
an internal transparency field, that field will be set to
A::max_intensity()
to make it opaque. Read more
Splits the color into separate color and transparency values. Read more
Transforms the color into a fully opaque color with a transparency
field. If Self
already has a transparency, it is overwritten. Read more
Transforms the color into a fully transparent color. If Self
already has a transparency, it is overwritten. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Oklch<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Oklch<T> where
T: UnwindSafe,
Blanket Implementations
impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
T: FloatComponent,
S: IntoColorUnclamped<Xyz<Swp, T>>,
Swp: WhitePoint,
Dwp: WhitePoint,
D: FromColorUnclamped<Xyz<Dwp, T>>,
impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
T: FloatComponent,
S: IntoColorUnclamped<Xyz<Swp, T>>,
Swp: WhitePoint,
Dwp: WhitePoint,
D: FromColorUnclamped<Xyz<Dwp, T>>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
T: FloatComponent,
Swp: WhitePoint,
Dwp: WhitePoint,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
T: FloatComponent,
Swp: WhitePoint,
Dwp: WhitePoint,
D: AdaptFrom<S, Swp, Dwp, T>,
Mutably borrows from an owned value. Read more
Convert from T with values clamped to the color defined bounds. Read more
Convert into T with values clamped to the color defined bounds Read more
Convert into T. The resulting color might be invalid in its color space Read more
Convert from T, returning ok if the color is inside of its defined
range, otherwise an OutOfBounds
error is returned which contains
the unclamped color. Read more
Convert into T, returning ok if the color is inside of its defined
range, otherwise an OutOfBounds
error is returned which contains
the unclamped color. Read more