color
Color and opacity types used by Pax style properties and render backends.
Structs
Percent
Raw Percent type, which we use for serialization and dynamic traversal. At the time
of authoring, this type is not used directly at runtime, but is intended for into coercion
into downstream types, e.g. ColorChannel, Rotation, and Size. This allows us to be "dumb"
about how we parse %, and allow the context in which it is used to pull forward a specific
type through into inference.
Properties
0
Type: Numeric
Enums
Color
Entrypoint for specifying and representing colors in Pax.
Variants
rgb(ColorChannel, ColorChannel, ColorChannel)
Models a color in the RGB space, with an alpha channel of 100%
rgba(ColorChannel, ColorChannel, ColorChannel, ColorChannel)
Models a color in the RGBA space
hsl(Rotation, ColorChannel, ColorChannel)
Models a color in the HSL space, with an alpha channel of 100%
hsla(Rotation, ColorChannel, ColorChannel, ColorChannel)
Models a color in the HSLA space.
SLATE
Cool blue-gray, RGB (100, 116, 139).
GRAY
Balanced gray, RGB (107, 114, 128).
ZINC
Crisp cool gray, RGB (113, 113, 122).
NEUTRAL
Plain neutral gray, RGB (115, 115, 115).
STONE
Warm stone gray, RGB (120, 113, 108).
RED
Bright warm red, RGB (239, 68, 68).
ORANGE
Vivid citrus orange, RGB (249, 115, 22).
AMBER
Golden amber, RGB (245, 158, 11).
YELLOW
Sunny yellow, RGB (234, 179, 8).
LIME
Electric lime, RGB (132, 204, 22).
GREEN
Fresh green, RGB (34, 197, 94).
EMERALD
Jewel emerald, RGB (16, 185, 129).
TEAL
Deep aquatic teal, RGB (20, 184, 166).
CYAN
Bright clean cyan, RGB (6, 182, 212).
SKY
Open sky blue, RGB (14, 165, 233).
BLUE
Saturated primary blue, RGB (59, 130, 246).
INDIGO
Cool electric indigo, RGB (99, 102, 241).
VIOLET
Soft vivid violet, RGB (139, 92, 246).
PURPLE
Rich playful purple, RGB (168, 85, 247).
FUCHSIA
Brilliant magenta fuchsia, RGB (217, 70, 239).
PINK
Bright candy pink, RGB (236, 72, 153).
ROSE
Warm rosy red, RGB (244, 63, 94).
BLACK
Pure black, RGB (0, 0, 0).
WHITE
Pure white, RGB (255, 255, 255).
TRANSPARENT
Fully transparent white, RGB (255, 255, 255).
NONE
Non-rendering transparent, RGB (255, 255, 255).
Implementations
alpha_0_1
pub fn alpha_0_1(&self) -> f64
Returns this color's alpha channel normalized to the [0.0, 1.0] range.
from_hex
pub fn from_hex(hex: &str) -> Self
Constructs a color from a six- or eight-character RGB/RGBA hex string.
from_rgba_0_1
pub fn from_rgba_0_1(rgba_0_1: [f64; 4]) -> Self
Constructs a color from normalized RGBA channels in the [0.0, 1.0] range.
hsl
pub fn hsl(h: Rotation, s: ColorChannel, l: ColorChannel) -> Self
Constructs an HSL color with 100% alpha.
hsla
pub fn hsla(h: Rotation, s: ColorChannel, l: ColorChannel, a: ColorChannel) -> Self
Constructs an HSLA color.
rgb
pub fn rgb(r: ColorChannel, g: ColorChannel, b: ColorChannel) -> Self
Constructs an RGB color with 100% alpha.
rgba
pub fn rgba(r: ColorChannel, g: ColorChannel, b: ColorChannel, a: ColorChannel) -> Self
Constructs an RGBA color.
to_hsla_0_1
pub fn to_hsla_0_1(&self) -> [f64; 4]
Returns HSLA channels normalized to the [0.0, 1.0] range.
to_rgba_0_1
pub fn to_rgba_0_1(&self) -> [f64; 4]
Returns RGBA channels normalized to the [0.0, 1.0] range.
with_alpha_factor
pub fn with_alpha_factor(&self, factor: f64) -> Self
Multiplies this color's alpha channel by factor.
ColorChannel
Describes a color channel in a unit appropriate to the surrounding color model.
Variants
Rotation(Rotation)
Used, for example, to express hue in HSL or other rotational color models.
Integer(u8)
Integer color channel in the [0, 255] range.
Percent(Numeric)
Percent color channel in the [0.0, 100.0] range.
Implementations
to_float_0_1
pub fn to_float_0_1(&self) -> f64
Normalizes this color channel as a float in the [0.0, 1.0] range.
Opacity
Describes an opacity value either as normalized alpha or as a percent.
Variants
Alpha(Numeric)
Unitless alpha in the normalized [0.0, 1.0] range.
Percent(Numeric)
Percent alpha in the [0.0, 100.0] range.
Implementations
to_float_0_1
pub fn to_float_0_1(&self) -> f64
Normalizes this Opacity as a float in [0.0, 1.0].