a lekker colorscheme. solarized accents, gruvbox warmth, brewed slow.
A warm, readable colorscheme for the terminal generation. Two variants — bru-espresso (dark) and bru-latte (light) — with matching configs for every tool in your stack.
kmf.github.io/bru — live palette preview with dark/light toggle.
Neutrals
| Token | Hex | |
|---|---|---|
| bg | bg | #1c1814 |
| bg_soft | bg_soft | #26211c |
| bg_hi | bg_hi | #322b23 |
| border | border | #3a332b |
| fg | fg | #f5e8c7 |
| fg_alt | fg_alt | #fbf3db |
| fg_muted | fg_muted | #b2ab9f |
Accents
| Token | Hex | |
|---|---|---|
| yellow | yellow | #dbb32d |
| orange | orange | #ef9762 |
| red | red | #fc8c87 |
| magenta | magenta | #f489c7 |
| violet | violet | #bd9dee |
| blue | blue | #73aff9 |
| teal | teal | #41c7b9 |
| green | green | #78be39 |
| bright_yellow | bright_yellow | #ebc13d |
| bright_orange | bright_orange | #f2955f |
| bright_red | bright_red | #ff8b83 |
| bright_magenta | bright_magenta | #ff84cd |
| bright_violet | bright_violet | #bf9bf5 |
| bright_blue | bright_blue | #6dafff |
| bright_teal | bright_teal | #53d6c7 |
| bright_green | bright_green | #84c747 |
ANSI
| Token | Hex | |
|---|---|---|
| black | black | #1c1814 |
| red | red | #fc8c87 |
| green | green | #78be39 |
| yellow | yellow | #dbb32d |
| blue | blue | #73aff9 |
| magenta | magenta | #f489c7 |
| cyan | cyan | #41c7b9 |
| white | white | #f5e8c7 |
| bright_black | bright_black | #3a332b |
| bright_red | bright_red | #ff8b83 |
| bright_green | bright_green | #84c747 |
| bright_yellow | bright_yellow | #ebc13d |
| bright_blue | bright_blue | #6dafff |
| bright_magenta | bright_magenta | #ff84cd |
| bright_cyan | bright_cyan | #53d6c7 |
| bright_white | bright_white | #fbf3db |
Neutral ramp
| Index | Hex | |
|---|---|---|
| 0 | 0 | #1c1814 |
| 1 | 1 | #26211c |
| 2 | 2 | #322b23 |
| 3 | 3 | #3a332b |
| 4 | 4 | #61574b |
| 5 | 5 | #b2ab9f |
| 6 | 6 | #b5a791 |
| 7 | 7 | #dbcbb1 |
| 8 | 8 | #f5e8c7 |
| 9 | 9 | #fbf3db |
| 10 | 10 | #fffad8 |
UI
| Token | Hex | |
|---|---|---|
| cursor | cursor | #dbb32d |
| cursor_text | cursor_text | #1c1814 |
| selection_bg | selection_bg | #322b23 |
| selection_fg | selection_fg | #fbf3db |
Neutrals
| Token | Hex | |
|---|---|---|
| bg | bg | #faf3e0 |
| bg_soft | bg_soft | #f3ead0 |
| bg_hi | bg_hi | #ece3cc |
| border | border | #e0d4b0 |
| fg | fg | #3a2f22 |
| fg_alt | fg_alt | #2d241a |
| fg_muted | fg_muted | #786e61 |
Accents
| Token | Hex | |
|---|---|---|
| yellow | yellow | #896c00 |
| orange | orange | #b2551c |
| red | red | #d2212d |
| magenta | magenta | #c1388c |
| violet | violet | #815ac3 |
| blue | blue | #006fcf |
| teal | teal | #007d73 |
| green | green | #3f7e00 |
| bright_yellow | bright_yellow | #896c00 |
| bright_orange | bright_orange | #b55316 |
| bright_red | bright_red | #cc1729 |
| bright_magenta | bright_magenta | #be3c8b |
| bright_violet | bright_violet | #815bc0 |
| bright_blue | bright_blue | #006dce |
| bright_teal | bright_teal | #007d73 |
| bright_green | bright_green | #3c7e00 |
ANSI
| Token | Hex | |
|---|---|---|
| black | black | #3a2f22 |
| red | red | #d2212d |
| green | green | #3f7e00 |
| yellow | yellow | #896c00 |
| blue | blue | #006fcf |
| magenta | magenta | #c1388c |
| cyan | cyan | #007d73 |
| white | white | #faf3e0 |
| bright_black | bright_black | #786e61 |
| bright_red | bright_red | #cc1729 |
| bright_green | bright_green | #3c7e00 |
| bright_yellow | bright_yellow | #896c00 |
| bright_blue | bright_blue | #006dce |
| bright_magenta | bright_magenta | #be3c8b |
| bright_cyan | bright_cyan | #007d73 |
| bright_white | bright_white | #2d241a |
Neutral ramp
| Index | Hex | |
|---|---|---|
| 0 | 0 | #3a2f22 |
| 1 | 1 | #473c2f |
| 2 | 2 | #61574b |
| 3 | 3 | #786e61 |
| 4 | 4 | #b5a791 |
| 5 | 5 | #e0d4b0 |
| 6 | 6 | #ece3cc |
| 7 | 7 | #f3ead0 |
| 8 | 8 | #faf3e0 |
| 9 | 9 | #fdf7e7 |
| 10 | 10 | #fffaef |
UI
| Token | Hex | |
|---|---|---|
| cursor | cursor | #896c00 |
| cursor_text | cursor_text | #faf3e0 |
| selection_bg | selection_bg | #ece3cc |
| selection_fg | selection_fg | #2d241a |
| Category | Tools |
|---|---|
| Terminals | Ghostty · Alacritty · Kitty · WezTerm · iTerm2 · foot · Windows Terminal |
| Editors | Neovim (Lua) · Vim · VS Code · IntelliJ / JetBrains · Emacs · Zed · Fresh |
| Apps | Claude Code · Chrome · Firefox · Obsidian · opencode |
| Desktop | COSMIC · Omarchy |
| Dev tools | bat · fzf · tmux · btop · lazygit · k9s · yazi |
| Shell | Starship |
Clone the repo and cherry-pick the configs you need — each tool's directory has its own README with install instructions:
git clone https://github.com/kmf/bru ~/.local/share/bru- Ghostty →
cp terminals/ghostty/bru-espresso ~/.config/ghostty/themes/bru-espresso - Neovim →
{ "kmf/bru.nvim" }in your plugin manager, thencolorscheme bru-espresso - Zed →
cp editors/zed/bru.json ~/.config/zed/themes/ - Fresh →
cp editors/fresh/bru-*.json ~/.config/fresh/themes/ - tmux →
source-file ~/.local/share/bru/tools/tmux/bru-espresso.tmuxin your.tmux.conf - bat →
cp tools/bat/bru-espresso.tmTheme ~/.config/bat/themes/ && bat cache --build
Bru sits at the intersection of Gruvbox warmth and Solarized accent discipline:
- Warm coffee backgrounds — brown undertones instead of Solarized's teal or Gruvbox's deep umber
- Cream foreground — Gruvbox-adjacent, never pure white
- Selenized-bright accents — WCAG-tuned accent hues that pop against warm backgrounds without feeling neon
See COLORSPEC.md for the full palette, token tables, and semantic role mappings.
solarized → selenized → bru
Accent hue values are derived from Selenized by Jan Warchol (MIT), itself a redesign of Solarized by Ethan Schoonover (MIT). Background warmth, naming, and semantic mapping are original to bru.
MIT. See LICENSE.
built by kmf in pretoria · 2026