1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
use ratatui::style::{Color, Modifier, Style};
/// UI styles used throughout the application with a cleaner, more modern palette
pub struct AppStyles;
impl AppStyles {
/// Primary color for the application
pub fn primary_color() -> Color {
Color::Rgb(86, 182, 194) // Soft teal
}
/// Secondary color for the application
pub fn secondary_color() -> Color {
Color::Rgb(240, 240, 240) // Almost white
}
/// Accent color for highlights and important elements
pub fn accent_color() -> Color {
Color::Rgb(95, 129, 157) // Soft blue
}
/// Background color for selected elements
pub fn selection_bg() -> Color {
Color::Rgb(45, 45, 45) // Dark gray
}
/// Style for title text
pub fn title() -> Style {
Style::default()
.fg(Self::primary_color())
.add_modifier(Modifier::BOLD)
}
/// Style for highlighted text
pub fn highlight() -> Style {
Style::default()
.fg(Self::accent_color())
.bg(Self::selection_bg())
}
/// Style for prompt symbol
pub fn prompt_symbol() -> Style {
Style::default()
.fg(Color::Blue)
.add_modifier(Modifier::BOLD)
}
/// Style for command highlight
pub fn command_highlight() -> Style {
Style::default()
.fg(Self::accent_color())
.add_modifier(Modifier::BOLD)
}
/// Style for error messages
pub fn error() -> Style {
Style::default().fg(Color::Rgb(225, 95, 95)) // Softer red
}
/// Style for success messages
pub fn success() -> Style {
Style::default().fg(Color::Rgb(142, 192, 124)) // Softer green
}
/// Style for user input/messages
pub fn user_input() -> Style {
Style::default().fg(Self::primary_color())
}
/// Style for status bar
pub fn status_bar() -> Style {
Style::default().fg(Color::Black).bg(Self::accent_color())
}
/// Style for thinking/processing state
#[allow(dead_code)]
pub fn thinking() -> Style {
Style::default()
.fg(Color::Rgb(240, 180, 100)) // Soft amber
.add_modifier(Modifier::ITALIC)
}
/// Style for hints and subtle text
pub fn hint() -> Style {
Style::default().fg(Color::Rgb(150, 150, 150)) // Medium gray
}
/// Style for the text cursor
#[allow(dead_code)]
pub fn cursor() -> Style {
Style::default()
.fg(Color::Black)
.bg(Self::primary_color())
.add_modifier(Modifier::BOLD)
}
/// Border style for panels
pub fn border() -> Style {
Style::default().fg(Color::Rgb(100, 100, 100)) // Subtle border
}
/// Style for section headers
pub fn section_header() -> Style {
Style::default()
.fg(Self::accent_color())
.add_modifier(Modifier::BOLD)
}
}