返回 CodeWhale
tokens.rs
根目录 / crates / palette / src / tokens.rs
1 //! Semantic `Color` roles built from the RGB tokens in `rgb`.
2
3 use ratatui::style::Color;
4
5 use super::rgb::*;
6
7 // Solarized Light palette colors
8 pub const SOLARIZED_TEXT_DIM: Color = Color::Rgb(
9 SOLARIZED_BASE00_RGB.0,
10 SOLARIZED_BASE00_RGB.1,
11 SOLARIZED_BASE00_RGB.2,
12 );
13 pub const SOLARIZED_TEXT_HINT: Color = Color::Rgb(
14 SOLARIZED_BASE0_RGB.0,
15 SOLARIZED_BASE0_RGB.1,
16 SOLARIZED_BASE0_RGB.2,
17 );
18 pub const SOLARIZED_TEXT_MUTED: Color = Color::Rgb(
19 SOLARIZED_BASE01_RGB.0,
20 SOLARIZED_BASE01_RGB.1,
21 SOLARIZED_BASE01_RGB.2,
22 );
23 pub const SOLARIZED_TEXT_BODY: Color = Color::Rgb(
24 SOLARIZED_BASE03_RGB.0,
25 SOLARIZED_BASE03_RGB.1,
26 SOLARIZED_BASE03_RGB.2,
27 );
28 pub const SOLARIZED_TEXT_SOFT: Color = Color::Rgb(
29 SOLARIZED_BASE02_RGB.0,
30 SOLARIZED_BASE02_RGB.1,
31 SOLARIZED_BASE02_RGB.2,
32 );
33 pub const SOLARIZED_BORDER: Color = Color::Rgb(
34 SOLARIZED_BASE1_RGB.0,
35 SOLARIZED_BASE1_RGB.1,
36 SOLARIZED_BASE1_RGB.2,
37 );
38 pub const SOLARIZED_BLUE: Color = Color::Rgb(
39 SOLARIZED_BLUE_RGB.0,
40 SOLARIZED_BLUE_RGB.1,
41 SOLARIZED_BLUE_RGB.2,
42 );
43 pub const SOLARIZED_CYAN: Color = Color::Rgb(
44 SOLARIZED_CYAN_RGB.0,
45 SOLARIZED_CYAN_RGB.1,
46 SOLARIZED_CYAN_RGB.2,
47 );
48 pub const SOLARIZED_RED: Color = Color::Rgb(
49 SOLARIZED_RED_RGB.0,
50 SOLARIZED_RED_RGB.1,
51 SOLARIZED_RED_RGB.2,
52 );
53 pub const SOLARIZED_ORANGE: Color = Color::Rgb(
54 SOLARIZED_ORANGE_RGB.0,
55 SOLARIZED_ORANGE_RGB.1,
56 SOLARIZED_ORANGE_RGB.2,
57 );
58 pub const SOLARIZED_YELLOW: Color = Color::Rgb(
59 SOLARIZED_YELLOW_RGB.0,
60 SOLARIZED_YELLOW_RGB.1,
61 SOLARIZED_YELLOW_RGB.2,
62 );
63 pub const SOLARIZED_GREEN: Color = Color::Rgb(
64 SOLARIZED_GREEN_RGB.0,
65 SOLARIZED_GREEN_RGB.1,
66 SOLARIZED_GREEN_RGB.2,
67 );
68 pub const SOLARIZED_SURFACE: Color = Color::Rgb(
69 SOLARIZED_BASE3_RGB.0,
70 SOLARIZED_BASE3_RGB.1,
71 SOLARIZED_BASE3_RGB.2,
72 );
73 pub const SOLARIZED_PANEL: Color = Color::Rgb(
74 SOLARIZED_PANEL_RGB.0,
75 SOLARIZED_PANEL_RGB.1,
76 SOLARIZED_PANEL_RGB.2,
77 );
78 pub const SOLARIZED_ELEVATED: Color = Color::Rgb(
79 SOLARIZED_ELEVATED_RGB.0,
80 SOLARIZED_ELEVATED_RGB.1,
81 SOLARIZED_ELEVATED_RGB.2,
82 );
83 pub const SOLARIZED_SELECT_BG: Color = Color::Rgb(
84 SOLARIZED_SELECT_RGB.0,
85 SOLARIZED_SELECT_RGB.1,
86 SOLARIZED_SELECT_RGB.2,
87 );
88 pub const SOLARIZED_DIFF_ADDED_BG: Color = Color::Rgb(0xEA, 0xF2, 0xE0);
89 pub const SOLARIZED_ERROR_SURFACE: Color = Color::Rgb(0xFD, 0xEE, 0xEB);
90 /// Same tone as the error surface; kept as a distinct alias for diff context.
91 pub const SOLARIZED_DIFF_DELETED_BG: Color = SOLARIZED_ERROR_SURFACE;
92 pub const SOLARIZED_ERROR_TEXT: Color = Color::Rgb(0x8B, 0x00, 0x00);
93 pub const SOLARIZED_ERROR_HOVER: Color = Color::Rgb(0xE0, 0x55, 0x52);
94 pub const SOLARIZED_COMPOSER: Color = Color::Rgb(
95 SOLARIZED_PANEL_RGB.0,
96 SOLARIZED_PANEL_RGB.1,
97 SOLARIZED_PANEL_RGB.2,
98 );
99
100 pub const WHALE_ACTION: Color =
101 Color::Rgb(WHALE_ACTION_RGB.0, WHALE_ACTION_RGB.1, WHALE_ACTION_RGB.2);
102 pub const WHALE_LIVE: Color = Color::Rgb(
103 WHALE_ACCENT_SECONDARY_RGB.0,
104 WHALE_ACCENT_SECONDARY_RGB.1,
105 WHALE_ACCENT_SECONDARY_RGB.2,
106 );
107 pub const WHALE_HUMAN: Color = Color::Rgb(WHALE_HUMAN_RGB.0, WHALE_HUMAN_RGB.1, WHALE_HUMAN_RGB.2);
108 pub const WHALE_BG: Color = Color::Rgb(WHALE_BG_RGB.0, WHALE_BG_RGB.1, WHALE_BG_RGB.2);
109 pub const WHALE_CHROME: Color =
110 Color::Rgb(WHALE_CHROME_RGB.0, WHALE_CHROME_RGB.1, WHALE_CHROME_RGB.2);
111 pub const WHALE_PANEL: Color = Color::Rgb(WHALE_PANEL_RGB.0, WHALE_PANEL_RGB.1, WHALE_PANEL_RGB.2);
112 pub const WHALE_COMPOSER: Color = Color::Rgb(
113 WHALE_COMPOSER_RGB.0,
114 WHALE_COMPOSER_RGB.1,
115 WHALE_COMPOSER_RGB.2,
116 );
117 pub const WHALE_ERROR: Color = Color::Rgb(WHALE_ERROR_RGB.0, WHALE_ERROR_RGB.1, WHALE_ERROR_RGB.2);
118
119 pub const LIGHT_SURFACE: Color = Color::Rgb(
120 LIGHT_SURFACE_RGB.0,
121 LIGHT_SURFACE_RGB.1,
122 LIGHT_SURFACE_RGB.2,
123 );
124 pub const LIGHT_PANEL: Color = Color::Rgb(LIGHT_PANEL_RGB.0, LIGHT_PANEL_RGB.1, LIGHT_PANEL_RGB.2);
125 pub const LIGHT_ELEVATED: Color = Color::Rgb(
126 LIGHT_ELEVATED_RGB.0,
127 LIGHT_ELEVATED_RGB.1,
128 LIGHT_ELEVATED_RGB.2,
129 );
130 pub const LIGHT_REASONING: Color = Color::Rgb(
131 LIGHT_REASONING_RGB.0,
132 LIGHT_REASONING_RGB.1,
133 LIGHT_REASONING_RGB.2,
134 );
135 pub const LIGHT_SUCCESS: Color = Color::Rgb(
136 LIGHT_SUCCESS_RGB.0,
137 LIGHT_SUCCESS_RGB.1,
138 LIGHT_SUCCESS_RGB.2,
139 );
140 pub const LIGHT_SUCCESS_FG: Color = Color::Rgb(
141 LIGHT_SUCCESS_FG_RGB.0,
142 LIGHT_SUCCESS_FG_RGB.1,
143 LIGHT_SUCCESS_FG_RGB.2,
144 );
145 pub const LIGHT_ERROR: Color = Color::Rgb(LIGHT_ERROR_RGB.0, LIGHT_ERROR_RGB.1, LIGHT_ERROR_RGB.2);
146 pub const LIGHT_TEXT_BODY: Color = Color::Rgb(
147 LIGHT_TEXT_BODY_RGB.0,
148 LIGHT_TEXT_BODY_RGB.1,
149 LIGHT_TEXT_BODY_RGB.2,
150 );
151 pub const LIGHT_TEXT_MUTED: Color = Color::Rgb(
152 LIGHT_TEXT_MUTED_RGB.0,
153 LIGHT_TEXT_MUTED_RGB.1,
154 LIGHT_TEXT_MUTED_RGB.2,
155 );
156 pub const LIGHT_TEXT_HINT: Color = Color::Rgb(
157 LIGHT_TEXT_HINT_RGB.0,
158 LIGHT_TEXT_HINT_RGB.1,
159 LIGHT_TEXT_HINT_RGB.2,
160 );
161 pub const LIGHT_TEXT_SOFT: Color = Color::Rgb(
162 LIGHT_TEXT_SOFT_RGB.0,
163 LIGHT_TEXT_SOFT_RGB.1,
164 LIGHT_TEXT_SOFT_RGB.2,
165 );
166 pub const LIGHT_ACTION: Color =
167 Color::Rgb(LIGHT_ACTION_RGB.0, LIGHT_ACTION_RGB.1, LIGHT_ACTION_RGB.2);
168 pub const LIGHT_LIVE: Color = Color::Rgb(LIGHT_LIVE_RGB.0, LIGHT_LIVE_RGB.1, LIGHT_LIVE_RGB.2);
169 pub const LIGHT_HUMAN: Color = Color::Rgb(LIGHT_HUMAN_RGB.0, LIGHT_HUMAN_RGB.1, LIGHT_HUMAN_RGB.2);
170 pub const LIGHT_WARNING: Color = Color::Rgb(
171 LIGHT_WARNING_RGB.0,
172 LIGHT_WARNING_RGB.1,
173 LIGHT_WARNING_RGB.2,
174 );
175 pub const LIGHT_DANGER: Color =
176 Color::Rgb(LIGHT_DANGER_RGB.0, LIGHT_DANGER_RGB.1, LIGHT_DANGER_RGB.2);
177 pub const LIGHT_MODE_AGENT: Color = Color::Rgb(
178 LIGHT_MODE_AGENT_RGB.0,
179 LIGHT_MODE_AGENT_RGB.1,
180 LIGHT_MODE_AGENT_RGB.2,
181 );
182 pub const LIGHT_MODE_YOLO: Color = Color::Rgb(
183 LIGHT_MODE_YOLO_RGB.0,
184 LIGHT_MODE_YOLO_RGB.1,
185 LIGHT_MODE_YOLO_RGB.2,
186 );
187 pub const LIGHT_MODE_PLAN: Color = Color::Rgb(
188 LIGHT_MODE_PLAN_RGB.0,
189 LIGHT_MODE_PLAN_RGB.1,
190 LIGHT_MODE_PLAN_RGB.2,
191 );
192 pub const LIGHT_OPERATE: Color = Color::Rgb(
193 LIGHT_OPERATE_RGB.0,
194 LIGHT_OPERATE_RGB.1,
195 LIGHT_OPERATE_RGB.2,
196 );
197 pub const LIGHT_BORDER: Color =
198 Color::Rgb(LIGHT_BORDER_RGB.0, LIGHT_BORDER_RGB.1, LIGHT_BORDER_RGB.2);
199 pub const LIGHT_SELECTION_BG: Color = Color::Rgb(
200 LIGHT_SELECTION_RGB.0,
201 LIGHT_SELECTION_RGB.1,
202 LIGHT_SELECTION_RGB.2,
203 );
204 pub const GRAYSCALE_SURFACE: Color = Color::Rgb(
205 GRAYSCALE_SURFACE_RGB.0,
206 GRAYSCALE_SURFACE_RGB.1,
207 GRAYSCALE_SURFACE_RGB.2,
208 );
209 pub const GRAYSCALE_PANEL: Color = Color::Rgb(
210 GRAYSCALE_PANEL_RGB.0,
211 GRAYSCALE_PANEL_RGB.1,
212 GRAYSCALE_PANEL_RGB.2,
213 );
214 pub const GRAYSCALE_ELEVATED: Color = Color::Rgb(
215 GRAYSCALE_ELEVATED_RGB.0,
216 GRAYSCALE_ELEVATED_RGB.1,
217 GRAYSCALE_ELEVATED_RGB.2,
218 );
219 pub const GRAYSCALE_REASONING: Color = Color::Rgb(
220 GRAYSCALE_REASONING_RGB.0,
221 GRAYSCALE_REASONING_RGB.1,
222 GRAYSCALE_REASONING_RGB.2,
223 );
224 pub const GRAYSCALE_SUCCESS: Color = Color::Rgb(
225 GRAYSCALE_SUCCESS_RGB.0,
226 GRAYSCALE_SUCCESS_RGB.1,
227 GRAYSCALE_SUCCESS_RGB.2,
228 );
229 pub const GRAYSCALE_ERROR: Color = Color::Rgb(
230 GRAYSCALE_ERROR_RGB.0,
231 GRAYSCALE_ERROR_RGB.1,
232 GRAYSCALE_ERROR_RGB.2,
233 );
234 pub const GRAYSCALE_TEXT_BODY: Color = Color::Rgb(
235 GRAYSCALE_TEXT_BODY_RGB.0,
236 GRAYSCALE_TEXT_BODY_RGB.1,
237 GRAYSCALE_TEXT_BODY_RGB.2,
238 );
239 pub const GRAYSCALE_TEXT_MUTED: Color = Color::Rgb(
240 GRAYSCALE_TEXT_MUTED_RGB.0,
241 GRAYSCALE_TEXT_MUTED_RGB.1,
242 GRAYSCALE_TEXT_MUTED_RGB.2,
243 );
244 pub const GRAYSCALE_TEXT_HINT: Color = Color::Rgb(
245 GRAYSCALE_TEXT_HINT_RGB.0,
246 GRAYSCALE_TEXT_HINT_RGB.1,
247 GRAYSCALE_TEXT_HINT_RGB.2,
248 );
249 pub const GRAYSCALE_TEXT_SOFT: Color = Color::Rgb(
250 GRAYSCALE_TEXT_SOFT_RGB.0,
251 GRAYSCALE_TEXT_SOFT_RGB.1,
252 GRAYSCALE_TEXT_SOFT_RGB.2,
253 );
254 pub const GRAYSCALE_BORDER: Color = Color::Rgb(
255 GRAYSCALE_BORDER_RGB.0,
256 GRAYSCALE_BORDER_RGB.1,
257 GRAYSCALE_BORDER_RGB.2,
258 );
259 pub const GRAYSCALE_SELECTION_BG: Color = Color::Rgb(
260 GRAYSCALE_SELECTION_RGB.0,
261 GRAYSCALE_SELECTION_RGB.1,
262 GRAYSCALE_SELECTION_RGB.2,
263 );
264
265 pub const TEXT_BODY: Color = Color::Rgb(
266 WHALE_TEXT_BODY_RGB.0,
267 WHALE_TEXT_BODY_RGB.1,
268 WHALE_TEXT_BODY_RGB.2,
269 );
270 pub const TEXT_SECONDARY: Color = Color::Rgb(
271 WHALE_TEXT_MUTED_RGB.0,
272 WHALE_TEXT_MUTED_RGB.1,
273 WHALE_TEXT_MUTED_RGB.2,
274 );
275 pub const TEXT_HINT: Color = Color::Rgb(
276 WHALE_TEXT_HINT_RGB.0,
277 WHALE_TEXT_HINT_RGB.1,
278 WHALE_TEXT_HINT_RGB.2,
279 );
280 pub const TEXT_ACCENT: Color = Color::Rgb(
281 WHALE_ACCENT_SECONDARY_RGB.0,
282 WHALE_ACCENT_SECONDARY_RGB.1,
283 WHALE_ACCENT_SECONDARY_RGB.2,
284 );
285 pub const SELECTION_TEXT: Color = Color::Rgb(
286 WHALE_TEXT_BODY_RGB.0,
287 WHALE_TEXT_BODY_RGB.1,
288 WHALE_TEXT_BODY_RGB.2,
289 ); // Ivory — softer than pure white
290 pub const TEXT_SOFT: Color = Color::Rgb(
291 WHALE_TEXT_SOFT_RGB.0,
292 WHALE_TEXT_SOFT_RGB.1,
293 WHALE_TEXT_SOFT_RGB.2,
294 );
295 pub const TEXT_REASONING: Color = Color::Rgb(
296 WHALE_REASONING_TEXT_RGB.0,
297 WHALE_REASONING_TEXT_RGB.1,
298 WHALE_REASONING_TEXT_RGB.2,
299 );
300
301 // Compatibility aliases for existing call sites.
302 pub const TEXT_PRIMARY: Color = TEXT_BODY;
303 pub const TEXT_MUTED: Color = TEXT_SECONDARY;
304 pub const TEXT_DIM: Color = TEXT_HINT;
305 pub const USER_BODY: Color = Color::Rgb(74, 222, 128); // #4ADE80 green
306 pub const LIGHT_USER_BODY: Color = LIGHT_SUCCESS_FG;
307
308 // Compatibility semantic colors for UI theming
309 pub const BORDER_COLOR: Color =
310 Color::Rgb(BORDER_COLOR_RGB.0, BORDER_COLOR_RGB.1, BORDER_COLOR_RGB.2);
311 pub const BACKGROUND_DARK: Color = Color::Rgb(WHALE_BG_RGB.0, WHALE_BG_RGB.1, WHALE_BG_RGB.2);
312 pub const SURFACE_PANEL: Color =
313 Color::Rgb(WHALE_PANEL_RGB.0, WHALE_PANEL_RGB.1, WHALE_PANEL_RGB.2);
314 pub const SURFACE_ELEVATED: Color = Color::Rgb(
315 WHALE_ELEVATED_RGB.0,
316 WHALE_ELEVATED_RGB.1,
317 WHALE_ELEVATED_RGB.2,
318 );
319 pub const SURFACE_REASONING: Color = Color::Rgb(
320 WHALE_REASONING_SURFACE_RGB.0,
321 WHALE_REASONING_SURFACE_RGB.1,
322 WHALE_REASONING_SURFACE_RGB.2,
323 );
324 pub const SURFACE_REASONING_TINT: Color = Color::Rgb(
325 WHALE_REASONING_TINT_RGB.0,
326 WHALE_REASONING_TINT_RGB.1,
327 WHALE_REASONING_TINT_RGB.2,
328 );
329 pub const SURFACE_REASONING_ACTIVE: Color = Color::Rgb(58, 46, 32);
330 pub const SURFACE_TOOL: Color = Color::Rgb(
331 WHALE_TOOL_SURFACE_RGB.0,
332 WHALE_TOOL_SURFACE_RGB.1,
333 WHALE_TOOL_SURFACE_RGB.2,
334 );
335 pub const SURFACE_TOOL_ACTIVE: Color = Color::Rgb(
336 WHALE_TOOL_ACTIVE_RGB.0,
337 WHALE_TOOL_ACTIVE_RGB.1,
338 WHALE_TOOL_ACTIVE_RGB.2,
339 );
340 pub const SURFACE_SUCCESS: Color = Color::Rgb(18, 42, 37); // dark teal tint
341 pub const SURFACE_ERROR: Color = Color::Rgb(
342 WHALE_ERROR_SURFACE_RGB.0,
343 WHALE_ERROR_SURFACE_RGB.1,
344 WHALE_ERROR_SURFACE_RGB.2,
345 );
346 pub const DIFF_ADDED_BG: Color = Color::Rgb(
347 WHALE_DIFF_ADDED_BG_RGB.0,
348 WHALE_DIFF_ADDED_BG_RGB.1,
349 WHALE_DIFF_ADDED_BG_RGB.2,
350 );
351 pub const DIFF_DELETED_BG: Color = Color::Rgb(
352 WHALE_DIFF_DELETED_BG_RGB.0,
353 WHALE_DIFF_DELETED_BG_RGB.1,
354 WHALE_DIFF_DELETED_BG_RGB.2,
355 );
356 pub const DIFF_ADDED: Color = Color::Rgb(
357 WHALE_DIFF_ADDED_RGB.0,
358 WHALE_DIFF_ADDED_RGB.1,
359 WHALE_DIFF_ADDED_RGB.2,
360 );
361 pub const ACCENT_REASONING_LIVE: Color = Color::Rgb(
362 WHALE_REASONING_TEXT_RGB.0,
363 WHALE_REASONING_TEXT_RGB.1,
364 WHALE_REASONING_TEXT_RGB.2,
365 );
366 pub const ACCENT_TOOL_LIVE: Color = Color::Rgb(
367 WHALE_TOOL_LIVE_RGB.0,
368 WHALE_TOOL_LIVE_RGB.1,
369 WHALE_TOOL_LIVE_RGB.2,
370 );
371 pub const ACCENT_TOOL_ISSUE: Color = Color::Rgb(
372 WHALE_TOOL_ISSUE_RGB.0,
373 WHALE_TOOL_ISSUE_RGB.1,
374 WHALE_TOOL_ISSUE_RGB.2,
375 );
376 pub const TEXT_TOOL_OUTPUT: Color = Color::Rgb(
377 WHALE_TOOL_OUTPUT_RGB.0,
378 WHALE_TOOL_OUTPUT_RGB.1,
379 WHALE_TOOL_OUTPUT_RGB.2,
380 );
381
382 // Legacy status colors - keep for backward compatibility
383 pub const STATUS_SUCCESS: Color = Color::Rgb(
384 WHALE_SUCCESS_RGB.0,
385 WHALE_SUCCESS_RGB.1,
386 WHALE_SUCCESS_RGB.2,
387 );
388 pub const STATUS_WARNING: Color = Color::Rgb(
389 WHALE_WARNING_RGB.0,
390 WHALE_WARNING_RGB.1,
391 WHALE_WARNING_RGB.2,
392 );
393 pub const STATUS_ERROR: Color = Color::Rgb(WHALE_ERROR_RGB.0, WHALE_ERROR_RGB.1, WHALE_ERROR_RGB.2);
394
395 // Mode-specific accent colors for mode badges
396 pub const MODE_AGENT: Color = Color::Rgb(
397 WHALE_MODE_AGENT_RGB.0,
398 WHALE_MODE_AGENT_RGB.1,
399 WHALE_MODE_AGENT_RGB.2,
400 );
401 pub const MODE_YOLO: Color = Color::Rgb(
402 WHALE_MODE_YOLO_RGB.0,
403 WHALE_MODE_YOLO_RGB.1,
404 WHALE_MODE_YOLO_RGB.2,
405 );
406 pub const MODE_PLAN: Color = Color::Rgb(
407 WHALE_MODE_PLAN_RGB.0,
408 WHALE_MODE_PLAN_RGB.1,
409 WHALE_MODE_PLAN_RGB.2,
410 );
411 pub const MODE_OPERATE: Color = Color::Rgb(
412 WHALE_MODE_OPERATE_RGB.0,
413 WHALE_MODE_OPERATE_RGB.1,
414 WHALE_MODE_OPERATE_RGB.2,
415 );
416
417 pub const SELECTION_BG: Color = Color::Rgb(
418 WHALE_SELECTION_RGB.0,
419 WHALE_SELECTION_RGB.1,
420 WHALE_SELECTION_RGB.2,
421 );
422 pub const COMPOSER_BG: Color = WHALE_COMPOSER;
423
423 lines RUST