mirror of
https://github.com/harivansh-afk/cozybox.nvim.git
synced 2026-04-15 07:04:45 +00:00
light accents
This commit is contained in:
parent
0003b8c754
commit
40366d99e9
4 changed files with 98 additions and 60 deletions
17
README.md
17
README.md
|
|
@ -1,6 +1,6 @@
|
||||||
# cozybox.nvim
|
# cozybox.nvim
|
||||||
|
|
||||||
Cozybox is a warm, dark Neovim theme with nix-tuned blue and green accents, darker editor surfaces, and syntax overrides baked in.
|
Cozybox is a neo style darker gruvbox with havy blue and green accents, a nicer red, and a clean light mode (for outside).
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
|
|
@ -15,21 +15,8 @@ Neovim `0.8+`.
|
||||||
```vim
|
```vim
|
||||||
set background=dark " or light if you want light mode
|
set background=dark " or light if you want light mode
|
||||||
colorscheme cozybox
|
colorscheme cozybox
|
||||||
|
|
||||||
" explicit light entrypoint with the same cozybox accent palette
|
|
||||||
colorscheme cozybox-light
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Override
|
## Config
|
||||||
|
|
||||||
```lua
|
|
||||||
require("cozybox").setup({
|
|
||||||
transparent_mode = false,
|
|
||||||
palette_overrides = {},
|
|
||||||
overrides = {},
|
|
||||||
})
|
|
||||||
vim.cmd("colorscheme cozybox")
|
|
||||||
```
|
|
||||||
|
|
||||||
The theme already defaults to the custom blue/green palette, hard contrast, darker editor surfaces, and syntax highlight tweaks from your nix config.
|
|
||||||
See `:h cozybox.nvim` or `lua/cozybox.lua` for the full option surface.
|
See `:h cozybox.nvim` or `lua/cozybox.lua` for the full option surface.
|
||||||
|
|
|
||||||
|
|
@ -217,31 +217,32 @@ local function get_colors()
|
||||||
fg2 = p.dark2,
|
fg2 = p.dark2,
|
||||||
fg3 = p.dark3,
|
fg3 = p.dark3,
|
||||||
fg4 = p.dark4,
|
fg4 = p.dark4,
|
||||||
red = p.faded_red,
|
red = p.bright_red,
|
||||||
green = p.faded_green,
|
green = p.bright_green,
|
||||||
yellow = p.faded_yellow,
|
yellow = p.bright_yellow,
|
||||||
blue = p.faded_blue,
|
blue = p.bright_blue,
|
||||||
purple = p.faded_purple,
|
purple = p.bright_purple,
|
||||||
aqua = p.faded_aqua,
|
aqua = p.bright_aqua,
|
||||||
orange = p.faded_orange,
|
orange = p.bright_orange,
|
||||||
neutral_red = p.neutral_red,
|
neutral_red = p.neutral_red,
|
||||||
neutral_green = p.neutral_green,
|
neutral_green = p.neutral_green,
|
||||||
neutral_yellow = p.neutral_yellow,
|
neutral_yellow = p.neutral_yellow,
|
||||||
neutral_blue = p.neutral_blue,
|
neutral_blue = p.neutral_blue,
|
||||||
neutral_purple = p.neutral_purple,
|
neutral_purple = p.neutral_purple,
|
||||||
neutral_aqua = p.neutral_aqua,
|
neutral_aqua = p.neutral_aqua,
|
||||||
dark_red = p.light_red,
|
dark_red = p.dark_red,
|
||||||
dark_green = p.light_green,
|
dark_green = p.dark_green,
|
||||||
dark_aqua = p.light_aqua,
|
dark_aqua = p.dark_aqua,
|
||||||
gray = p.gray,
|
gray = p.gray,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if contrast ~= nil and contrast ~= "" then
|
if contrast ~= nil and contrast ~= "" then
|
||||||
color_groups[bg].bg0 = p[bg .. "0_" .. contrast]
|
color_groups[bg].bg0 = p[bg .. "0_" .. contrast]
|
||||||
color_groups[bg].dark_red = p[bg .. "_red_" .. contrast]
|
local overlay_bg = bg == "light" and "dark" or bg
|
||||||
color_groups[bg].dark_green = p[bg .. "_green_" .. contrast]
|
color_groups[bg].dark_red = p[overlay_bg .. "_red_" .. contrast]
|
||||||
color_groups[bg].dark_aqua = p[bg .. "_aqua_" .. contrast]
|
color_groups[bg].dark_green = p[overlay_bg .. "_green_" .. contrast]
|
||||||
|
color_groups[bg].dark_aqua = p[overlay_bg .. "_aqua_" .. contrast]
|
||||||
end
|
end
|
||||||
|
|
||||||
return color_groups[bg]
|
return color_groups[bg]
|
||||||
|
|
|
||||||
|
|
@ -4,26 +4,6 @@ local selection = "#c3c7c9"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
contrast = "hard",
|
contrast = "hard",
|
||||||
palette_overrides = {
|
|
||||||
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 = {
|
overrides = {
|
||||||
MatchParen = { bold = true, underline = true, fg = "#d8a657", bg = selection },
|
MatchParen = { bold = true, underline = true, fg = "#d8a657", bg = selection },
|
||||||
Normal = { bg = background },
|
Normal = { bg = background },
|
||||||
|
|
@ -31,23 +11,23 @@ return {
|
||||||
SignColumn = { bg = background },
|
SignColumn = { bg = background },
|
||||||
StatusLine = { bg = background },
|
StatusLine = { bg = background },
|
||||||
StatusLineNC = { bg = background },
|
StatusLineNC = { bg = background },
|
||||||
GitSignsAdd = { fg = "#6fae70", bg = background },
|
GitSignsAdd = { fg = "#a9b665", bg = background },
|
||||||
GitSignsChange = { fg = "#b57614", bg = background },
|
GitSignsChange = { fg = "#d8a657", bg = background },
|
||||||
GitSignsDelete = { fg = "#ea6962", bg = background },
|
GitSignsDelete = { fg = "#ea6962", bg = background },
|
||||||
GitSignsTopdelete = { fg = "#ea6962", bg = background },
|
GitSignsTopdelete = { fg = "#ea6962", bg = background },
|
||||||
GitSignsChangedelete = { fg = "#b57614", bg = background },
|
GitSignsChangedelete = { fg = "#d8a657", bg = background },
|
||||||
GitSignsUntracked = { fg = "#5b84de", bg = background },
|
GitSignsUntracked = { fg = "#7daea3", bg = background },
|
||||||
GitSignsStagedAdd = { fg = "#5f8b50", bg = background },
|
GitSignsStagedAdd = { fg = "#6c7842", bg = background },
|
||||||
GitSignsStagedChange = { fg = "#9d6b0f", bg = background },
|
GitSignsStagedChange = { fg = "#8a6d39", bg = background },
|
||||||
GitSignsStagedDelete = { fg = "#b85751", bg = background },
|
GitSignsStagedDelete = { fg = "#94433f", bg = background },
|
||||||
GitSignsStagedTopdelete = { fg = "#b85751", bg = background },
|
GitSignsStagedTopdelete = { fg = "#94433f", bg = background },
|
||||||
GitSignsStagedChangedelete = { fg = "#9d6b0f", bg = background },
|
GitSignsStagedChangedelete = { fg = "#8a6d39", bg = background },
|
||||||
LineNr = { bg = background },
|
LineNr = { bg = background },
|
||||||
CursorLineNr = { bg = background },
|
CursorLineNr = { bg = background },
|
||||||
CursorLine = { bg = surface },
|
CursorLine = { bg = surface },
|
||||||
FoldColumn = { bg = background },
|
FoldColumn = { bg = background },
|
||||||
DiffAdd = { bg = "#d9e8d2" },
|
DiffAdd = { bg = "#1e2718" },
|
||||||
DiffChange = { bg = "#eee4c7" },
|
DiffChange = { bg = "#1e1e18" },
|
||||||
DiffDelete = { bg = "#f1d6d2" },
|
DiffDelete = { bg = "#2a1818" },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,11 @@ local function clear_term_colors()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function highlight_attr(name, attr)
|
||||||
|
local group_id = vim.api.nvim_get_hl_id_by_name(name)
|
||||||
|
return vim.fn.synIDattr(group_id, attr, "gui")
|
||||||
|
end
|
||||||
|
|
||||||
describe("tests", function()
|
describe("tests", function()
|
||||||
it("works with default values", function()
|
it("works with default values", function()
|
||||||
cozybox.setup()
|
cozybox.setup()
|
||||||
|
|
@ -174,4 +179,69 @@ describe("tests", function()
|
||||||
|
|
||||||
assert.are.same(vim.g.colors_name, "cozybox-light")
|
assert.are.same(vim.g.colors_name, "cozybox-light")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it("keeps accent highlights consistent across dark and light themes", function()
|
||||||
|
cozybox.setup()
|
||||||
|
vim.opt.background = "dark"
|
||||||
|
cozybox.load()
|
||||||
|
|
||||||
|
local dark = {
|
||||||
|
red = highlight_attr("CozyboxRed", "fg"),
|
||||||
|
green = highlight_attr("CozyboxGreen", "fg"),
|
||||||
|
yellow = highlight_attr("CozyboxYellow", "fg"),
|
||||||
|
blue = highlight_attr("CozyboxBlue", "fg"),
|
||||||
|
purple = highlight_attr("CozyboxPurple", "fg"),
|
||||||
|
aqua = highlight_attr("CozyboxAqua", "fg"),
|
||||||
|
orange = highlight_attr("CozyboxOrange", "fg"),
|
||||||
|
string = highlight_attr("String", "fg"),
|
||||||
|
git_add = highlight_attr("GitSignsAdd", "fg"),
|
||||||
|
git_change = highlight_attr("GitSignsChange", "fg"),
|
||||||
|
git_delete = highlight_attr("GitSignsDelete", "fg"),
|
||||||
|
git_untracked = highlight_attr("GitSignsUntracked", "fg"),
|
||||||
|
diff_add = highlight_attr("DiffAdd", "bg"),
|
||||||
|
diff_change = highlight_attr("DiffChange", "bg"),
|
||||||
|
diff_delete = highlight_attr("DiffDelete", "bg"),
|
||||||
|
}
|
||||||
|
|
||||||
|
cozybox.setup(require("cozybox.light"))
|
||||||
|
vim.opt.background = "light"
|
||||||
|
cozybox.load("cozybox-light")
|
||||||
|
|
||||||
|
local light = {
|
||||||
|
red = highlight_attr("CozyboxRed", "fg"),
|
||||||
|
green = highlight_attr("CozyboxGreen", "fg"),
|
||||||
|
yellow = highlight_attr("CozyboxYellow", "fg"),
|
||||||
|
blue = highlight_attr("CozyboxBlue", "fg"),
|
||||||
|
purple = highlight_attr("CozyboxPurple", "fg"),
|
||||||
|
aqua = highlight_attr("CozyboxAqua", "fg"),
|
||||||
|
orange = highlight_attr("CozyboxOrange", "fg"),
|
||||||
|
string = highlight_attr("String", "fg"),
|
||||||
|
git_add = highlight_attr("GitSignsAdd", "fg"),
|
||||||
|
git_change = highlight_attr("GitSignsChange", "fg"),
|
||||||
|
git_delete = highlight_attr("GitSignsDelete", "fg"),
|
||||||
|
git_untracked = highlight_attr("GitSignsUntracked", "fg"),
|
||||||
|
diff_add = highlight_attr("DiffAdd", "bg"),
|
||||||
|
diff_change = highlight_attr("DiffChange", "bg"),
|
||||||
|
diff_delete = highlight_attr("DiffDelete", "bg"),
|
||||||
|
normal_bg = highlight_attr("Normal", "bg"),
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.are.same(dark.red, light.red)
|
||||||
|
assert.are.same(dark.green, light.green)
|
||||||
|
assert.are.same(dark.yellow, light.yellow)
|
||||||
|
assert.are.same(dark.blue, light.blue)
|
||||||
|
assert.are.same(dark.purple, light.purple)
|
||||||
|
assert.are.same(dark.aqua, light.aqua)
|
||||||
|
assert.are.same(dark.orange, light.orange)
|
||||||
|
assert.are.same(dark.string, light.string)
|
||||||
|
assert.are.same(dark.git_add, light.git_add)
|
||||||
|
assert.are.same(dark.git_change, light.git_change)
|
||||||
|
assert.are.same(dark.git_delete, light.git_delete)
|
||||||
|
assert.are.same(dark.git_untracked, light.git_untracked)
|
||||||
|
assert.are.same(dark.diff_add, light.diff_add)
|
||||||
|
assert.are.same(dark.diff_change, light.diff_change)
|
||||||
|
assert.are.same(dark.diff_delete, light.diff_delete)
|
||||||
|
assert.are.same(light.normal_bg, "#e7e7e7")
|
||||||
|
assert.are.same(vim.g.colors_name, "cozybox-light")
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue