1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
use crate::{
    cow_borrowed,
    theming::*,
};

pub(crate) const BASE_THEME: Theme = Theme {
    name: "base",
    colors: ColorsSheet {
        primary: cow_borrowed!(""),
        secondary: cow_borrowed!(""),
        tertiary: cow_borrowed!(""),
        surface: cow_borrowed!(""),
        secondary_surface: cow_borrowed!(""),
        neutral_surface: cow_borrowed!(""),
        focused_surface: cow_borrowed!(""),
        opposite_surface: cow_borrowed!(""),
        secondary_opposite_surface: cow_borrowed!(""),
        tertiary_opposite_surface: cow_borrowed!(""),
        background: cow_borrowed!(""),
        focused_border: cow_borrowed!(""),
        solid: cow_borrowed!(""),
        color: cow_borrowed!(""),
        primary_color: cow_borrowed!(""),
        placeholder_color: cow_borrowed!(""),
        highlight_color: cow_borrowed!(""),
    },
    body: BodyTheme {
        background: cow_borrowed!("key(background)"),
        color: cow_borrowed!("key(color)"),
        padding: cow_borrowed!("none"),
    },
    slider: SliderTheme {
        background: cow_borrowed!("key(surface)"),
        thumb_background: cow_borrowed!("key(secondary)"),
        thumb_inner_background: cow_borrowed!("key(primary)"),
        border_fill: cow_borrowed!("key(surface)"),
    },
    button: ButtonTheme {
        background: cow_borrowed!("key(neutral_surface)"),
        hover_background: cow_borrowed!("key(focused_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
        border_fill: cow_borrowed!("key(surface)"),
        focus_border_fill: cow_borrowed!("key(focused_border)"),
        shadow: cow_borrowed!("0 4 5 0 rgb(0, 0, 0, 0.1)"),
        padding: cow_borrowed!("8 12"),
        margin: cow_borrowed!("0"),
        corner_radius: cow_borrowed!("8"),
        width: cow_borrowed!("auto"),
        height: cow_borrowed!("auto"),
    },
    filled_button: ButtonTheme {
        background: cow_borrowed!("key(primary)"),
        hover_background: cow_borrowed!("key(tertiary)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(primary_color)"),
        },
        border_fill: cow_borrowed!("none"),
        focus_border_fill: cow_borrowed!("key(focused_border)"),
        shadow: cow_borrowed!("0 4 5 0 rgb(0, 0, 0, 0.1)"),
        padding: cow_borrowed!("8 12"),
        margin: cow_borrowed!("0"),
        corner_radius: cow_borrowed!("8"),
        width: cow_borrowed!("auto"),
        height: cow_borrowed!("auto"),
    },
    outline_button: ButtonTheme {
        background: cow_borrowed!("key(background)"),
        hover_background: cow_borrowed!("key(neutral_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(primary)"),
        },
        border_fill: cow_borrowed!("key(surface)"),
        focus_border_fill: cow_borrowed!("key(secondary_opposite_surface)"),
        shadow: cow_borrowed!("none"),
        padding: cow_borrowed!("8 12"),
        margin: cow_borrowed!("0"),
        corner_radius: cow_borrowed!("8"),
        width: cow_borrowed!("auto"),
        height: cow_borrowed!("auto"),
    },
    input: InputTheme {
        background: cow_borrowed!("key(neutral_surface)"),
        hover_background: cow_borrowed!("key(focused_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
        placeholder_font_theme: FontTheme {
            color: cow_borrowed!("key(placeholder_color)"),
        },
        border_fill: cow_borrowed!("key(surface)"),
        width: cow_borrowed!("150"),
        margin: cow_borrowed!("0"),
        corner_radius: cow_borrowed!("10"),
        shadow: cow_borrowed!("0 4 5 0 rgb(0, 0, 0, 0.1)"),
    },
    switch: SwitchTheme {
        margin: cow_borrowed!("0"),
        background: cow_borrowed!("key(secondary_surface)"),
        thumb_background: cow_borrowed!("key(opposite_surface)"),
        enabled_background: cow_borrowed!("key(secondary)"),
        enabled_thumb_background: cow_borrowed!("key(primary)"),
        focus_border_fill: cow_borrowed!("key(focused_border)"),
        enabled_focus_border_fill: cow_borrowed!("key(focused_border)"),
    },
    scroll_bar: ScrollBarTheme {
        background: cow_borrowed!("key(secondary_surface)"),
        thumb_background: cow_borrowed!("key(opposite_surface)"),
        hover_thumb_background: cow_borrowed!("key(secondary_opposite_surface)"),
        active_thumb_background: cow_borrowed!("key(tertiary_opposite_surface)"),
        size: cow_borrowed!("15"),
    },
    tooltip: TooltipTheme {
        background: cow_borrowed!("key(neutral_surface)"),
        color: cow_borrowed!("key(color)"),
        border_fill: cow_borrowed!("key(surface)"),
    },
    dropdown: DropdownTheme {
        width: cow_borrowed!("auto"),
        margin: cow_borrowed!("0"),
        dropdown_background: cow_borrowed!("key(background)"),
        background_button: cow_borrowed!("key(neutral_surface)"),
        hover_background: cow_borrowed!("key(focused_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
        border_fill: cow_borrowed!("key(surface)"),
        arrow_fill: cow_borrowed!("key(solid)"),
    },
    dropdown_item: DropdownItemTheme {
        background: cow_borrowed!("key(background)"),
        select_background: cow_borrowed!("key(neutral_surface)"),
        hover_background: cow_borrowed!("key(focused_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
    },
    accordion: AccordionTheme {
        color: cow_borrowed!("key(color)"),
        background: cow_borrowed!("key(neutral_surface)"),
        border_fill: cow_borrowed!("key(surface)"),
    },
    loader: LoaderTheme {
        primary_color: cow_borrowed!("key(tertiary_opposite_surface)"),
    },
    link: LinkTheme {
        highlight_color: cow_borrowed!("key(highlight_color)"),
    },
    progress_bar: ProgressBarTheme {
        color: cow_borrowed!("white"),
        background: cow_borrowed!("key(surface)"),
        progress_background: cow_borrowed!("key(primary)"),
        width: cow_borrowed!("fill"),
        height: cow_borrowed!("20"),
    },
    table: TableTheme {
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
        background: cow_borrowed!("key(background)"),
        arrow_fill: cow_borrowed!("key(solid)"),
        row_background: cow_borrowed!("transparent"),
        alternate_row_background: cow_borrowed!("key(neutral_surface)"),
        divider_fill: cow_borrowed!("key(secondary_surface)"),
        height: cow_borrowed!("auto"),
        corner_radius: cow_borrowed!("6"),
        shadow: cow_borrowed!("0 2 15 5 rgb(35, 35, 35, 70)"),
    },
    canvas: CanvasTheme {
        width: cow_borrowed!("300"),
        height: cow_borrowed!("150"),
        background: cow_borrowed!("white"),
    },
    graph: GraphTheme {
        width: cow_borrowed!("100%"),
        height: cow_borrowed!("100%"),
    },
    network_image: NetworkImageTheme {
        width: cow_borrowed!("100%"),
        height: cow_borrowed!("100%"),
    },
    icon: IconTheme {
        width: cow_borrowed!("10"),
        height: cow_borrowed!("10"),
        margin: cow_borrowed!("0"),
    },
    sidebar: SidebarTheme {
        spacing: cow_borrowed!("4"),
        background: cow_borrowed!("key(neutral_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
    },
    sidebar_item: SidebarItemTheme {
        margin: cow_borrowed!("0"),
        background: cow_borrowed!("transparent"),
        hover_background: cow_borrowed!("key(focused_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
    },
    tile: TileTheme {
        padding: cow_borrowed!("4 6"),
    },
    radio: RadioTheme {
        unselected_fill: cow_borrowed!("key(solid)"),
        selected_fill: cow_borrowed!("key(primary)"),
        border_fill: cow_borrowed!("key(surface)"),
    },
    checkbox: CheckboxTheme {
        unselected_fill: cow_borrowed!("key(solid)"),
        selected_fill: cow_borrowed!("key(primary)"),
        selected_icon_fill: cow_borrowed!("key(secondary)"),
        border_fill: cow_borrowed!("key(surface)"),
    },
    menu_item: MenuItemTheme {
        hover_background: cow_borrowed!("key(focused_surface)"),
        corner_radius: cow_borrowed!("8"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
    },
    menu_container: MenuContainerTheme {
        background: cow_borrowed!("key(neutral_surface)"),
        padding: cow_borrowed!("4"),
        shadow: cow_borrowed!("0 2 5 2 rgb(0, 0, 0, 0.1)"),
    },
    snackbar: SnackBarTheme {
        background: cow_borrowed!("key(focused_surface)"),
        color: cow_borrowed!("key(color)"),
    },
    popup: PopupTheme {
        background: cow_borrowed!("key(background)"),
        color: cow_borrowed!("key(color)"),
        cross_fill: cow_borrowed!("key(solid)"),
        width: cow_borrowed!("350"),
        height: cow_borrowed!("200"),
    },
    tab: TabTheme {
        background: cow_borrowed!("key(neutral_surface)"),
        hover_background: cow_borrowed!("key(focused_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
        border_fill: cow_borrowed!("none"),
        focus_border_fill: cow_borrowed!("key(focused_border)"),
        padding: cow_borrowed!("8 16"),
        width: cow_borrowed!("auto"),
        height: cow_borrowed!("auto"),
    },
    bottom_tab: BottomTabTheme {
        background: cow_borrowed!("transparent"),
        hover_background: cow_borrowed!("key(secondary_surface)"),
        font_theme: FontTheme {
            color: cow_borrowed!("key(color)"),
        },
        padding: cow_borrowed!("8 10"),
        width: cow_borrowed!("auto"),
        height: cow_borrowed!("auto"),
    },
};