A muted, elegant dark color theme with warm undertones and a soft lavender identity.
Built for Neovim, VS Code, terminals, tmux, and CLI tools.
- Single source of truth — every color lives in
palette.json, all outputs are generated - WCAG AA contrast — validated at build time, never ships unreadable text
- 15 Neovim plugin integrations — Telescope, cmp, gitsigns, mini.nvim, noice, trouble, flash, snacks, and more
- Treesitter + LSP semantic tokens — full highlighting with 450+ groups
- 13 terminal/CLI targets — Kitty, Alacritty, WezTerm, Ghostty, iTerm2, foot, Windows Terminal, tmux, fzf, bat, delta, lazygit, OpenCode
- Transparent mode — use your terminal's background
- Configurable italics — toggle italics for comments and keywords
Backgrounds & foregrounds
| Swatch | Name | Hex | Role |
|---|---|---|---|
![]() |
Text | #d8d0e4 |
Primary text |
![]() |
Subtext | #b0a8c4 |
Secondary text |
![]() |
Overlay | #8a8498 |
UI elements |
![]() |
Comment | #7e7896 |
Comments |
{
"danfry1/lume",
lazy = false,
priority = 1000,
config = function()
require("lume").setup()
vim.cmd("colorscheme lume")
end,
}packer.nvim
use {
"danfry1/lume",
config = function()
require("lume").setup()
vim.cmd("colorscheme lume")
end,
}All options are optional — defaults work out of the box.
require("lume").setup({
transparent = false, -- set to true to use your terminal's background
italics = true, -- set to false to disable italic comments/keywords
palette_overrides = { -- override base palette colors before they cascade to all groups
foregrounds = { text = "#c8c8d8" }, -- softer foreground
accents = { lavender = "#a890d0" }, -- tweak any accent
},
custom_highlights = function(colors, variant)
-- colors contains: backgrounds, foregrounds, accents, ansi, special
-- variant is "dark" (or "light" when a light theme is added)
return {
Normal = { bg = "#1E1F2E" },
MiniDiffSignAdd = { fg = colors.accents.sage },
}
end,
})palette_overrides accepts a table or a function. When a function, it receives the full palette and variant, and should return a table of overrides:
palette_overrides = function(colors, variant)
return {
foregrounds = { text = "#c8c8d8", subtext = "#a0a0b0" },
}
end,Palette overrides are applied first — all built-in highlight groups and custom_highlights will see the modified palette.
Highlight groups are included for these plugins (loaded automatically, no config needed):
Preview on vscodethemes.com · Search for "Lume" in the Extensions Marketplace, or install from the command line:
code --install-extension DanielFry.lume-color-themeInstall from source
cd editors/vscode
npx @vscode/vsce package
code --install-extension lume-color-theme-*.vsixSearch for "Lume" in the Zed extension marketplace, or install locally:
# Copy to Zed's local themes directory
mkdir -p ~/.config/zed/themes
cp editors/zed/themes/lume.json ~/.config/zed/themes/Then select Lume from the theme picker (cmd+k cmd+t).
Prefer not to run curl? You can also clone the repo and copy the files from
terminals/manually.
Kitty
curl -o ~/.config/kitty/lume.conf https://raw.githubusercontent.com/danfry1/lume/main/terminals/kitty/lume.confThen add to ~/.config/kitty/kitty.conf:
include lume.conf
Alacritty
curl -o ~/.config/alacritty/lume.toml https://raw.githubusercontent.com/danfry1/lume/main/terminals/alacritty/lume.tomlThen add to ~/.config/alacritty/alacritty.toml:
import = ["~/.config/alacritty/lume.toml"]WezTerm
mkdir -p ~/.config/wezterm/colors
curl -o ~/.config/wezterm/colors/lume.toml https://raw.githubusercontent.com/danfry1/lume/main/terminals/wezterm/lume.tomlThen set in ~/.config/wezterm/wezterm.lua:
config.color_scheme = "Lume"iTerm2
curl -o /tmp/lume.itermcolors https://raw.githubusercontent.com/danfry1/lume/main/terminals/iterm2/lume.itermcolors
open /tmp/lume.itermcolorsThen go to iTerm2 → Settings → Profiles → Colors → Color Presets… and select Lume.
Ghostty
mkdir -p ~/.config/ghostty/themes
curl -o ~/.config/ghostty/themes/lume https://raw.githubusercontent.com/danfry1/lume/main/terminals/ghostty/lumeThen add to ~/.config/ghostty/config:
theme = lume
foot
curl -o ~/.config/foot/lume.ini https://raw.githubusercontent.com/danfry1/lume/main/terminals/foot/lume.iniThen add to ~/.config/foot/foot.ini:
include=~/.config/foot/lume.iniWindows Terminal
curl -o "$env:LOCALAPPDATA\lume.json" https://raw.githubusercontent.com/danfry1/lume/main/terminals/windows-terminal/lume.jsonThen copy the contents of lume.json into the schemes array in your Windows Terminal settings.json, and set "colorScheme": "Lume" on the desired profile.
Via TPM (recommended)
# ~/.tmux.conf
set -g @plugin 'danfry1/lume'
run '~/.tmux/plugins/tpm/tpm'Manual
# In ~/.tmux.conf
run-shell /path/to/lume/tmux/lume.tmuxPrefer not to run curl? You can also clone the repo and copy the files from
cli/manually.
fzf
curl -o ~/.config/fzf/lume.sh https://raw.githubusercontent.com/danfry1/lume/main/cli/fzf/lume.shThen source it in your shell rc:
# ~/.bashrc or ~/.zshrc
source ~/.config/fzf/lume.shbat
curl -o "$(bat --config-dir)/themes/lume.tmTheme" https://raw.githubusercontent.com/danfry1/lume/main/cli/bat/lume.tmTheme
bat cache --buildThen set the theme in ~/.config/bat/config:
--theme="Lume"
delta
curl -s https://raw.githubusercontent.com/danfry1/lume/main/cli/delta/lume.gitconfig >> ~/.gitconfigThen set delta as your Git pager in ~/.gitconfig:
[core]
pager = deltalazygit
Append the theme to your lazygit config:
curl -s https://raw.githubusercontent.com/danfry1/lume/main/cli/lazygit/lume.yml >> "$(lazygit --print-config-dir)/config.yml"Or if you prefer, copy the gui.theme section from cli/lazygit/lume.yml into your existing config.yml.
OpenCode
mkdir -p ~/.config/opencode/themes
curl -o ~/.config/opencode/themes/lume.json https://raw.githubusercontent.com/danfry1/lume/main/cli/opencode/lume.jsonThen select Lume using the /theme command in OpenCode, or set it in your tui.json:
{
"theme": "lume"
}palette.json is the single source of truth for all colors. All theme files are generated from it.
bun install # install dependencies
bun run generate # regenerate all outputs from palette.json
bun test # run tests
bun run validate # check WCAG AA contrast ratios
bun run check # verify generated files are up to date
bun run typecheck # typecheck TypeScriptPlease run bun run generate and commit the results before opening a PR.


















