A minimal, monochromatic colorscheme for Neovim.
Calm tones. Subtle accents. Zero distractions.
- Dark and light variants
- Monochromatic grayscale syntax with muted color accents
- Extensive
TreeSittersyntax highlighting support - Compatible with popular plugins
- Extras for terminals and other applications
-- lazy.nvim
{
"nendix/zen.nvim",
lazy = false,
priority = 1000,
}
-- packer.nvim
use "nendix/zen.nvim"- Neovim 0.8+
- Terminal with truecolor support
require("zen").setup({
variant = "dark", -- "dark" or "light"
undercurl = true,
transparent = false,
dimInactive = false,
terminalColors = true,
commentStyle = { italic = true },
functionStyle = {},
keywordStyle = { italic = true },
statementStyle = {},
typeStyle = {},
compile = false,
colors = {
palette = {}, -- override palette colors
theme = {}, -- override theme colors
},
overrides = function(colors)
return {}
end,
})
vim.cmd.colorscheme("zen")Customization
Override palette or theme colors:
require("zen").setup({
colors = {
palette = {
bg0 = "#0a0a0a",
sage = "#90a990",
},
theme = {
ui = {
bg = "#000000",
},
},
},
})All palette colors can be found in lua/zen/colors.lua.
Getting Colors
Access theme colors in your config:
local colors = require("zen.colors").get()
local palette = colors.palette
local theme = colors.theme
-- Example: use in lualine or other plugins
print(palette.sage) -- "#a0b9a0"
print(theme.syn.string) -- "#a0b9a0"| Category | Colors |
|---|---|
| Background | bg0 bg1 bg2 bg3 bg4 |
| Foreground | fg fg_dim fg_muted |
| Grays | silver stone slate ash |
| Accents | sage sand rose sky lavender mist |
require("lualine").setup({
options = {
theme = "zen",
},
})Zen prioritizes structure over color. Syntax is distinguished through a grayscale hierarchy, with muted accents reserved for semantic elements like strings, types, and constants. The result is a theme that stays out of your way.
Inspired by:



