Skip to content

feat(themes): app-wide theme system with Appearance tab (20 themes)#14

Merged
iptoux merged 2 commits into
mainfrom
feat/appearance-theme-tab
May 22, 2026
Merged

feat(themes): app-wide theme system with Appearance tab (20 themes)#14
iptoux merged 2 commits into
mainfrom
feat/appearance-theme-tab

Conversation

@iptoux
Copy link
Copy Markdown
Contributor

@iptoux iptoux commented May 22, 2026

Summary

  • Adds an app-wide theme system with 20 selectable themes (default blxcode-dark / BLXCode), persisted via ThemeService + blxcode_theme_v1 and applied through html[data-theme] + themes/tokens.css.
  • Ships Settings → Appearance with hero preview, search, All/Dark/Light filters, and theme preview cards (roomier padding/spacing, semi-transparent active checkmark).
  • Tokenizes global/component CSS to semantic theme tokens; syncs xterm, memory graph 2D/3D, and agent accents via blxcode-theme-changed.
  • Fixes BLXCode theme color regression where bulk tokenization mapped text labels to overlay tokens (settings radios/checkboxes, hints, hook badges).
  • Adds lint gate (scripts/lint_theme_tokens.sh), contributor rule, docs, and i18n for all theme names/descriptions across 13 locales.

Test plan

  • Open Settings → Appearance — 20 themes visible; search + Dark/Light filters work
  • Select several themes (BLXCode, Rosé Pine, GitHub Dark, Rose Pine Dawn) — instant apply, no FOUC on reload
  • Verify App settings: radio/checkbox labels readable; checkmarks semi-transparent accent
  • Verify Terminal hooks brand circles and status badges on BLXCode theme
  • Open terminal + memory graph — colors track theme changes live
  • cargo check -p blxcode-ui --target wasm32-unknown-unknown
  • bash scripts/lint_theme_tokens.sh

Made with Cursor

iptoux and others added 2 commits May 22, 2026 09:52
…es and centralized tokenization

- Introduced a new theme system allowing users to select from 12 themes, including dark and light modes.
- Replaced hardcoded colors in styles with semantic CSS custom properties for better maintainability and consistency.
- Added a theme picker in the Settings → Appearance pane, featuring a hero preview and search functionality.
- Implemented persistence of the selected theme using localStorage, ensuring user preferences are retained across sessions.
- Updated documentation to include theme management and exceptions for surfaces not affected by the theme system.
- Added linting and tokenization scripts to enforce the use of theme tokens in stylesheets.

Co-authored-by: Cursor <cursoragent@cursor.com>
… enhance appearance settings

- Updated the theme system to support 20 themes, adding new options such as Rosé Pine, Everforest Dark, and GitHub Dark.
- Enhanced the Settings → Appearance pane with improved layout and functionality, including a hero preview and search filters.
- Refactored CSS to utilize semantic tokens for all themes, ensuring consistency and maintainability across the application.
- Added localization support for new themes, updating i18n keys across multiple languages.
- Improved the user interface for theme selection, including better spacing and padding in theme cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
@iptoux iptoux added documentation Improvements or additions to documentation enhancement New feature or request review Ticket/Steps need to be review/tested labels May 22, 2026
@iptoux iptoux self-assigned this May 22, 2026
@iptoux iptoux merged commit 6746e0e into main May 22, 2026
1 check passed
@iptoux iptoux deleted the feat/appearance-theme-tab branch May 22, 2026 09:12
iptoux added a commit that referenced this pull request May 22, 2026
Bump patch by 2 merged PRs since v0.2.1 (#13, #14).

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request review Ticket/Steps need to be review/tested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant