A minimalist, distraction-free colorscheme for Neovim. Perfect for those who want to focus on the code, not the colors.
plain.nvim is a Lua port and enhancement of vim-colors-plain by andreypopp, with extensive plugin integrations and modern Neovim features.
Plain follows a minimalist approach to syntax highlighting:
- Minimal color differentiation - Your code doesn't need a rainbow
- Focus on structure - Uses subtle variations in brightness and weight
- Distraction-free - Lets you focus on what matters: the code
- Eye-friendly - Both dark and light variants designed for long coding sessions
- π¨ Dark and light variants with auto-detection
- π Extensive plugin support - integrations for 15+ popular plugins
- π» Terminal colors - properly configured terminal colors
- βοΈ Configurable - customize colors and styles to your preference
- π² Treesitter support - modern syntax highlighting
- π LSP integration - proper diagnostic and reference highlighting
- π¦ Zero dependencies - just drop it in and go
TODO: Add screenshots of dark and light variants
Using lazy.nvim
{
"Synchlaire/plain.nvim",
priority = 1000,
config = function()
require("plain").setup({
-- your configuration here (optional)
})
vim.cmd("colorscheme plain")
end,
}Using packer.nvim
use {
"Synchlaire/plain.nvim",
config = function()
require("plain").setup()
vim.cmd("colorscheme plain")
end
}Using vim-plug
Plug 'Synchlaire/plain.nvim'Then in your init.lua or init.vim:
require("plain").setup()
vim.cmd("colorscheme plain")-- Auto variant (follows vim.o.background)
vim.cmd("colorscheme plain")
-- Force dark variant
vim.cmd("colorscheme plain-dark")
-- Force light variant
vim.cmd("colorscheme plain-light")require("plain").setup({
-- Variant: "auto", "dark", or "light"
variant = "auto",
-- Enable/disable specific integrations
integrations = {
telescope = true,
nvim_cmp = true,
nvim_tree = true,
neo_tree = true,
gitsigns = true,
which_key = true,
lualine = true,
indent_blankline = true,
treesitter = true,
native_lsp = true,
dashboard = true,
notify = true,
aerial = true,
symbols_outline = true,
trouble = true,
lazy = true,
mason = true,
},
-- Style options
styles = {
comments = { italic = true },
keywords = { bold = true },
functions = {},
variables = {},
},
-- Custom color overrides (optional)
custom_colors = {
-- Example: override accent color
-- accent = "#FF0000",
},
})plain.nvim provides a custom lualine theme that matches the colorscheme:
require("lualine").setup({
options = {
theme = _G.plain_lualine_theme,
},
})Make sure to set up lualine after loading the plain colorscheme.
plain.nvim includes custom highlight groups for:
- Telescope
- nvim-cmp
- nvim-tree
- neo-tree
- gitsigns
- which-key
- lualine
- indent-blankline
- dashboard-nvim / alpha-nvim
- nvim-notify
- aerial.nvim
- symbols-outline
- trouble.nvim
- lazy.nvim
- mason.nvim
And of course:
- Treesitter
- Native LSP
- Built-in terminal
| Color | Hex | Usage |
|---|---|---|
| Background | #000000 |
Main background |
| Foreground | #CCCCCC |
Main text |
| Accent | #B6D6FD |
Highlights, strings |
| Comment | #999999 |
Comments, subtle text |
| Error | #E32791 |
Errors, deletions |
| Warning | #F3E430 |
Warnings, changes |
| Info | #4FB8CC |
Information |
| Hint | #5FD7A7 |
Hints, additions |
| Color | Hex | Usage |
|---|---|---|
| Background | #F1F1F1 |
Main background |
| Foreground | #424242 |
Main text |
| Accent | #008EC4 |
Highlights, strings |
| Comment | #999999 |
Comments, subtle text |
| Error | #C30771 |
Errors, deletions |
| Warning | #A89C14 |
Warnings, changes |
| Info | #20A5BA |
Information |
| Hint | #10A778 |
Hints, additions |
require("plain").setup({
styles = {
comments = { italic = false },
},
})require("plain").setup({
styles = {
keywords = {},
},
})require("plain").setup({
custom_colors = {
accent = "#FF6B9D",
string = "#A6E3A1",
},
})require("plain").setup({
integrations = {
telescope = false,
nvim_cmp = false,
},
})- Original vim-colors-plain by andreypopp
- Neovim port and enhancements by Synchlaire
MIT License - see LICENSE file for details
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new plugin integrations
- Submit pull requests
- Share screenshots
If you like plain.nvim, you might also enjoy:
- vim-colors-plain - The original Vim version
- vim-nofrils - Another minimal colorscheme
- zenbones.nvim - Minimal colorschemes for Neovim