ghostscope_ui/ui/
themes.rs

1use ratatui::style::{Color, Modifier, Style};
2
3/// UI theme definitions
4pub struct UIThemes;
5
6impl UIThemes {
7    // Panel styles
8    pub fn panel_focused() -> Style {
9        Style::default()
10            .fg(Color::Cyan)
11            .add_modifier(Modifier::BOLD)
12    }
13
14    pub fn panel_unfocused() -> Style {
15        Style::default().fg(Color::DarkGray)
16    }
17
18    // Text styles
19    pub fn success_text() -> Style {
20        Style::default().fg(Color::Green)
21    }
22
23    pub fn error_text() -> Style {
24        Style::default().fg(Color::Red)
25    }
26
27    pub fn warning_text() -> Style {
28        Style::default().fg(Color::Yellow)
29    }
30
31    pub fn info_text() -> Style {
32        Style::default().fg(Color::Blue)
33    }
34
35    pub fn progress_text() -> Style {
36        Style::default().fg(Color::Cyan)
37    }
38
39    // Mode indicators
40    pub fn input_mode() -> Style {
41        Style::default()
42            .fg(Color::Green)
43            .add_modifier(Modifier::BOLD)
44    }
45
46    pub fn command_mode() -> Style {
47        Style::default()
48            .fg(Color::Yellow)
49            .add_modifier(Modifier::BOLD)
50    }
51
52    pub fn script_mode() -> Style {
53        Style::default()
54            .fg(Color::Magenta)
55            .add_modifier(Modifier::BOLD)
56    }
57
58    // Cursor and selection
59    pub fn cursor_style() -> Style {
60        Style::reset().bg(Color::Blue).add_modifier(Modifier::BOLD)
61    }
62
63    pub fn selection_style() -> Style {
64        Style::default().bg(Color::Blue)
65    }
66}