pub trait ButtonTheme {
fn button_bg_normal(&self) -> &str;
fn button_bg_hover(&self) -> &str;
fn button_bg_pressed(&self) -> &str;
fn button_bg_active(&self) -> &str;
fn button_bg_disabled(&self) -> &str;
fn button_text_normal(&self) -> &str;
fn button_text_hover(&self) -> &str;
fn button_text_active(&self) -> &str;
fn button_text_disabled(&self) -> &str;
fn button_icon_normal(&self) -> &str;
fn button_icon_hover(&self) -> &str;
fn button_icon_active(&self) -> &str;
fn button_icon_disabled(&self) -> &str;
fn button_border_normal(&self) -> &str;
fn button_border_hover(&self) -> &str;
fn button_border_focused(&self) -> &str;
fn button_accent(&self) -> &str;
fn button_danger(&self) -> &str;
fn button_success(&self) -> &str;
fn button_warning(&self) -> &str;
}
pub struct DefaultButtonTheme;
impl DefaultButtonTheme {
pub fn new() -> Self {
Self
}
}
impl Default for DefaultButtonTheme {
fn default() -> Self {
Self::new()
}
}
impl ButtonTheme for DefaultButtonTheme {
fn button_bg_normal(&self) -> &str { "transparent" }
fn button_bg_hover(&self) -> &str { "#2a2a2a" }
fn button_bg_pressed(&self) -> &str { "#1e3a5f" }
fn button_bg_active(&self) -> &str { "#1e3a5f" }
fn button_bg_disabled(&self) -> &str { "#2a2a2a" }
fn button_text_normal(&self) -> &str { "#d1d5db" }
fn button_text_hover(&self) -> &str { "#ffffff" }
fn button_text_active(&self) -> &str { "#ffffff" }
fn button_text_disabled(&self) -> &str { "#4a4a4a" }
fn button_icon_normal(&self) -> &str { "#787b86" }
fn button_icon_hover(&self) -> &str { "#e5e7eb" }
fn button_icon_active(&self) -> &str { "#ffffff" }
fn button_icon_disabled(&self) -> &str { "#4a4a4a" }
fn button_border_normal(&self) -> &str { "#3a3a3a" }
fn button_border_hover(&self) -> &str { "#e5e7eb" }
fn button_border_focused(&self) -> &str { "#2962ff" }
fn button_accent(&self) -> &str { "#2962ff" }
fn button_danger(&self) -> &str { "#ef5350" }
fn button_success(&self) -> &str { "#10b981" }
fn button_warning(&self) -> &str { "#f59e0b" }
}