use ratatui::style::Color;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum ThemeName {
#[serde(rename = "dark")]
Dark,
#[serde(rename = "light")]
Light,
#[serde(rename = "midnight")]
#[default]
Midnight,
#[serde(rename = "nord")]
Nord,
#[serde(rename = "monokai")]
Monokai,
#[serde(rename = "anthropic_light")]
AnthropicLight,
#[serde(rename = "anthropic_dark")]
AnthropicDark,
}
impl std::str::FromStr for ThemeName {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"dark" => Ok(ThemeName::Dark),
"light" => Ok(ThemeName::Light),
"midnight" => Ok(ThemeName::Midnight),
"nord" => Ok(ThemeName::Nord),
"monokai" => Ok(ThemeName::Monokai),
"anthropic_light" => Ok(ThemeName::AnthropicLight),
"anthropic_dark" => Ok(ThemeName::AnthropicDark),
_ => Ok(ThemeName::default()),
}
}
}
#[allow(dead_code)]
impl ThemeName {
pub fn all() -> &'static [ThemeName] {
&[
ThemeName::Dark,
ThemeName::Light,
ThemeName::Midnight,
ThemeName::Nord,
ThemeName::Monokai,
ThemeName::AnthropicLight,
ThemeName::AnthropicDark,
]
}
pub fn next(&self) -> ThemeName {
match self {
ThemeName::Dark => ThemeName::Light,
ThemeName::Light => ThemeName::Midnight,
ThemeName::Midnight => ThemeName::Nord,
ThemeName::Nord => ThemeName::Monokai,
ThemeName::Monokai => ThemeName::AnthropicLight,
ThemeName::AnthropicLight => ThemeName::AnthropicDark,
ThemeName::AnthropicDark => ThemeName::Dark,
}
}
pub fn display_name(&self) -> &'static str {
match self {
ThemeName::Dark => "Dark",
ThemeName::Light => "Light",
ThemeName::Midnight => "Midnight(默认)",
ThemeName::Nord => "Nord",
ThemeName::Monokai => "Monokai",
ThemeName::AnthropicLight => "Anthropic Light(米白赭陶)",
ThemeName::AnthropicDark => "Anthropic Dark(深夜月蓝)",
}
}
pub fn parse(s: &str) -> ThemeName {
s.parse().unwrap_or_default()
}
pub fn to_str(&self) -> &'static str {
match self {
ThemeName::Dark => "dark",
ThemeName::Light => "light",
ThemeName::Midnight => "midnight",
ThemeName::Nord => "nord",
ThemeName::Monokai => "monokai",
ThemeName::AnthropicLight => "anthropic_light",
ThemeName::AnthropicDark => "anthropic_dark",
}
}
}
#[derive(Debug, Clone, PartialEq)]
#[allow(dead_code)]
pub struct Theme {
pub bg_primary: Color,
pub bg_title: Color,
pub bg_input: Color,
pub bg_panel: Color,
pub border_title: Color,
pub border_message: Color,
pub border_input: Color,
pub border_input_loading: Color,
pub border_config: Color,
pub separator: Color,
pub bubble_ai: Color,
pub bubble_ai_selected: Color,
pub bubble_user: Color,
pub bubble_user_selected: Color,
pub label_ai: Color,
pub label_user: Color,
pub label_selected: Color,
pub text_normal: Color,
pub text_bold: Color,
pub text_dim: Color,
pub text_very_dim: Color,
pub text_white: Color,
pub text_system: Color,
pub title_icon: Color,
pub title_separator: Color,
pub title_model: Color,
pub title_count: Color,
pub title_loading: Color,
pub input_prompt: Color,
pub input_prompt_loading: Color,
pub cursor_fg: Color,
pub cursor_bg: Color,
pub hint_key_fg: Color,
pub hint_key_bg: Color,
pub hint_desc: Color,
pub hint_separator: Color,
pub toast_success_border: Color,
pub toast_success_bg: Color,
pub toast_success_text: Color,
pub toast_error_border: Color,
pub toast_error_bg: Color,
pub toast_error_text: Color,
pub tool_confirm_border: Color,
pub tool_confirm_bg: Color,
pub tool_confirm_title: Color,
pub tool_confirm_name: Color,
pub tool_confirm_text: Color,
pub tool_confirm_label: Color,
pub tool_confirm_hint: Color,
pub welcome_border: Color,
pub welcome_text: Color,
pub welcome_hint: Color,
pub welcome_quote: Color,
pub welcome_palette: u8,
pub model_sel_border: Color,
pub model_sel_title: Color,
pub model_sel_active: Color,
pub model_sel_inactive: Color,
pub model_sel_highlight_bg: Color,
pub model_sel_highlight_fg: Color,
pub config_title: Color,
pub config_section: Color,
pub config_pointer: Color,
pub config_label_selected: Color,
pub config_label: Color,
pub config_value: Color,
pub config_edit_bg: Color,
pub config_tab_active_bg: Color,
pub config_tab_active_fg: Color,
pub config_tab_inactive: Color,
pub config_hint_key: Color,
pub config_hint_desc: Color,
pub config_toggle_on: Color,
pub config_toggle_off: Color,
pub config_dim: Color,
pub config_api_key: Color,
pub md_h1: Color,
pub md_h2: Color,
pub md_h3: Color,
pub md_h4: Color,
pub md_heading_sep: Color,
pub md_inline_code_fg: Color,
pub md_inline_code_bg: Color,
pub md_list_bullet: Color,
pub md_blockquote_bar: Color,
pub md_blockquote_text: Color,
pub md_blockquote_bg: Color,
pub md_rule: Color,
pub md_link: Color,
pub code_border: Color,
pub code_bg: Color,
pub code_default: Color,
pub code_keyword: Color,
pub code_string: Color,
pub code_comment: Color,
pub code_number: Color,
pub code_type: Color,
pub code_primitive: Color,
pub code_macro: Color,
pub code_attribute: Color,
pub code_lifetime: Color,
pub code_shell_var: Color,
pub table_border: Color,
pub table_header: Color,
pub table_body: Color,
pub help_title: Color,
pub help_key: Color,
pub help_desc: Color,
pub help_path: Color,
pub help_bg: Color,
pub diff_add: Color,
pub diff_del: Color,
pub diff_header: Color,
}
impl Theme {
pub fn from_name(name: &ThemeName) -> Self {
match name {
ThemeName::Dark => Self::dark(),
ThemeName::Light => Self::light(),
ThemeName::Midnight => Self::midnight(),
ThemeName::Nord => Self::nord(),
ThemeName::Monokai => Self::monokai(),
ThemeName::AnthropicLight => Self::anthropic_light(),
ThemeName::AnthropicDark => Self::anthropic_dark(),
}
}
pub fn terminal() -> Self {
Self {
bg_primary: Color::Reset,
bg_title: Color::Reset,
bg_input: Color::Reset,
bg_panel: Color::Reset,
border_title: Color::DarkGray,
border_message: Color::DarkGray,
border_input: Color::DarkGray,
border_input_loading: Color::DarkGray,
border_config: Color::DarkGray,
separator: Color::DarkGray,
bubble_ai: Color::Reset,
bubble_ai_selected: Color::Reset,
bubble_user: Color::Reset,
bubble_user_selected: Color::Reset,
label_ai: Color::Reset,
label_user: Color::Reset,
label_selected: Color::Reset,
text_normal: Color::Reset,
text_bold: Color::White,
text_dim: Color::DarkGray,
text_very_dim: Color::DarkGray,
text_white: Color::White,
text_system: Color::DarkGray,
title_icon: Color::Reset,
title_separator: Color::DarkGray,
title_model: Color::Reset,
title_count: Color::Reset,
title_loading: Color::Reset,
input_prompt: Color::Reset,
input_prompt_loading: Color::Reset,
cursor_fg: Color::Reset,
cursor_bg: Color::Reset,
hint_key_fg: Color::Reset,
hint_key_bg: Color::Reset,
hint_desc: Color::Reset,
hint_separator: Color::DarkGray,
toast_success_border: Color::Green,
toast_success_bg: Color::Reset,
toast_success_text: Color::LightGreen,
toast_error_border: Color::Red,
toast_error_bg: Color::Reset,
toast_error_text: Color::LightRed,
tool_confirm_border: Color::Cyan,
tool_confirm_bg: Color::Blue,
tool_confirm_title: Color::Yellow,
tool_confirm_name: Color::Yellow,
tool_confirm_text: Color::White,
tool_confirm_label: Color::White,
tool_confirm_hint: Color::Yellow,
welcome_border: Color::DarkGray,
welcome_text: Color::Reset,
welcome_hint: Color::DarkGray,
welcome_quote: Color::DarkGray,
welcome_palette: 5, model_sel_border: Color::DarkGray,
model_sel_title: Color::Reset,
model_sel_active: Color::LightGreen,
model_sel_inactive: Color::Reset,
model_sel_highlight_bg: Color::Reset,
model_sel_highlight_fg: Color::Yellow,
config_title: Color::LightCyan,
config_section: Color::LightGreen,
config_pointer: Color::Yellow,
config_label_selected: Color::Yellow,
config_label: Color::DarkGray,
config_value: Color::Reset,
config_edit_bg: Color::Reset,
config_tab_active_bg: Color::LightCyan,
config_tab_active_fg: Color::Reset,
config_tab_inactive: Color::DarkGray,
config_hint_key: Color::Yellow,
config_hint_desc: Color::DarkGray,
config_toggle_on: Color::LightGreen,
config_toggle_off: Color::Red,
config_dim: Color::DarkGray,
config_api_key: Color::DarkGray,
md_h1: Color::LightCyan,
md_h2: Color::Cyan,
md_h3: Color::LightBlue,
md_h4: Color::Blue,
md_heading_sep: Color::DarkGray,
md_inline_code_fg: Color::LightYellow,
md_inline_code_bg: Color::Reset,
md_list_bullet: Color::LightGreen,
md_blockquote_bar: Color::Cyan,
md_blockquote_text: Color::Gray,
md_blockquote_bg: Color::Reset,
md_rule: Color::DarkGray,
md_link: Color::LightBlue,
code_border: Color::DarkGray,
code_bg: Color::Reset,
code_default: Color::Reset,
code_keyword: Color::LightMagenta,
code_string: Color::LightGreen,
code_comment: Color::DarkGray,
code_number: Color::LightYellow,
code_type: Color::LightYellow,
code_primitive: Color::LightCyan,
code_macro: Color::LightBlue,
code_attribute: Color::LightCyan,
code_lifetime: Color::LightYellow,
code_shell_var: Color::LightCyan,
table_border: Color::DarkGray,
table_header: Color::LightCyan,
table_body: Color::Reset,
help_title: Color::LightCyan,
help_key: Color::Yellow,
help_desc: Color::Reset,
help_path: Color::DarkGray,
help_bg: Color::Reset,
diff_add: Color::LightGreen,
diff_del: Color::LightRed,
diff_header: Color::LightCyan,
}
}
pub fn midnight() -> Self {
Self {
bg_primary: Color::Rgb(22, 22, 30),
bg_title: Color::Rgb(28, 28, 40),
bg_input: Color::Rgb(26, 26, 38),
bg_panel: Color::Rgb(24, 24, 34),
border_title: Color::Rgb(80, 100, 140),
border_message: Color::Rgb(50, 55, 70),
border_input: Color::Rgb(60, 100, 80),
border_input_loading: Color::Rgb(120, 100, 50),
border_config: Color::Rgb(80, 80, 110),
separator: Color::Rgb(50, 55, 70),
bubble_ai: Color::Rgb(28, 28, 38),
bubble_ai_selected: Color::Rgb(255, 255, 255),
bubble_user: Color::Rgb(40, 70, 120),
bubble_user_selected: Color::Rgb(255, 255, 255),
label_ai: Color::Rgb(120, 220, 160),
label_user: Color::Rgb(100, 160, 255),
label_selected: Color::Rgb(255, 200, 80),
text_normal: Color::Rgb(220, 220, 230),
text_bold: Color::Rgb(220, 245, 230),
text_dim: Color::Rgb(140, 140, 170),
text_very_dim: Color::Rgb(80, 80, 100),
text_white: Color::White,
text_system: Color::Rgb(100, 100, 120),
title_icon: Color::Rgb(120, 180, 255),
title_separator: Color::Rgb(60, 60, 80),
title_model: Color::Rgb(160, 220, 160),
title_count: Color::Rgb(180, 180, 200),
title_loading: Color::Rgb(255, 200, 80),
input_prompt: Color::Rgb(100, 200, 130),
input_prompt_loading: Color::Rgb(255, 200, 80),
cursor_fg: Color::Rgb(22, 22, 30),
cursor_bg: Color::Rgb(200, 210, 240),
hint_key_fg: Color::Rgb(22, 22, 30),
hint_key_bg: Color::Rgb(100, 110, 140),
hint_desc: Color::Rgb(120, 120, 150),
hint_separator: Color::Rgb(50, 50, 65),
toast_success_border: Color::Rgb(60, 160, 80),
toast_success_bg: Color::Rgb(18, 40, 25),
toast_success_text: Color::Rgb(140, 230, 160),
toast_error_border: Color::Rgb(200, 70, 70),
toast_error_bg: Color::Rgb(50, 18, 18),
toast_error_text: Color::Rgb(255, 130, 130),
tool_confirm_border: Color::Rgb(200, 180, 80),
tool_confirm_bg: Color::Rgb(35, 30, 15),
tool_confirm_title: Color::Rgb(255, 220, 100),
tool_confirm_name: Color::Rgb(255, 220, 100),
tool_confirm_text: Color::Rgb(220, 220, 230),
tool_confirm_label: Color::Rgb(140, 140, 160),
tool_confirm_hint: Color::Rgb(180, 180, 200),
welcome_border: Color::Rgb(60, 70, 90),
welcome_text: Color::Rgb(120, 140, 180),
welcome_hint: Color::Rgb(80, 90, 110),
welcome_quote: Color::Rgb(140, 160, 200),
welcome_palette: 0,
model_sel_border: Color::Rgb(180, 160, 80),
model_sel_title: Color::Rgb(230, 210, 120),
model_sel_active: Color::Rgb(120, 220, 160),
model_sel_inactive: Color::Rgb(180, 180, 200),
model_sel_highlight_bg: Color::Rgb(50, 55, 80),
model_sel_highlight_fg: Color::Rgb(255, 220, 120),
config_title: Color::Rgb(120, 180, 255),
config_section: Color::Rgb(160, 220, 160),
config_pointer: Color::Rgb(255, 200, 80),
config_label_selected: Color::Rgb(230, 210, 120),
config_label: Color::Rgb(140, 140, 160),
config_value: Color::Rgb(180, 180, 200),
config_edit_bg: Color::Rgb(50, 55, 80),
config_tab_active_bg: Color::Rgb(120, 180, 255),
config_tab_active_fg: Color::Rgb(22, 22, 30),
config_tab_inactive: Color::Rgb(150, 150, 170),
config_hint_key: Color::Rgb(230, 210, 120),
config_hint_desc: Color::Rgb(120, 120, 150),
config_toggle_on: Color::Rgb(120, 220, 160),
config_toggle_off: Color::Rgb(200, 100, 100),
config_dim: Color::Rgb(80, 80, 100),
config_api_key: Color::Rgb(100, 100, 120),
md_h1: Color::Rgb(100, 180, 255),
md_h2: Color::Rgb(130, 190, 255),
md_h3: Color::Rgb(160, 200, 255),
md_h4: Color::Rgb(180, 210, 255),
md_heading_sep: Color::Rgb(60, 70, 100),
md_inline_code_fg: Color::Rgb(230, 190, 120),
md_inline_code_bg: Color::Rgb(45, 45, 60),
md_list_bullet: Color::Rgb(100, 160, 255),
md_blockquote_bar: Color::Rgb(120, 160, 220),
md_blockquote_text: Color::Rgb(180, 190, 210),
md_blockquote_bg: Color::Rgb(32, 36, 52),
md_rule: Color::Rgb(70, 75, 90),
md_link: Color::Rgb(86, 156, 214),
code_border: Color::Rgb(80, 90, 110),
code_bg: Color::Rgb(30, 30, 42),
code_default: Color::Rgb(171, 178, 191),
code_keyword: Color::Rgb(198, 120, 221),
code_string: Color::Rgb(152, 195, 121),
code_comment: Color::Rgb(92, 99, 112),
code_number: Color::Rgb(209, 154, 102),
code_type: Color::Rgb(229, 192, 123),
code_primitive: Color::Rgb(86, 182, 194),
code_macro: Color::Rgb(97, 175, 239),
code_attribute: Color::Rgb(86, 182, 194),
code_lifetime: Color::Rgb(229, 192, 123),
code_shell_var: Color::Rgb(86, 182, 194),
table_border: Color::Rgb(60, 70, 100),
table_header: Color::Rgb(120, 180, 255),
table_body: Color::Rgb(180, 180, 200),
help_title: Color::Rgb(120, 180, 255),
help_key: Color::Rgb(230, 210, 120),
help_desc: Color::Rgb(200, 200, 220),
help_path: Color::Rgb(100, 100, 130),
help_bg: Color::Rgb(24, 24, 34),
diff_add: Color::Rgb(80, 200, 80),
diff_del: Color::Rgb(220, 80, 80),
diff_header: Color::Rgb(100, 180, 220),
}
}
pub fn dark() -> Self {
Self {
bg_primary: Color::Rgb(30, 30, 30),
bg_title: Color::Rgb(37, 37, 38),
bg_input: Color::Rgb(37, 37, 38),
bg_panel: Color::Rgb(37, 37, 38),
border_title: Color::Rgb(70, 70, 70),
border_message: Color::Rgb(55, 55, 55),
border_input: Color::Rgb(55, 80, 55),
border_input_loading: Color::Rgb(120, 100, 50),
border_config: Color::Rgb(70, 70, 70),
separator: Color::Rgb(55, 55, 55),
bubble_ai: Color::Rgb(34, 34, 34),
bubble_ai_selected: Color::Rgb(255, 255, 255),
bubble_user: Color::Rgb(38, 65, 110),
bubble_user_selected: Color::Rgb(255, 255, 255),
label_ai: Color::Rgb(80, 200, 120),
label_user: Color::Rgb(80, 150, 240),
label_selected: Color::Rgb(255, 200, 80),
text_normal: Color::Rgb(212, 212, 212),
text_bold: Color::Rgb(210, 240, 220),
text_dim: Color::Rgb(128, 128, 128),
text_very_dim: Color::Rgb(80, 80, 80),
text_white: Color::White,
text_system: Color::Rgb(100, 100, 100),
title_icon: Color::Rgb(100, 160, 240),
title_separator: Color::Rgb(60, 60, 60),
title_model: Color::Rgb(140, 200, 140),
title_count: Color::Rgb(170, 170, 170),
title_loading: Color::Rgb(255, 200, 80),
input_prompt: Color::Rgb(80, 180, 100),
input_prompt_loading: Color::Rgb(255, 200, 80),
cursor_fg: Color::Rgb(30, 30, 30),
cursor_bg: Color::Rgb(200, 200, 200),
hint_key_fg: Color::Rgb(30, 30, 30),
hint_key_bg: Color::Rgb(100, 100, 100),
hint_desc: Color::Rgb(128, 128, 128),
hint_separator: Color::Rgb(50, 50, 50),
toast_success_border: Color::Rgb(60, 160, 80),
toast_success_bg: Color::Rgb(20, 40, 25),
toast_success_text: Color::Rgb(140, 230, 160),
toast_error_border: Color::Rgb(200, 70, 70),
toast_error_bg: Color::Rgb(50, 20, 20),
toast_error_text: Color::Rgb(255, 130, 130),
tool_confirm_border: Color::Rgb(200, 180, 80),
tool_confirm_bg: Color::Rgb(40, 35, 20),
tool_confirm_title: Color::Rgb(255, 220, 100),
tool_confirm_name: Color::Rgb(255, 220, 100),
tool_confirm_text: Color::Rgb(212, 212, 212),
tool_confirm_label: Color::Rgb(128, 128, 128),
tool_confirm_hint: Color::Rgb(170, 170, 170),
welcome_border: Color::Rgb(60, 60, 60),
welcome_text: Color::Rgb(120, 140, 180),
welcome_hint: Color::Rgb(80, 80, 80),
welcome_quote: Color::Rgb(140, 160, 200),
welcome_palette: 1,
model_sel_border: Color::Rgb(180, 160, 80),
model_sel_title: Color::Rgb(230, 210, 120),
model_sel_active: Color::Rgb(80, 200, 120),
model_sel_inactive: Color::Rgb(170, 170, 170),
model_sel_highlight_bg: Color::Rgb(50, 50, 60),
model_sel_highlight_fg: Color::Rgb(255, 220, 120),
config_title: Color::Rgb(100, 160, 240),
config_section: Color::Rgb(140, 200, 140),
config_pointer: Color::Rgb(255, 200, 80),
config_label_selected: Color::Rgb(230, 210, 120),
config_label: Color::Rgb(128, 128, 128),
config_value: Color::Rgb(170, 170, 170),
config_edit_bg: Color::Rgb(50, 50, 60),
config_tab_active_bg: Color::Rgb(100, 160, 240),
config_tab_active_fg: Color::Rgb(30, 30, 30),
config_tab_inactive: Color::Rgb(140, 140, 140),
config_hint_key: Color::Rgb(230, 210, 120),
config_hint_desc: Color::Rgb(128, 128, 128),
config_toggle_on: Color::Rgb(80, 200, 120),
config_toggle_off: Color::Rgb(200, 100, 100),
config_dim: Color::Rgb(80, 80, 80),
config_api_key: Color::Rgb(100, 100, 100),
md_h1: Color::Rgb(80, 160, 240),
md_h2: Color::Rgb(100, 170, 240),
md_h3: Color::Rgb(120, 180, 240),
md_h4: Color::Rgb(140, 190, 240),
md_heading_sep: Color::Rgb(60, 60, 80),
md_inline_code_fg: Color::Rgb(220, 180, 110),
md_inline_code_bg: Color::Rgb(50, 50, 60),
md_list_bullet: Color::Rgb(80, 150, 240),
md_blockquote_bar: Color::Rgb(100, 140, 200),
md_blockquote_text: Color::Rgb(175, 175, 195),
md_blockquote_bg: Color::Rgb(36, 38, 52),
md_rule: Color::Rgb(70, 70, 80),
md_link: Color::Rgb(86, 156, 214),
code_border: Color::Rgb(90, 90, 105),
code_bg: Color::Rgb(25, 25, 30),
code_default: Color::Rgb(212, 212, 212),
code_keyword: Color::Rgb(198, 120, 221),
code_string: Color::Rgb(152, 195, 121),
code_comment: Color::Rgb(106, 115, 125),
code_number: Color::Rgb(209, 154, 102),
code_type: Color::Rgb(229, 192, 123),
code_primitive: Color::Rgb(86, 182, 194),
code_macro: Color::Rgb(97, 175, 239),
code_attribute: Color::Rgb(86, 182, 194),
code_lifetime: Color::Rgb(229, 192, 123),
code_shell_var: Color::Rgb(86, 182, 194),
table_border: Color::Rgb(60, 60, 80),
table_header: Color::Rgb(80, 160, 240),
table_body: Color::Rgb(170, 170, 170),
help_title: Color::Rgb(100, 160, 240),
help_key: Color::Rgb(230, 210, 120),
help_desc: Color::Rgb(200, 200, 200),
help_path: Color::Rgb(100, 100, 100),
help_bg: Color::Rgb(37, 37, 38),
diff_add: Color::Rgb(80, 200, 80),
diff_del: Color::Rgb(220, 80, 80),
diff_header: Color::Rgb(100, 180, 220),
}
}
pub fn light() -> Self {
Self {
bg_primary: Color::Rgb(255, 255, 255),
bg_title: Color::Rgb(243, 243, 243),
bg_input: Color::Rgb(250, 250, 252),
bg_panel: Color::Rgb(248, 248, 250),
border_title: Color::Rgb(200, 200, 210),
border_message: Color::Rgb(220, 220, 230),
border_input: Color::Rgb(100, 180, 100),
border_input_loading: Color::Rgb(200, 160, 60),
border_config: Color::Rgb(190, 190, 200),
separator: Color::Rgb(220, 220, 230),
bubble_ai: Color::Rgb(248, 248, 252),
bubble_ai_selected: Color::Rgb(230, 240, 255),
bubble_user: Color::Rgb(220, 235, 255),
bubble_user_selected: Color::Rgb(200, 225, 255),
label_ai: Color::Rgb(34, 139, 80),
label_user: Color::Rgb(25, 100, 210),
label_selected: Color::Rgb(180, 120, 20),
text_normal: Color::Rgb(45, 45, 55),
text_bold: Color::Rgb(30, 80, 50),
text_dim: Color::Rgb(110, 110, 130),
text_very_dim: Color::Rgb(160, 160, 175),
text_white: Color::Rgb(45, 45, 55),
text_system: Color::Rgb(130, 130, 150),
title_icon: Color::Rgb(30, 100, 200),
title_separator: Color::Rgb(210, 210, 220),
title_model: Color::Rgb(34, 139, 80),
title_count: Color::Rgb(100, 100, 115),
title_loading: Color::Rgb(200, 140, 30),
input_prompt: Color::Rgb(34, 139, 80),
input_prompt_loading: Color::Rgb(200, 140, 30),
cursor_fg: Color::Rgb(255, 255, 255),
cursor_bg: Color::Rgb(50, 100, 200),
hint_key_fg: Color::Rgb(255, 255, 255),
hint_key_bg: Color::Rgb(90, 100, 120),
hint_desc: Color::Rgb(100, 100, 115),
hint_separator: Color::Rgb(200, 200, 210),
toast_success_border: Color::Rgb(50, 160, 75),
toast_success_bg: Color::Rgb(235, 255, 240),
toast_success_text: Color::Rgb(25, 100, 50),
toast_error_border: Color::Rgb(200, 60, 60),
toast_error_bg: Color::Rgb(255, 240, 240),
toast_error_text: Color::Rgb(160, 25, 25),
tool_confirm_border: Color::Rgb(210, 160, 50),
tool_confirm_bg: Color::Rgb(255, 252, 240),
tool_confirm_title: Color::Rgb(180, 100, 20),
tool_confirm_name: Color::Rgb(140, 90, 180),
tool_confirm_text: Color::Rgb(45, 45, 55),
tool_confirm_label: Color::Rgb(100, 100, 120),
tool_confirm_hint: Color::Rgb(70, 70, 90),
welcome_border: Color::Rgb(180, 190, 210),
welcome_text: Color::Rgb(55, 80, 140),
welcome_hint: Color::Rgb(130, 140, 160),
welcome_quote: Color::Rgb(80, 110, 170),
welcome_palette: 2,
model_sel_border: Color::Rgb(180, 150, 70),
model_sel_title: Color::Rgb(140, 100, 30),
model_sel_active: Color::Rgb(34, 139, 80),
model_sel_inactive: Color::Rgb(100, 100, 115),
model_sel_highlight_bg: Color::Rgb(200, 220, 250),
model_sel_highlight_fg: Color::Rgb(25, 50, 120),
config_title: Color::Rgb(30, 100, 200),
config_section: Color::Rgb(34, 139, 80),
config_pointer: Color::Rgb(200, 140, 30),
config_label_selected: Color::Rgb(140, 100, 30),
config_label: Color::Rgb(100, 100, 115),
config_value: Color::Rgb(60, 60, 75),
config_edit_bg: Color::Rgb(235, 240, 250),
config_tab_active_bg: Color::Rgb(30, 100, 200),
config_tab_active_fg: Color::Rgb(255, 255, 255),
config_tab_inactive: Color::Rgb(110, 110, 130),
config_hint_key: Color::Rgb(140, 100, 30),
config_hint_desc: Color::Rgb(100, 100, 115),
config_toggle_on: Color::Rgb(34, 139, 80),
config_toggle_off: Color::Rgb(200, 75, 75),
config_dim: Color::Rgb(160, 160, 175),
config_api_key: Color::Rgb(140, 140, 155),
md_h1: Color::Rgb(25, 80, 180),
md_h2: Color::Rgb(35, 100, 200),
md_h3: Color::Rgb(45, 115, 210),
md_h4: Color::Rgb(55, 125, 220),
md_heading_sep: Color::Rgb(180, 185, 200),
md_inline_code_fg: Color::Rgb(165, 75, 25),
md_inline_code_bg: Color::Rgb(248, 244, 235),
md_list_bullet: Color::Rgb(25, 100, 200),
md_blockquote_bar: Color::Rgb(80, 110, 170),
md_blockquote_text: Color::Rgb(60, 70, 95),
md_blockquote_bg: Color::Rgb(240, 236, 225),
md_rule: Color::Rgb(195, 200, 215),
md_link: Color::Rgb(0, 102, 204),
code_border: Color::Rgb(175, 180, 195),
code_bg: Color::Rgb(243, 243, 248),
code_default: Color::Rgb(45, 45, 55),
code_keyword: Color::Rgb(175, 0, 219),
code_string: Color::Rgb(163, 21, 21),
code_comment: Color::Rgb(0, 128, 0),
code_number: Color::Rgb(9, 134, 88),
code_type: Color::Rgb(38, 127, 153),
code_primitive: Color::Rgb(0, 112, 193),
code_macro: Color::Rgb(121, 94, 38),
code_attribute: Color::Rgb(0, 112, 193),
code_lifetime: Color::Rgb(38, 127, 153),
code_shell_var: Color::Rgb(0, 112, 193),
table_border: Color::Rgb(185, 195, 210),
table_header: Color::Rgb(25, 80, 180),
table_body: Color::Rgb(60, 60, 75),
help_title: Color::Rgb(30, 100, 200),
help_key: Color::Rgb(140, 100, 30),
help_desc: Color::Rgb(50, 50, 60),
help_path: Color::Rgb(110, 110, 130),
help_bg: Color::Rgb(248, 248, 250),
diff_add: Color::Rgb(25, 150, 35),
diff_del: Color::Rgb(200, 45, 45),
diff_header: Color::Rgb(40, 120, 180),
}
}
pub fn nord() -> Self {
Self {
bg_primary: Color::Rgb(46, 52, 64), bg_title: Color::Rgb(59, 66, 82), bg_input: Color::Rgb(59, 66, 82), bg_panel: Color::Rgb(59, 66, 82),
border_title: Color::Rgb(76, 86, 106), border_message: Color::Rgb(67, 76, 94), border_input: Color::Rgb(76, 86, 106), border_input_loading: Color::Rgb(235, 203, 139), border_config: Color::Rgb(76, 86, 106), separator: Color::Rgb(67, 76, 94),
bubble_ai: Color::Rgb(50, 56, 68),
bubble_ai_selected: Color::Rgb(255, 255, 255),
bubble_user: Color::Rgb(52, 75, 110),
bubble_user_selected: Color::Rgb(255, 255, 255),
label_ai: Color::Rgb(163, 190, 140), label_user: Color::Rgb(129, 161, 193), label_selected: Color::Rgb(235, 203, 139),
text_normal: Color::Rgb(216, 222, 233), text_bold: Color::Rgb(210, 235, 220),
text_dim: Color::Rgb(128, 140, 160),
text_very_dim: Color::Rgb(76, 86, 106), text_white: Color::Rgb(236, 239, 244), text_system: Color::Rgb(100, 112, 130),
title_icon: Color::Rgb(136, 192, 208), title_separator: Color::Rgb(67, 76, 94), title_model: Color::Rgb(163, 190, 140), title_count: Color::Rgb(178, 186, 202),
title_loading: Color::Rgb(235, 203, 139),
input_prompt: Color::Rgb(163, 190, 140), input_prompt_loading: Color::Rgb(235, 203, 139), cursor_fg: Color::Rgb(46, 52, 64), cursor_bg: Color::Rgb(216, 222, 233),
hint_key_fg: Color::Rgb(46, 52, 64), hint_key_bg: Color::Rgb(76, 86, 106), hint_desc: Color::Rgb(128, 140, 160),
hint_separator: Color::Rgb(59, 66, 82),
toast_success_border: Color::Rgb(163, 190, 140), toast_success_bg: Color::Rgb(50, 60, 55),
toast_success_text: Color::Rgb(163, 190, 140),
toast_error_border: Color::Rgb(191, 97, 106), toast_error_bg: Color::Rgb(60, 50, 52),
toast_error_text: Color::Rgb(191, 97, 106),
tool_confirm_border: Color::Rgb(235, 203, 139), tool_confirm_bg: Color::Rgb(52, 58, 70),
tool_confirm_title: Color::Rgb(235, 203, 139),
tool_confirm_name: Color::Rgb(235, 203, 139),
tool_confirm_text: Color::Rgb(216, 222, 233), tool_confirm_label: Color::Rgb(128, 140, 160),
tool_confirm_hint: Color::Rgb(178, 186, 202),
welcome_border: Color::Rgb(76, 86, 106), welcome_text: Color::Rgb(136, 192, 208), welcome_hint: Color::Rgb(100, 112, 130),
welcome_quote: Color::Rgb(143, 188, 187), welcome_palette: 3,
model_sel_border: Color::Rgb(235, 203, 139), model_sel_title: Color::Rgb(235, 203, 139),
model_sel_active: Color::Rgb(163, 190, 140), model_sel_inactive: Color::Rgb(178, 186, 202),
model_sel_highlight_bg: Color::Rgb(67, 76, 94), model_sel_highlight_fg: Color::Rgb(216, 222, 233),
config_title: Color::Rgb(129, 161, 193), config_section: Color::Rgb(163, 190, 140), config_pointer: Color::Rgb(235, 203, 139), config_label_selected: Color::Rgb(235, 203, 139),
config_label: Color::Rgb(128, 140, 160),
config_value: Color::Rgb(178, 186, 202),
config_edit_bg: Color::Rgb(67, 76, 94), config_tab_active_bg: Color::Rgb(129, 161, 193), config_tab_active_fg: Color::Rgb(46, 52, 64), config_tab_inactive: Color::Rgb(128, 140, 160),
config_hint_key: Color::Rgb(235, 203, 139),
config_hint_desc: Color::Rgb(128, 140, 160),
config_toggle_on: Color::Rgb(163, 190, 140), config_toggle_off: Color::Rgb(191, 97, 106), config_dim: Color::Rgb(76, 86, 106), config_api_key: Color::Rgb(100, 112, 130),
md_h1: Color::Rgb(136, 192, 208), md_h2: Color::Rgb(129, 161, 193), md_h3: Color::Rgb(143, 188, 187), md_h4: Color::Rgb(178, 186, 202),
md_heading_sep: Color::Rgb(67, 76, 94), md_inline_code_fg: Color::Rgb(235, 203, 139), md_inline_code_bg: Color::Rgb(59, 66, 82), md_list_bullet: Color::Rgb(129, 161, 193), md_blockquote_bar: Color::Rgb(129, 161, 193), md_blockquote_text: Color::Rgb(178, 186, 202),
md_blockquote_bg: Color::Rgb(52, 58, 72),
md_rule: Color::Rgb(67, 76, 94), md_link: Color::Rgb(136, 192, 208),
code_border: Color::Rgb(94, 104, 124), code_bg: Color::Rgb(38, 43, 55), code_default: Color::Rgb(216, 222, 233), code_keyword: Color::Rgb(180, 142, 173), code_string: Color::Rgb(163, 190, 140), code_comment: Color::Rgb(97, 110, 128),
code_number: Color::Rgb(208, 135, 112), code_type: Color::Rgb(235, 203, 139), code_primitive: Color::Rgb(143, 188, 187), code_macro: Color::Rgb(136, 192, 208), code_attribute: Color::Rgb(143, 188, 187), code_lifetime: Color::Rgb(235, 203, 139), code_shell_var: Color::Rgb(143, 188, 187),
table_border: Color::Rgb(67, 76, 94), table_header: Color::Rgb(136, 192, 208), table_body: Color::Rgb(178, 186, 202),
help_title: Color::Rgb(136, 192, 208), help_key: Color::Rgb(235, 203, 139), help_desc: Color::Rgb(216, 222, 233), help_path: Color::Rgb(100, 112, 130),
help_bg: Color::Rgb(59, 66, 82), diff_add: Color::Rgb(163, 190, 140), diff_del: Color::Rgb(191, 97, 106), diff_header: Color::Rgb(136, 192, 208), }
}
pub fn monokai() -> Self {
Self {
bg_primary: Color::Rgb(39, 40, 34),
bg_title: Color::Rgb(49, 50, 44),
bg_input: Color::Rgb(49, 50, 44),
bg_panel: Color::Rgb(49, 50, 44),
border_title: Color::Rgb(80, 80, 70),
border_message: Color::Rgb(65, 65, 55),
border_input: Color::Rgb(80, 80, 70),
border_input_loading: Color::Rgb(230, 219, 116), border_config: Color::Rgb(80, 80, 70),
separator: Color::Rgb(65, 65, 55),
bubble_ai: Color::Rgb(43, 44, 38),
bubble_ai_selected: Color::Rgb(255, 255, 255),
bubble_user: Color::Rgb(55, 65, 90),
bubble_user_selected: Color::Rgb(255, 255, 255),
label_ai: Color::Rgb(166, 226, 46), label_user: Color::Rgb(102, 217, 239), label_selected: Color::Rgb(230, 219, 116),
text_normal: Color::Rgb(248, 248, 242), text_bold: Color::Rgb(215, 245, 225),
text_dim: Color::Rgb(140, 140, 130),
text_very_dim: Color::Rgb(90, 90, 80),
text_white: Color::Rgb(248, 248, 242),
text_system: Color::Rgb(117, 113, 94),
title_icon: Color::Rgb(102, 217, 239), title_separator: Color::Rgb(65, 65, 55),
title_model: Color::Rgb(166, 226, 46), title_count: Color::Rgb(190, 190, 180),
title_loading: Color::Rgb(230, 219, 116),
input_prompt: Color::Rgb(166, 226, 46), input_prompt_loading: Color::Rgb(230, 219, 116),
cursor_fg: Color::Rgb(39, 40, 34),
cursor_bg: Color::Rgb(248, 248, 242),
hint_key_fg: Color::Rgb(39, 40, 34),
hint_key_bg: Color::Rgb(117, 113, 94),
hint_desc: Color::Rgb(140, 140, 130),
hint_separator: Color::Rgb(55, 55, 45),
toast_success_border: Color::Rgb(166, 226, 46),
toast_success_bg: Color::Rgb(45, 55, 38),
toast_success_text: Color::Rgb(166, 226, 46),
toast_error_border: Color::Rgb(249, 38, 114), toast_error_bg: Color::Rgb(60, 38, 42),
toast_error_text: Color::Rgb(249, 38, 114),
tool_confirm_border: Color::Rgb(230, 219, 116), tool_confirm_bg: Color::Rgb(50, 48, 38),
tool_confirm_title: Color::Rgb(230, 219, 116),
tool_confirm_name: Color::Rgb(230, 219, 116),
tool_confirm_text: Color::Rgb(248, 248, 242),
tool_confirm_label: Color::Rgb(140, 140, 130),
tool_confirm_hint: Color::Rgb(190, 190, 180),
welcome_border: Color::Rgb(80, 80, 70),
welcome_text: Color::Rgb(102, 217, 239), welcome_hint: Color::Rgb(100, 100, 90),
welcome_quote: Color::Rgb(230, 219, 116), welcome_palette: 4,
model_sel_border: Color::Rgb(230, 219, 116),
model_sel_title: Color::Rgb(230, 219, 116),
model_sel_active: Color::Rgb(166, 226, 46),
model_sel_inactive: Color::Rgb(190, 190, 180),
model_sel_highlight_bg: Color::Rgb(60, 62, 54),
model_sel_highlight_fg: Color::Rgb(235, 219, 178),
config_title: Color::Rgb(102, 217, 239),
config_section: Color::Rgb(166, 226, 46),
config_pointer: Color::Rgb(230, 219, 116),
config_label_selected: Color::Rgb(230, 219, 116),
config_label: Color::Rgb(140, 140, 130),
config_value: Color::Rgb(190, 190, 180),
config_edit_bg: Color::Rgb(60, 62, 54),
config_tab_active_bg: Color::Rgb(102, 217, 239),
config_tab_active_fg: Color::Rgb(39, 40, 34),
config_tab_inactive: Color::Rgb(140, 140, 130),
config_hint_key: Color::Rgb(230, 219, 116),
config_hint_desc: Color::Rgb(140, 140, 130),
config_toggle_on: Color::Rgb(166, 226, 46),
config_toggle_off: Color::Rgb(249, 38, 114),
config_dim: Color::Rgb(90, 90, 80),
config_api_key: Color::Rgb(100, 100, 90),
md_h1: Color::Rgb(249, 38, 114), md_h2: Color::Rgb(102, 217, 239), md_h3: Color::Rgb(166, 226, 46), md_h4: Color::Rgb(230, 219, 116), md_heading_sep: Color::Rgb(80, 80, 70),
md_inline_code_fg: Color::Rgb(230, 219, 116), md_inline_code_bg: Color::Rgb(55, 55, 45),
md_list_bullet: Color::Rgb(249, 38, 114), md_blockquote_bar: Color::Rgb(230, 219, 116), md_blockquote_text: Color::Rgb(190, 185, 170),
md_blockquote_bg: Color::Rgb(48, 48, 38),
md_rule: Color::Rgb(80, 80, 70),
md_link: Color::Rgb(102, 217, 239),
code_border: Color::Rgb(100, 100, 88),
code_bg: Color::Rgb(33, 34, 28),
code_default: Color::Rgb(248, 248, 242), code_keyword: Color::Rgb(249, 38, 114), code_string: Color::Rgb(230, 219, 116), code_comment: Color::Rgb(117, 113, 94), code_number: Color::Rgb(174, 129, 255), code_type: Color::Rgb(166, 226, 46), code_primitive: Color::Rgb(102, 217, 239), code_macro: Color::Rgb(102, 217, 239), code_attribute: Color::Rgb(166, 226, 46), code_lifetime: Color::Rgb(174, 129, 255), code_shell_var: Color::Rgb(102, 217, 239),
table_border: Color::Rgb(80, 80, 70),
table_header: Color::Rgb(102, 217, 239),
table_body: Color::Rgb(190, 190, 180),
help_title: Color::Rgb(102, 217, 239),
help_key: Color::Rgb(230, 219, 116),
help_desc: Color::Rgb(248, 248, 242),
help_path: Color::Rgb(117, 113, 94),
help_bg: Color::Rgb(49, 50, 44),
diff_add: Color::Rgb(166, 226, 46), diff_del: Color::Rgb(249, 38, 114), diff_header: Color::Rgb(102, 217, 239), }
}
pub fn anthropic_light() -> Self {
Self {
bg_primary: Color::Rgb(250, 246, 241), bg_title: Color::Rgb(237, 228, 216), bg_input: Color::Rgb(245, 240, 234), bg_panel: Color::Rgb(240, 235, 228),
border_title: Color::Rgb(204, 120, 92), border_message: Color::Rgb(221, 212, 200), border_input: Color::Rgb(74, 122, 80), border_input_loading: Color::Rgb(160, 120, 48), border_config: Color::Rgb(138, 126, 114), separator: Color::Rgb(221, 212, 200),
bubble_ai: Color::Rgb(245, 240, 234),
bubble_ai_selected: Color::Rgb(237, 228, 216),
bubble_user: Color::Rgb(232, 240, 248),
bubble_user_selected: Color::Rgb(213, 229, 245),
label_ai: Color::Rgb(56, 104, 62), label_user: Color::Rgb(45, 85, 150), label_selected: Color::Rgb(138, 98, 26),
text_normal: Color::Rgb(26, 22, 18), text_bold: Color::Rgb(26, 22, 18),
text_dim: Color::Rgb(107, 94, 82), text_very_dim: Color::Rgb(138, 126, 114), text_white: Color::Rgb(26, 22, 18),
text_system: Color::Rgb(118, 106, 94),
title_icon: Color::Rgb(178, 78, 48), title_separator: Color::Rgb(221, 212, 200),
title_model: Color::Rgb(52, 102, 58), title_count: Color::Rgb(88, 76, 66),
title_loading: Color::Rgb(146, 106, 34),
input_prompt: Color::Rgb(74, 122, 80),
input_prompt_loading: Color::Rgb(160, 120, 48),
cursor_fg: Color::Rgb(250, 246, 241),
cursor_bg: Color::Rgb(26, 22, 18),
hint_key_fg: Color::Rgb(250, 246, 241),
hint_key_bg: Color::Rgb(107, 94, 82), hint_desc: Color::Rgb(107, 94, 82),
hint_separator: Color::Rgb(221, 212, 200),
toast_success_border: Color::Rgb(74, 122, 80),
toast_success_bg: Color::Rgb(232, 245, 234),
toast_success_text: Color::Rgb(42, 90, 48),
toast_error_border: Color::Rgb(177, 64, 64), toast_error_bg: Color::Rgb(250, 234, 234),
toast_error_text: Color::Rgb(128, 32, 32),
tool_confirm_border: Color::Rgb(160, 120, 48), tool_confirm_bg: Color::Rgb(253, 248, 240),
tool_confirm_title: Color::Rgb(122, 88, 32),
tool_confirm_name: Color::Rgb(122, 94, 160), tool_confirm_text: Color::Rgb(26, 22, 18),
tool_confirm_label: Color::Rgb(107, 94, 82),
tool_confirm_hint: Color::Rgb(74, 62, 54),
welcome_border: Color::Rgb(208, 198, 186),
welcome_text: Color::Rgb(45, 85, 150),
welcome_hint: Color::Rgb(120, 108, 96),
welcome_quote: Color::Rgb(122, 94, 160), welcome_palette: 6,
model_sel_border: Color::Rgb(146, 106, 34),
model_sel_title: Color::Rgb(108, 76, 24),
model_sel_active: Color::Rgb(48, 100, 54), model_sel_inactive: Color::Rgb(82, 70, 60), model_sel_highlight_bg: Color::Rgb(224, 214, 200),
model_sel_highlight_fg: Color::Rgb(26, 22, 18),
config_title: Color::Rgb(45, 85, 150), config_section: Color::Rgb(48, 100, 54), config_pointer: Color::Rgb(178, 82, 50), config_label_selected: Color::Rgb(108, 76, 24),
config_label: Color::Rgb(86, 74, 64), config_value: Color::Rgb(48, 38, 30),
config_edit_bg: Color::Rgb(224, 214, 200),
config_tab_active_bg: Color::Rgb(178, 82, 50), config_tab_active_fg: Color::Rgb(255, 255, 255),
config_tab_inactive: Color::Rgb(82, 70, 60),
config_hint_key: Color::Rgb(108, 76, 24),
config_hint_desc: Color::Rgb(86, 74, 64),
config_toggle_on: Color::Rgb(48, 100, 54),
config_toggle_off: Color::Rgb(160, 50, 50),
config_dim: Color::Rgb(130, 118, 106),
config_api_key: Color::Rgb(130, 118, 106),
md_h1: Color::Rgb(160, 74, 46), md_h2: Color::Rgb(178, 92, 64), md_h3: Color::Rgb(45, 85, 150), md_h4: Color::Rgb(98, 72, 138), md_heading_sep: Color::Rgb(208, 198, 186),
md_inline_code_fg: Color::Rgb(140, 100, 30), md_inline_code_bg: Color::Rgb(242, 234, 216),
md_list_bullet: Color::Rgb(178, 92, 64), md_blockquote_bar: Color::Rgb(45, 85, 150),
md_blockquote_text: Color::Rgb(64, 52, 44),
md_blockquote_bg: Color::Rgb(234, 228, 220),
md_rule: Color::Rgb(208, 198, 186),
md_link: Color::Rgb(160, 74, 46),
code_border: Color::Rgb(185, 172, 155),
code_bg: Color::Rgb(235, 228, 214),
code_default: Color::Rgb(26, 22, 18),
code_keyword: Color::Rgb(98, 72, 138), code_string: Color::Rgb(48, 100, 54), code_comment: Color::Rgb(130, 118, 106), code_number: Color::Rgb(140, 100, 30), code_type: Color::Rgb(38, 98, 92), code_primitive: Color::Rgb(45, 85, 150), code_macro: Color::Rgb(160, 74, 46), code_attribute: Color::Rgb(38, 98, 92),
code_lifetime: Color::Rgb(140, 100, 30),
code_shell_var: Color::Rgb(45, 85, 150),
table_border: Color::Rgb(208, 198, 186),
table_header: Color::Rgb(178, 92, 64), table_body: Color::Rgb(48, 38, 30),
help_title: Color::Rgb(178, 92, 64),
help_key: Color::Rgb(140, 100, 30),
help_desc: Color::Rgb(26, 22, 18),
help_path: Color::Rgb(120, 108, 96),
help_bg: Color::Rgb(250, 246, 241),
diff_add: Color::Rgb(48, 100, 54), diff_del: Color::Rgb(160, 50, 50), diff_header: Color::Rgb(45, 85, 150), }
}
pub fn anthropic_dark() -> Self {
Self {
bg_primary: Color::Rgb(34, 36, 54), bg_title: Color::Rgb(30, 32, 48), bg_input: Color::Rgb(47, 51, 77), bg_panel: Color::Rgb(30, 32, 48),
border_title: Color::Rgb(130, 170, 255), border_message: Color::Rgb(47, 51, 77), border_input: Color::Rgb(195, 232, 141), border_input_loading: Color::Rgb(255, 199, 119), border_config: Color::Rgb(68, 74, 115), separator: Color::Rgb(47, 51, 77),
bubble_ai: Color::Rgb(30, 32, 48),
bubble_ai_selected: Color::Rgb(45, 63, 118), bubble_user: Color::Rgb(45, 63, 118),
bubble_user_selected: Color::Rgb(58, 80, 144),
label_ai: Color::Rgb(195, 232, 141), label_user: Color::Rgb(130, 170, 255), label_selected: Color::Rgb(255, 199, 119),
text_normal: Color::Rgb(200, 211, 245), text_bold: Color::Rgb(200, 211, 245),
text_dim: Color::Rgb(130, 139, 184), text_very_dim: Color::Rgb(68, 74, 115), text_white: Color::Rgb(200, 211, 245),
text_system: Color::Rgb(68, 74, 115),
title_icon: Color::Rgb(130, 170, 255),
title_separator: Color::Rgb(47, 51, 77),
title_model: Color::Rgb(195, 232, 141),
title_count: Color::Rgb(130, 139, 184),
title_loading: Color::Rgb(255, 199, 119),
input_prompt: Color::Rgb(195, 232, 141),
input_prompt_loading: Color::Rgb(255, 199, 119),
cursor_fg: Color::Rgb(34, 36, 54),
cursor_bg: Color::Rgb(0, 170, 255),
hint_key_fg: Color::Rgb(30, 32, 48),
hint_key_bg: Color::Rgb(130, 139, 184), hint_desc: Color::Rgb(130, 139, 184),
hint_separator: Color::Rgb(47, 51, 77),
toast_success_border: Color::Rgb(195, 232, 141),
toast_success_bg: Color::Rgb(26, 42, 32),
toast_success_text: Color::Rgb(195, 232, 141),
toast_error_border: Color::Rgb(255, 117, 127), toast_error_bg: Color::Rgb(42, 26, 30),
toast_error_text: Color::Rgb(255, 117, 127),
tool_confirm_border: Color::Rgb(255, 199, 119), tool_confirm_bg: Color::Rgb(35, 37, 56),
tool_confirm_title: Color::Rgb(255, 199, 119),
tool_confirm_name: Color::Rgb(192, 153, 255), tool_confirm_text: Color::Rgb(200, 211, 245),
tool_confirm_label: Color::Rgb(130, 139, 184),
tool_confirm_hint: Color::Rgb(130, 139, 184),
welcome_border: Color::Rgb(68, 74, 115),
welcome_text: Color::Rgb(130, 170, 255),
welcome_hint: Color::Rgb(68, 74, 115),
welcome_quote: Color::Rgb(192, 153, 255), welcome_palette: 7,
model_sel_border: Color::Rgb(255, 199, 119),
model_sel_title: Color::Rgb(255, 199, 119),
model_sel_active: Color::Rgb(195, 232, 141),
model_sel_inactive: Color::Rgb(130, 139, 184),
model_sel_highlight_bg: Color::Rgb(45, 63, 118),
model_sel_highlight_fg: Color::Rgb(200, 211, 245),
config_title: Color::Rgb(130, 170, 255),
config_section: Color::Rgb(195, 232, 141),
config_pointer: Color::Rgb(255, 150, 108), config_label_selected: Color::Rgb(255, 199, 119),
config_label: Color::Rgb(130, 139, 184),
config_value: Color::Rgb(200, 211, 245),
config_edit_bg: Color::Rgb(45, 63, 118),
config_tab_active_bg: Color::Rgb(130, 170, 255),
config_tab_active_fg: Color::Rgb(30, 32, 48),
config_tab_inactive: Color::Rgb(130, 139, 184),
config_hint_key: Color::Rgb(255, 199, 119),
config_hint_desc: Color::Rgb(130, 139, 184),
config_toggle_on: Color::Rgb(195, 232, 141),
config_toggle_off: Color::Rgb(255, 117, 127),
config_dim: Color::Rgb(68, 74, 115),
config_api_key: Color::Rgb(68, 74, 115),
md_h1: Color::Rgb(130, 170, 255), md_h2: Color::Rgb(79, 214, 190), md_h3: Color::Rgb(192, 153, 255), md_h4: Color::Rgb(134, 225, 252), md_heading_sep: Color::Rgb(47, 51, 77),
md_inline_code_fg: Color::Rgb(255, 199, 119), md_inline_code_bg: Color::Rgb(30, 32, 48),
md_list_bullet: Color::Rgb(130, 170, 255),
md_blockquote_bar: Color::Rgb(134, 225, 252),
md_blockquote_text: Color::Rgb(130, 139, 184),
md_blockquote_bg: Color::Rgb(30, 32, 48),
md_rule: Color::Rgb(47, 51, 77),
md_link: Color::Rgb(79, 214, 190),
code_border: Color::Rgb(65, 72, 110),
code_bg: Color::Rgb(22, 24, 38), code_default: Color::Rgb(200, 211, 245),
code_keyword: Color::Rgb(192, 153, 255), code_string: Color::Rgb(195, 232, 141), code_comment: Color::Rgb(68, 74, 115), code_number: Color::Rgb(255, 150, 108), code_type: Color::Rgb(255, 199, 119), code_primitive: Color::Rgb(134, 225, 252), code_macro: Color::Rgb(130, 170, 255), code_attribute: Color::Rgb(134, 225, 252),
code_lifetime: Color::Rgb(255, 199, 119),
code_shell_var: Color::Rgb(134, 225, 252),
table_border: Color::Rgb(47, 51, 77),
table_header: Color::Rgb(130, 170, 255),
table_body: Color::Rgb(200, 211, 245),
help_title: Color::Rgb(130, 170, 255),
help_key: Color::Rgb(255, 199, 119),
help_desc: Color::Rgb(200, 211, 245),
help_path: Color::Rgb(68, 74, 115),
help_bg: Color::Rgb(30, 32, 48),
diff_add: Color::Rgb(195, 232, 141), diff_del: Color::Rgb(255, 117, 127), diff_header: Color::Rgb(134, 225, 252), }
}
}