#css-color #color-string #css #parser #css3 #color

css-color-parser2

易于使用的 Rust CSS3 颜色字符串解析器

1 个稳定版本

1.0.1 2020年3月17日

网页编程 中排名 1665

Download history 4313/week @ 2024-03-14 4462/week @ 2024-03-21 4055/week @ 2024-03-28 3660/week @ 2024-04-04 3606/week @ 2024-04-11 3874/week @ 2024-04-18 3914/week @ 2024-04-25 5831/week @ 2024-05-02 6257/week @ 2024-05-09 6092/week @ 2024-05-16 5369/week @ 2024-05-23 4806/week @ 2024-05-30 12454/week @ 2024-06-06 22166/week @ 2024-06-13 18837/week @ 2024-06-20 17092/week @ 2024-06-27

每月下载量 71,210
用于 42 Crates(直接使用3个)

MIT 许可证

39KB
542

Crates.io Build Status Codecov branch

易于使用的 Rust CSS3 颜色字符串解析器。
轻量级。
可靠(提供测试,处理所有错误以避免 panic!)。

为了方便起见,名称不遵循 100% 的规范(见下面的示例)

  • 允许额外的空格
  • 允许浮点数,而标准只允许百分数

W3C CSS3 颜色规范

Mozilla CSS3 颜色规范

仓库
https://github.com/7thSigil/css-color-parser-rs.git

原始 js 解析器
https://github.com/deanm/css-color-parser-js

文档链接

Cargo.toml

[dependencies]
css-color-parser = "*"

示例


extern crate css_color_parser;

//...

use css_color_parser::Color as CssColor;

let transparent_black = CssColor { r: 0, g: 0, b: 0, a: 1.0 };

println!("{:?}", " rgba (255, 128, 12, 0.5)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 255, g: 128, b: 12, a: 0.5 }

println!("{:?}", "#fff".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 255, g: 255, b: 255, a: 1 }

println!("{:?}", "#ff0011".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 255, g: 0, b: 17, a: 1 }

println!("{:?}", "slateblue".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 106, g: 90, b: 205, a: 1 }

println!("{:?}", "blah".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 0, g: 0, b: 0, a: 0 } - ColorParseError

println!("{:?}", "ffffff".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 0, g: 0, b: 0, a: 0 } - ColorParseError

println!("{:?}", "hsla(900, 15%, 90%, 0.5)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 226, g: 233, b: 233, a: 0.5 }

println!("{:?}", "hsla(900, 15%, 90%)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 0, g: 0, b: 0, a: 0 } - ColorParseError

println!("{:?}", "hsl(900, 15%, 90%)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 226, g: 233, b: 233, a: 1 }

// NOTE: not spec compliant.
println!("{:?}", "hsl(900, 0.15, 90%)".parse::<CssColor>().unwrap_or(transparent_black));
//Color { r: 226, g: 233, b: 233, a: 1 }



(c) Katkov Oleksandr [email protected], 2016.

(c) Dean McNamee [email protected], 2012.

本软件及其相关文档文件(以下简称“软件”)的副本,无论是否收取费用,任何人都可以免费使用、复制、修改、合并、发布、分发、再许可和/或出售副本,并允许获得软件的个人对其进行操作,但必须遵守以下条件

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是基于合同、侵权或其他原因,以及与软件或其使用或操作相关的任何损害。

依赖关系

~10KB