- 🎨 Beautiful pastel color schemes
- 🌗 Automatic dark/light background support
- 🧩 Built-in highlights for many popular plugins
- ⚙️ Fully customizable colors, highlights, and styles
- 🪶 Lightweight and fast
- 🔍 Per-filetype configuration support
- 🚫 Fine-grained exclusion system
Check more vimcolorschemes
Install using your preferred plugin manager.
- lazy.nvim
{
"ankushbhagats/pastel.nvim",
lazy = false, -- disable lazy loading
priority = 1000, -- load immediately at startup
opts = {}, -- your configuration comes here
config = true -- call setup function with provided opts
}- packer.nvim
use {
"ankushbhagats/pastel.nvim",
config = function()
require("pastel").setup()
end
}- Apply a colorscheme Applies the selected colorscheme directly (no background-based switching).
vim.cmd.colorscheme("pasteldark")- Enable automatic background switching Dynamically selects a colorscheme based on the current 'background' (light or dark).
vim.cmd.colorscheme("pastel")- Force set a colorscheme via plugin config
{
palette = "pastelsoft"
}require("pastel").setup({
background = {
dark = "pasteldark",
light = "pastelsoft",
},
palette = nil,
termguicolors = true,
style = {
transparent = false,
inactive = true,
border = true,
float = true,
border = true,
bold = true,
italic = false,
underline = true,
invert_title = false,
simple_syntax = false,
dynamic_statusline = false,
},
colors = {
common = {},
global = {},
},
highlights = {
global = {},
},
exclude = {
core = {},
plugins = {},
},
filetypes = {},
})pasteldark pastelblack pastelsoft pastelfrost pastelrose pastelcloud pastelglow pastelshell pastelcool pastelgold pastelsilk pastelcream pastelmint pastelsnow pastelfog pastelpop pastelwarm pastelforest pastelrice pastelwhite
The "style" table controls UI appearance.
Special Behavior
You can use ""*"" to apply a setting globally:
style = {
bold = "*", -- enable bold everywhere
italic = false, -- disable all italics
underline = true, -- use default underline behavior
}- ""*"" → apply everywhere
- "true" → use default behavior
- "false" → disable completely
Modify base colors globally or per colorscheme.
Global colors:
colors = {
global = {
yellow = "#eedd00",
cyan = "#aaffff",
}
}colors = {
pasteldark = {
blue = "#11aaee",
red = "#ffa0a0",
}
}Highlights accept functions.
Global highlights:
highlights = {
global = function(hl, c)
hl.Normal = { bg = "#333a3b", fg = "#808980" }
hl.Comment.italic = true
hl.GitSignsChange.fg = c.blue
end
}Per-colorscheme highlights
highlights = {
pasteldark = function(hl, c)
hl.CursorLine.bg = "#302920"
end
}Disable specific highlight group file/plugin.
exclude = {
core = {
syntax = true,
},
plugins = {
telescope = true,
},
}Apply custom settings per filetype.
filetypes = {
lua = {
colors = {
purple = "#ffccff",
},
style = {
italic = true,
},
},
markdown = {
highlights = function(hl, c)
hl.Title.bold = true
end,
},
}"pastel.nvim" ships with built-in highlight support for a wide range of popular plugins.
- Total Count: 45
📦 UI & Navigation
- aerial
- bufferline
- dashboard-nvim
- neo-tree
- nvim-tree
- nvim-window-picker
- symbols-outline
- which-key
🔍 Search & Motion
- fzf
- hop
- flash
- lightspeed
- telescope
🧠 Completion & LSP
- coc
- mason
- blink-cmp
- nvim-cmp
- nvim-navic
🐛 Debugging & Testing
- neotest
- nvim-dap
- nvim-dapui
🌿 Git
- gitsigns
- gitgraph
- neogit
🎨 Syntax & Treesitter
- treesitter
- treesitter-context
- nvim-ts-rainbow
- nvim-ts-rainbow2
- rainbow-delimiters
📝 Editing Enhancements
- indent-blankline
- indentmini
- vim-illuminate
- vim-visual-multi
- vimwiki
- todo-comments
🔔 UI Enhancements
- noice
- nvim-notify
- snacks
- render-markdown
⚙️ Utility & Misc
- lazy
- mini
- miniicons
- ministarter
- avante
- beacon
require("pastel").setup({
exclude = {
plugins = {
telescope = true,
gitsigns = true,
},
},
})
Minimal setup
require("pastel").setup()
vim.cmd("colorscheme pasteldark")
Transparent background
require("pastel").setup({
style = {
transparent = true,
},
})Everything bold & italic globally
require("pastel").setup({
style = {
bold = "*",
italic = "*",
},
})Override colors + highlights
require("pastel").setup({
colors = {
global = {
green = "#0d0d0d",
},
},
highlights = {
global = function(hl, c)
hl.Normal.bg = c.red
hl.CursorLine.bg = "#1a1a1a"
end,
},
})- "termguicolors" should be enabled for best experience
- Works with both dark and light backgrounds
- Highly customizable without sacrificing performance
Feel free to open issues or submit PRs to improve themes, add integrations, or enhance features.
GNU General Public License v3
Highlights adapted from AstroTheme. Thanks to the original authors.






