Skip to main content

bexa_ui_core/
theme.rs

1#[derive(Clone, Copy)]
2pub struct Theme {
3    pub background: [f32; 3],
4    pub panel: [f32; 3],
5    pub button: [f32; 3],
6    pub button_hover: [f32; 3],
7    pub button_active: [f32; 3],
8    pub button_focus: [f32; 3],
9    pub text_primary: [u8; 3],
10    pub text_secondary: [u8; 3],
11    // Checkbox
12    pub checkbox_bg: [f32; 4],
13    pub checkbox_checked_bg: [f32; 4],
14    pub checkbox_border: [f32; 4],
15    pub checkbox_check: [u8; 3],
16    // Radio
17    pub radio_bg: [f32; 4],
18    pub radio_border: [f32; 4],
19    pub radio_dot: [f32; 4],
20}
21
22impl Theme {
23    pub fn ocean() -> Self {
24        Self {
25            background: [0.12, 0.20, 0.30],
26            panel: [0.16, 0.28, 0.38],
27            button: [0.20, 0.65, 0.85],
28            button_hover: [0.35, 0.75, 0.92],
29            button_active: [0.15, 0.55, 0.75],
30            button_focus: [0.18, 0.60, 0.82],
31            text_primary: [230, 230, 230],
32            text_secondary: [200, 200, 200],
33            checkbox_bg: [0.16, 0.28, 0.38, 1.0],
34            checkbox_checked_bg: [0.20, 0.65, 0.85, 1.0],
35            checkbox_border: [0.4, 0.55, 0.7, 1.0],
36            checkbox_check: [255, 255, 255],
37            radio_bg: [0.16, 0.28, 0.38, 1.0],
38            radio_border: [0.4, 0.55, 0.7, 1.0],
39            radio_dot: [0.20, 0.65, 0.85, 1.0],
40        }
41    }
42}