|
1 | | -const NAMED_COLORS = new Set([ |
2 | | - 'transparent', |
3 | | - 'currentColor', |
4 | | - 'aliceblue', |
5 | | - 'antiquewhite', |
6 | | - 'aqua', |
7 | | - 'aquamarine', |
8 | | - 'azure', |
9 | | - 'beige', |
10 | | - 'bisque', |
11 | | - 'black', |
12 | | - 'blanchedalmond', |
13 | | - 'blue', |
14 | | - 'blueviolet', |
15 | | - 'brown', |
16 | | - 'burlywood', |
17 | | - 'cadetblue', |
18 | | - 'chartreuse', |
19 | | - 'chocolate', |
20 | | - 'coral', |
21 | | - 'cornflowerblue', |
22 | | - 'cornsilk', |
23 | | - 'crimson', |
24 | | - 'cyan', |
25 | | - 'darkblue', |
26 | | - 'darkcyan', |
27 | | - 'darkgoldenrod', |
28 | | - 'darkgray', |
29 | | - 'darkgreen', |
30 | | - 'darkgrey', |
31 | | - 'darkkhaki', |
32 | | - 'darkmagenta', |
33 | | - 'darkolivegreen', |
34 | | - 'darkorange', |
35 | | - 'darkorchid', |
36 | | - 'darkred', |
37 | | - 'darksalmon', |
38 | | - 'darkseagreen', |
39 | | - 'darkslateblue', |
40 | | - 'darkslategray', |
41 | | - 'darkslategrey', |
42 | | - 'darkturquoise', |
43 | | - 'darkviolet', |
44 | | - 'deeppink', |
45 | | - 'deepskyblue', |
46 | | - 'dimgray', |
47 | | - 'dimgrey', |
48 | | - 'dodgerblue', |
49 | | - 'firebrick', |
50 | | - 'floralwhite', |
51 | | - 'forestgreen', |
52 | | - 'fuchsia', |
53 | | - 'gainsboro', |
54 | | - 'ghostwhite', |
55 | | - 'gold', |
56 | | - 'goldenrod', |
57 | | - 'gray', |
58 | | - 'green', |
59 | | - 'greenyellow', |
60 | | - 'grey', |
61 | | - 'honeydew', |
62 | | - 'hotpink', |
63 | | - 'indianred', |
64 | | - 'indigo', |
65 | | - 'ivory', |
66 | | - 'khaki', |
67 | | - 'lavender', |
68 | | - 'lavenderblush', |
69 | | - 'lawngreen', |
70 | | - 'lemonchiffon', |
71 | | - 'lightblue', |
72 | | - 'lightcoral', |
73 | | - 'lightcyan', |
74 | | - 'lightgoldenrodyellow', |
75 | | - 'lightgray', |
76 | | - 'lightgreen', |
77 | | - 'lightgrey', |
78 | | - 'lightpink', |
79 | | - 'lightsalmon', |
80 | | - 'lightseagreen', |
81 | | - 'lightskyblue', |
82 | | - 'lightslategray', |
83 | | - 'lightslategrey', |
84 | | - 'lightsteelblue', |
85 | | - 'lightyellow', |
86 | | - 'lime', |
87 | | - 'limegreen', |
88 | | - 'linen', |
89 | | - 'magenta', |
90 | | - 'maroon', |
91 | | - 'mediumaquamarine', |
92 | | - 'mediumblue', |
93 | | - 'mediumorchid', |
94 | | - 'mediumpurple', |
95 | | - 'mediumseagreen', |
96 | | - 'mediumslateblue', |
97 | | - 'mediumspringgreen', |
98 | | - 'mediumturquoise', |
99 | | - 'mediumvioletred', |
100 | | - 'midnightblue', |
101 | | - 'mintcream', |
102 | | - 'mistyrose', |
103 | | - 'moccasin', |
104 | | - 'navajowhite', |
105 | | - 'navy', |
106 | | - 'oldlace', |
107 | | - 'olive', |
108 | | - 'olivedrab', |
109 | | - 'orange', |
110 | | - 'orangered', |
111 | | - 'orchid', |
112 | | - 'palegoldenrod', |
113 | | - 'palegreen', |
114 | | - 'paleturquoise', |
115 | | - 'palevioletred', |
116 | | - 'papayawhip', |
117 | | - 'peachpuff', |
118 | | - 'peru', |
119 | | - 'pink', |
120 | | - 'plum', |
121 | | - 'powderblue', |
122 | | - 'purple', |
123 | | - 'rebeccapurple', |
124 | | - 'red', |
125 | | - 'rosybrown', |
126 | | - 'royalblue', |
127 | | - 'saddlebrown', |
128 | | - 'salmon', |
129 | | - 'sandybrown', |
130 | | - 'seagreen', |
131 | | - 'seashell', |
132 | | - 'sienna', |
133 | | - 'silver', |
134 | | - 'skyblue', |
135 | | - 'slateblue', |
136 | | - 'slategray', |
137 | | - 'slategrey', |
138 | | - 'snow', |
139 | | - 'springgreen', |
140 | | - 'steelblue', |
141 | | - 'tan', |
142 | | - 'teal', |
143 | | - 'thistle', |
144 | | - 'tomato', |
145 | | - 'transparent', |
146 | | - 'turquoise', |
147 | | - 'violet', |
148 | | - 'wheat', |
149 | | - 'white', |
150 | | - 'whitesmoke', |
151 | | - 'yellow', |
152 | | - 'yellowgreen', |
| 1 | +const KNOWN_COLORS = new Set(['transparent', 'currentColor']) |
| 2 | + |
| 3 | +const NAMED_COLORS = new Map([ |
| 4 | + ['aliceblue', '#f0f8ff'], |
| 5 | + ['antiquewhite', '#faebd7'], |
| 6 | + ['aqua', '#00ffff'], |
| 7 | + ['aquamarine', '#7fffd4'], |
| 8 | + ['azure', '#f0ffff'], |
| 9 | + ['beige', '#f5f5dc'], |
| 10 | + ['bisque', '#ffe4c4'], |
| 11 | + ['black', '#000000'], |
| 12 | + ['blanchedalmond', '#ffebcd'], |
| 13 | + ['blue', '#0000ff'], |
| 14 | + ['blueviolet', '#8a2be2'], |
| 15 | + ['brown', '#a52a2a'], |
| 16 | + ['burlywood', '#deb887'], |
| 17 | + ['cadetblue', '#5f9ea0'], |
| 18 | + ['chartreuse', '#7fff00'], |
| 19 | + ['chocolate', '#d2691e'], |
| 20 | + ['coral', '#ff7f50'], |
| 21 | + ['cornflowerblue', '#6495ed'], |
| 22 | + ['cornsilk', '#fff8dc'], |
| 23 | + ['crimson', '#dc143c'], |
| 24 | + ['cyan', '#00ffff'], |
| 25 | + ['darkblue', '#00008b'], |
| 26 | + ['darkcyan', '#008b8b'], |
| 27 | + ['darkgoldenrod', '#b8860b'], |
| 28 | + ['darkgray', '#a9a9a9'], |
| 29 | + ['darkgrey', '#a9a9a9'], |
| 30 | + ['darkgreen', '#006400'], |
| 31 | + ['darkkhaki', '#bdb76b'], |
| 32 | + ['darkmagenta', '#8b008b'], |
| 33 | + ['darkolivegreen', '#556b2f'], |
| 34 | + ['darkorange', '#ff8c00'], |
| 35 | + ['darkorchid', '#9932cc'], |
| 36 | + ['darkred', '#8b0000'], |
| 37 | + ['darksalmon', '#e9967a'], |
| 38 | + ['darkseagreen', '#8fbc8f'], |
| 39 | + ['darkslateblue', '#483d8b'], |
| 40 | + ['darkslategray', '#2f4f4f'], |
| 41 | + ['darkslategrey', '#2f4f4f'], |
| 42 | + ['darkturquoise', '#00ced1'], |
| 43 | + ['darkviolet', '#9400d3'], |
| 44 | + ['deeppink', '#ff1493'], |
| 45 | + ['deepskyblue', '#00bfff'], |
| 46 | + ['dimgray', '#696969'], |
| 47 | + ['dimgrey', '#696969'], |
| 48 | + ['dodgerblue', '#1e90ff'], |
| 49 | + ['firebrick', '#b22222'], |
| 50 | + ['floralwhite', '#fffaf0'], |
| 51 | + ['forestgreen', '#228b22'], |
| 52 | + ['fuchsia', '#ff00ff'], |
| 53 | + ['gainsboro', '#dcdcdc'], |
| 54 | + ['ghostwhite', '#f8f8ff'], |
| 55 | + ['gold', '#ffd700'], |
| 56 | + ['goldenrod', '#daa520'], |
| 57 | + ['gray', '#808080'], |
| 58 | + ['grey', '#808080'], |
| 59 | + ['green', '#008000'], |
| 60 | + ['greenyellow', '#adff2f'], |
| 61 | + ['honeydew', '#f0fff0'], |
| 62 | + ['hotpink', '#ff69b4'], |
| 63 | + ['indianred', '#cd5c5c'], |
| 64 | + ['indigo', '#4b0082'], |
| 65 | + ['ivory', '#fffff0'], |
| 66 | + ['khaki', '#f0e68c'], |
| 67 | + ['lavender', '#e6e6fa'], |
| 68 | + ['lavenderblush', '#fff0f5'], |
| 69 | + ['lawngreen', '#7cfc00'], |
| 70 | + ['lemonchiffon', '#fffacd'], |
| 71 | + ['lightblue', '#add8e6'], |
| 72 | + ['lightcoral', '#f08080'], |
| 73 | + ['lightcyan', '#e0ffff'], |
| 74 | + ['lightgoldenrodyellow', '#fafad2'], |
| 75 | + ['lightgray', '#d3d3d3'], |
| 76 | + ['lightgrey', '#d3d3d3'], |
| 77 | + ['lightgreen', '#90ee90'], |
| 78 | + ['lightpink', '#ffb6c1'], |
| 79 | + ['lightsalmon', '#ffa07a'], |
| 80 | + ['lightseagreen', '#20b2aa'], |
| 81 | + ['lightskyblue', '#87cefa'], |
| 82 | + ['lightslategray', '#778899'], |
| 83 | + ['lightslategrey', '#778899'], |
| 84 | + ['lightsteelblue', '#b0c4de'], |
| 85 | + ['lightyellow', '#ffffe0'], |
| 86 | + ['lime', '#00ff00'], |
| 87 | + ['limegreen', '#32cd32'], |
| 88 | + ['linen', '#faf0e6'], |
| 89 | + ['magenta', '#ff00ff'], |
| 90 | + ['maroon', '#800000'], |
| 91 | + ['mediumaquamarine', '#66cdaa'], |
| 92 | + ['mediumblue', '#0000cd'], |
| 93 | + ['mediumorchid', '#ba55d3'], |
| 94 | + ['mediumpurple', '#9370d8'], |
| 95 | + ['mediumseagreen', '#3cb371'], |
| 96 | + ['mediumslateblue', '#7b68ee'], |
| 97 | + ['mediumspringgreen', '#00fa9a'], |
| 98 | + ['mediumturquoise', '#48d1cc'], |
| 99 | + ['mediumvioletred', '#c71585'], |
| 100 | + ['midnightblue', '#191970'], |
| 101 | + ['mintcream', '#f5fffa'], |
| 102 | + ['mistyrose', '#ffe4e1'], |
| 103 | + ['moccasin', '#ffe4b5'], |
| 104 | + ['navajowhite', '#ffdead'], |
| 105 | + ['navy', '#000080'], |
| 106 | + ['oldlace', '#fdf5e6'], |
| 107 | + ['olive', '#808000'], |
| 108 | + ['olivedrab', '#6b8e23'], |
| 109 | + ['orange', '#ffa500'], |
| 110 | + ['orangered', '#ff4500'], |
| 111 | + ['orchid', '#da70d6'], |
| 112 | + ['palegoldenrod', '#eee8aa'], |
| 113 | + ['palegreen', '#98fb98'], |
| 114 | + ['paleturquoise', '#afeeee'], |
| 115 | + ['palevioletred', '#d87093'], |
| 116 | + ['papayawhip', '#ffefd5'], |
| 117 | + ['peachpuff', '#ffdab9'], |
| 118 | + ['peru', '#cd853f'], |
| 119 | + ['pink', '#ffc0cb'], |
| 120 | + ['plum', '#dda0dd'], |
| 121 | + ['powderblue', '#b0e0e6'], |
| 122 | + ['purple', '#800080'], |
| 123 | + ['red', '#ff0000'], |
| 124 | + ['rebeccapurple', '#663399'], |
| 125 | + ['rosybrown', '#bc8f8f'], |
| 126 | + ['royalblue', '#4169e1'], |
| 127 | + ['saddlebrown', '#8b4513'], |
| 128 | + ['salmon', '#fa8072'], |
| 129 | + ['sandybrown', '#f4a460'], |
| 130 | + ['seagreen', '#2e8b57'], |
| 131 | + ['seashell', '#fff5ee'], |
| 132 | + ['sienna', '#a0522d'], |
| 133 | + ['silver', '#c0c0c0'], |
| 134 | + ['skyblue', '#87ceeb'], |
| 135 | + ['slateblue', '#6a5acd'], |
| 136 | + ['slategray', '#708090'], |
| 137 | + ['slategrey', '#708090'], |
| 138 | + ['snow', '#fffafa'], |
| 139 | + ['springgreen', '#00ff7f'], |
| 140 | + ['steelblue', '#4682b4'], |
| 141 | + ['tan', '#d2b48c'], |
| 142 | + ['teal', '#008080'], |
| 143 | + ['thistle', '#d8bfd8'], |
| 144 | + ['tomato', '#ff6347'], |
| 145 | + ['turquoise', '#40e0d0'], |
| 146 | + ['violet', '#ee82ee'], |
| 147 | + ['wheat', '#f5deb3'], |
| 148 | + ['white', '#ffffff'], |
| 149 | + ['whitesmoke', '#f5f5f5'], |
| 150 | + ['yellow', '#ffff00'], |
| 151 | + ['yellowgreen', '#9acd32'], |
153 | 152 | ]) |
154 | 153 |
|
155 | 154 | const DEPRECATED_SYSTEM_COLORS = new Set([ |
@@ -183,15 +182,15 @@ const DEPRECATED_SYSTEM_COLORS = new Set([ |
183 | 182 | 'WindowText', |
184 | 183 | ]) |
185 | 184 |
|
186 | | -const COLORS = new Set([...NAMED_COLORS, ...DEPRECATED_SYSTEM_COLORS]) |
| 185 | +const COLORS = new Set([...KNOWN_COLORS, ...NAMED_COLORS.keys(), ...DEPRECATED_SYSTEM_COLORS]) |
187 | 186 |
|
188 | 187 | const isColorLike = (value: string): boolean => |
189 | 188 | /^((#[\da-f]{3,8})|(((rgb|hsl)[a]?)\(?([\d]?\.?[\d]+%?,?\s?){3,4}\)?))$/i.test(value) |
190 | 189 |
|
191 | 190 | // TODO function with opacityValue |
192 | 191 | export const getColor = (value: unknown): string | undefined => { |
193 | 192 | if (typeof value == 'string' && (COLORS.has(value) || isColorLike(value))) { |
194 | | - return value |
| 193 | + return NAMED_COLORS.get(value) || value |
195 | 194 | } |
196 | 195 |
|
197 | 196 | return undefined |
|
0 commit comments