After more than two decades glued to screens (computer and mobile), my eyes have started to complain. Nothing dramatic, just the familiar fatigue after long sessions in front of the computer.
I have always been particular about my colour schemes, I believe that anyone who stares in front of a computer for long hours should be, and for a couple of years, Solarized Dark was my loyal companion.
I’ve decided to try something new, not because I don’t like Solarized, but just to try and adapt my eyes to different themes. I’ve tried Nord Theme for a while, it’s great and nice, but I found Catppuccin Mocha to be the right replacement for Solarized.
Why does a colour profile theme matter?
A well designed colour theme is not just about aesthetics. It’s about ergonomics, here is what a proper colour palette gives you:
- Consistent contrast ratios across code syntax
- Semantic colour mapping - Keywords, strings, comments and variables, each get a distinct hue, so it can also increase your productivity and reduce eye strains.
- Reduce light fatigue - by focusing on warmer accents
- Lower luminance - dark themes help in a dim environment and reduce the contrast between your screen and the room
- Uniformity - For me, the most important item, your eye actually gets used to that profile and makes it easy and comfortable to stay longer in front of the computer without fatigue.
And yes, I love dark themes, most of the time, dark room as well :-)
Solarized
Solarized is a masterpiece. According to Ethan Schoonover, it was designed with CIELAB perceptual lightness in mind, meaning the background and foreground sit at a very specific lightness value that minimise eye strain. The accent colours are chosen to have roughly equal perceptual contrast against the background, so not much colour dominance.
I used Solarized Dark for a long time and I never felt harsh. It was the sensible and great colour scheme.
But I must admit I got bored and would like to try different themes.
Nord Theme
Nord was my first stop. Arctic, bluish, inspired by the colour palettes of the polar regions. It’s beautiful in a minimalist way, calm, with blues and cool grays that feel like a winter morning.
I enjoy it, and it makes me feel very calm. But I found the palette quite limited, and sometimes it’s hard to make distinctions between different tokens. Still, a great theme.
Catppuccin
I’ve seen people mentioning Catppuccin on Mastodon for a long time, it seems like an “hype”, but I’ve decided to try. I liked the palette, more pastel, with more contrast compared to Nord Theme. Mocha is the flavour that fits well to my taste.
What makes Catppuccin Moca work for me:
- Warmer base tones. The background is soft, dark mauve-gray rather than the blue of Solarized or icy dark of Nord.
- Higher token differentiation. Catppuccin implements a broader palette compared to Nord or Solarized, it contains pink, peaches, greens, lavanders (I’m not a colour specialist, but got those names from Catppuccin website). So, keywords, strings, comments are immediately distinguishable.
- Softer accent saturation. The colours are pastel rather than vivid. This reduces the luminosity or saturated syntax colours on dark backgrounds. It’s calm, soft, and it seems it reduces the fatigue.
- Consistent lightness across accents. Like Solarized, Catppuccin is built with perceptual uniformity in mind, so no single token screams.
The outcome is that the text felt softer to read and easier to eye scan. I could pick out structure in code and notes faster than with Nord, with less tightness around my eyes.
Ports
Here is where Catppuccin pulls ahead of both Solarized and Nord: Ports.
A “port” is a theme adaptation for a specific application. Catppuccin is not just a palette, but a community-maintained library and recipes for a big range of tools. If you want Catppuccin in your terminal emulator, your favourite editor (I use both Helix and Zed), browser, shell (mine is Fish), tmux, vim, neovim, whatever, a port recipe with the correct palette is available.
Sometimes you just need to copy/paste the recipe, or for some cases, the palette is already embedded and available via app configuration (Fish shell and Helix, for example).
I’ve configured the following applications to use Catppuccin Mocha palette:
- Fish shell (native, just run
fish_configand select the theme) - Zed Editor (need to install the theme via menu, it’s easy)
- Obsidian (same, it’s available, just need to install via Obsidian menu)
- Helix editor (it’s native, just add
theme = "catppuccin_mocha"to~/.config/helix/config.toml)
Using Ports is really easy, you don’t need to understand the colour science behind each app, the community has already done the work of mapping the palette correctly. All your applications can share the same colour scheme, fantastic for the eyes!
Would I go back?
I don’t know, I’m happy with Catppuccin Mocha for now, maybe I’ll try a different theme when I get bored. Solarized will always have my respect and Nord is also a good one.