Skip to content

danfry1/lume

Repository files navigation

Lume icon

Lume

A muted, elegant dark color theme with warm undertones and a soft lavender identity.
Built for Neovim, VS Code, terminals, tmux, and CLI tools.

Lume theme screenshot

Features

  • 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

Palette


Lavender
#b8a0e0
keywords, primitives

Rose
#d0a0b8
operators, flow

Peach
#e8b4a0
types, components

Sage
#a0d4a8
strings, additions

Sky
#8cc0e0
functions, props

Teal
#88c0b8
tags, escape

Ember
#c49080
errors, deletions

Honey
#c4b080
numbers, warnings
Backgrounds & foregrounds
Swatch Name Hex Role
Crust #0a0814 Deepest background
Mantle #0e0c18 Status bars, borders
Base #12101e Editor background
Surface 0 #1e1a2c Floats, selections
Surface 1 #262236 Active UI elements
Surface 2 #302c42 Scrollbars, subtle UI
Swatch Name Hex Role
Text #d8d0e4 Primary text
Subtext #b0a8c4 Secondary text
Overlay #8a8498 UI elements
Comment #7e7896 Comments

Installation

Neovim

lazy.nvim

{
  "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,
}

Options

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.

Plugin support

Highlight groups are included for these plugins (loaded automatically, no config needed):

Plugin Plugin Plugin
telescope.nvim nvim-cmp gitsigns.nvim
mini.nvim noice.nvim nvim-notify
trouble.nvim flash.nvim neo-tree.nvim
oil.nvim lazy.nvim which-key.nvim
indent-blankline.nvim dashboard-nvim / alpha-nvim snacks.nvim

VS Code

Preview on vscodethemes.com · Search for "Lume" in the Extensions Marketplace, or install from the command line:

code --install-extension DanielFry.lume-color-theme
Install from source
cd editors/vscode
npx @vscode/vsce package
code --install-extension lume-color-theme-*.vsix

Zed

Search 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).


Terminals

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.conf

Then 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.toml

Then 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.toml

Then 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.itermcolors

Then 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/lume

Then add to ~/.config/ghostty/config:

theme = lume
foot
curl -o ~/.config/foot/lume.ini https://raw.githubusercontent.com/danfry1/lume/main/terminals/foot/lume.ini

Then add to ~/.config/foot/foot.ini:

include=~/.config/foot/lume.ini
Windows Terminal
curl -o "$env:LOCALAPPDATA\lume.json" https://raw.githubusercontent.com/danfry1/lume/main/terminals/windows-terminal/lume.json

Then copy the contents of lume.json into the schemes array in your Windows Terminal settings.json, and set "colorScheme": "Lume" on the desired profile.


Tmux

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.tmux

CLI Tools

Prefer 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.sh

Then source it in your shell rc:

# ~/.bashrc or ~/.zshrc
source ~/.config/fzf/lume.sh
bat
curl -o "$(bat --config-dir)/themes/lume.tmTheme" https://raw.githubusercontent.com/danfry1/lume/main/cli/bat/lume.tmTheme
bat cache --build

Then set the theme in ~/.config/bat/config:

--theme="Lume"
delta
curl -s https://raw.githubusercontent.com/danfry1/lume/main/cli/delta/lume.gitconfig >> ~/.gitconfig

Then set delta as your Git pager in ~/.gitconfig:

[core]
  pager = delta
lazygit

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.json

Then select Lume using the /theme command in OpenCode, or set it in your tui.json:

{
  "theme": "lume"
}

Contributing

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 TypeScript

Please run bun run generate and commit the results before opening a PR.

License

MIT

About

A muted, elegant dark color theme with warm undertones and a soft lavender identity

Resources

License

Stars

Watchers

Forks