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

未维护 css-color-parser

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

3个版本

使用旧的Rust 2015

0.1.2 2017年6月10日
0.1.1 2016年8月18日
0.1.0 2016年8月17日

#14 in #colour

Download history 313/week @ 2024-03-14 419/week @ 2024-03-21 529/week @ 2024-03-28 413/week @ 2024-04-04 320/week @ 2024-04-11 330/week @ 2024-04-18 402/week @ 2024-04-25 433/week @ 2024-05-02 299/week @ 2024-05-09 358/week @ 2024-05-16 370/week @ 2024-05-23 321/week @ 2024-05-30 302/week @ 2024-06-06 306/week @ 2024-06-13 366/week @ 2024-06-20 260/week @ 2024-06-27

1,292 下载/每月
用于 25 个crate (11个直接使用)

MIT 许可证

38KB
545

Crates.io Build Status Codecov branch

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

为了方便,不完全符合规范(见以下示例)

  • 允许额外的空白字符
  • 允许使用小数,而标准只允许百分比

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.

特此授予任何获得本软件及其相关文档文件(“软件”)副本的任何人,免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件

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

软件按“原样”提供,没有任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和不侵犯专利。在任何情况下,作者或版权所有者都不对任何索赔、损害或其他责任负责,无论这些责任是根据合同、侵权或其他方式引起的,也不论这些责任是否与软件或其使用或其它方式有关。

依赖关系

~15KB