Expand description
§Overview
Rust library for parsing CSS color string as defined in the W3C’s CSS Color Module Level 4.
§Supported Color Format
- Named colors
- RGB hexadecimal (with and without
#prefix)- Short format
#rgb - Short format with alpha
#rgba - Long format
#rrggbb - Long format with alpha
#rrggbbaa
- Short format
rgb()andrgba()hsl()andhsla()hwb()lab()lch()hwba(),hsv(),hsva()- not in CSS standard.
§Example Color Format
Click to expand!
transparent
gold
rebeccapurple
lime
#0f0
#0f0f
#00ff00
#00ff00ff
rgb(0,255,0)
rgb(0% 100% 0%)
rgb(0 255 0 / 100%)
rgba(0,255,0,1)
hsl(120,100%,50%)
hsl(120deg 100% 50%)
hsl(-240 100% 50%)
hsl(-240deg 100% 50%)
hsl(0.3333turn 100% 50%)
hsl(133.333grad 100% 50%)
hsl(2.0944rad 100% 50%)
hsla(120,100%,50%,100%)
hwb(120 0% 0%)
hwb(480deg 0% 0% / 100%)
hsv(120,100%,100%)
hsv(120deg 100% 100% / 100%)§Usage
Add this to your Cargo.toml
csscolorparser = "0.7.0"§Examples
Using csscolorparser::parse() function.
let c = csscolorparser::parse("rgb(100%,0%,0%)")?;
assert_eq!(c.to_array(), [1.0, 0.0, 0.0, 1.0]);
assert_eq!(c.to_rgba8(), [255, 0, 0, 255]);
assert_eq!(c.to_hex_string(), "#ff0000");
assert_eq!(c.to_rgb_string(), "rgb(255,0,0)");Using parse() method on &str.
use csscolorparser::Color;
let c = "#ff00007f".parse::<Color>()?;
assert_eq!(c.to_rgba8(), [255, 0, 0, 127]);
assert_eq!(c.to_hex_string(), "#ff00007f");§Default Feature
named-colors: Enables parsing from named colors. Requiresphf.
§Optional Features
lab: Enables parsinglab()andlch()color format.rust-rgb: Enables converting fromrgbcrate types intoColor.cint: Enables convertingcintcrate types to and fromColor.serde: Enables serializing (into HEX string) and deserializing (from any supported string color format) usingserdeframework.
Structs§
Enums§
- Represents errors that can occur when handling colors in Windows.
Statics§
Traits§
Functions§
Type Aliases§
- A custom
Resulttype that returnsErrorin case of failure.