Skip to main content

tui/theme/
defaults.rs

1use super::{Color, Theme, lighten_color};
2
3impl Theme {
4    /// A minimal light theme.
5    #[allow(dead_code)]
6    pub fn light() -> Self {
7        const FG: Color = Color::Rgb { r: 0x22, g: 0x22, b: 0x22 };
8        const BG: Color = Color::Rgb { r: 0xFA, g: 0xFA, b: 0xFA };
9        const ACCENT: Color = Color::Rgb { r: 0x00, g: 0x66, b: 0xCC };
10        const GREEN: Color = Color::Rgb { r: 0x22, g: 0x88, b: 0x22 };
11        const RED: Color = Color::Rgb { r: 0xCC, g: 0x22, b: 0x22 };
12        const ORANGE: Color = Color::Rgb { r: 0xCC, g: 0x66, b: 0x00 };
13
14        Theme::builder()
15            .fg(FG)
16            .bg(BG)
17            .accent(ACCENT)
18            .highlight_bg(Color::Rgb { r: 0xDD, g: 0xDD, b: 0xDD })
19            .highlight_fg(FG)
20            .text_secondary(Color::Rgb { r: 0x66, g: 0x66, b: 0x66 })
21            .code_fg(Color::Rgb { r: 0x33, g: 0x66, b: 0x33 })
22            .code_bg(Color::Rgb { r: 0xF0, g: 0xF0, b: 0xF0 })
23            .heading(ACCENT)
24            .link(Color::Rgb { r: 0x00, g: 0x44, b: 0xAA })
25            .blockquote(Color::Rgb { r: 0x66, g: 0x44, b: 0x88 })
26            .muted(Color::Rgb { r: 0x88, g: 0x88, b: 0x88 })
27            .success(GREEN)
28            .warning(ORANGE)
29            .error(RED)
30            .info(ACCENT)
31            .secondary(Color::Rgb { r: 0x66, g: 0x33, b: 0x99 })
32            .sidebar_bg(Color::Rgb { r: 0xF4, g: 0xF4, b: 0xF8 })
33            .diff_added_fg(GREEN)
34            .diff_removed_fg(RED)
35            .diff_added_bg(lighten_color(GREEN))
36            .diff_removed_bg(lighten_color(RED))
37            .build()
38            .expect("built-in light theme has all fields")
39    }
40}