1use lazy_static::lazy_static;
2use ratatui::style::Color;
3
4#[derive(Clone)]
5pub struct ThemeColors {
6 pub primary: Color,
7 pub background: Color,
8 pub foreground: Color,
9 pub selection: Color,
10 pub accent: Color,
11 pub error: Color,
12 pub success: Color,
13 pub border: Color,
14 pub header_bg: Color,
15 pub header_fg: Color,
16}
17
18impl PartialEq for ThemeColors {
19 fn eq(&self, other: &Self) -> bool {
20 self.primary == other.primary
21 && self.background == other.background
22 && self.foreground == other.foreground
23 && self.selection == other.selection
24 && self.accent == other.accent
25 && self.error == other.error
26 && self.success == other.success
27 && self.border == other.border
28 && self.header_bg == other.header_bg
29 && self.header_fg == other.header_fg
30 }
31}
32
33lazy_static! {
34 pub static ref LIGHT_MODE_COLORS: ThemeColors = ThemeColors {
35 primary: Color::Rgb(25, 118, 210), background: Color::Rgb(248, 248, 248), foreground: Color::Rgb(33, 33, 33), selection: Color::Rgb(207, 232, 252), accent: Color::Rgb(230, 81, 0), error: Color::Rgb(211, 47, 47), success: Color::Rgb(56, 142, 60), border: Color::Rgb(189, 189, 189), header_bg: Color::Rgb(232, 232, 232), header_fg: Color::Rgb(66, 66, 66), };
46
47 pub static ref DARK_MODE_COLORS: ThemeColors = ThemeColors {
48 primary: Color::Rgb(255, 165, 0), background: Color::Black, foreground: Color::White, selection: Color::DarkGray, accent: Color::Rgb(255, 165, 0), error: Color::Red, success: Color::Green, border: Color::Rgb(255, 165, 0), header_bg: Color::Black, header_fg: Color::Rgb(255, 165, 0), };
59}