light theme for nvim

This commit is contained in:
Harivansh Rathi 2026-03-20 14:05:11 -04:00
parent facd7e7e31
commit d491a0fc66
5 changed files with 76 additions and 2 deletions

View file

@ -15,6 +15,9 @@ Neovim `0.8+`.
```vim
set background=dark " or light if you want light mode
colorscheme cozybox
" explicit light entrypoint with the same cozybox accent palette
colorscheme cozybox-light
```
## Override

6
colors/cozybox-light.lua Normal file
View file

@ -0,0 +1,6 @@
vim.o.background = "light"
local cozybox = require("cozybox")
cozybox.setup(require("cozybox.light"))
cozybox.load("cozybox-light")

View file

@ -1398,8 +1398,9 @@ Cozybox.setup = function(config)
Cozybox.config = vim.tbl_deep_extend("force", Cozybox.config, config or {})
end
---@param colors_name string?
--- main load function
Cozybox.load = function()
Cozybox.load = function(colors_name)
if vim.version().minor < 8 then
vim.notify_once("cozybox.nvim: you must use neovim 0.8 or higher")
return
@ -1409,7 +1410,7 @@ Cozybox.load = function()
if vim.g.colors_name then
vim.cmd.hi("clear")
end
vim.g.colors_name = "cozybox"
vim.g.colors_name = colors_name or "cozybox"
vim.o.termguicolors = true
local groups = get_groups()

56
lua/cozybox/light.lua Normal file
View file

@ -0,0 +1,56 @@
local background = "#e7e7e7"
local surface = "#e1e1e1"
local selection = "#c3c7c9"
return {
contrast = "hard",
palette_overrides = {
bright_red = "#ea6962",
neutral_red = "#ea6962",
faded_red = "#ea6962",
bright_green = "#8ec97c",
neutral_green = "#8ec97c",
faded_green = "#8ec97c",
bright_yellow = "#d8a657",
neutral_yellow = "#d8a657",
faded_yellow = "#d8a657",
bright_blue = "#5b84de",
neutral_blue = "#5b84de",
faded_blue = "#5b84de",
bright_purple = "#d3869b",
neutral_purple = "#d3869b",
faded_purple = "#d3869b",
bright_aqua = "#8ec07c",
neutral_aqua = "#8ec07c",
faded_aqua = "#8ec07c",
bright_orange = "#e78a4e",
neutral_orange = "#e78a4e",
faded_orange = "#e78a4e",
},
overrides = {
MatchParen = { bold = true, underline = true, fg = "#d8a657", bg = selection },
Normal = { bg = background },
NormalFloat = { bg = background },
SignColumn = { bg = background },
StatusLine = { bg = background },
StatusLineNC = { bg = background },
GitSignsAdd = { fg = "#6fae70", bg = background },
GitSignsChange = { fg = "#b57614", bg = background },
GitSignsDelete = { fg = "#ea6962", bg = background },
GitSignsTopdelete = { fg = "#ea6962", bg = background },
GitSignsChangedelete = { fg = "#b57614", bg = background },
GitSignsUntracked = { fg = "#5b84de", bg = background },
GitSignsStagedAdd = { fg = "#5f8b50", bg = background },
GitSignsStagedChange = { fg = "#9d6b0f", bg = background },
GitSignsStagedDelete = { fg = "#b85751", bg = background },
GitSignsStagedTopdelete = { fg = "#b85751", bg = background },
GitSignsStagedChangedelete = { fg = "#9d6b0f", bg = background },
LineNr = { bg = background },
CursorLineNr = { bg = background },
CursorLine = { bg = surface },
FoldColumn = { bg = background },
DiffAdd = { bg = "#d9e8d2" },
DiffChange = { bg = "#eee4c7" },
DiffDelete = { bg = "#f1d6d2" },
},
}

View file

@ -166,4 +166,12 @@ describe("tests", function()
assert.are.same(cozybox.config.contrast, "hard")
assert.are.same(cozybox.config.overrides.Normal.bg, "#181818")
end)
it("supports custom colorscheme names during load", function()
cozybox.setup()
vim.opt.background = "light"
cozybox.load("cozybox-light")
assert.are.same(vim.g.colors_name, "cozybox-light")
end)
end)