Please open an issue if you notice any problems, or if a plugin you think should have explicit support is missing from the list.
{
"oskarnurm/koda.nvim",
lazy = false, -- make sure we load this during startup if it is your main colorscheme
priority = 1000, -- make sure to load this before all the other start plugins
config = function()
-- require("koda").setup({ transparent = true })
vim.cmd("colorscheme koda")
end,
}
vim.pack.add({
"https://github.com/oskarnurm/koda.nvim",
})
-- require("koda").setup({ transparent = true })
vim.cmd("colorscheme koda")
[!IMPORTANT] Configure setup BEFORE calling
vim.cmd("colorscheme koda").
require("koda").setup({
transparent = false, -- enable for transparent backgrounds
-- Automatically enable highlights only for plugins installed by your plugin manager
-- Currently supports `lazy.nvim`, `mini.deps` and `vim.pack`
-- Disable this to load ALL available plugin highlights
auto = true,
cache = true, -- cache for better performance
-- Style to be applied to different syntax groups
-- Common use case would be to set either `italic = true` or `bold = true` for a desired group
-- See `:help nvim_set_hl` for more valid values
styles = {
functions = { bold = true },
keywords = {},
comments = {},
strings = {},
constants = {}, -- includes numbers, booleans
},
-- Override colors for the active variant
-- The color key names (e.g., 'func') must match the built-in ones
colors = {
-- func = "#4078F2", -- changes the color of functions
-- keyword = "#A627A4", -- changes the color of keywords
-- char = "#f2a4db", -- make characters pop out more by adding a different color
--
-- more can be found in: lua/koda/palette/
},
-- You can modify or extend highlight groups using the `on_highlights` configuration option
-- Any changes made take effect when highlights are applied
on_highlights = function(hl, c)
-- hl.LineNr = { fg = c.info } -- change a specific highlight to use a different palette color
-- hl.Comment = { fg = c.emphasis, italic = true } -- modify a syntax group (add bold, italic, etc)
-- hl.RainbowDelimiterRed = { fg = "#fb2b2b" } -- add a custom highlight group for another plugin
end,
})
vim.cmd("colorscheme koda") -- will dynamically switch between `light` and `dark` variants based on `vim.o.background`
-- vim.cmd("colorscheme koda-dark")
-- vim.cmd("colorscheme koda-light")
-- vim.cmd("colorscheme koda-moss")
-- vim.cmd("colorscheme koda-glade")
Koda exposes a few utility functions to allow users to integrate the theme with other parts of their configuration.
local koda = require("koda")
local colors = koda.get_palette() -- returns the active palette (dark or light) with any of your user overrides applied
some_plugin.error = koda.blend(colors.danger, colors.bg, 0.3) -- blends two colors together. Useful for creating custom shades that match the theme
Most languages have sensible defaults thanks to Neovim's built-in queries, so I've opted not to add anything language-specific to keep the footprint smaller. Feel free to open an issue.
Extra color configs for WezTerm, Ghostty, Lazygit, fzf and others can be found in extras. To use them, refer to their respective documentation.