owo_colors/colors/
css.rs

1macro_rules! css_color_types {
2    ($(
3        $name:ident ($r:literal, $g:literal, $b:literal)
4    )*) => {
5        use crate::{Color, colors::CustomColor};
6        use core::fmt;
7
8        pub(crate) mod dynamic {
9            #[cfg(doc)]
10            use crate::OwoColorize;
11
12            /// Available CSS colors for use with [`OwoColorize::color`](OwoColorize::color)
13            /// or [`OwoColorize::on_color`](OwoColorize::on_color)
14            #[allow(missing_docs)]
15            #[derive(Copy, Clone, Debug, PartialEq, Eq)]
16            pub enum CssColors {
17                $($name,)*
18            }
19        }
20
21        use dynamic::CssColors;
22
23        impl crate::DynColor for CssColors {
24            fn fmt_ansi_fg(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
25                let color = match self {
26                    $(
27                        CssColors::$name => CustomColor::<$r, $g, $b>::ANSI_FG,
28                    )*
29                };
30
31                f.write_str(color)
32            }
33
34            fn fmt_ansi_bg(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
35                let color = match self {
36                    $(
37                        CssColors::$name => CustomColor::<$r, $g, $b>::ANSI_BG,
38                    )*
39                };
40
41                f.write_str(color)
42            }
43
44            fn fmt_raw_ansi_fg(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
45                let color = match self {
46                    $(
47                        CssColors::$name => CustomColor::<$r, $g, $b>::RAW_ANSI_FG,
48                    )*
49                };
50
51                f.write_str(color)
52            }
53
54            fn fmt_raw_ansi_bg(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
55                let color = match self {
56                    $(
57                        CssColors::$name => CustomColor::<$r, $g, $b>::RAW_ANSI_BG,
58                    )*
59                };
60
61                f.write_str(color)
62            }
63
64            #[doc(hidden)]
65            fn get_dyncolors_fg(&self) -> crate::DynColors {
66                crate::DynColors::Css(*self)
67            }
68
69            #[doc(hidden)]
70            fn get_dyncolors_bg(&self) -> crate::DynColors {
71                crate::DynColors::Css(*self)
72            }
73        }
74
75        $(
76            #[allow(missing_docs)]
77            pub type $name = CustomColor<$r, $g, $b>;
78        )*
79    };
80}
81
82css_color_types! {
83    AliceBlue (240, 248, 255)
84    AntiqueWhite (250, 235, 215)
85    Aqua (0, 255, 255)
86    Aquamarine (127, 255, 212)
87    Azure (240, 255, 255)
88    Beige (245, 245, 220)
89    Bisque (255, 228, 196)
90    Black (0, 0, 0)
91    BlanchedAlmond (255, 235, 205)
92    Blue (0, 0, 255)
93    BlueViolet (138, 43, 226)
94    Brown (165, 42, 42)
95    BurlyWood (222, 184, 135)
96    CadetBlue (95, 158, 160)
97    Chartreuse (127, 255, 0)
98    Chocolate (210, 105, 30)
99    Coral (255, 127, 80)
100    CornflowerBlue (100, 149, 237)
101    Cornsilk (255, 248, 220)
102    Crimson (220, 20, 60)
103    DarkBlue (0, 0, 139)
104    DarkCyan (0, 139, 139)
105    DarkGoldenRod (184, 134, 11)
106    DarkGray (169, 169, 169)
107    DarkGrey (169, 169, 169)
108    DarkGreen (0, 100, 0)
109    DarkKhaki (189, 183, 107)
110    DarkMagenta (139, 0, 139)
111    DarkOliveGreen (85, 107, 47)
112    DarkOrange (255, 140, 0)
113    DarkOrchid (153, 50, 204)
114    DarkRed (139, 0, 0)
115    DarkSalmon (233, 150, 122)
116    DarkSeaGreen (143, 188, 143)
117    DarkSlateBlue (72, 61, 139)
118    DarkSlateGray (47, 79, 79)
119    DarkSlateGrey (47, 79, 79)
120    DarkTurquoise (0, 206, 209)
121    DarkViolet (148, 0, 211)
122    DeepPink (255, 20, 147)
123    DeepSkyBlue (0, 191, 255)
124    DimGray (105, 105, 105)
125    DimGrey (105, 105, 105)
126    DodgerBlue (30, 144, 255)
127    FireBrick (178, 34, 34)
128    FloralWhite (255, 250, 240)
129    ForestGreen (34, 139, 34)
130    Fuchsia (255, 0, 255)
131    Gainsboro (220, 220, 220)
132    GhostWhite (248, 248, 255)
133    Gold (255, 215, 0)
134    GoldenRod (218, 165, 32)
135    Gray (128, 128, 128)
136    Grey (128, 128, 128)
137    Green (0, 128, 0)
138    GreenYellow (173, 255, 47)
139    HoneyDew (240, 255, 240)
140    HotPink (255, 105, 180)
141    IndianRed (205, 92, 92)
142    Indigo (75, 0, 130)
143    Ivory (255, 255, 240)
144    Khaki (240, 230, 140)
145    Lavender (230, 230, 250)
146    LavenderBlush (255, 240, 245)
147    LawnGreen (124, 252, 0)
148    LemonChiffon (255, 250, 205)
149    LightBlue (173, 216, 230)
150    LightCoral (240, 128, 128)
151    LightCyan (224, 255, 255)
152    LightGoldenRodYellow (250, 250, 210)
153    LightGray (211, 211, 211)
154    LightGrey (211, 211, 211)
155    LightGreen (144, 238, 144)
156    LightPink (255, 182, 193)
157    LightSalmon (255, 160, 122)
158    LightSeaGreen (32, 178, 170)
159    LightSkyBlue (135, 206, 250)
160    LightSlateGray (119, 136, 153)
161    LightSlateGrey (119, 136, 153)
162    LightSteelBlue (176, 196, 222)
163    LightYellow (255, 255, 224)
164    Lime (0, 255, 0)
165    LimeGreen (50, 205, 50)
166    Linen (250, 240, 230)
167    Magenta (255, 0, 255)
168    Maroon (128, 0, 0)
169    MediumAquaMarine (102, 205, 170)
170    MediumBlue (0, 0, 205)
171    MediumOrchid (186, 85, 211)
172    MediumPurple (147, 112, 219)
173    MediumSeaGreen (60, 179, 113)
174    MediumSlateBlue (123, 104, 238)
175    MediumSpringGreen (0, 250, 154)
176    MediumTurquoise (72, 209, 204)
177    MediumVioletRed (199, 21, 133)
178    MidnightBlue (25, 25, 112)
179    MintCream (245, 255, 250)
180    MistyRose (255, 228, 225)
181    Moccasin (255, 228, 181)
182    NavajoWhite (255, 222, 173)
183    Navy (0, 0, 128)
184    OldLace (253, 245, 230)
185    Olive (128, 128, 0)
186    OliveDrab (107, 142, 35)
187    Orange (255, 165, 0)
188    OrangeRed (255, 69, 0)
189    Orchid (218, 112, 214)
190    PaleGoldenRod (238, 232, 170)
191    PaleGreen (152, 251, 152)
192    PaleTurquoise (175, 238, 238)
193    PaleVioletRed (219, 112, 147)
194    PapayaWhip (255, 239, 213)
195    PeachPuff (255, 218, 185)
196    Peru (205, 133, 63)
197    Pink (255, 192, 203)
198    Plum (221, 160, 221)
199    PowderBlue (176, 224, 230)
200    Purple (128, 0, 128)
201    RebeccaPurple (102, 51, 153)
202    Red (255, 0, 0)
203    RosyBrown (188, 143, 143)
204    RoyalBlue (65, 105, 225)
205    SaddleBrown (139, 69, 19)
206    Salmon (250, 128, 114)
207    SandyBrown (244, 164, 96)
208    SeaGreen (46, 139, 87)
209    SeaShell (255, 245, 238)
210    Sienna (160, 82, 45)
211    Silver (192, 192, 192)
212    SkyBlue (135, 206, 235)
213    SlateBlue (106, 90, 205)
214    SlateGray (112, 128, 144)
215    SlateGrey (112, 128, 144)
216    Snow (255, 250, 250)
217    SpringGreen (0, 255, 127)
218    SteelBlue (70, 130, 180)
219    Tan (210, 180, 140)
220    Teal (0, 128, 128)
221    Thistle (216, 191, 216)
222    Tomato (255, 99, 71)
223    Turquoise (64, 224, 208)
224    Violet (238, 130, 238)
225    Wheat (245, 222, 179)
226    White (255, 255, 255)
227    WhiteSmoke (245, 245, 245)
228    Yellow (255, 255, 0)
229    YellowGreen (154, 205, 50)
230}