Skip to main content

bevy_feathers/
tokens.rs

1//! Design tokens used by Feathers themes.
2//!
3//! The term "design token" is commonly used in UX design to mean the smallest unit of a theme,
4//! similar in concept to a CSS variable. Each token represents an assignment of a color or
5//! value to a specific visual aspect of a widget, such as background or border.
6
7use crate::theme::ThemeToken;
8
9/// Window background
10pub const WINDOW_BG: ThemeToken = ThemeToken::new_static("feathers.window.bg");
11
12/// Focus ring
13pub const FOCUS_RING: ThemeToken = ThemeToken::new_static("feathers.focus.ring");
14
15/// Regular text
16pub const TEXT_MAIN: ThemeToken = ThemeToken::new_static("feathers.text.main");
17/// Dim text
18pub const TEXT_DIM: ThemeToken = ThemeToken::new_static("feathers.text.dim");
19
20// Normal buttons
21
22/// Regular button background
23pub const BUTTON_BG: ThemeToken = ThemeToken::new_static("feathers.button.bg");
24/// Regular button background (hovered)
25pub const BUTTON_BG_HOVER: ThemeToken = ThemeToken::new_static("feathers.button.bg.hover");
26/// Regular button background (disabled)
27pub const BUTTON_BG_DISABLED: ThemeToken = ThemeToken::new_static("feathers.button.bg.disabled");
28/// Regular button background (pressed)
29pub const BUTTON_BG_PRESSED: ThemeToken = ThemeToken::new_static("feathers.button.bg.pressed");
30/// Regular button text
31pub const BUTTON_TEXT: ThemeToken = ThemeToken::new_static("feathers.button.txt");
32/// Regular button text (disabled)
33pub const BUTTON_TEXT_DISABLED: ThemeToken = ThemeToken::new_static("feathers.button.txt.disabled");
34
35// Primary ("default") buttons
36
37/// Primary button background
38pub const BUTTON_PRIMARY_BG: ThemeToken = ThemeToken::new_static("feathers.button.primary.bg");
39/// Primary button background (hovered)
40pub const BUTTON_PRIMARY_BG_HOVER: ThemeToken =
41    ThemeToken::new_static("feathers.button.primary.bg.hover");
42/// Primary button background (disabled)
43pub const BUTTON_PRIMARY_BG_DISABLED: ThemeToken =
44    ThemeToken::new_static("feathers.button.primary.bg.disabled");
45/// Primary button background (pressed)
46pub const BUTTON_PRIMARY_BG_PRESSED: ThemeToken =
47    ThemeToken::new_static("feathers.button.primary.bg.pressed");
48/// Primary button text
49pub const BUTTON_PRIMARY_TEXT: ThemeToken = ThemeToken::new_static("feathers.button.primary.txt");
50/// Primary button text (disabled)
51pub const BUTTON_PRIMARY_TEXT_DISABLED: ThemeToken =
52    ThemeToken::new_static("feathers.button.primary.txt.disabled");
53
54// Plain buttons (transparent background)
55
56/// Plain button background
57pub const BUTTON_PLAIN_BG: ThemeToken = ThemeToken::new_static("feathers.button.plain.bg");
58/// Plain button background (hovered)
59pub const BUTTON_PLAIN_BG_HOVER: ThemeToken =
60    ThemeToken::new_static("feathers.button.plain.bg.hover");
61/// Plain button background (disabled)
62pub const BUTTON_PLAIN_BG_DISABLED: ThemeToken =
63    ThemeToken::new_static("feathers.button.plain.bg.disabled");
64/// Plain button background (pressed)
65pub const BUTTON_PLAIN_BG_PRESSED: ThemeToken =
66    ThemeToken::new_static("feathers.button.plain.bg.pressed");
67
68// Slider
69
70/// Background for slider
71pub const SLIDER_BG: ThemeToken = ThemeToken::new_static("feathers.slider.bg");
72/// Background for slider (hovered)
73pub const SLIDER_BG_HOVER: ThemeToken = ThemeToken::new_static("feathers.slider.bg.hover");
74/// Background for slider (pressed)
75pub const SLIDER_BG_PRESSED: ThemeToken = ThemeToken::new_static("feathers.slider.bg.pressed");
76/// Background for slider (disabled)
77pub const SLIDER_BG_DISABLED: ThemeToken = ThemeToken::new_static("feathers.slider.bg.disabled");
78/// Fill color for slider
79pub const SLIDER_BAR: ThemeToken = ThemeToken::new_static("feathers.slider.bar");
80/// Fill color for slider (hovered)
81pub const SLIDER_BAR_HOVER: ThemeToken = ThemeToken::new_static("feathers.slider.bar.hover");
82/// Fill color for slider (pressed)
83pub const SLIDER_BAR_PRESSED: ThemeToken = ThemeToken::new_static("feathers.slider.bar.pressed");
84/// Fill color for slider (disabled)
85pub const SLIDER_BAR_DISABLED: ThemeToken = ThemeToken::new_static("feathers.slider.bar.disabled");
86/// Background for slider text
87pub const SLIDER_TEXT: ThemeToken = ThemeToken::new_static("feathers.slider.text");
88/// Background for slider text (disabled)
89pub const SLIDER_TEXT_DISABLED: ThemeToken =
90    ThemeToken::new_static("feathers.slider.text.disabled");
91
92// Scrollbar
93
94/// Background for scrollbar
95pub const SCROLLBAR_BG: ThemeToken = ThemeToken::new_static("feathers.scrollbar.bg");
96/// Background for scrollbar moving bar
97pub const SCROLLBAR_THUMB: ThemeToken = ThemeToken::new_static("feathers.scrollbar.thumb");
98/// Background for scrollbar moving bar (hovered)
99pub const SCROLLBAR_THUMB_HOVER: ThemeToken =
100    ThemeToken::new_static("feathers.scrollbar.thumb.hover");
101
102// Checkbox
103
104/// Checkbox background around the checkmark
105pub const CHECKBOX_BG: ThemeToken = ThemeToken::new_static("feathers.checkbox.bg");
106/// Checkbox background around the checkmark (hovered)
107pub const CHECKBOX_BG_HOVER: ThemeToken = ThemeToken::new_static("feathers.checkbox.bg.hover");
108/// Checkbox background around the checkmark (pressed)
109pub const CHECKBOX_BG_PRESSED: ThemeToken = ThemeToken::new_static("feathers.checkbox.bg.pressed");
110/// Checkbox border around the checkmark (disabled)
111pub const CHECKBOX_BG_DISABLED: ThemeToken =
112    ThemeToken::new_static("feathers.checkbox.bg.disabled");
113/// Checkbox background around the checkmark (checked)
114pub const CHECKBOX_BG_CHECKED: ThemeToken = ThemeToken::new_static("feathers.checkbox.bg.checked");
115/// Checkbox background around the checkmark (checked+hover)
116pub const CHECKBOX_BG_CHECKED_HOVER: ThemeToken =
117    ThemeToken::new_static("feathers.checkbox.bg.checked.hover");
118/// Checkbox background around the checkmark (checked+pressed)
119pub const CHECKBOX_BG_CHECKED_PRESSED: ThemeToken =
120    ThemeToken::new_static("feathers.checkbox.bg.checked.pressed");
121/// Checkbox border around the checkmark (checked+disabled)
122pub const CHECKBOX_BG_CHECKED_DISABLED: ThemeToken =
123    ThemeToken::new_static("feathers.checkbox.bg.checked.disabled");
124/// Checkbox border around the checkmark
125pub const CHECKBOX_BORDER: ThemeToken = ThemeToken::new_static("feathers.checkbox.border");
126/// Checkbox border around the checkmark (hovered)
127pub const CHECKBOX_BORDER_HOVER: ThemeToken =
128    ThemeToken::new_static("feathers.checkbox.border.hover");
129/// Checkbox border around the checkmark (pressed)
130pub const CHECKBOX_BORDER_PRESSED: ThemeToken =
131    ThemeToken::new_static("feathers.checkbox.border.pressed");
132/// Checkbox border around the checkmark (disabled)
133pub const CHECKBOX_BORDER_DISABLED: ThemeToken =
134    ThemeToken::new_static("feathers.checkbox.border.disabled");
135/// Checkbox border around the checkmark (checked)
136pub const CHECKBOX_BORDER_CHECKED: ThemeToken =
137    ThemeToken::new_static("feathers.checkbox.border.checked");
138/// Checkbox border around the checkmark (checked+hovered)
139pub const CHECKBOX_BORDER_CHECKED_HOVER: ThemeToken =
140    ThemeToken::new_static("feathers.checkbox.border.checked.hover");
141/// Checkbox border around the checkmark (checked+pressed)
142pub const CHECKBOX_BORDER_CHECKED_PRESSED: ThemeToken =
143    ThemeToken::new_static("feathers.checkbox.border.checked.pressed");
144/// Checkbox border around the checkmark (checked+disabled)
145pub const CHECKBOX_BORDER_CHECKED_DISABLED: ThemeToken =
146    ThemeToken::new_static("feathers.checkbox.border.checked.disabled");
147/// Checkbox check mark
148pub const CHECKBOX_MARK: ThemeToken = ThemeToken::new_static("feathers.checkbox.mark");
149/// Checkbox check mark (disabled)
150pub const CHECKBOX_MARK_DISABLED: ThemeToken =
151    ThemeToken::new_static("feathers.checkbox.mark.disabled");
152/// Checkbox label text
153pub const CHECKBOX_TEXT: ThemeToken = ThemeToken::new_static("feathers.checkbox.text");
154/// Checkbox label text (disabled)
155pub const CHECKBOX_TEXT_DISABLED: ThemeToken =
156    ThemeToken::new_static("feathers.checkbox.text.disabled");
157
158// Radio button
159
160/// Background of the radio button
161pub const RADIO_BG: ThemeToken = ThemeToken::new_static("feathers.radio.bg");
162/// Background of the radio button (hovered)
163pub const RADIO_BG_HOVER: ThemeToken = ThemeToken::new_static("feathers.radio.bg.hover");
164/// Background of the radio button (pressed)
165pub const RADIO_BG_PRESSED: ThemeToken = ThemeToken::new_static("feathers.radio.bg.pressed");
166/// Background of the radio button (disabled)
167pub const RADIO_BG_DISABLED: ThemeToken = ThemeToken::new_static("feathers.radio.bg.disabled");
168/// Background of the radio button (checked)
169pub const RADIO_BG_CHECKED: ThemeToken = ThemeToken::new_static("feathers.radio.bg.checked");
170/// Background of the radio button (checked+hovered)
171pub const RADIO_BG_CHECKED_HOVER: ThemeToken =
172    ThemeToken::new_static("feathers.radio.bg.checked.hover");
173/// Background of the radio button (checked+pressed)
174pub const RADIO_BG_CHECKED_PRESSED: ThemeToken =
175    ThemeToken::new_static("feathers.radio.bg.checked.pressed");
176/// Background of the radio button (checked+disabled)
177pub const RADIO_BG_CHECKED_DISABLED: ThemeToken =
178    ThemeToken::new_static("feathers.radio.bg.checked.disabled");
179/// Border around the radio button
180pub const RADIO_BORDER: ThemeToken = ThemeToken::new_static("feathers.radio.border");
181/// Border around the radio button (hovered)
182pub const RADIO_BORDER_HOVER: ThemeToken = ThemeToken::new_static("feathers.radio.border.hover");
183/// Border around the radio button (pressed)
184pub const RADIO_BORDER_PRESSED: ThemeToken =
185    ThemeToken::new_static("feathers.radio.border.pressed");
186/// Border around the radio button (disabled)
187pub const RADIO_BORDER_DISABLED: ThemeToken =
188    ThemeToken::new_static("feathers.radio.border.disabled");
189/// Border around the radio button (checked)
190pub const RADIO_BORDER_CHECKED: ThemeToken =
191    ThemeToken::new_static("feathers.radio.border.checked");
192/// Border around the radio button (checked+hovered)
193pub const RADIO_BORDER_CHECKED_HOVER: ThemeToken =
194    ThemeToken::new_static("feathers.radio.border.checked.hover");
195/// Border around the radio button (checked+pressed)
196pub const RADIO_BORDER_CHECKED_PRESSED: ThemeToken =
197    ThemeToken::new_static("feathers.radio.border.checked.pressed");
198/// Border around the radio button (checked+disabled)
199pub const RADIO_BORDER_CHECKED_DISABLED: ThemeToken =
200    ThemeToken::new_static("feathers.radio.border.checked.disabled");
201/// Radio check mark
202pub const RADIO_MARK: ThemeToken = ThemeToken::new_static("feathers.radio.mark");
203/// Radio check mark (hovered)
204pub const RADIO_MARK_HOVER: ThemeToken = ThemeToken::new_static("feathers.radio.mark.hover");
205/// Radio check mark (pressed)
206pub const RADIO_MARK_PRESSED: ThemeToken = ThemeToken::new_static("feathers.radio.mark.pressed");
207/// Radio check mark (disabled)
208pub const RADIO_MARK_DISABLED: ThemeToken = ThemeToken::new_static("feathers.radio.mark.disabled");
209/// Radio label text
210pub const RADIO_TEXT: ThemeToken = ThemeToken::new_static("feathers.radio.text");
211/// Radio label text (disabled)
212pub const RADIO_TEXT_DISABLED: ThemeToken = ThemeToken::new_static("feathers.radio.text.disabled");
213
214// Toggle Switch
215
216/// Switch background around the switch
217pub const SWITCH_BG: ThemeToken = ThemeToken::new_static("feathers.switch.bg");
218/// Switch background around the switch (hovered)
219pub const SWITCH_BG_HOVER: ThemeToken = ThemeToken::new_static("feathers.switch.bg.hover");
220/// Switch background around the switch (pressed)
221pub const SWITCH_BG_PRESSED: ThemeToken = ThemeToken::new_static("feathers.switch.bg.pressed");
222/// Switch background around the switch (disabled)
223pub const SWITCH_BG_DISABLED: ThemeToken = ThemeToken::new_static("feathers.switch.bg.disabled");
224/// Switch background around the switch (checked)
225pub const SWITCH_BG_CHECKED: ThemeToken = ThemeToken::new_static("feathers.switch.bg.checked");
226/// Switch background around the switch (checked+hover)
227pub const SWITCH_BG_CHECKED_HOVER: ThemeToken =
228    ThemeToken::new_static("feathers.switch.bg.checked.hover");
229/// Switch background around the switch (checked+pressed)
230pub const SWITCH_BG_CHECKED_PRESSED: ThemeToken =
231    ThemeToken::new_static("feathers.switch.bg.checked.pressed");
232/// Switch background around the switch (checked+disabled)
233pub const SWITCH_BG_CHECKED_DISABLED: ThemeToken =
234    ThemeToken::new_static("feathers.switch.bg.checked.disabled");
235/// Switch border around the switch
236pub const SWITCH_BORDER: ThemeToken = ThemeToken::new_static("feathers.switch.border");
237/// Switch border around the switch (hovered)
238pub const SWITCH_BORDER_HOVER: ThemeToken = ThemeToken::new_static("feathers.switch.border.hover");
239/// Switch border around the switch (pressed)
240pub const SWITCH_BORDER_PRESSED: ThemeToken =
241    ThemeToken::new_static("feathers.switch.border.hover.pressed");
242/// Switch border around the switch (disabled)
243pub const SWITCH_BORDER_DISABLED: ThemeToken =
244    ThemeToken::new_static("feathers.switch.border.disabled");
245/// Switch border around the switch (checked)
246pub const SWITCH_BORDER_CHECKED: ThemeToken =
247    ThemeToken::new_static("feathers.switch.border.checked");
248/// Switch border around the switch (checked+hovered)
249pub const SWITCH_BORDER_CHECKED_HOVER: ThemeToken =
250    ThemeToken::new_static("feathers.switch.border.checked.hover");
251/// Switch border around the switch (checked+pressed)
252pub const SWITCH_BORDER_CHECKED_PRESSED: ThemeToken =
253    ThemeToken::new_static("feathers.switch.border.checked.pressed");
254/// Switch border around the switch (checked+disabled)
255pub const SWITCH_BORDER_CHECKED_DISABLED: ThemeToken =
256    ThemeToken::new_static("feathers.switch.border.checked.disabled");
257/// Switch slide background
258pub const SWITCH_SLIDE_BG: ThemeToken = ThemeToken::new_static("feathers.switch.slide.bg");
259/// Switch slide background (hovered)
260pub const SWITCH_SLIDE_BG_HOVER: ThemeToken =
261    ThemeToken::new_static("feathers.switch.slide.bg.hover");
262/// Switch slide background (pressed)
263pub const SWITCH_SLIDE_BG_PRESSED: ThemeToken =
264    ThemeToken::new_static("feathers.switch.slide.bg.pressed");
265/// Switch slide background (disabled)
266pub const SWITCH_SLIDE_BG_DISABLED: ThemeToken =
267    ThemeToken::new_static("feathers.switch.slide.bg.disabled");
268/// Switch slide background (checked)
269pub const SWITCH_SLIDE_BG_CHECKED: ThemeToken =
270    ThemeToken::new_static("feathers.switch.slide.bg.checked");
271/// Switch slide background (checked+hovered)
272pub const SWITCH_SLIDE_BG_CHECKED_HOVER: ThemeToken =
273    ThemeToken::new_static("feathers.switch.slide.bg.checked.hover");
274/// Switch slide background (checked+pressed)
275pub const SWITCH_SLIDE_BG_CHECKED_PRESSED: ThemeToken =
276    ThemeToken::new_static("feathers.switch.slide.bg.checked.pressed");
277/// Switch slide background (checked+disabled)
278pub const SWITCH_SLIDE_BG_CHECKED_DISABLED: ThemeToken =
279    ThemeToken::new_static("feathers.switch.slide.bg.checked.disabled");
280
281/// Switch slide border
282pub const SWITCH_SLIDE_BORDER: ThemeToken = ThemeToken::new_static("feathers.switch.slide.border");
283/// Switch slide border (hovered)
284pub const SWITCH_SLIDE_BORDER_HOVER: ThemeToken =
285    ThemeToken::new_static("feathers.switch.slide.border.hover");
286/// Switch slide border (pressed)
287pub const SWITCH_SLIDE_BORDER_PRESSED: ThemeToken =
288    ThemeToken::new_static("feathers.switch.slide.border.pressed");
289/// Switch slide border (disabled)
290pub const SWITCH_SLIDE_BORDER_DISABLED: ThemeToken =
291    ThemeToken::new_static("feathers.switch.slide.border.disabled");
292/// Switch slide border (checked)
293pub const SWITCH_SLIDE_BORDER_CHECKED: ThemeToken =
294    ThemeToken::new_static("feathers.switch.slide.border.checked");
295/// Switch slide border (checked+hovered)
296pub const SWITCH_SLIDE_BORDER_CHECKED_HOVER: ThemeToken =
297    ThemeToken::new_static("feathers.switch.slide.border.checked.hover");
298/// Switch slide border (checked+pressed)
299pub const SWITCH_SLIDE_BORDER_CHECKED_PRESSED: ThemeToken =
300    ThemeToken::new_static("feathers.switch.slide.border.checked.pressed");
301/// Switch slide border (checked+disabled)
302pub const SWITCH_SLIDE_BORDER_CHECKED_DISABLED: ThemeToken =
303    ThemeToken::new_static("feathers.switch.slide.border.checked.disabled");
304
305// Color Plane
306
307/// Color plane frame background
308pub const COLOR_PLANE_BG: ThemeToken = ThemeToken::new_static("feathers.colorplane.bg");
309
310// Menus
311
312/// Menu background
313pub const MENU_BG: ThemeToken = ThemeToken::new_static("feathers.menu.bg");
314/// Menu border
315pub const MENU_BORDER: ThemeToken = ThemeToken::new_static("feathers.menu.border");
316/// Menu item
317pub const MENUITEM_BG: ThemeToken = ThemeToken::new_static("feathers.menuitem.bg");
318/// Menu item hovered
319pub const MENUITEM_BG_HOVER: ThemeToken = ThemeToken::new_static("feathers.menuitem.bg.hover");
320/// Menu item pressed
321pub const MENUITEM_BG_PRESSED: ThemeToken = ThemeToken::new_static("feathers.menuitem.bg.pressed");
322/// Menu item focused
323pub const MENUITEM_BG_FOCUSED: ThemeToken = ThemeToken::new_static("feathers.menuitem.bg.focused");
324/// Menu item text
325pub const MENUITEM_TEXT: ThemeToken = ThemeToken::new_static("feathers.menuitem.text");
326/// Menu item text (disabled)
327pub const MENUITEM_TEXT_DISABLED: ThemeToken =
328    ThemeToken::new_static("feathers.menuitem.text.disabled");
329
330// Text Input
331
332/// Background for text input
333pub const TEXT_INPUT_BG: ThemeToken = ThemeToken::new_static("feathers.textinput.bg");
334/// Text color for text input
335pub const TEXT_INPUT_TEXT: ThemeToken = ThemeToken::new_static("feathers.textinput.text");
336/// Text color for text input (disabled)
337pub const TEXT_INPUT_TEXT_DISABLED: ThemeToken =
338    ThemeToken::new_static("feathers.textinput.text.disabled");
339/// Cursor color for text input
340pub const TEXT_INPUT_CURSOR: ThemeToken = ThemeToken::new_static("feathers.textinput.cursor");
341/// Selection color for text input
342pub const TEXT_INPUT_SELECTION: ThemeToken = ThemeToken::new_static("feathers.textinput.selection");
343/// Selection color for unfocused text input
344pub const TEXT_INPUT_SELECTION_UNFOCUSED: ThemeToken =
345    ThemeToken::new_static("feathers.textinput.selection.unfocused");
346/// Background color for label text
347pub const TEXT_INPUT_LABEL_BG: ThemeToken = ThemeToken::new_static("feathers.textinput.label.bg");
348/// Sigil color for X
349pub const TEXT_INPUT_X_AXIS: ThemeToken = ThemeToken::new_static("feathers.textinput.axis.x");
350/// Sigil color for Y
351pub const TEXT_INPUT_Y_AXIS: ThemeToken = ThemeToken::new_static("feathers.textinput.axis.y");
352/// Sigil color for Z
353pub const TEXT_INPUT_Z_AXIS: ThemeToken = ThemeToken::new_static("feathers.textinput.axis.z");
354/// Sigil color for W
355pub const TEXT_INPUT_W_AXIS: ThemeToken = ThemeToken::new_static("feathers.textinput.axis.w");
356
357// Pane
358
359/// Pane header background
360pub const PANE_HEADER_BG: ThemeToken = ThemeToken::new_static("feathers.pane.header.bg");
361/// Pane header border
362pub const PANE_HEADER_BORDER: ThemeToken = ThemeToken::new_static("feathers.pane.header.border");
363/// Pane header text color
364pub const PANE_HEADER_TEXT: ThemeToken = ThemeToken::new_static("feathers.pane.header.text");
365/// Pane header divider color
366pub const PANE_HEADER_DIVIDER: ThemeToken = ThemeToken::new_static("feathers.pane.header.divider");
367/// Pane body background
368pub const PANE_BODY_BG: ThemeToken = ThemeToken::new_static("feathers.pane.body.bg");
369
370// Subpane
371
372/// Subpane background
373pub const SUBPANE_HEADER_BG: ThemeToken = ThemeToken::new_static("feathers.subpane.header.bg");
374/// Subpane header border
375pub const SUBPANE_HEADER_BORDER: ThemeToken =
376    ThemeToken::new_static("feathers.subpane.header.border");
377/// Subpane header text color
378pub const SUBPANE_HEADER_TEXT: ThemeToken = ThemeToken::new_static("feathers.subpane.header.text");
379/// Subpane body background
380pub const SUBPANE_BODY_BG: ThemeToken = ThemeToken::new_static("feathers.subpane.body.bg");
381/// Subpane body border
382pub const SUBPANE_BODY_BORDER: ThemeToken = ThemeToken::new_static("feathers.subpane.body.border");
383
384// Group
385
386/// Group background
387pub const GROUP_BG: ThemeToken = ThemeToken::new_static("feathers.group.bg");
388/// Group header border
389pub const GROUP_BORDER: ThemeToken = ThemeToken::new_static("feathers.group.border");
390/// Group header text color
391pub const GROUP_HEADER_TEXT: ThemeToken = ThemeToken::new_static("feathers.group.header.text");
392
393// Listview
394
395/// Listview row background
396pub const LISTROW_BG: ThemeToken = ThemeToken::new_static("feathers.listrow.bg");
397/// Listview row background (hovered)
398pub const LISTROW_BG_HOVER: ThemeToken = ThemeToken::new_static("feathers.listrow.bg.hover");
399/// Listview row background (selected)
400pub const LISTROW_BG_SELECTED: ThemeToken = ThemeToken::new_static("feathers.listrow.bg.selected");
401/// Listview row text
402pub const LISTROW_TEXT: ThemeToken = ThemeToken::new_static("feathers.listrow.text");
403/// Listview row text (disabled)
404pub const LISTROW_TEXT_DISABLED: ThemeToken =
405    ThemeToken::new_static("feathers.listrow.text.disabled");
406
407// Modal Dialog
408
409/// Dialog background
410pub const DIALOG_BG: ThemeToken = ThemeToken::new_static("feathers.dialog.bg");
411/// Dialog border
412pub const DIALOG_BORDER: ThemeToken = ThemeToken::new_static("feathers.dialog.border");
413/// Dialog header background
414pub const DIALOG_HEADER_BG: ThemeToken = ThemeToken::new_static("feathers.dialog.header.bg");
415/// Dialog text
416pub const DIALOG_TEXT: ThemeToken = ThemeToken::new_static("feathers.dialog.text");
417/// Dialog header text
418pub const DIALOG_HEADER_TEXT: ThemeToken = ThemeToken::new_static("feathers.dialog.header.text");
419
420/// Semantic tokens.
421///
422/// Terms:
423/// * **Surface** - the background color of a container
424/// * **Fill** - the fill color of a control, such as a button
425/// * **Item** - a list item or menu item
426pub mod semantic {
427    use crate::theme::SemanticToken;
428
429    // Surfaces
430
431    /// Base layer of window
432    pub const SURFACE_WINDOW: SemanticToken = SemanticToken::new_static("surface.window");
433    /// Fill for pane body
434    pub const SURFACE_PANE_BODY: SemanticToken = SemanticToken::new_static("surface.pane.body");
435    /// Fill for pane header
436    pub const SURFACE_PANE_HEADER: SemanticToken = SemanticToken::new_static("surface.pane.header");
437    /// Fill for subpane body
438    pub const SURFACE_SUBPANE_BODY: SemanticToken =
439        SemanticToken::new_static("surface.subpane.body");
440    /// Fill for subpane header
441    pub const SURFACE_SUBPANE_HEADER: SemanticToken =
442        SemanticToken::new_static("surface.subpane.header");
443    /// Fill for group
444    pub const SURFACE_GROUP: SemanticToken = SemanticToken::new_static("surface.group");
445    /// Fill for dialog
446    pub const SURFACE_DIALOG: SemanticToken = SemanticToken::new_static("surface.dialog");
447    /// Fill for menu
448    pub const SURFACE_MENU: SemanticToken = SemanticToken::new_static("surface.menu");
449
450    // Borders
451
452    /// Default border
453    pub const BORDER_DEFAULT: SemanticToken = SemanticToken::new_static("border.default");
454
455    // Text
456
457    /// Labels on neutral surfaces
458    pub const TEXT_DEFAULT: SemanticToken = SemanticToken::new_static("text.default");
459    /// Secondary / dim labels
460    pub const TEXT_DIM: SemanticToken = SemanticToken::new_static("text.dim");
461    /// Text on accent or saturated fills
462    pub const TEXT_ON_ACCENT: SemanticToken = SemanticToken::new_static("text.onAccent");
463    /// Disabled text
464    pub const TEXT_DISABLED: SemanticToken = SemanticToken::new_static("text.disabled");
465
466    // Fill: 4 tiers of prominence: ACCENT, SOLID, ITEM and FIELD
467
468    /// Accent fill - used for primary buttons, checked states
469    pub const FILL_ACCENT_DEFAULT: SemanticToken = SemanticToken::new_static("fill.accent.default");
470    /// Accent when hovered
471    pub const FILL_ACCENT_HOVER: SemanticToken = SemanticToken::new_static("fill.accent.hover");
472    /// Accent when pressed
473    pub const FILL_ACCENT_PRESSED: SemanticToken = SemanticToken::new_static("fill.accent.pressed");
474    /// Accent when disabled
475    pub const FILL_ACCENT_DISABLED: SemanticToken =
476        SemanticToken::new_static("fill.accent.disabled");
477
478    /// Default fill - buttons
479    pub const FILL_SOLID_DEFAULT: SemanticToken = SemanticToken::new_static("fill.solid.default");
480    /// Fill when hovered
481    pub const FILL_SOLID_HOVER: SemanticToken = SemanticToken::new_static("fill.solid.hover");
482    /// Fill when pressed
483    pub const FILL_SOLID_PRESSED: SemanticToken = SemanticToken::new_static("fill.solid.pressed");
484    /// Fill when disabled
485    pub const FILL_SOLID_DISABLED: SemanticToken = SemanticToken::new_static("fill.solid.disabled");
486
487    /// Item fill - list items, menus, plain buttons. This is normally transparent (which also
488    /// means no disabled color).
489    pub const FILL_ITEM_DEFAULT: SemanticToken = SemanticToken::new_static("fill.item.default");
490    /// Fill when hovered
491    pub const FILL_ITEM_HOVER: SemanticToken = SemanticToken::new_static("fill.item.hover");
492    /// Fill when pressed
493    pub const FILL_ITEM_PRESSED: SemanticToken = SemanticToken::new_static("fill.item.pressed");
494
495    /// Field fill - text inputs
496    pub const FILL_FIELD_DEFAULT: SemanticToken = SemanticToken::new_static("fill.field.default");
497    /// Field when hovered
498    pub const FILL_FIELD_HOVER: SemanticToken = SemanticToken::new_static("fill.field.hover");
499    /// Field when pressed
500    pub const FILL_FIELD_PRESSED: SemanticToken = SemanticToken::new_static("fill.field.pressed");
501
502    /// Transparent fill (plain buttons)
503    pub const FILL_NONE: SemanticToken = SemanticToken::new_static("fill.none");
504
505    // Decorations
506
507    /// X-Axis
508    pub const AXIS_X: SemanticToken = SemanticToken::new_static("axis.x");
509    /// Y-Axis
510    pub const AXIS_Y: SemanticToken = SemanticToken::new_static("axis.y");
511    /// Z-Axis
512    pub const AXIS_Z: SemanticToken = SemanticToken::new_static("axis.z");
513    /// Z-Axis
514    pub const AXIS_W: SemanticToken = SemanticToken::new_static("axis.w");
515    /// Focus ring
516    pub const FOCUS_RING: SemanticToken = SemanticToken::new_static("focus.ring");
517}