Skip to content

feat(ui): add light theme (Charmtone Latte)#3139

Open
alexpospekhov wants to merge 1 commit into
charmbracelet:mainfrom
alexpospekhov:feat/light-theme
Open

feat(ui): add light theme (Charmtone Latte)#3139
alexpospekhov wants to merge 1 commit into
charmbracelet:mainfrom
alexpospekhov:feat/light-theme

Conversation

@alexpospekhov

@alexpospekhov alexpospekhov commented Jun 17, 2026

Copy link
Copy Markdown

This PR adds a light theme for Crush, addressing light-mode requests in #755 and Discussion #804.

What's new

  • New theme: Charmtone Latte
  • Theme preference via:
    • options.tui.theme config key (auto, dark, light)
    • CRUSH_THEME environment variable
  • Diff highlight colors are now theme-configurable so they work on light backgrounds
  • Default behavior is unchanged: auto keeps the existing provider-based dark theme

Example config

{
  "options": {
    "tui": {
      "theme": "light"
    }
  }
}

Notes

  • go test ./... passes
  • Backwards compatible: existing configs without theme keep current behavior.

This commit introduces a light theme for Crush, selectable via:
- options.tui.theme config key (auto/dark/light)
- CRUSH_THEME environment variable

Changes:
- Add CharmtoneLatte() light theme in internal/ui/styles/themes.go
- Make diff highlight colors theme-configurable in quickStyle
- Wire theme preference through config, app, common UI, and session output
- Default behavior remains unchanged (auto => provider-based dark theme)

Closes discussion around light mode support.
@charmcli

Copy link
Copy Markdown
Contributor

Thank you for your submission. We really appreciate it! Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request comment same as the below format.


I have read the Contributor License Agreement (CLA) and hereby sign the CLA.


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants