Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/crates/bevy_feathers/src/dark_theme.rs
6595 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.into(), palette::GRAY_0),
13
// Button
14
(tokens::BUTTON_BG.into(), palette::GRAY_3),
15
(
16
tokens::BUTTON_BG_HOVER.into(),
17
palette::GRAY_3.lighter(0.05),
18
),
19
(
20
tokens::BUTTON_BG_PRESSED.into(),
21
palette::GRAY_3.lighter(0.1),
22
),
23
(tokens::BUTTON_BG_DISABLED.into(), palette::GRAY_2),
24
(tokens::BUTTON_PRIMARY_BG.into(), palette::ACCENT),
25
(
26
tokens::BUTTON_PRIMARY_BG_HOVER.into(),
27
palette::ACCENT.lighter(0.05),
28
),
29
(
30
tokens::BUTTON_PRIMARY_BG_PRESSED.into(),
31
palette::ACCENT.lighter(0.1),
32
),
33
(tokens::BUTTON_PRIMARY_BG_DISABLED.into(), palette::GRAY_2),
34
(tokens::BUTTON_TEXT.into(), palette::WHITE),
35
(
36
tokens::BUTTON_TEXT_DISABLED.into(),
37
palette::WHITE.with_alpha(0.5),
38
),
39
(tokens::BUTTON_PRIMARY_TEXT.into(), palette::WHITE),
40
(
41
tokens::BUTTON_PRIMARY_TEXT_DISABLED.into(),
42
palette::WHITE.with_alpha(0.5),
43
),
44
// Slider
45
(tokens::SLIDER_BG.into(), palette::GRAY_1),
46
(tokens::SLIDER_BAR.into(), palette::ACCENT),
47
(tokens::SLIDER_BAR_DISABLED.into(), palette::GRAY_2),
48
(tokens::SLIDER_TEXT.into(), palette::WHITE),
49
(
50
tokens::SLIDER_TEXT_DISABLED.into(),
51
palette::WHITE.with_alpha(0.5),
52
),
53
// Checkbox
54
(tokens::CHECKBOX_BG.into(), palette::GRAY_3),
55
(tokens::CHECKBOX_BG_CHECKED.into(), palette::ACCENT),
56
(
57
tokens::CHECKBOX_BG_DISABLED.into(),
58
palette::GRAY_1.with_alpha(0.5),
59
),
60
(
61
tokens::CHECKBOX_BG_CHECKED_DISABLED.into(),
62
palette::GRAY_3.with_alpha(0.5),
63
),
64
(tokens::CHECKBOX_BORDER.into(), palette::GRAY_3),
65
(
66
tokens::CHECKBOX_BORDER_HOVER.into(),
67
palette::GRAY_3.lighter(0.1),
68
),
69
(
70
tokens::CHECKBOX_BORDER_DISABLED.into(),
71
palette::GRAY_3.with_alpha(0.5),
72
),
73
(tokens::CHECKBOX_MARK.into(), palette::WHITE),
74
(tokens::CHECKBOX_MARK_DISABLED.into(), palette::LIGHT_GRAY_2),
75
(tokens::CHECKBOX_TEXT.into(), palette::LIGHT_GRAY_1),
76
(
77
tokens::CHECKBOX_TEXT_DISABLED.into(),
78
palette::LIGHT_GRAY_1.with_alpha(0.5),
79
),
80
// Radio
81
(tokens::RADIO_BORDER.into(), palette::GRAY_3),
82
(
83
tokens::RADIO_BORDER_HOVER.into(),
84
palette::GRAY_3.lighter(0.1),
85
),
86
(
87
tokens::RADIO_BORDER_DISABLED.into(),
88
palette::GRAY_3.with_alpha(0.5),
89
),
90
(tokens::RADIO_MARK.into(), palette::ACCENT),
91
(
92
tokens::RADIO_MARK_DISABLED.into(),
93
palette::ACCENT.with_alpha(0.5),
94
),
95
(tokens::RADIO_TEXT.into(), palette::LIGHT_GRAY_1),
96
(
97
tokens::RADIO_TEXT_DISABLED.into(),
98
palette::LIGHT_GRAY_1.with_alpha(0.5),
99
),
100
// Toggle Switch
101
(tokens::SWITCH_BG.into(), palette::GRAY_3),
102
(tokens::SWITCH_BG_CHECKED.into(), palette::ACCENT),
103
(
104
tokens::SWITCH_BG_DISABLED.into(),
105
palette::GRAY_1.with_alpha(0.5),
106
),
107
(
108
tokens::SWITCH_BG_CHECKED_DISABLED.into(),
109
palette::GRAY_3.with_alpha(0.5),
110
),
111
(tokens::SWITCH_BORDER.into(), palette::GRAY_3),
112
(
113
tokens::SWITCH_BORDER_HOVER.into(),
114
palette::GRAY_3.lighter(0.1),
115
),
116
(
117
tokens::SWITCH_BORDER_DISABLED.into(),
118
palette::GRAY_3.with_alpha(0.5),
119
),
120
(tokens::SWITCH_SLIDE.into(), palette::LIGHT_GRAY_2),
121
(
122
tokens::SWITCH_SLIDE_DISABLED.into(),
123
palette::LIGHT_GRAY_2.with_alpha(0.3),
124
),
125
]),
126
}
127
}
128
129