A crate with color names and its values and usefull functions inluded to get similar colour name by RGB data. Based on these named-colors; Inspired heavely by https://github.com/colorjs/color-name.
Usage
Add this to your Cargo.toml:
[]
= "1.2.0"
Add this to your main.rs or any other rust file:
extern crate color_name; // 👈 Before Rust 2018 Edition, Not necessary in Rust 2018 and later
use ;
assert_eq!;
// In case there's no color match that rgb param color it return "404"
assert_eq!;
assert_eq!;
// to get the closest similar colour use similar() or close_to()
//NOTE: close_to() is a proxy to similar()
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
// NOTE: the string can be at any case, it will be converted into Camel case
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
// for lower-case colors
use colors;
assert_eq!;
assert_eq!;
assert_eq!;
// for Snake-case colors
use colors;
assert_eq!;
assert_eq!;
assert_eq!;
// Enjoy it !!
Notes:
- Currently (as 2025/09) there is 148 colour name.
- All colours values are
[u8;3]type ([r, g, b]in rang 0..255). - Not found Cases:
- The
Color::namefunction returns a type ofString; thus, the 404 (Not found code) will be in a type ofStringexample:assert_eq!(Color::name([0, 195, 0]), "404");. - The
Color::val().by_stringfunction returns a type ofResult<[u8; {const}], u16>; thus, the 404 (Not found code) will be in a type ofErr(u16), example:assert_eq!( Color::val().by_string(String::from("MayMoonsley")), Err(404) );
- The
- In the upcoming versions we will unify the 'Not found' cases and make both return
Result; thus, it will returnErr(Type)for unfound colors and be easy & performant to catch 404 cases as an Err.
Migration
use ;
// Enjoy the NO CHANGES on your code it will just works !!
Todo
- Add script to auto generate the following files from csv file:
-
css/constants.rs.
-
- Improve the whole crate to be able to eliminate these above files.
- Improve the whole crate to be more dynamic and able to extend it with other crates.