use ratatui::style::*;
use crate::error;
#[derive(Copy, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct UiStyles {
pub title_style: Style,
pub subtitle_style: Style,
pub hotkey_style: Style,
pub text_style: Style,
pub selected_style: Style,
pub input_style: Style,
}
impl Default for UiStyles {
fn default() -> Self {
Self {
title_style: Style::new()
.fg(ratatui::style::Color::LightBlue)
.add_modifier(Modifier::BOLD),
subtitle_style: Style::new()
.fg(ratatui::style::Color::LightBlue)
.add_modifier(Modifier::ITALIC),
hotkey_style: Style::new()
.fg(ratatui::style::Color::Cyan)
.add_modifier(Modifier::BOLD | Modifier::UNDERLINED),
text_style: Style::new().fg(Color::White),
selected_style: Style::new()
.bg(ratatui::style::Color::Blue)
.add_modifier(Modifier::BOLD),
input_style: Style::new().add_modifier(Modifier::ITALIC),
}
}
}
impl UiStyles {
pub fn load(config: &crate::Config) -> error::Result<Self> {
let uistyles: Self = confy::load("rucola", config.theme.as_str())?;
Ok(uistyles)
}
}