9 个版本 (重大更新)
0.7.0 | 2024年8月5日 |
---|---|
0.6.2 | 2022年7月22日 |
0.6.0 | 2022年5月14日 |
0.5.0 | 2021年6月12日 |
0.1.0 | 2020年12月13日 |
在 网页编程 中排名第 37
每月下载量 98,897
在 120 个 Crates 中使用 (直接使用 30 个)
60KB
1.5K SLoC
Rust CSS 颜色解析库
Rust 库,用于解析按照 W3C 的 CSS 颜色模块第四级 定义的 CSS 颜色字符串。
支持的颜色格式
- 命名颜色
- RGB 十六进制(带和不带
#
前缀)- 简写格式
#rgb
- 带 alpha 的简写格式
#rgba
- 长格式
#rrggbb
- 带 alpha 的长格式
#rrggbbaa
- 简写格式
rgb()
和rgba()
hsl()
和hsla()
hwb()
lab()
lch()
hwba()
、hsv()
、hsva()
- 不在 CSS 标准中。
示例颜色格式
点击展开!
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%)
用法
将此添加到您的 Cargo.toml
csscolorparser = "0.7.0"
示例
使用 csscolorparser::parse()
函数。
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)");
在 &str
上使用 parse()
方法。
use csscolorparser::Color;
let c = "#ff00007f".parse::<Color>()?;
assert_eq!(c.to_rgba8(), [255, 0, 0, 127]);
assert_eq!(c.to_hex_string(), "#ff00007f");
特性
默认
可选
- lab:启用解析
lab()
和lch()
颜色格式。 - rust-rgb:启用将
rgb
库类型转换为Color
。 - cint:启用将
cint
库类型与Color
之间转换。 - serde:启用使用
serde
框架进行序列化(转换为十六进制字符串)和反序列化(从任何支持的字符串颜色格式)。
类似项目
- csscolorparser (Go)
- csscolorparser (JavaScript)
依赖项
~0–290KB