i_slint_compiler/lookup/
named_colors.rs

1// Copyright © SixtyFPS GmbH <info@slint.dev>
2// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
4use std::collections::HashMap;
5
6use crate::literals::parse_color_literal;
7
8static NAMED_COLORS: std::sync::OnceLock<HashMap<&'static str, u32>> = std::sync::OnceLock::new();
9
10pub fn named_colors() -> &'static HashMap<&'static str, u32> {
11    // Colors from https://drafts.csswg.org/css-color/#named-colors plus "transparent"
12    NAMED_COLORS.get_or_init(|| {
13        HashMap::from([
14            ("aliceblue", parse_color_literal("#F0F8FF").unwrap()),
15            ("antiquewhite", parse_color_literal("#FAEBD7").unwrap()),
16            ("aqua", parse_color_literal("#00FFFF").unwrap()),
17            ("aquamarine", parse_color_literal("#7FFFD4").unwrap()),
18            ("azure", parse_color_literal("#F0FFFF").unwrap()),
19            ("beige", parse_color_literal("#F5F5DC").unwrap()),
20            ("bisque", parse_color_literal("#FFE4C4").unwrap()),
21            ("black", parse_color_literal("#000000").unwrap()),
22            ("blanchedalmond", parse_color_literal("#FFEBCD").unwrap()),
23            ("blue", parse_color_literal("#0000FF").unwrap()),
24            ("blueviolet", parse_color_literal("#8A2BE2").unwrap()),
25            ("brown", parse_color_literal("#A52A2A").unwrap()),
26            ("burlywood", parse_color_literal("#DEB887").unwrap()),
27            ("cadetblue", parse_color_literal("#5F9EA0").unwrap()),
28            ("chartreuse", parse_color_literal("#7FFF00").unwrap()),
29            ("chocolate", parse_color_literal("#D2691E").unwrap()),
30            ("coral", parse_color_literal("#FF7F50").unwrap()),
31            ("cornflowerblue", parse_color_literal("#6495ED").unwrap()),
32            ("cornsilk", parse_color_literal("#FFF8DC").unwrap()),
33            ("crimson", parse_color_literal("#DC143C").unwrap()),
34            ("cyan", parse_color_literal("#00FFFF").unwrap()),
35            ("darkblue", parse_color_literal("#00008B").unwrap()),
36            ("darkcyan", parse_color_literal("#008B8B").unwrap()),
37            ("darkgoldenrod", parse_color_literal("#B8860B").unwrap()),
38            ("darkgray", parse_color_literal("#A9A9A9").unwrap()),
39            ("darkgreen", parse_color_literal("#006400").unwrap()),
40            ("darkgrey", parse_color_literal("#A9A9A9").unwrap()),
41            ("darkkhaki", parse_color_literal("#BDB76B").unwrap()),
42            ("darkmagenta", parse_color_literal("#8B008B").unwrap()),
43            ("darkolivegreen", parse_color_literal("#556B2F").unwrap()),
44            ("darkorange", parse_color_literal("#FF8C00").unwrap()),
45            ("darkorchid", parse_color_literal("#9932CC").unwrap()),
46            ("darkred", parse_color_literal("#8B0000").unwrap()),
47            ("darksalmon", parse_color_literal("#E9967A").unwrap()),
48            ("darkseagreen", parse_color_literal("#8FBC8F").unwrap()),
49            ("darkslateblue", parse_color_literal("#483D8B").unwrap()),
50            ("darkslategray", parse_color_literal("#2F4F4F").unwrap()),
51            ("darkslategrey", parse_color_literal("#2F4F4F").unwrap()),
52            ("darkturquoise", parse_color_literal("#00CED1").unwrap()),
53            ("darkviolet", parse_color_literal("#9400D3").unwrap()),
54            ("deeppink", parse_color_literal("#FF1493").unwrap()),
55            ("deepskyblue", parse_color_literal("#00BFFF").unwrap()),
56            ("dimgray", parse_color_literal("#696969").unwrap()),
57            ("dimgrey", parse_color_literal("#696969").unwrap()),
58            ("dodgerblue", parse_color_literal("#1E90FF").unwrap()),
59            ("firebrick", parse_color_literal("#B22222").unwrap()),
60            ("floralwhite", parse_color_literal("#FFFAF0").unwrap()),
61            ("forestgreen", parse_color_literal("#228B22").unwrap()),
62            ("fuchsia", parse_color_literal("#FF00FF").unwrap()),
63            ("gainsboro", parse_color_literal("#DCDCDC").unwrap()),
64            ("ghostwhite", parse_color_literal("#F8F8FF").unwrap()),
65            ("gold", parse_color_literal("#FFD700").unwrap()),
66            ("goldenrod", parse_color_literal("#DAA520").unwrap()),
67            ("gray", parse_color_literal("#808080").unwrap()),
68            ("green", parse_color_literal("#008000").unwrap()),
69            ("greenyellow", parse_color_literal("#ADFF2F").unwrap()),
70            ("grey", parse_color_literal("#808080").unwrap()),
71            ("honeydew", parse_color_literal("#F0FFF0").unwrap()),
72            ("hotpink", parse_color_literal("#FF69B4").unwrap()),
73            ("indianred", parse_color_literal("#CD5C5C").unwrap()),
74            ("indigo", parse_color_literal("#4B0082").unwrap()),
75            ("ivory", parse_color_literal("#FFFFF0").unwrap()),
76            ("khaki", parse_color_literal("#F0E68C").unwrap()),
77            ("lavender", parse_color_literal("#E6E6FA").unwrap()),
78            ("lavenderblush", parse_color_literal("#FFF0F5").unwrap()),
79            ("lawngreen", parse_color_literal("#7CFC00").unwrap()),
80            ("lemonchiffon", parse_color_literal("#FFFACD").unwrap()),
81            ("lightblue", parse_color_literal("#ADD8E6").unwrap()),
82            ("lightcoral", parse_color_literal("#F08080").unwrap()),
83            ("lightcyan", parse_color_literal("#E0FFFF").unwrap()),
84            ("lightgoldenrodyellow", parse_color_literal("#FAFAD2").unwrap()),
85            ("lightgray", parse_color_literal("#D3D3D3").unwrap()),
86            ("lightgreen", parse_color_literal("#90EE90").unwrap()),
87            ("lightgrey", parse_color_literal("#D3D3D3").unwrap()),
88            ("lightpink", parse_color_literal("#FFB6C1").unwrap()),
89            ("lightsalmon", parse_color_literal("#FFA07A").unwrap()),
90            ("lightseagreen", parse_color_literal("#20B2AA").unwrap()),
91            ("lightskyblue", parse_color_literal("#87CEFA").unwrap()),
92            ("lightslategray", parse_color_literal("#778899").unwrap()),
93            ("lightslategrey", parse_color_literal("#778899").unwrap()),
94            ("lightsteelblue", parse_color_literal("#B0C4DE").unwrap()),
95            ("lightyellow", parse_color_literal("#FFFFE0").unwrap()),
96            ("lime", parse_color_literal("#00FF00").unwrap()),
97            ("limegreen", parse_color_literal("#32CD32").unwrap()),
98            ("linen", parse_color_literal("#FAF0E6").unwrap()),
99            ("magenta", parse_color_literal("#FF00FF").unwrap()),
100            ("maroon", parse_color_literal("#800000").unwrap()),
101            ("mediumaquamarine", parse_color_literal("#66CDAA").unwrap()),
102            ("mediumblue", parse_color_literal("#0000CD").unwrap()),
103            ("mediumorchid", parse_color_literal("#BA55D3").unwrap()),
104            ("mediumpurple", parse_color_literal("#9370DB").unwrap()),
105            ("mediumseagreen", parse_color_literal("#3CB371").unwrap()),
106            ("mediumslateblue", parse_color_literal("#7B68EE").unwrap()),
107            ("mediumspringgreen", parse_color_literal("#00FA9A").unwrap()),
108            ("mediumturquoise", parse_color_literal("#48D1CC").unwrap()),
109            ("mediumvioletred", parse_color_literal("#C71585").unwrap()),
110            ("midnightblue", parse_color_literal("#191970").unwrap()),
111            ("mintcream", parse_color_literal("#F5FFFA").unwrap()),
112            ("mistyrose", parse_color_literal("#FFE4E1").unwrap()),
113            ("moccasin", parse_color_literal("#FFE4B5").unwrap()),
114            ("navajowhite", parse_color_literal("#FFDEAD").unwrap()),
115            ("navy", parse_color_literal("#000080").unwrap()),
116            ("oldlace", parse_color_literal("#FDF5E6").unwrap()),
117            ("olive", parse_color_literal("#808000").unwrap()),
118            ("olivedrab", parse_color_literal("#6B8E23").unwrap()),
119            ("orange", parse_color_literal("#FFA500").unwrap()),
120            ("orangered", parse_color_literal("#FF4500").unwrap()),
121            ("orchid", parse_color_literal("#DA70D6").unwrap()),
122            ("palegoldenrod", parse_color_literal("#EEE8AA").unwrap()),
123            ("palegreen", parse_color_literal("#98FB98").unwrap()),
124            ("paleturquoise", parse_color_literal("#AFEEEE").unwrap()),
125            ("palevioletred", parse_color_literal("#DB7093").unwrap()),
126            ("papayawhip", parse_color_literal("#FFEFD5").unwrap()),
127            ("peachpuff", parse_color_literal("#FFDAB9").unwrap()),
128            ("peru", parse_color_literal("#CD853F").unwrap()),
129            ("pink", parse_color_literal("#FFC0CB").unwrap()),
130            ("plum", parse_color_literal("#DDA0DD").unwrap()),
131            ("powderblue", parse_color_literal("#B0E0E6").unwrap()),
132            ("purple", parse_color_literal("#800080").unwrap()),
133            ("rebeccapurple", parse_color_literal("#663399").unwrap()),
134            ("red", parse_color_literal("#FF0000").unwrap()),
135            ("rosybrown", parse_color_literal("#BC8F8F").unwrap()),
136            ("royalblue", parse_color_literal("#4169E1").unwrap()),
137            ("saddlebrown", parse_color_literal("#8B4513").unwrap()),
138            ("salmon", parse_color_literal("#FA8072").unwrap()),
139            ("sandybrown", parse_color_literal("#F4A460").unwrap()),
140            ("seagreen", parse_color_literal("#2E8B57").unwrap()),
141            ("seashell", parse_color_literal("#FFF5EE").unwrap()),
142            ("sienna", parse_color_literal("#A0522D").unwrap()),
143            ("silver", parse_color_literal("#C0C0C0").unwrap()),
144            ("skyblue", parse_color_literal("#87CEEB").unwrap()),
145            ("slateblue", parse_color_literal("#6A5ACD").unwrap()),
146            ("slategray", parse_color_literal("#708090").unwrap()),
147            ("slategrey", parse_color_literal("#708090").unwrap()),
148            ("snow", parse_color_literal("#FFFAFA").unwrap()),
149            ("springgreen", parse_color_literal("#00FF7F").unwrap()),
150            ("steelblue", parse_color_literal("#4682B4").unwrap()),
151            ("tan", parse_color_literal("#D2B48C").unwrap()),
152            ("teal", parse_color_literal("#008080").unwrap()),
153            ("thistle", parse_color_literal("#D8BFD8").unwrap()),
154            ("tomato", parse_color_literal("#FF6347").unwrap()),
155            ("transparent", parse_color_literal("#00000000").unwrap()),
156            ("turquoise", parse_color_literal("#40E0D0").unwrap()),
157            ("violet", parse_color_literal("#EE82EE").unwrap()),
158            ("wheat", parse_color_literal("#F5DEB3").unwrap()),
159            ("white", parse_color_literal("#FFFFFF").unwrap()),
160            ("whitesmoke", parse_color_literal("#F5F5F5").unwrap()),
161            ("yellow", parse_color_literal("#FFFF00").unwrap()),
162            ("yellowgreen", parse_color_literal("#9ACD32").unwrap()),
163        ])
164    })
165}