Introduction
Solarized is a color scheme created by Ethan Schoonover in 2011, built on precise color theory rather than subjective preference. Its sixteen colors are arranged so that both a light and a dark background mode share the same accent colors, and the base tones follow fixed CIELAB lightness intervals. This design makes Solarized one of the most carefully constructed developer color schemes ever released.
What Solarized Does
- Defines a fixed palette of 8 monotones and 8 accent colors engineered for perceptual uniformity
- Provides seamless switching between light and dark modes using the same accent palette
- Includes ports for dozens of applications including Vim, Emacs, terminal emulators, IDEs, and mutt
- Uses CIELAB color space relationships to ensure consistent contrast ratios
- Ships with both GUI hex values and terminal 16-color ANSI mappings
Architecture Overview
The Solarized palette is derived mathematically in CIELAB color space. Eight base monotones are arranged at fixed lightness intervals, and eight accent colors are selected to maintain consistent contrast against both light and dark base backgrounds. The original repository provides configurations for Vim, Emacs, Xresources, iTerm2, and Terminal.app. Community ports extend coverage to hundreds of additional tools, each mapping the 16-color palette to the application's theme format.
Self-Hosting & Configuration
- Clone the main repository and copy the configuration file for your terminal or editor
- For Vim, install the vim-colors-solarized plugin and set
background=darkorbackground=light - In iTerm2, import the
.itermcolorsfile from the iterm2-colors-solarized directory - For VS Code, install a Solarized extension from the marketplace and select the variant
- Ensure your terminal emulator uses the Solarized 16-color ANSI palette for accurate rendering in terminal-based editors
Key Features
- Mathematically derived palette using CIELAB perceptual color space
- Symmetric light and dark modes sharing the same accent colors
- Fixed contrast ratios that work across display types and ambient lighting
- Broad adoption with community ports for virtually every developer tool
- Stable palette unchanged since 2011, ensuring long-term consistency
Comparison with Similar Tools
- Catppuccin — Modern pastel palette with four flavors; Solarized uses a more muted scientific palette with two modes
- Dracula — High-contrast dark theme with bold accents; Solarized prioritizes perceptual uniformity over vibrancy
- Gruvbox — Warm retro aesthetic; Solarized has a cooler, more neutral teal-gray tone
- Nord — Arctic-inspired cool palette; Solarized offers both warm (light) and cool (dark) base tones
- Base16 — A framework for generating color schemes; Solarized is a single opinionated palette
FAQ
Q: Why do the colors look wrong in my terminal? A: Solarized relies on remapping the terminal's 16 ANSI colors. If you only set the Vim colorscheme without updating the terminal palette, colors will render incorrectly. Apply the Solarized palette to your terminal emulator as well.
Q: Can I modify the palette? A: You can, but the colors are interdependent by design. Changing one accent color may break the contrast relationships that make Solarized effective.
Q: Is there a Solarized variant with more contrast? A: The original palette is fixed. Some community forks (like Solarized Osaka) offer tweaked versions with higher contrast.
Q: Does Solarized support true color terminals? A: Yes. The palette defines exact hex values that work in 24-bit true color terminals. The 16-color ANSI mapping is provided for compatibility with older terminals.