[FEATURE]: Custom themes can use calculated system colors #3948

Open
opened 2026-02-16 17:42:03 -05:00 by yindo · 2 comments
Owner

Originally created by @nihil2501 on GitHub (Dec 28, 2025).

Originally assigned to: @thdxr on GitHub.

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

PR

Description

OpenCode themes address UI concepts that don't necessarily exist in themes for other tools like Helix, e.g.:

  • backgroundElement
  • backgroundMenu
  • backgroundPanel
  • border
  • borderActive
  • borderSubtle

In my case, I wanted to make a custom theme that matches what I have in Helix. I also already have terminal ANSI colors that match my Helix theme. Rather than go through the manual work to choose colors for every slot OpenCode offers, I'd like to be able to customize some colors, while falling back to the values of the calculated system theme for the rest.

Example

This "extreme" example shows syntax highlighting I took from Helix's "Pop Dark" theme, and everything else OpenCode is deriving given that Ghostty's theme is set to "HaX0R Blue".

Screenshot 2025-12-28 at 5 57 00 PM
Originally created by @nihil2501 on GitHub (Dec 28, 2025). Originally assigned to: @thdxr on GitHub. ### Feature hasn't been suggested before. - [x] I have verified this feature I'm about to request hasn't been suggested before. ### Describe the enhancement you want to request [PR](https://github.com/anomalyco/opencode/pull/9184) ### Description OpenCode themes address UI concepts that don't necessarily exist in themes for other tools like Helix, e.g.: - `backgroundElement` - `backgroundMenu` - `backgroundPanel` - `border` - `borderActive` - `borderSubtle` In my case, I wanted to make a custom theme that matches what I have in Helix. I also already have terminal ANSI colors that match my Helix theme. Rather than go through the manual work to choose colors for _every_ slot OpenCode offers, I'd like to be able to customize _some_ colors, while falling back to the values of the calculated `system` theme for the rest. ### Example This "extreme" example shows syntax highlighting I took from Helix's "Pop Dark" theme, and everything else OpenCode is deriving given that Ghostty's theme is set to "HaX0R Blue". <img width="954" height="219" alt="Screenshot 2025-12-28 at 5 57 00 PM" src="https://github.com/user-attachments/assets/1aea31de-1efb-425b-990f-af8339b215c9" />
yindo added the discussion label 2026-02-16 17:42:03 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Dec 28, 2025):

This issue might be a duplicate of existing issues. Please check:

  • #4236: Can't use custom themes that use ANSI colors
  • #101: Use terminal theme colors by default
  • #3644: [FEATURE]: "system" theme to use existing terminal palette

These issues are all about using system/terminal colors as fallbacks in themes, which directly relates to your feature request for custom themes to use system colors. Feel free to ignore if your specific case differs from these.

@github-actions[bot] commented on GitHub (Dec 28, 2025): This issue might be a duplicate of existing issues. Please check: - #4236: Can't use custom themes that use ANSI colors - #101: Use terminal theme colors by default - #3644: [FEATURE]: "system" theme to use existing terminal palette These issues are all about using system/terminal colors as fallbacks in themes, which directly relates to your feature request for custom themes to use system colors. Feel free to ignore if your specific case differs from these.
Author
Owner

@nihil2501 commented on GitHub (Jan 29, 2026):

Closed feat(tui): system-like custom themes in favor of refactor(tui): theme switching & loading reactivity for now in order to incrementally introduce an atomic foundational change before considering adding this feature on top of it.

@nihil2501 commented on GitHub (Jan 29, 2026): Closed [feat(tui): system-like custom themes](https://github.com/anomalyco/opencode/pull/9184) in favor of [refactor(tui): theme switching & loading reactivity](https://github.com/anomalyco/opencode/pull/10472) for now in order to incrementally introduce an atomic foundational change before considering adding this feature on top of it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#3948