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}