modern — simple — unintrusive
Note
With the release of v1
, support was dropped for COFFEECAT, DARKFOREST, and DAYLIGHT.
See Legacy Support for details.
- 📷 Gallery
- 🛠 Installation
- ⚙️ Configuration
- 🎨 Customization
- 🔌 Supported Plugins
- 🆓 Extras
- 📌 Legacy Support
- 🪄 Contributing
- 💫 Inspiration
A theme with colors inspired from Nintendo's Ice Climbers characters
A fresh green tea inspired theme
A roasted green tea inspired theme
Inspired by ThePrimeagen's use of the Rosé-Pine theme
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,
},
There are 4 themes included, each with a light and dark variant.
The light theme is used when { variant = "light" }
is passed to setup(options)
or
when vim.o.background = "light"
.
Default options are given below:
require("neomodern").setup({
-----MAIN OPTIONS-----
--
-- Can be one of: 'iceclimber' | 'gyokuro' | 'hojicha' | 'roseprime'
theme = "iceclimber",
-- Can be one of: 'light' | 'dark', or set via vim.o.background
variant = "dark",
-- Use an alternate, darker bg
alt_bg = false,
-- If true, docstrings will be highlighted like strings, otherwise they will be
-- highlighted like comments. Note, behavior is dependent on the language server.
colored_docstrings = true,
-- If true, highlights the {sign,fold} column the same as cursorline
cursorline_gutter = true,
-- If true, highlights the gutter darker than the bg
dark_gutter = false,
-- if true favor treesitter highlights over semantic highlights
favor_treesitter_hl = false,
-- Don't set background of floating windows. Recommended for when using floating
-- windows with borders.
plain_float = false,
-- Show the end-of-buffer character
show_eob = true,
-- If true, enable the vim terminal colors
term_colors = true,
-- Keymap (in normal mode) to toggle between light and dark variants.
toggle_variant_key = nil,
-- Don't set background
transparent = false,
-----DIAGNOSTICS and CODE STYLE-----
--
diagnostics = {
darker = true, -- Darker colors for diagnostic
undercurl = true, -- Use undercurl for diagnostics
background = true, -- Use background color for virtual text
},
-- The following table accepts values the same as the `gui` option for normal
-- highlights. For example, `bold`, `italic`, `underline`, `none`.
code_style = {
comments = "italic",
conditionals = "none",
functions = "none",
keywords = "none",
headings = "bold", -- Markdown headings
operators = "none",
keyword_return = "none",
strings = "none",
variables = "none",
},
-----PLUGINS-----
--
-- The following options allow for more control over some plugin appearances.
plugin = {
lualine = {
-- Bold lualine_a sections
bold = true,
-- Don't set section/component backgrounds. Recommended to not set
-- section/component separators.
plain = false,
},
cmp = { -- works for nvim.cmp and blink.nvim
-- Don't highlight lsp-kind items. Only the current selection will be highlighted.
plain = false,
-- Reverse lsp-kind items' highlights in blink/cmp menu.
reverse = false,
},
},
-- CUSTOM HIGHLIGHTS --
--
-- Override default colors
colors = {},
-- Override highlight groups
highlights = {},
})
-- Convenience function that simply calls `:colorscheme <theme>` with the theme
-- specified in your config.
require("neomodern").load()
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' },
...
},
}
See neomodern.palette
for color names.
Available here
With the release of v1
, Neomodern dropped support for the legacy themes COFFEECAT,
DARKFOREST, and DAYLIGHT. If you would still like to use these themes, you can use the
following commit:
{
"cdmill/neomodern.nvim",
commit = "8eecbe1",
opts = {
-- your settings here
}
}
Pull requests are welcome.
If you are wanting support for a plugin, either open an issue or submit a pull request with your highlight additions in this file.