nandi/oripublic Fork 0
55d4c9e2f7a9027b52846558166f42e50851523a
Commits
Clone
git clone https://git.rickub.com/nandi/ori.git
git clone ssh://git@rickub.com/nandi/ori.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

forked from bots-garden/ori

🛟 Updated. f5c963a · on 55d4c9e2f7a9027b52846558166f42e50851523a · k33g · yesterday
0020-add-more-ui-themes.yaml · 217 lines · 6.1 KBYAML Blame HistoryRaw
  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
# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
id: 20
title: Add more UI themes
state: open
author:
  name: k33g
  email: ph.charriere@gmail.com
createdAt: 2026-09-18T00:00:00.000Z
updatedAt: 2026-09-18T00:00:00.000Z
labels:
  - feature
  - enhancement
  - ui
  - theming
body: |
  Expand the current light/dark theme system to support multiple color themes and color schemes.

  ## Current State

  Based on ticket #0013, Ori currently has:
  - Light theme
  - Dark theme
  - Theme toggle functionality

  ## Proposed Themes

  ### Popular Editor Themes
  - **Dracula** - Dark purple-based theme (very popular)
  - **Solarized Light** - Warm beige-based light theme
  - **Solarized Dark** - Dark teal-based theme
  - **Monokai** - Dark theme with vibrant colors
  - **Nord** - Cool blue/gray theme
  - **One Dark** - Atom's dark theme
  - **One Light** - Atom's light theme
  - **GitHub Light** - GitHub's light theme
  - **GitHub Dark** - GitHub's dark theme
  - **Gruvbox** - Warm retro groove colors
  - **Material Theme** - Google Material Design inspired
  - **Night Owl** - Dark theme optimized for night coding

  ### VS Code Compatible
  - Import popular VS Code themes
  - Support VS Code theme JSON format
  - Allow users to load custom .vsix themes

  ### High Contrast Options
  - High Contrast Light (accessibility)
  - High Contrast Dark (accessibility)
  - WCAG AAA compliant color combinations

  ### Colorblind-Friendly
  - Deuteranopia (red-green colorblind) friendly
  - Protanopia friendly
  - Tritanopia (blue-yellow colorblind) friendly

  ## Requirements

  ### Theme Management
  - Theme selector in settings/preferences
  - Preview themes before applying
  - Persist selected theme across sessions
  - Quick theme switcher (dropdown or command palette)
  - Theme applies to entire UI (panels, editor, terminal)

  ### Theme Components
  Each theme should define:
  - Background colors (primary, secondary, tertiary)
  - Foreground/text colors
  - Syntax highlighting colors (keywords, strings, comments, etc.)
  - UI element colors (borders, dividers, shadows)
  - Status colors (info, success, warning, error)
  - Selection/highlight colors
  - Terminal colors (16-color palette)

  ### Monaco Editor Integration
  - Themes must work with Monaco editor
  - Support for semantic highlighting
  - Consistent colors between UI and code editor
  - Import Monaco/VS Code theme definitions

  ## Implementation Considerations

  ### Frontend Architecture
  - CSS custom properties (variables) for easy theme switching
  - Theme configuration in JSON/JavaScript
  - Dynamic CSS injection or class-based switching
  - Tailwind CSS theme extension (if using Tailwind)

  ### Theme File Structure
  ```
  themes/
    ├── dracula.json
    ├── solarized-light.json
    ├── nord.json
    └── custom/
        └── user-theme.json
  ```

  ### Theme Definition Format
  ```json
  {
    "name": "Dracula",
    "type": "dark",
    "colors": {
      "background": "#282a36",
      "foreground": "#f8f8f2",
      "primary": "#bd93f9",
      "secondary": "#ff79c6",
      "accent": "#50fa7b",
      "border": "#44475a",
      "selection": "#44475a",
      "error": "#ff5555",
      "warning": "#ffb86c",
      "success": "#50fa7b",
      "info": "#8be9fd"
    },
    "syntax": {
      "keyword": "#ff79c6",
      "string": "#f1fa8c",
      "comment": "#6272a4",
      "function": "#50fa7b",
      "variable": "#f8f8f2",
      "number": "#bd93f9",
      "operator": "#ff79c6"
    },
    "terminal": {
      "black": "#21222c",
      "red": "#ff5555",
      "green": "#50fa7b",
      ...
    }
  }
  ```

  ### Custom Theme Support
  - Allow users to upload custom themes
  - Theme editor/creator UI (advanced)
  - Export current theme as JSON
  - Share themes via URL or file

  ## User Experience

  ### Theme Switcher UI Options
  1. **Dropdown in toolbar** - Quick access, always visible
  2. **Settings panel** - More detailed, with preview
  3. **Command palette** - `/theme <name>` command
  4. **Keyboard shortcut** - Cycle through themes (Cmd+K T)

  ### Preview Before Apply
  - Show theme preview in modal/sidebar
  - Split view: current vs. new theme
  - Live preview without committing
  - Preview on hover (theme gallery)

  ### Theme Categories
  - Group themes: Light, Dark, High Contrast, Colorblind-Friendly
  - Filter/search themes by name or characteristics
  - Mark favorite themes
  - Recently used themes

  ## Accessibility Considerations

  - WCAG 2.1 AA minimum contrast ratios
  - AAA compliance for high contrast themes
  - Colorblind simulation/testing tools
  - Screen reader announcements for theme changes
  - Respect system preferences (prefers-color-scheme, prefers-contrast)

  ## Related Features

  - Could integrate with `/btw theme dracula` command
  - Auto-switch based on time of day (optional)
  - Sync theme with OS system theme
  - Per-workspace theme preferences
  - Theme marketplace/gallery (future)

  ## Migration Path

  - Existing light/dark themes become "Default Light" and "Default Dark"
  - Current theme setting preserved
  - Gradual rollout of new themes
  - Theme compatibility version checking

  ## Open Questions

  - Should terminal colors be part of theme or separate?
  - Support for theme-specific fonts?
  - Allow per-file-type theme overrides?
  - Should themes affect Monaco editor minimap colors?
  - Support for animated theme transitions?
  - Should there be a "theme of the day" feature?
  - Community theme submissions/repository?

  ## Technical Challenges

  - Ensuring consistent colors across all UI components
  - Performance impact of theme switching (CSS recalculation)
  - Monaco editor theme format conversion
  - Terminal emulator color scheme integration
  - Testing all themes for accessibility compliance
  - Managing theme asset size (bundle size optimization)

  ## Priority

  Medium - Nice to have for personalization and accessibility

  ## Related Issues

  - #0013 - Themes: light and dark (completed)

  ## Inspiration

  - VS Code theme marketplace
  - JetBrains IDE themes
  - Zed editor themes
  - iTerm2 color schemes
  - Hyper terminal themes