-
Notifications
You must be signed in to change notification settings - Fork 106
Add keyboard theme customization with multi-category theme picker #643
Copy link
Copy link
Labels
designRelates to UX/UI designsRelates to UX/UI designs
Description
Terms
- I have searched open and closed design issues
- I agree to follow Scribe-iOS' Code of Conduct
Description
Summary
Scribe currently has no way for users to personalize the keyboard's appearance.
All keyboards use a single default color scheme that follows system light/dark mode.
This issue proposes adding a full keyboard theme system with a visual theme picker in the Settings tab.
Motivation
- Users expect keyboard personalization as a standard feature (Gboard, SwiftKey, Fleksy all offer it)
- Scribe's language-learning focus makes it a daily-use keyboard — users want it to feel personal
- No other keyboard app offers culturally-inspired themes tied to the languages being learned
Proposed Solution
Theme System
- Add a
KeyboardThemestruct defining all keyboard color slots - Add a
ThemeManagerthat persists the selected theme via the sharedUserDefaultsapp group and applies it to the global color variables used across all keyboard extensions - Themes apply instantly across all installed language keyboards without restart
Theme Categories (37 themes total)
| Category | Examples |
|---|---|
| Classic | Default, Ocean, Teal, Sepia |
| Dark | Midnight, Violet, Slate, Crimson |
| Light | Snow, Rose, Lavender, Mint, Peach, Sand |
| Gradient | Aurora, Sunset, Galaxy, Ember, Cotton Candy, Citrus, Arctic |
| Neon | Neon Cyber, Neon Pulse, Neon Lime |
| Nature | Forest, Terracotta, Sakura, Deep Sea, Autumn |
| Cultural | Berlin, Paris, Madrid, Stockholm |
| Accessible | HC Dark, HC Light, Warm AA |
Theme Picker UI
- Gboard-style sectioned 3-column grid in Settings → Keyboard theme
- Each card shows a realistic mini keyboard preview with key rows and spacebar strip
- Gradient themes render actual
CAGradientLayerdiagonal gradients in the preview - Selected theme shows a CTA-colored border and checkmark badge
- System-adaptive colors (works in both light and dark mode)
- Current theme name shown as subtitle on the Settings row
Files Changed
Keyboards/KeyboardsBase/KeyboardTheme.swift(new)Scribe/Themes/ThemePickerViewController.swift(new)Keyboards/KeyboardsBase/KeyboardViewController.swiftScribe/SettingsTab/SettingsTableData.swiftScribe/SettingsTab/SettingsViewController.swiftScribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swiftScribe/ParentTableCellModel.swift
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
designRelates to UX/UI designsRelates to UX/UI designs