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

Download history 19178/week @ 2024-05-01 18312/week @ 2024-05-08 17758/week @ 2024-05-15 15012/week @ 2024-05-22 18075/week @ 2024-05-29 16807/week @ 2024-06-05 18207/week @ 2024-06-12 17769/week @ 2024-06-19 16650/week @ 2024-06-26 19477/week @ 2024-07-03 26267/week @ 2024-07-10 27468/week @ 2024-07-17 25488/week @ 2024-07-24 24394/week @ 2024-07-31 23261/week @ 2024-08-07 20411/week @ 2024-08-14

每月下载量 98,897
120 Crates 中使用 (直接使用 30 个)

MIT/Apache

60KB
1.5K SLoC

Rust CSS 颜色解析库

License crates.io Documentation Build Status Total Downloads

文档变更日志功能


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");

特性

默认

  • 命名颜色:启用从 命名颜色 解析。需要 phf。可以使用 default-features = false 禁用。

可选

  • lab:启用解析 lab()lch() 颜色格式。
  • rust-rgb:启用将 rgb 库类型转换为 Color
  • cint:启用将 cint 库类型与 Color 之间转换。
  • serde:启用使用 serde 框架进行序列化(转换为十六进制字符串)和反序列化(从任何支持的字符串颜色格式)。

类似项目

依赖项

~0–290KB