geng_ui/
theme.rs

1use super::*;
2
3#[derive(Clone)]
4pub struct Theme {
5    ugli: Ugli,
6    pub background_color: Rgba<f32>,
7    pub warn_color: Rgba<f32>,
8    pub error_color: Rgba<f32>,
9    pub success_color: Rgba<f32>,
10    pub usable_color: Rgba<f32>,
11    pub hover_color: Rgba<f32>,
12    pub text_color: Rgba<f32>,
13    pub text_size: f32,
14    pub press_ratio: f32,
15    pub font: Rc<Font>,
16}
17
18impl Theme {
19    pub fn dark(ugli: &Ugli) -> Self {
20        Self {
21            ugli: ugli.clone(),
22            background_color: Rgba::BLACK,
23            warn_color: Rgba::YELLOW,
24            error_color: Rgba::RED,
25            success_color: Rgba::GREEN,
26            usable_color: Rgba::WHITE,
27            hover_color: Rgba::opaque(0.3, 0.3, 1.0),
28            text_color: Rgba::GRAY,
29            text_size: 32.0,
30            press_ratio: 0.25,
31            font: Rc::new(Font::default(ugli)),
32        }
33    }
34    pub fn light(ugli: &Ugli) -> Self {
35        Self {
36            ugli: ugli.clone(),
37            background_color: Rgba::WHITE,
38            warn_color: Rgba::opaque(0.5, 0.5, 0.0),
39            error_color: Rgba::RED,
40            success_color: Rgba::GREEN,
41            usable_color: Rgba::opaque(0.3, 0.3, 1.0),
42            hover_color: Rgba::opaque(0.0, 0.0, 0.5),
43            text_color: Rgba::BLACK,
44            text_size: 32.0,
45            press_ratio: 0.25,
46            font: Rc::new(Font::default(ugli)),
47        }
48    }
49    pub fn ugli(&self) -> &Ugli {
50        &self.ugli
51    }
52}