[FEATURE]: Add ef-themes collection by Protesilaos Stavrou #3701

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

Originally created by @anntnzrb on GitHub (Dec 20, 2025).

Summary

I'd like to propose adding themes from the ef-themes collection by Protesilaos Stavrou to OpenCode. These are well-established, accessibility-focused themes originally designed for GNU Emacs, with 490+ stars and active maintenance.

Why ef-themes?

  • Cohesive design: All 34 themes share consistent design principles focused on legibility and aesthetics
  • Accessibility: Includes dedicated themes for color vision deficiencies (deuteranopia, tritanopia)
  • Variety: Covers seasonal/mood themes (autumn, winter, spring, summer, day, night, frost, etc.)
  • Established: Part of GNU ELPA, widely used in the Emacs community
  • License: GPL-3.0, compatible with OpenCode
  • Port-ready: Terminal color definitions already exist via ghostty-themes

Available themes (34 total)

Dark (17) Light (13) Accessibility (4)
ef-autumn, ef-bio, ef-cherie, ef-cyprus, ef-dark, ef-dream, ef-duo-dark, ef-eagle, ef-elea-dark, ef-kassio, ef-maris-dark, ef-melissa-dark, ef-night, ef-owl, ef-rosa, ef-symbiosis, ef-trio-dark, ef-winter ef-arbutus, ef-day, ef-light, ef-frost, ef-spring, ef-summer, ef-duo-light, ef-elea-light, ef-maris-light, ef-melissa-light, ef-reverie, ef-trio-light ef-deuteranopia-dark, ef-deuteranopia-light, ef-tritanopia-dark, ef-tritanopia-light

Sample Screenshots

Note: These are from Emacs, but colors will translate to OpenCode's TUI

Dark Themes

ef-autumn

ef-autumn

ef-winter

ef-winter

ef-night

ef-night

Light Themes

ef-summer

ef-summer

ef-melissa-light

ef-melissa-light

ef-frost

ef-frost

Accessibility Themes

ef-deuteranopia-dark (red-green colorblind)

ef-deuteranopia-dark

ef-deuteranopia-light

ef-deuteranopia-light

ef-tritanopia-dark (blue-yellow colorblind)

ef-tritanopia-dark

ef-tritanopia-light

ef-tritanopia-light

Questions for maintainers

Before investing effort in implementation, I'd like to understand:

  1. Would you accept this collection? Given OpenCode already has ~30 themes, would adding more be welcome?

  2. How many is too many? Would you prefer:

    • Option A: A curated subset (~8-10 themes covering dark/light/accessibility)
    • Option B: The full collection (34 themes)
    • Option C: Start with a few, add more based on user demand
  3. Contribution format?

    • One PR with all themes
    • Multiple smaller PRs (batched by category)
    • Individual PRs per theme

Resources


I'm available to implement this once there's guidance on the preferred approach.

Originally created by @anntnzrb on GitHub (Dec 20, 2025). ## Summary I'd like to propose adding themes from the [ef-themes](https://github.com/protesilaos/ef-themes) collection by Protesilaos Stavrou to OpenCode. These are well-established, accessibility-focused themes originally designed for GNU Emacs, with 490+ stars and active maintenance. ## Why ef-themes? - **Cohesive design**: All 34 themes share consistent design principles focused on legibility and aesthetics - **Accessibility**: Includes dedicated themes for color vision deficiencies (deuteranopia, tritanopia) - **Variety**: Covers seasonal/mood themes (autumn, winter, spring, summer, day, night, frost, etc.) - **Established**: Part of GNU ELPA, widely used in the Emacs community - **License**: GPL-3.0, compatible with OpenCode - **Port-ready**: Terminal color definitions already exist via [ghostty-themes](https://github.com/anhsirk0/ghostty-themes) ## Available themes (34 total) | Dark (17) | Light (13) | Accessibility (4) | |-----------|------------|-------------------| | ef-autumn, ef-bio, ef-cherie, ef-cyprus, ef-dark, ef-dream, ef-duo-dark, ef-eagle, ef-elea-dark, ef-kassio, ef-maris-dark, ef-melissa-dark, ef-night, ef-owl, ef-rosa, ef-symbiosis, ef-trio-dark, ef-winter | ef-arbutus, ef-day, ef-light, ef-frost, ef-spring, ef-summer, ef-duo-light, ef-elea-light, ef-maris-light, ef-melissa-light, ef-reverie, ef-trio-light | ef-deuteranopia-dark, ef-deuteranopia-light, ef-tritanopia-dark, ef-tritanopia-light | ## Sample Screenshots > Note: These are from Emacs, but colors will translate to OpenCode's TUI <details> <summary><strong>Dark Themes</strong></summary> ### ef-autumn ![ef-autumn](https://protesilaos.com/assets/images/ef/ef-autumn.png) ### ef-winter ![ef-winter](https://protesilaos.com/assets/images/ef/ef-winter.png) ### ef-night ![ef-night](https://protesilaos.com/assets/images/ef/ef-night.png) </details> <details> <summary><strong>Light Themes</strong></summary> ### ef-summer ![ef-summer](https://protesilaos.com/assets/images/ef/ef-summer.png) ### ef-melissa-light ![ef-melissa-light](https://protesilaos.com/assets/images/ef/ef-melissa-light.png) ### ef-frost ![ef-frost](https://protesilaos.com/assets/images/ef/ef-frost.png) </details> <details> <summary><strong>Accessibility Themes</strong></summary> ### ef-deuteranopia-dark (red-green colorblind) ![ef-deuteranopia-dark](https://protesilaos.com/assets/images/ef/ef-deuteranopia-dark.png) ### ef-deuteranopia-light ![ef-deuteranopia-light](https://protesilaos.com/assets/images/ef/ef-deuteranopia-light.png) ### ef-tritanopia-dark (blue-yellow colorblind) ![ef-tritanopia-dark](https://protesilaos.com/assets/images/ef/ef-tritanopia-dark.png) ### ef-tritanopia-light ![ef-tritanopia-light](https://protesilaos.com/assets/images/ef/ef-tritanopia-light.png) </details> ## Questions for maintainers Before investing effort in implementation, I'd like to understand: 1. **Would you accept this collection?** Given OpenCode already has ~30 themes, would adding more be welcome? 2. **How many is too many?** Would you prefer: - **Option A**: A curated subset (~8-10 themes covering dark/light/accessibility) - **Option B**: The full collection (34 themes) - **Option C**: Start with a few, add more based on user demand 3. **Contribution format?** - One PR with all themes - Multiple smaller PRs (batched by category) - Individual PRs per theme ## Resources - Original Emacs package: https://github.com/protesilaos/ef-themes - Documentation & all screenshots: https://protesilaos.com/emacs/ef-themes-pictures - Terminal color ports: https://github.com/anhsirk0/ghostty-themes --- I'm available to implement this once there's guidance on the preferred approach.
yindo added the discussion label 2026-02-16 17:41:09 -05:00
Author
Owner

@malhashemi commented on GitHub (Dec 20, 2025):

Hi @anntnzrb custom themes are a thing in OpenCode. Just place the .json files in ~.config/opencode/themes for example I have a matugen theme generated theme that I call dynamic.json (I mainly use that instead of the default system, so I can have no background for OpenCode). Would be nice if someone makes a Repo with all community submitted themes that we can all contribute to. Unfortunately, OpenCode does not support theme hot reloading at the moment so we can't have a plugin where we can download themes directly from the Repo (see open PR #4879 )

@malhashemi commented on GitHub (Dec 20, 2025): Hi @anntnzrb custom themes are a thing in OpenCode. Just place the `.json` files in `~.config/opencode/themes` for example I have a matugen theme generated theme that I call `dynamic.json` (I mainly use that instead of the default system, so I can have no background for OpenCode). Would be nice if someone makes a Repo with all community submitted themes that we can all contribute to. Unfortunately, OpenCode does not support theme hot reloading at the moment so we can't have a plugin where we can download themes directly from the Repo (see open PR #4879 )
Author
Owner

@ariane-emory commented on GitHub (Dec 20, 2025):

Personally, I think more themes are always a great idea.

@ariane-emory commented on GitHub (Dec 20, 2025): Personally, I think more themes are always a great idea.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#3701