Choosing a colorscheme

Over the years, I've dabbled with several colorschemes. This is not an easy choice and quite personal. The best thing is to write first a list of requirements. Here's mine:

  1. A light and dark version, both pleasing to the eye.
  2. Support across all my tools — terminal, shell, editor.
  3. Readability

The thing is that readability is subjective. Do you prefer high or medium contrast? Do you want a rich palette for syntax highlighting or few colors to focus on content ? Light and dark themes are also a debated topic. So far, I've seen no convincing evidence that one is better for your eyes but suspect screen brightness is more important. Also, a light theme is a better fit for GUI apps, especially web browsers. You could argue there are dark themes there as well but they are badly thought out and hard to read. As a compromise, I currently run a light theme during the day and switch to dark in the evenings.

It's also interesting to note some themes are more prevalent in some communities: Gruvbox is one of the go-to recommendations in the (neo)vim world, while Modus Themes are often cited amongst Emacs users. Over the past five years, 4 themes stuck out of the rest: Catppuccin, Rose-pine, Modus themes, and Gruvbox. Unfortunately, I found none that satisfied me in both light and dark version.

Rose-pine has a palette that is appealing. But the light theme is barely readable with some light font on a light background, and this was a deal breaker for me. Gruvbox has a 70s aesthetic and people seem to love or hate it. The light theme leans heavily towards yellow, but it stays quite readable. In the dark version, red colors are not readable for me. Catppuccin is the one I kept getting back to. It has strong support across many editors and other tools. The dark version is really pleasing to the eyes. On the contrary, the light version has too many colors and not enough contrast, which is more distracting than anything.

Modus Themes are weird ones. Designed by Prot with a focus on accessibility and high contrast, they are now shipped as official Emacs themes. The light version is my favorite and it reads like a printed page. As a book, it is a bit boring after a time in the terminal. The dark version on the other hand has too much contrast. I recently discovered the tinted variant which strikes a better balance. Tool support is narrower than Catppuccin but Ghostty and Helix support it. Interestingly, Prot also made ef-themes, a collection of seasonal variants that are fun to play with. At this point, you may have guessed the Modus themes are my current choices. I encourage you to try it for a bit as it takes some time to get used to. You will have a hard time coming back to medium-contrast themes after that !

Illustrating colorscheme within Helix on the Zig compiler code base
Colorscheme Light Dark
Modus Themes Modus Operandi Modus Vivendi
Gruvbox Gruvbox Light Gruvbox Dark
Catppuccin Catppuccin Latte Catppuccin Mocha
Rosé-Pine Rosé-Pine Dawn Rosé-Pine