Skip to content

feat: add bubbletint library, theme picker modal, and custom themes support - #2

Open
Raina-Hardik wants to merge 6 commits into
parsaenami:mainfrom
Raina-Hardik:feat/bubbletint-theme-picker
Open

feat: add bubbletint library, theme picker modal, and custom themes support#2
Raina-Hardik wants to merge 6 commits into
parsaenami:mainfrom
Raina-Hardik:feat/bubbletint-theme-picker

Conversation

@Raina-Hardik

Copy link
Copy Markdown
Contributor

Summary

Integrates github.com/lrstanley/bubbletint/v2 into taskii, providing an interactive fuzzy-search theme browser with 340+ themes, bidirectional curated cycling, adaptive palette conversions, and extensible custom theme loading.

Key Changes

  1. Interactive Theme Browser (alt+t):

    • Opens a modal dialog with real-time fuzzy filtering across all 340+ built-in bubbletint themes, curated themes, and user custom themes.
    • ↑/↓ (or ctrl+p/ctrl+n) navigates items with instant live-preview across the entire dashboard.
    • Enter confirms and persists the selected theme to data/settings.json.
    • Esc / ctrl+c cancels and restores the original theme.
    • Distinct source badges: ★ curated (gold/accent), ⚙ tint (muted/accent), and ✦ custom (green/accent).
  2. Curated Quick Cycling:

    • t cycles forward through the 7 curated core themes (Ember, Tokyo Night, Dracula, Nord, Light, Monokai, Everforest).
    • T cycles backward through the curated themes.
  3. Adaptive Tint Conversion (tintToTheme):

    • Converts standard bubbletint palettes into taskii's 3-layer surface model (Bg < PaneBg < Panel < Border), calculating contrast-aware AppTitleFg and generating a 5-step monotonic HeatmapRamp.
  4. Extensible Custom Themes:

    • Discovers custom .json and .jsonl files across cross-platform XDG config/data directories via github.com/adrg/xdg ($XDG_CONFIG_HOME/taskii/themes/, ~/Library/Application Support/taskii/themes/, %AppData%\taskii\themes\) and project-local data/themes/.
    • Supports both full native Taskii Theme objects and standard terminal/Bubbletint Tint objects.
  5. Documentation & Tests:

    • Added unit test suite covering registry initialization, cycling, theme resolution, search filtering, custom parsing, and modal layout dimensions.
    • Updated README.md and AGENTS.md with keybindings, directories, and example JSON snippets.

@parsaenami

Copy link
Copy Markdown
Owner

Thanks for your contribution to this project!
Also a nice feature! I have a few suggestions on this. I'll leave comments and let you know.

Peace

Comment thread internal/ui/app.go Outdated
Comment thread internal/ui/app.go Outdated
Comment thread internal/ui/app.go
Comment thread internal/ui/app.go Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants