Skip to main content

j_cli/command/chat/
theme.rs

1use ratatui::style::Color;
2use serde::{Deserialize, Serialize};
3
4/// 主题名称枚举
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
6pub enum ThemeName {
7    #[serde(rename = "dark")]
8    Dark,
9    #[serde(rename = "light")]
10    Light,
11    #[serde(rename = "midnight")]
12    Midnight,
13}
14
15impl Default for ThemeName {
16    fn default() -> Self {
17        ThemeName::Midnight
18    }
19}
20
21impl ThemeName {
22    /// 获取所有主题名称列表(用于配置界面循环切换)
23    pub fn all() -> &'static [ThemeName] {
24        &[ThemeName::Dark, ThemeName::Light, ThemeName::Midnight]
25    }
26
27    /// 切换到下一个主题
28    pub fn next(&self) -> ThemeName {
29        match self {
30            ThemeName::Dark => ThemeName::Light,
31            ThemeName::Light => ThemeName::Midnight,
32            ThemeName::Midnight => ThemeName::Dark,
33        }
34    }
35
36    /// 显示名称
37    pub fn display_name(&self) -> &'static str {
38        match self {
39            ThemeName::Dark => "Dark",
40            ThemeName::Light => "Light",
41            ThemeName::Midnight => "Midnight(默认)",
42        }
43    }
44
45    /// 从字符串解析
46    pub fn from_str(s: &str) -> ThemeName {
47        match s.to_lowercase().as_str() {
48            "dark" => ThemeName::Dark,
49            "light" => ThemeName::Light,
50            "midnight" => ThemeName::Midnight,
51            _ => ThemeName::default(),
52        }
53    }
54
55    /// 转为字符串
56    pub fn to_str(&self) -> &'static str {
57        match self {
58            ThemeName::Dark => "dark",
59            ThemeName::Light => "light",
60            ThemeName::Midnight => "midnight",
61        }
62    }
63}
64
65/// 主题配色方案
66/// 将所有 UI 颜色归类为语义化字段,方便统一管理
67#[derive(Debug, Clone)]
68pub struct Theme {
69    // ===== 全局背景 =====
70    /// 主背景色
71    pub bg_primary: Color,
72    /// 标题栏背景
73    pub bg_title: Color,
74    /// 输入区背景
75    pub bg_input: Color,
76    /// 帮助/配置界面背景
77    pub bg_panel: Color,
78
79    // ===== 边框 =====
80    /// 标题栏边框
81    pub border_title: Color,
82    /// 消息区边框
83    pub border_message: Color,
84    /// 输入区边框(正常)
85    pub border_input: Color,
86    /// 输入区边框(加载中)
87    pub border_input_loading: Color,
88    /// 配置界面边框
89    pub border_config: Color,
90    /// 分隔线
91    pub separator: Color,
92
93    // ===== 气泡 =====
94    /// AI 气泡背景
95    pub bubble_ai: Color,
96    /// AI 气泡背景(选中时)
97    pub bubble_ai_selected: Color,
98    /// 用户气泡背景
99    pub bubble_user: Color,
100    /// 用户气泡背景(选中时)
101    pub bubble_user_selected: Color,
102
103    // ===== 标签 =====
104    /// AI 标签颜色
105    pub label_ai: Color,
106    /// 用户标签颜色
107    pub label_user: Color,
108    /// 选中标签颜色
109    pub label_selected: Color,
110
111    // ===== 文字 =====
112    /// 正文颜色
113    pub text_normal: Color,
114    /// 强调色(加粗文本)
115    pub text_bold: Color,
116    /// 弱化文字
117    pub text_dim: Color,
118    /// 非常弱化的文字
119    pub text_very_dim: Color,
120    /// 白色文字(用于输入区等)
121    pub text_white: Color,
122    /// 系统消息颜色
123    pub text_system: Color,
124
125    // ===== 标题栏元素 =====
126    /// 标题栏图标色
127    pub title_icon: Color,
128    /// 标题栏分隔符
129    pub title_separator: Color,
130    /// 模型名称颜色
131    pub title_model: Color,
132    /// 消息计数颜色
133    pub title_count: Color,
134    /// 加载中文字颜色
135    pub title_loading: Color,
136
137    // ===== 输入区 =====
138    /// 输入提示符颜色
139    pub input_prompt: Color,
140    /// 输入提示符(加载中)颜色
141    pub input_prompt_loading: Color,
142    /// 光标前景
143    pub cursor_fg: Color,
144    /// 光标背景
145    pub cursor_bg: Color,
146
147    // ===== 提示栏 =====
148    /// 键位标签前景
149    pub hint_key_fg: Color,
150    /// 键位标签背景
151    pub hint_key_bg: Color,
152    /// 键位描述文字
153    pub hint_desc: Color,
154    /// 提示栏分隔符
155    pub hint_separator: Color,
156
157    // ===== Toast =====
158    /// 成功 Toast 边框
159    pub toast_success_border: Color,
160    /// 成功 Toast 背景
161    pub toast_success_bg: Color,
162    /// 成功 Toast 文字
163    pub toast_success_text: Color,
164    /// 错误 Toast 边框
165    pub toast_error_border: Color,
166    /// 错误 Toast 背景
167    pub toast_error_bg: Color,
168    /// 错误 Toast 文字
169    pub toast_error_text: Color,
170
171    // ===== 欢迎界面 =====
172    /// 欢迎框边框
173    pub welcome_border: Color,
174    /// 欢迎文字
175    pub welcome_text: Color,
176    /// 欢迎提示文字
177    pub welcome_hint: Color,
178
179    // ===== 模型选择 =====
180    /// 模型选择框边框
181    pub model_sel_border: Color,
182    /// 模型选择框标题
183    pub model_sel_title: Color,
184    /// 活跃模型颜色
185    pub model_sel_active: Color,
186    /// 非活跃模型颜色
187    pub model_sel_inactive: Color,
188    /// 选中高亮背景
189    pub model_sel_highlight_bg: Color,
190
191    // ===== 配置界面 =====
192    /// 配置标题颜色
193    pub config_title: Color,
194    /// 配置分类标题颜色
195    pub config_section: Color,
196    /// 配置选中指针颜色
197    pub config_pointer: Color,
198    /// 配置选中标签颜色
199    pub config_label_selected: Color,
200    /// 配置普通标签颜色
201    pub config_label: Color,
202    /// 配置值颜色
203    pub config_value: Color,
204    /// 配置编辑背景
205    pub config_edit_bg: Color,
206    /// 配置 tab 选中背景
207    pub config_tab_active_bg: Color,
208    /// 配置 tab 选中前景
209    pub config_tab_active_fg: Color,
210    /// 配置 tab 非选中颜色
211    pub config_tab_inactive: Color,
212    /// 配置键位说明颜色
213    pub config_hint_key: Color,
214    /// 配置描述颜色
215    pub config_hint_desc: Color,
216    /// 配置 toggle 开启颜色
217    pub config_toggle_on: Color,
218    /// 配置 toggle 关闭颜色
219    pub config_toggle_off: Color,
220    /// 配置弱化文字
221    pub config_dim: Color,
222    /// API Key 隐藏颜色
223    pub config_api_key: Color,
224
225    // ===== Markdown 渲染 =====
226    /// 标题 h1 颜色
227    pub md_h1: Color,
228    /// 标题 h2 颜色
229    pub md_h2: Color,
230    /// 标题 h3 颜色
231    pub md_h3: Color,
232    /// 标题 h4+ 颜色
233    pub md_h4: Color,
234    /// 标题分隔线
235    pub md_heading_sep: Color,
236    /// 行内代码前景
237    pub md_inline_code_fg: Color,
238    /// 行内代码背景
239    pub md_inline_code_bg: Color,
240    /// 列表符号颜色
241    pub md_list_bullet: Color,
242    /// 引用块竖线颜色
243    pub md_blockquote_bar: Color,
244    /// 引用块文字颜色
245    pub md_blockquote_text: Color,
246    /// 分隔线颜色
247    pub md_rule: Color,
248
249    // ===== 代码块 =====
250    /// 代码块边框颜色
251    pub code_border: Color,
252    /// 代码块背景
253    pub code_bg: Color,
254    /// 代码默认文字颜色
255    pub code_default: Color,
256    /// 关键字颜色
257    pub code_keyword: Color,
258    /// 字符串颜色
259    pub code_string: Color,
260    /// 注释颜色
261    pub code_comment: Color,
262    /// 数字颜色
263    pub code_number: Color,
264    /// 类型名颜色
265    pub code_type: Color,
266    /// 原始类型颜色
267    pub code_primitive: Color,
268    /// 宏调用颜色
269    pub code_macro: Color,
270    /// 属性/装饰器颜色
271    pub code_attribute: Color,
272    /// 生命周期颜色
273    pub code_lifetime: Color,
274    /// Shell 变量颜色
275    pub code_shell_var: Color,
276
277    // ===== 表格 =====
278    /// 表格边框颜色
279    pub table_border: Color,
280    /// 表格表头颜色
281    pub table_header: Color,
282    /// 表格内容颜色
283    pub table_body: Color,
284
285    // ===== 帮助界面 =====
286    /// 帮助标题颜色
287    pub help_title: Color,
288    /// 帮助按键颜色
289    pub help_key: Color,
290    /// 帮助描述颜色
291    pub help_desc: Color,
292    /// 帮助文件路径颜色
293    pub help_path: Color,
294    /// 帮助背景颜色
295    pub help_bg: Color,
296}
297
298impl Theme {
299    /// 根据主题名称创建对应的主题
300    pub fn from_name(name: &ThemeName) -> Self {
301        match name {
302            ThemeName::Dark => Self::dark(),
303            ThemeName::Light => Self::light(),
304            ThemeName::Midnight => Self::midnight(),
305        }
306    }
307
308    /// Midnight 主题(原始深色主题 - 默认)
309    pub fn midnight() -> Self {
310        Self {
311            // 全局背景
312            bg_primary: Color::Rgb(22, 22, 30),
313            bg_title: Color::Rgb(28, 28, 40),
314            bg_input: Color::Rgb(26, 26, 38),
315            bg_panel: Color::Rgb(24, 24, 34),
316
317            // 边框
318            border_title: Color::Rgb(80, 100, 140),
319            border_message: Color::Rgb(50, 55, 70),
320            border_input: Color::Rgb(60, 100, 80),
321            border_input_loading: Color::Rgb(120, 100, 50),
322            border_config: Color::Rgb(80, 80, 110),
323            separator: Color::Rgb(50, 55, 70),
324
325            // 气泡
326            bubble_ai: Color::Rgb(38, 38, 52),
327            bubble_ai_selected: Color::Rgb(48, 48, 68),
328            bubble_user: Color::Rgb(40, 70, 120),
329            bubble_user_selected: Color::Rgb(55, 85, 140),
330
331            // 标签
332            label_ai: Color::Rgb(120, 220, 160),
333            label_user: Color::Rgb(100, 160, 255),
334            label_selected: Color::Rgb(255, 200, 80),
335
336            // 文字
337            text_normal: Color::Rgb(220, 220, 230),
338            text_bold: Color::Rgb(240, 210, 170),
339            text_dim: Color::Rgb(140, 140, 170),
340            text_very_dim: Color::Rgb(80, 80, 100),
341            text_white: Color::White,
342            text_system: Color::Rgb(100, 100, 120),
343
344            // 标题栏
345            title_icon: Color::Rgb(120, 180, 255),
346            title_separator: Color::Rgb(60, 60, 80),
347            title_model: Color::Rgb(160, 220, 160),
348            title_count: Color::Rgb(180, 180, 200),
349            title_loading: Color::Rgb(255, 200, 80),
350
351            // 输入区
352            input_prompt: Color::Rgb(100, 200, 130),
353            input_prompt_loading: Color::Rgb(255, 200, 80),
354            cursor_fg: Color::Rgb(22, 22, 30),
355            cursor_bg: Color::Rgb(200, 210, 240),
356
357            // 提示栏
358            hint_key_fg: Color::Rgb(22, 22, 30),
359            hint_key_bg: Color::Rgb(100, 110, 140),
360            hint_desc: Color::Rgb(120, 120, 150),
361            hint_separator: Color::Rgb(50, 50, 65),
362
363            // Toast
364            toast_success_border: Color::Rgb(60, 160, 80),
365            toast_success_bg: Color::Rgb(18, 40, 25),
366            toast_success_text: Color::Rgb(140, 230, 160),
367            toast_error_border: Color::Rgb(200, 70, 70),
368            toast_error_bg: Color::Rgb(50, 18, 18),
369            toast_error_text: Color::Rgb(255, 130, 130),
370
371            // 欢迎界面
372            welcome_border: Color::Rgb(60, 70, 90),
373            welcome_text: Color::Rgb(120, 140, 180),
374            welcome_hint: Color::Rgb(80, 90, 110),
375
376            // 模型选择
377            model_sel_border: Color::Rgb(180, 160, 80),
378            model_sel_title: Color::Rgb(230, 210, 120),
379            model_sel_active: Color::Rgb(120, 220, 160),
380            model_sel_inactive: Color::Rgb(180, 180, 200),
381            model_sel_highlight_bg: Color::Rgb(50, 55, 80),
382
383            // 配置界面
384            config_title: Color::Rgb(120, 180, 255),
385            config_section: Color::Rgb(160, 220, 160),
386            config_pointer: Color::Rgb(255, 200, 80),
387            config_label_selected: Color::Rgb(230, 210, 120),
388            config_label: Color::Rgb(140, 140, 160),
389            config_value: Color::Rgb(180, 180, 200),
390            config_edit_bg: Color::Rgb(50, 55, 80),
391            config_tab_active_bg: Color::Rgb(120, 180, 255),
392            config_tab_active_fg: Color::Rgb(22, 22, 30),
393            config_tab_inactive: Color::Rgb(150, 150, 170),
394            config_hint_key: Color::Rgb(230, 210, 120),
395            config_hint_desc: Color::Rgb(120, 120, 150),
396            config_toggle_on: Color::Rgb(120, 220, 160),
397            config_toggle_off: Color::Rgb(200, 100, 100),
398            config_dim: Color::Rgb(80, 80, 100),
399            config_api_key: Color::Rgb(100, 100, 120),
400
401            // Markdown
402            md_h1: Color::Rgb(100, 180, 255),
403            md_h2: Color::Rgb(130, 190, 255),
404            md_h3: Color::Rgb(160, 200, 255),
405            md_h4: Color::Rgb(180, 210, 255),
406            md_heading_sep: Color::Rgb(60, 70, 100),
407            md_inline_code_fg: Color::Rgb(230, 190, 120),
408            md_inline_code_bg: Color::Rgb(45, 45, 60),
409            md_list_bullet: Color::Rgb(100, 160, 255),
410            md_blockquote_bar: Color::Rgb(80, 100, 140),
411            md_blockquote_text: Color::Rgb(150, 160, 180),
412            md_rule: Color::Rgb(70, 75, 90),
413
414            // 代码块
415            code_border: Color::Rgb(80, 90, 110),
416            code_bg: Color::Rgb(30, 30, 42),
417            code_default: Color::Rgb(171, 178, 191),
418            code_keyword: Color::Rgb(198, 120, 221),
419            code_string: Color::Rgb(152, 195, 121),
420            code_comment: Color::Rgb(92, 99, 112),
421            code_number: Color::Rgb(209, 154, 102),
422            code_type: Color::Rgb(229, 192, 123),
423            code_primitive: Color::Rgb(86, 182, 194),
424            code_macro: Color::Rgb(97, 175, 239),
425            code_attribute: Color::Rgb(86, 182, 194),
426            code_lifetime: Color::Rgb(229, 192, 123),
427            code_shell_var: Color::Rgb(86, 182, 194),
428
429            // 表格
430            table_border: Color::Rgb(60, 70, 100),
431            table_header: Color::Rgb(120, 180, 255),
432            table_body: Color::Rgb(180, 180, 200),
433
434            // 帮助界面
435            help_title: Color::Rgb(120, 180, 255),
436            help_key: Color::Rgb(230, 210, 120),
437            help_desc: Color::Rgb(200, 200, 220),
438            help_path: Color::Rgb(100, 100, 130),
439            help_bg: Color::Rgb(24, 24, 34),
440        }
441    }
442
443    /// Dark 主题(偏灰暗的深色主题,类似 VS Code Dark+)
444    pub fn dark() -> Self {
445        Self {
446            // 全局背景
447            bg_primary: Color::Rgb(30, 30, 30),
448            bg_title: Color::Rgb(37, 37, 38),
449            bg_input: Color::Rgb(37, 37, 38),
450            bg_panel: Color::Rgb(37, 37, 38),
451
452            // 边框
453            border_title: Color::Rgb(70, 70, 70),
454            border_message: Color::Rgb(55, 55, 55),
455            border_input: Color::Rgb(55, 80, 55),
456            border_input_loading: Color::Rgb(120, 100, 50),
457            border_config: Color::Rgb(70, 70, 70),
458            separator: Color::Rgb(55, 55, 55),
459
460            // 气泡
461            bubble_ai: Color::Rgb(40, 40, 40),
462            bubble_ai_selected: Color::Rgb(50, 50, 55),
463            bubble_user: Color::Rgb(38, 65, 110),
464            bubble_user_selected: Color::Rgb(50, 80, 130),
465
466            // 标签
467            label_ai: Color::Rgb(80, 200, 120),
468            label_user: Color::Rgb(80, 150, 240),
469            label_selected: Color::Rgb(255, 200, 80),
470
471            // 文字
472            text_normal: Color::Rgb(212, 212, 212),
473            text_bold: Color::Rgb(230, 200, 160),
474            text_dim: Color::Rgb(128, 128, 128),
475            text_very_dim: Color::Rgb(80, 80, 80),
476            text_white: Color::White,
477            text_system: Color::Rgb(100, 100, 100),
478
479            // 标题栏
480            title_icon: Color::Rgb(100, 160, 240),
481            title_separator: Color::Rgb(60, 60, 60),
482            title_model: Color::Rgb(140, 200, 140),
483            title_count: Color::Rgb(170, 170, 170),
484            title_loading: Color::Rgb(255, 200, 80),
485
486            // 输入区
487            input_prompt: Color::Rgb(80, 180, 100),
488            input_prompt_loading: Color::Rgb(255, 200, 80),
489            cursor_fg: Color::Rgb(30, 30, 30),
490            cursor_bg: Color::Rgb(200, 200, 200),
491
492            // 提示栏
493            hint_key_fg: Color::Rgb(30, 30, 30),
494            hint_key_bg: Color::Rgb(100, 100, 100),
495            hint_desc: Color::Rgb(128, 128, 128),
496            hint_separator: Color::Rgb(50, 50, 50),
497
498            // Toast
499            toast_success_border: Color::Rgb(60, 160, 80),
500            toast_success_bg: Color::Rgb(20, 40, 25),
501            toast_success_text: Color::Rgb(140, 230, 160),
502            toast_error_border: Color::Rgb(200, 70, 70),
503            toast_error_bg: Color::Rgb(50, 20, 20),
504            toast_error_text: Color::Rgb(255, 130, 130),
505
506            // 欢迎界面
507            welcome_border: Color::Rgb(60, 60, 60),
508            welcome_text: Color::Rgb(120, 140, 180),
509            welcome_hint: Color::Rgb(80, 80, 80),
510
511            // 模型选择
512            model_sel_border: Color::Rgb(180, 160, 80),
513            model_sel_title: Color::Rgb(230, 210, 120),
514            model_sel_active: Color::Rgb(80, 200, 120),
515            model_sel_inactive: Color::Rgb(170, 170, 170),
516            model_sel_highlight_bg: Color::Rgb(50, 50, 60),
517
518            // 配置界面
519            config_title: Color::Rgb(100, 160, 240),
520            config_section: Color::Rgb(140, 200, 140),
521            config_pointer: Color::Rgb(255, 200, 80),
522            config_label_selected: Color::Rgb(230, 210, 120),
523            config_label: Color::Rgb(128, 128, 128),
524            config_value: Color::Rgb(170, 170, 170),
525            config_edit_bg: Color::Rgb(50, 50, 60),
526            config_tab_active_bg: Color::Rgb(100, 160, 240),
527            config_tab_active_fg: Color::Rgb(30, 30, 30),
528            config_tab_inactive: Color::Rgb(140, 140, 140),
529            config_hint_key: Color::Rgb(230, 210, 120),
530            config_hint_desc: Color::Rgb(128, 128, 128),
531            config_toggle_on: Color::Rgb(80, 200, 120),
532            config_toggle_off: Color::Rgb(200, 100, 100),
533            config_dim: Color::Rgb(80, 80, 80),
534            config_api_key: Color::Rgb(100, 100, 100),
535
536            // Markdown
537            md_h1: Color::Rgb(80, 160, 240),
538            md_h2: Color::Rgb(100, 170, 240),
539            md_h3: Color::Rgb(120, 180, 240),
540            md_h4: Color::Rgb(140, 190, 240),
541            md_heading_sep: Color::Rgb(60, 60, 80),
542            md_inline_code_fg: Color::Rgb(220, 180, 110),
543            md_inline_code_bg: Color::Rgb(50, 50, 60),
544            md_list_bullet: Color::Rgb(80, 150, 240),
545            md_blockquote_bar: Color::Rgb(70, 90, 130),
546            md_blockquote_text: Color::Rgb(150, 150, 170),
547            md_rule: Color::Rgb(70, 70, 80),
548
549            // 代码块
550            code_border: Color::Rgb(70, 70, 80),
551            code_bg: Color::Rgb(35, 35, 38),
552            code_default: Color::Rgb(212, 212, 212),
553            code_keyword: Color::Rgb(198, 120, 221),
554            code_string: Color::Rgb(152, 195, 121),
555            code_comment: Color::Rgb(106, 115, 125),
556            code_number: Color::Rgb(209, 154, 102),
557            code_type: Color::Rgb(229, 192, 123),
558            code_primitive: Color::Rgb(86, 182, 194),
559            code_macro: Color::Rgb(97, 175, 239),
560            code_attribute: Color::Rgb(86, 182, 194),
561            code_lifetime: Color::Rgb(229, 192, 123),
562            code_shell_var: Color::Rgb(86, 182, 194),
563
564            // 表格
565            table_border: Color::Rgb(60, 60, 80),
566            table_header: Color::Rgb(80, 160, 240),
567            table_body: Color::Rgb(170, 170, 170),
568
569            // 帮助界面
570            help_title: Color::Rgb(100, 160, 240),
571            help_key: Color::Rgb(230, 210, 120),
572            help_desc: Color::Rgb(200, 200, 200),
573            help_path: Color::Rgb(100, 100, 100),
574            help_bg: Color::Rgb(37, 37, 38),
575        }
576    }
577
578    /// Light 主题(浅色主题,类似 VS Code Light+)
579    pub fn light() -> Self {
580        Self {
581            // 全局背景
582            bg_primary: Color::Rgb(255, 255, 255),
583            bg_title: Color::Rgb(243, 243, 243),
584            bg_input: Color::Rgb(248, 248, 248),
585            bg_panel: Color::Rgb(248, 248, 248),
586
587            // 边框
588            border_title: Color::Rgb(190, 190, 200),
589            border_message: Color::Rgb(210, 210, 220),
590            border_input: Color::Rgb(160, 200, 160),
591            border_input_loading: Color::Rgb(180, 150, 50),
592            border_config: Color::Rgb(190, 190, 200),
593            separator: Color::Rgb(210, 210, 220),
594
595            // 气泡
596            bubble_ai: Color::Rgb(240, 240, 245),
597            bubble_ai_selected: Color::Rgb(225, 230, 240),
598            bubble_user: Color::Rgb(210, 230, 255),
599            bubble_user_selected: Color::Rgb(190, 215, 250),
600
601            // 标签
602            label_ai: Color::Rgb(40, 140, 80),
603            label_user: Color::Rgb(30, 100, 200),
604            label_selected: Color::Rgb(180, 130, 20),
605
606            // 文字
607            text_normal: Color::Rgb(40, 40, 50),
608            text_bold: Color::Rgb(150, 90, 30),
609            text_dim: Color::Rgb(120, 120, 140),
610            text_very_dim: Color::Rgb(170, 170, 180),
611            text_white: Color::Rgb(40, 40, 50),
612            text_system: Color::Rgb(140, 140, 160),
613
614            // 标题栏
615            title_icon: Color::Rgb(40, 100, 200),
616            title_separator: Color::Rgb(200, 200, 210),
617            title_model: Color::Rgb(40, 140, 80),
618            title_count: Color::Rgb(100, 100, 120),
619            title_loading: Color::Rgb(180, 130, 20),
620
621            // 输入区
622            input_prompt: Color::Rgb(40, 140, 80),
623            input_prompt_loading: Color::Rgb(180, 130, 20),
624            cursor_fg: Color::Rgb(255, 255, 255),
625            cursor_bg: Color::Rgb(50, 100, 200),
626
627            // 提示栏
628            hint_key_fg: Color::Rgb(255, 255, 255),
629            hint_key_bg: Color::Rgb(100, 110, 130),
630            hint_desc: Color::Rgb(120, 120, 140),
631            hint_separator: Color::Rgb(210, 210, 220),
632
633            // Toast
634            toast_success_border: Color::Rgb(60, 160, 80),
635            toast_success_bg: Color::Rgb(230, 250, 235),
636            toast_success_text: Color::Rgb(30, 100, 50),
637            toast_error_border: Color::Rgb(200, 70, 70),
638            toast_error_bg: Color::Rgb(255, 235, 235),
639            toast_error_text: Color::Rgb(160, 30, 30),
640
641            // 欢迎界面
642            welcome_border: Color::Rgb(180, 190, 210),
643            welcome_text: Color::Rgb(60, 80, 130),
644            welcome_hint: Color::Rgb(140, 150, 170),
645
646            // 模型选择
647            model_sel_border: Color::Rgb(180, 160, 80),
648            model_sel_title: Color::Rgb(140, 110, 30),
649            model_sel_active: Color::Rgb(40, 140, 80),
650            model_sel_inactive: Color::Rgb(100, 100, 120),
651            model_sel_highlight_bg: Color::Rgb(225, 230, 245),
652
653            // 配置界面
654            config_title: Color::Rgb(40, 100, 200),
655            config_section: Color::Rgb(40, 140, 80),
656            config_pointer: Color::Rgb(180, 130, 20),
657            config_label_selected: Color::Rgb(140, 110, 30),
658            config_label: Color::Rgb(120, 120, 140),
659            config_value: Color::Rgb(60, 60, 80),
660            config_edit_bg: Color::Rgb(225, 230, 245),
661            config_tab_active_bg: Color::Rgb(40, 100, 200),
662            config_tab_active_fg: Color::Rgb(255, 255, 255),
663            config_tab_inactive: Color::Rgb(120, 120, 140),
664            config_hint_key: Color::Rgb(140, 110, 30),
665            config_hint_desc: Color::Rgb(120, 120, 140),
666            config_toggle_on: Color::Rgb(40, 140, 80),
667            config_toggle_off: Color::Rgb(200, 80, 80),
668            config_dim: Color::Rgb(170, 170, 180),
669            config_api_key: Color::Rgb(160, 160, 170),
670
671            // Markdown
672            md_h1: Color::Rgb(30, 80, 180),
673            md_h2: Color::Rgb(40, 100, 200),
674            md_h3: Color::Rgb(50, 110, 210),
675            md_h4: Color::Rgb(60, 120, 220),
676            md_heading_sep: Color::Rgb(180, 190, 210),
677            md_inline_code_fg: Color::Rgb(160, 80, 30),
678            md_inline_code_bg: Color::Rgb(240, 235, 225),
679            md_list_bullet: Color::Rgb(30, 100, 200),
680            md_blockquote_bar: Color::Rgb(100, 130, 180),
681            md_blockquote_text: Color::Rgb(80, 90, 110),
682            md_rule: Color::Rgb(190, 195, 210),
683
684            // 代码块(VS Code Light+ 风格)
685            code_border: Color::Rgb(190, 195, 210),
686            code_bg: Color::Rgb(245, 245, 248),
687            code_default: Color::Rgb(40, 40, 50),
688            code_keyword: Color::Rgb(175, 0, 219),
689            code_string: Color::Rgb(163, 21, 21),
690            code_comment: Color::Rgb(0, 128, 0),
691            code_number: Color::Rgb(9, 134, 88),
692            code_type: Color::Rgb(38, 127, 153),
693            code_primitive: Color::Rgb(0, 112, 193),
694            code_macro: Color::Rgb(121, 94, 38),
695            code_attribute: Color::Rgb(0, 112, 193),
696            code_lifetime: Color::Rgb(38, 127, 153),
697            code_shell_var: Color::Rgb(0, 112, 193),
698
699            // 表格
700            table_border: Color::Rgb(180, 190, 210),
701            table_header: Color::Rgb(30, 80, 180),
702            table_body: Color::Rgb(60, 60, 80),
703
704            // 帮助界面
705            help_title: Color::Rgb(40, 100, 200),
706            help_key: Color::Rgb(140, 110, 30),
707            help_desc: Color::Rgb(50, 50, 60),
708            help_path: Color::Rgb(120, 120, 140),
709            help_bg: Color::Rgb(248, 248, 248),
710        }
711    }
712}