Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/crates/bevy_feathers/src/dark_theme.rs
6849 views
1
//! The standard `bevy_feathers` dark theme.
2
use crate::{palette, tokens};
3
use bevy_color::{Alpha, Luminance};
4
use bevy_platform::collections::HashMap;
5
6
use crate::theme::ThemeProps;
7
8
/// Create a [`ThemeProps`] object and populate it with the colors for the default dark theme.
9
pub fn create_dark_theme() -> ThemeProps {
10
ThemeProps {
11
color: HashMap::from([
12
(tokens::WINDOW_BG, palette::GRAY_0),
13
// Button
14
(tokens::BUTTON_BG, palette::GRAY_3),
15
(tokens::BUTTON_BG_HOVER, palette::GRAY_3.lighter(0.05)),
16
(tokens::BUTTON_BG_PRESSED, palette::GRAY_3.lighter(0.1)),
17
(tokens::BUTTON_BG_DISABLED, palette::GRAY_2),
18
(tokens::BUTTON_PRIMARY_BG, palette::ACCENT),
19
(
20
tokens::BUTTON_PRIMARY_BG_HOVER,
21
palette::ACCENT.lighter(0.05),
22
),
23
(
24
tokens::BUTTON_PRIMARY_BG_PRESSED,
25
palette::ACCENT.lighter(0.1),
26
),
27
(tokens::BUTTON_PRIMARY_BG_DISABLED, palette::GRAY_2),
28
(tokens::BUTTON_TEXT, palette::WHITE),
29
(tokens::BUTTON_TEXT_DISABLED, palette::WHITE.with_alpha(0.5)),
30
(tokens::BUTTON_PRIMARY_TEXT, palette::WHITE),
31
(
32
tokens::BUTTON_PRIMARY_TEXT_DISABLED,
33
palette::WHITE.with_alpha(0.5),
34
),
35
// Slider
36
(tokens::SLIDER_BG, palette::GRAY_1),
37
(tokens::SLIDER_BAR, palette::ACCENT),
38
(tokens::SLIDER_BAR_DISABLED, palette::GRAY_2),
39
(tokens::SLIDER_TEXT, palette::WHITE),
40
(tokens::SLIDER_TEXT_DISABLED, palette::WHITE.with_alpha(0.5)),
41
// Checkbox
42
(tokens::CHECKBOX_BG, palette::GRAY_3),
43
(tokens::CHECKBOX_BG_CHECKED, palette::ACCENT),
44
(
45
tokens::CHECKBOX_BG_DISABLED,
46
palette::GRAY_1.with_alpha(0.5),
47
),
48
(
49
tokens::CHECKBOX_BG_CHECKED_DISABLED,
50
palette::GRAY_3.with_alpha(0.5),
51
),
52
(tokens::CHECKBOX_BORDER, palette::GRAY_3),
53
(tokens::CHECKBOX_BORDER_HOVER, palette::GRAY_3.lighter(0.1)),
54
(
55
tokens::CHECKBOX_BORDER_DISABLED,
56
palette::GRAY_3.with_alpha(0.5),
57
),
58
(tokens::CHECKBOX_MARK, palette::WHITE),
59
(tokens::CHECKBOX_MARK_DISABLED, palette::LIGHT_GRAY_2),
60
(tokens::CHECKBOX_TEXT, palette::LIGHT_GRAY_1),
61
(
62
tokens::CHECKBOX_TEXT_DISABLED,
63
palette::LIGHT_GRAY_1.with_alpha(0.5),
64
),
65
// Radio
66
(tokens::RADIO_BORDER, palette::GRAY_3),
67
(tokens::RADIO_BORDER_HOVER, palette::GRAY_3.lighter(0.1)),
68
(
69
tokens::RADIO_BORDER_DISABLED,
70
palette::GRAY_3.with_alpha(0.5),
71
),
72
(tokens::RADIO_MARK, palette::ACCENT),
73
(tokens::RADIO_MARK_DISABLED, palette::ACCENT.with_alpha(0.5)),
74
(tokens::RADIO_TEXT, palette::LIGHT_GRAY_1),
75
(
76
tokens::RADIO_TEXT_DISABLED,
77
palette::LIGHT_GRAY_1.with_alpha(0.5),
78
),
79
// Toggle Switch
80
(tokens::SWITCH_BG, palette::GRAY_3),
81
(tokens::SWITCH_BG_CHECKED, palette::ACCENT),
82
(tokens::SWITCH_BG_DISABLED, palette::GRAY_1.with_alpha(0.5)),
83
(
84
tokens::SWITCH_BG_CHECKED_DISABLED,
85
palette::GRAY_3.with_alpha(0.5),
86
),
87
(tokens::SWITCH_BORDER, palette::GRAY_3),
88
(tokens::SWITCH_BORDER_HOVER, palette::GRAY_3.lighter(0.1)),
89
(
90
tokens::SWITCH_BORDER_DISABLED,
91
palette::GRAY_3.with_alpha(0.5),
92
),
93
(tokens::SWITCH_SLIDE, palette::LIGHT_GRAY_2),
94
(
95
tokens::SWITCH_SLIDE_DISABLED,
96
palette::LIGHT_GRAY_2.with_alpha(0.3),
97
),
98
]),
99
}
100
}
101
102