modcli/output/
color_picker.rs

1use crossterm::style::{Color, Stylize};
2
3pub fn list_named_colors() -> Vec<(&'static str, Color)> {
4    vec![
5        ("Red", Color::Red),
6        ("Green", Color::Green),
7        ("Blue", Color::Blue),
8        ("Yellow", Color::Yellow),
9        ("Cyan", Color::Cyan),
10        ("Magenta", Color::Magenta),
11        ("White", Color::White),
12        ("Grey", Color::Grey),
13        ("Black", Color::Black),
14        ("Orange", Color::Rgb { r: 255, g: 165, b: 0 }),
15        ("Pink", Color::Rgb { r: 255, g: 105, b: 180 }),
16        ("Purple", Color::Rgb { r: 128, g: 0, b: 128 }),
17        ("Teal", Color::Rgb { r: 0, g: 128, b: 128 }),
18        ("Brown", Color::Rgb { r: 139, g: 69, b: 19 }),
19        ("Light Blue", Color::Rgb { r: 173, g: 216, b: 230 }),
20        ("Light Green", Color::Rgb { r: 144, g: 238, b: 144 }),
21        ("Light Yellow", Color::Rgb { r: 255, g: 255, b: 224 }),
22        ("Light Cyan", Color::Rgb { r: 224, g: 255, b: 255 }),
23        ("Light Magenta", Color::Rgb { r: 255, g: 224, b: 255 }),
24        ("Light Grey", Color::Rgb { r: 211, g: 211, b: 211 }),
25        ("Dark Grey", Color::Rgb { r: 169, g: 169, b: 169 }),
26        ("Dark Blue", Color::Rgb { r: 0, g: 0, b: 139 }),
27        ("Dark Orange", Color::Rgb { r: 255, g: 140, b: 0 }),
28        ("Dark Pink", Color::Rgb { r: 255, g: 20, b: 147 }),
29        ("Dark Purple", Color::Rgb { r: 75, g: 0, b: 130 }),
30        ("Dark Teal", Color::Rgb { r: 0, g: 139, b: 139 }),
31        ("Dark Brown", Color::Rgb { r: 101, g: 67, b: 33 }),
32    ]
33}
34
35
36pub fn print_color_swatch() {
37    println!("Color Swatch:");
38    for (name, color) in list_named_colors() {
39        println!("{}", format!("{:<15}", name).with(color));
40    }
41}
42
43 
44pub fn get_color_by_name(name: &str) -> Option<Color> {
45    list_named_colors()
46        .into_iter()
47        .find(|(n, _)| n.eq_ignore_ascii_case(name))
48        .map(|(_, c)| c)
49}