README.md
April 18, 2026 ยท View on GitHub
A modern Neovim colorscheme plugin featuring beautifully crafted pastel themes with rich customization, plugin integrations, and flexible styling.
โจ Features
- ๐จ 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
๐จ Palettes
pasteldark
pastelblack
pastelsoft
pastelrose
pastelmint
pastelfrost
Check more vimcolorschemes
๐ฆ Installation
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
}
๐จ Usage
- 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"
}
โ๏ธ Default Configuration
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 = {},
})
๐จ Available Color Schemes
pasteldark pastelblack pastelsoft pastelfrost pastelrose pastelcloud pastelglow pastelshell pastelcool pastelgold pastelsilk pastelcream pastelmint pastelsnow pastelfog pastelpop pastelwarm pastelforest pastelrice pastelwhite
๐ง Style System
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
๐ฏ Colors Customization
Modify base colors globally or per colorscheme.
Global colors:
colors = {
global = {
yellow = "#eedd00",
cyan = "#aaffff",
}
}
Per-colorscheme colors
colors = {
pasteldark = {
blue = "#11aaee",
red = "#ffa0a0",
}
}
๐จ Highlights Customization
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
}
๐ซ Exclude System
Disable specific highlight group file/plugin.
exclude = {
core = {
syntax = true,
},
plugins = {
telescope = true,
},
}
๐ Filetype-specific Config
Apply custom settings per filetype.
filetypes = {
lua = {
colors = {
purple = "#ffccff",
},
style = {
italic = true,
},
},
markdown = {
highlights = function(hl, c)
hl.Title.bold = true
end,
},
}
๐งฉ Supported Plugin Highlights
"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
๐ก You can disable any plugin highlights using the "exclude.plugins" option:
require("pastel").setup({
exclude = {
plugins = {
telescope = true,
gitsigns = true,
},
},
})
๐ Example Configurations
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,
},
})
๐ Notes
- "termguicolors" should be enabled for best experience
- Works with both dark and light backgrounds
- Highly customizable without sacrificing performance
โค๏ธ Contributing
Feel free to open issues or submit PRs to improve themes, add integrations, or enhance features.
๐ License
GNU General Public License v3
๐ Credits
Highlights adapted from AstroTheme. Thanks to the original authors.