A collection of themes (4 dark, 1 light) written in Lua for Neovim
Themes have been designed to be unintrusive, simple, and pleasing to the eyes.
A dark theme with colors inspired from Nintendo's Ice Climbers characters
A dark, brown pastel theme
A darker, greener take on the classic Everforest theme
Inspired by ThePrimeagen's use of the Rosé-Pine theme with tmux and no color fixing.
A light variant of ICECLIMBER
Install via your favorite package manager:
-- Using lazy.nvim
{
"cdmill/neomodern.nvim",
lazy = false,
priority = 1000,
config = function()
require("neomodern").setup({
-- optional configuration here
})
require("neomodern").load()
end,
},
Note
require("neomodern").load()
will call set colorscheme
with your chosen style.
If you prefer, you can use vim.cmd([[colorscheme <style>]])
instead. For
example, to use darkforest: vim.cmd([[colorscheme darkforest]])
. Note if you
use vim.cmd([[colorscheme neomodern]])
, iceclimber
will be used.
There are 5 themes included (4 dark, 1 light). The light theme is used when { style = "daylight" }
is passed to setup(options)
or when vim.o.background = "light"
.
Default options are given below
require("neomodern").setup({
-- Main options --
style = "iceclimber", -- choose between 'iceclimber', 'coffeecat', 'darkforest', 'roseprime', 'daylight'
toggle_style_key = nil,
toggle_style_list = M.styles_list,
transparent = false, -- don't set background
term_colors = true, -- if true enable the terminal
colored_docstrings = true, -- if true, docstrings will be highlighted like strings, otherwise they will be highlighted like comments
plain_float = false, -- don't set background of floating windows. recommended for when using floating windows with borders
show_eob = true, -- show the end-of-buffer tildes
diagnostics = {
darker = true, -- darker colors for diagnostic
undercurl = true, -- use undercurl for diagnostics
background = true, -- use background color for virtual text
},
-- Changing Formats --
code_style = {
comments = "italic",
conditionals = "none",
functions = "none",
keywords = "none",
headings = "bold", -- markdown headings
operators = "none",
keyword_return = "none",
strings = "none",
variables = "none",
},
-- Plugin Related --
plugin = {
lualine = {
bold = true,
plain = false, -- don't set section/component backgrounds
},
cmp = {
plain = false, --don't highlight lsp-kind items
reverse = false, -- reverse item kind highlights in cmp menu
},
telescope = "bordered", -- choose between 'borderless' or 'bordered'
},
-- Custom Highlights --
colors = {}, -- Override default colors
highlights = {}, -- Override highlight groups
})
require("neomodern").load()
Bordered Telescope
Borderless Telescope
Normal Lualine
Plain Lualine
Example using custom colors and highlights:
require("neomodern").setup {
colors = {
orange = '#ff8800', -- define a new color
keyword = '#817faf', -- redefine an existing color
},
highlights = {
...
["@keyword"] = { fg = "$keyword", fmt = 'bold' },
["@function"] = { bg = "$orange", fmt = 'underline,italic' },
...
},
}
Note
Treesitter keywords have changed for Neovim
Available here
Pull requests are welcome.
If you are wanting to submit a new theme/style, please create a pull request with your new colors in this file.
If you are wanting support for a plugin, either open an issue or submit a pull request with your highlight additions in this file.