Sprint 7: Accessibility and Theming
Goal: Improve accessibility features and add theming support for visual customization.
Planned Features
Accessibility
- High contrast mode
- Larger text option
- Keyboard navigation indicators (visible focus rings)
- Screen reader hints (if feasible with X11)
- Reduced motion option (disable fade transitions)
Theming
- Theme configuration in
/etc/gardm/theme.toml - Customizable colors:
- Background overlay color/opacity
- Panel background color
- Text colors (primary, secondary, error, info)
- Accent color for focus/selection
- Button colors
- Custom font selection
- Custom logo/branding image
- Corner radius customization
Configuration Options
[theme]
# Colors (CSS-style hex or rgba)
background_overlay = "rgba(0, 0, 0, 0.6)"
panel_background = "rgba(20, 20, 20, 0.9)"
text_primary = "#ffffff"
text_secondary = "#cccccc"
text_error = "#ff6b6b"
text_info = "#6bff6b"
accent = "#4a90d9"
# Typography
font_family = "Sans"
font_size_normal = 14
font_size_large = 18
font_size_title = 24
# Layout
corner_radius = 16
panel_padding = 24
[accessibility]
high_contrast = false
large_text = false
reduce_motion = false
Implementation Notes
- Theme loaded at startup from config
- Fallback to defaults if theme file missing
- Colors parsed from hex (#RRGGBB) or rgba() format
- High contrast mode overrides theme colors with maximum contrast values
View source
| 1 | # Sprint 7: Accessibility and Theming |
| 2 | |
| 3 | **Goal:** Improve accessibility features and add theming support for visual customization. |
| 4 | |
| 5 | ## Planned Features |
| 6 | |
| 7 | ### Accessibility |
| 8 | - [ ] High contrast mode |
| 9 | - [ ] Larger text option |
| 10 | - [ ] Keyboard navigation indicators (visible focus rings) |
| 11 | - [ ] Screen reader hints (if feasible with X11) |
| 12 | - [ ] Reduced motion option (disable fade transitions) |
| 13 | |
| 14 | ### Theming |
| 15 | - [ ] Theme configuration in `/etc/gardm/theme.toml` |
| 16 | - [ ] Customizable colors: |
| 17 | - Background overlay color/opacity |
| 18 | - Panel background color |
| 19 | - Text colors (primary, secondary, error, info) |
| 20 | - Accent color for focus/selection |
| 21 | - Button colors |
| 22 | - [ ] Custom font selection |
| 23 | - [ ] Custom logo/branding image |
| 24 | - [ ] Corner radius customization |
| 25 | |
| 26 | ### Configuration Options |
| 27 | ```toml |
| 28 | [theme] |
| 29 | # Colors (CSS-style hex or rgba) |
| 30 | background_overlay = "rgba(0, 0, 0, 0.6)" |
| 31 | panel_background = "rgba(20, 20, 20, 0.9)" |
| 32 | text_primary = "#ffffff" |
| 33 | text_secondary = "#cccccc" |
| 34 | text_error = "#ff6b6b" |
| 35 | text_info = "#6bff6b" |
| 36 | accent = "#4a90d9" |
| 37 | |
| 38 | # Typography |
| 39 | font_family = "Sans" |
| 40 | font_size_normal = 14 |
| 41 | font_size_large = 18 |
| 42 | font_size_title = 24 |
| 43 | |
| 44 | # Layout |
| 45 | corner_radius = 16 |
| 46 | panel_padding = 24 |
| 47 | |
| 48 | [accessibility] |
| 49 | high_contrast = false |
| 50 | large_text = false |
| 51 | reduce_motion = false |
| 52 | ``` |
| 53 | |
| 54 | ### Implementation Notes |
| 55 | - Theme loaded at startup from config |
| 56 | - Fallback to defaults if theme file missing |
| 57 | - Colors parsed from hex (#RRGGBB) or rgba() format |
| 58 | - High contrast mode overrides theme colors with maximum contrast values |