Consolidate color palette around ansi term colors

This commit is contained in:
Tommaso Negri
2025-12-07 17:11:30 +01:00
parent d2865d8f4a
commit 06c78ee8dd
8 changed files with 148 additions and 124 deletions

View File

@@ -9,13 +9,13 @@ function M.setup(colors, config)
NonText = { fg = colors.dimmed },
Conceal = { fg = colors.dimmed },
Cursor = { bg = accent.regular, fg = accent.darkest },
Cursor = { bg = accent.regular, fg = colors.inverted },
CursorLine = { bg = accent.darkest },
CursorLineNr = { fg = accent.regular },
CursorColumn = { bg = accent.darkest },
ColorColumn = { bg = accent.dark },
Visual = { bg = accent.dark },
Visual = { bg = accent.darker },
VisualNOS = { bg = accent.darker },
Directory = { fg = accent.regular },
@@ -23,13 +23,13 @@ function M.setup(colors, config)
SpecialKey = { fg = colors.dimmed },
EndOfBuffer = { fg = colors.dimmed },
DiffAdd = { bg = colors.green.dark, fg = colors.green.regular },
DiffDelete = { bg = colors.red.dark, fg = colors.red.regular },
DiffText = { bg = colors.yellow.regular, fg = colors.yellow.darker },
DiffChange = { bg = colors.yellow.dark, fg = colors.yellow.regular },
DiffAdd = { bg = colors.green.darker, fg = colors.green.light },
DiffDelete = { bg = colors.red.darker, fg = colors.red.light },
DiffText = { bg = colors.yellow.regular, fg = colors.inverted },
DiffChange = { bg = colors.yellow.darker, fg = colors.yellow.light },
Search = { bg = accent.dark, fg = accent.regular },
IncSearch = { bg = accent.regular, fg = accent.darker },
Search = { bg = accent.darker, fg = accent.light },
IncSearch = { bg = accent.regular, fg = colors.inverted },
MatchParen = { fg = accent.regular },
LineNr = { fg = colors.dimmed },
@@ -38,42 +38,42 @@ function M.setup(colors, config)
Folded = { fg = accent.light },
FoldColumn = { fg = accent.light },
WinBar = { bg = accent.dark, fg = accent.regular },
WinBarNC = { bg = accent.darker, fg = accent.regular },
WinSeparator = { fg = accent.light },
VertSplit = { fg = accent.light },
WinBar = { bg = accent.dark, fg = accent.regular }, -- TODO: Verify
WinBarNC = { bg = accent.darker, fg = accent.regular }, -- TODO: Verify
WinSeparator = { fg = accent.regular },
VertSplit = { fg = accent.regular },
Pmenu = { fg = colors.fg },
PmenuExtra = { fg = colors.dimmed },
PmenuSel = { bg = accent.dark },
PmenuSel = { bg = accent.darker },
PmenuSbar = { bg = accent.regular },
PmenuThumb = { bg = accent.regular },
PmenuKind = { fg = accent.regular },
FloatBorder = { fg = accent.regular },
WildMenu = { bg = accent.dark },
WildMenu = { bg = accent.darker },
ErrorMsg = { fg = colors.red.regular, bg = colors.red.dark },
WarningMsg = { bg = colors.yellow.dark, fg = colors.yellow.regular },
ErrorMsg = { bg = colors.red.regular, fg = colors.inverted },
WarningMsg = { bg = colors.yellow.regular, fg = colors.inverted },
MoreMsg = { fg = colors.green.regular },
Question = { fg = colors.blue.regular },
StatusLine = { bg = accent.dark, fg = accent.regular },
StatusLineNC = { bg = accent.darker, fg = accent.regular },
TabLine = { bg = accent.dark, fg = accent.regular },
TabLineFill = { bg = accent.dark },
TabLineSel = { bg = accent.darker, fg = accent.regular },
StatusLine = { bg = accent.darker, fg = accent.lighter },
StatusLineNC = { bg = accent.darkest, fg = accent.light },
TabLine = { bg = accent.darker, fg = accent.light },
TabLineFill = { bg = accent.darker },
TabLineSel = { bg = accent.dark, fg = accent.lighter },
SpellBad = { undercurl = true, sp = colors.red.light },
SpellCap = { undercurl = true, sp = colors.blue.light },
SpellLocal = { undercurl = true, sp = colors.green.light },
SpellRare = { undercurl = true, sp = colors.purple.light },
SpellRare = { undercurl = true, sp = colors.magenta.light },
Title = { fg = accent.regular },
Title = { fg = accent.regular, bold = true },
TermCursor = { bg = accent.regular, fg = accent.darkest },
TermCursor = { bg = accent.regular, fg = colors.inverted },
TermCursorNC = { bg = accent.darker, fg = colors.dimmed },
QuickFixLine = { bg = accent.dark },
QuickFixLine = { bg = accent.darker },
}
end

View File

@@ -6,13 +6,13 @@ function M.setup(colors, config)
return {
BlinkCmpMenu = {},
BlinkCmpMenuBorder = { fg = accent.regular },
BlinkCmpMenuSelection = { bg = accent.dark },
BlinkCmpMenuSelection = { bg = accent.darker },
BlinkCmpScrollBarThumb = { bg = accent.regular },
BlinkCmpScrollBarGutter = { bg = accent.darker },
BlinkCmpLabel = { fg = colors.fg },
BlinkCmpLabelDeprecated = { fg = colors.dimmed, strikethrough = true },
BlinkCmpLabelMatch = { fg = accent.regular, bold = true },
BlinkCmpLabelMatch = { fg = accent.regular },
BlinkCmpLabelDetail = { fg = colors.dimmed },
BlinkCmpLabelDescription = { fg = colors.dimmed },

View File

@@ -12,14 +12,14 @@ function M.setup(colors, config)
MiniClueSeparator = { fg = accent.light },
MiniClueTitle = { fg = accent.regular },
MiniDiffSignAdd = { fg = colors.green.light },
MiniDiffSignChange = { fg = colors.blue.light },
MiniDiffSignDelete = { fg = colors.red.light },
MiniDiffSignAdd = { fg = colors.green.dark },
MiniDiffSignChange = { fg = colors.yellow.dark },
MiniDiffSignDelete = { fg = colors.red.dark },
MiniHipatternsFixme = { bg = colors.red.dark, fg = colors.red.regular },
MiniHipatternsHack = { bg = colors.purple.dark, fg = colors.purple.regular },
MiniHipatternsTodo = { bg = colors.blue.dark, fg = colors.blue.regular },
MiniHipatternsNote = { bg = colors.yellow.dark, fg = colors.yellow.regular },
MiniHipatternsFixme = { bg = colors.red.darker, fg = colors.red.regular },
MiniHipatternsHack = { bg = colors.magenta.darker, fg = colors.magenta.regular },
MiniHipatternsTodo = { bg = colors.blue.darker, fg = colors.blue.regular },
MiniHipatternsNote = { bg = colors.yellow.darker, fg = colors.yellow.regular },
MiniNotifyBorder = { fg = accent.regular },
MiniNotifyLspProgress = { fg = accent.regular },

View File

@@ -5,12 +5,12 @@ function M.setup(colors, config)
return {
NetrwDir = { fg = accent.regular },
NetrwClassify = { fg = accent.light },
NetrwClassify = { fg = accent.lighter },
NetrwExe = { fg = colors.green.regular },
NetrwSymLink = { fg = colors.blue.light },
NetrwTreeBar = { fg = accent.dark },
NetrwPlain = { fg = colors.fg },
NetrwMarkFile = { bg = accent.dark, fg = accent.regular },
NetrwMarkFile = { bg = accent.darker, fg = accent.regular },
NetrwQuickHelp = { fg = colors.dimmed },
NetrwVersion = { fg = colors.dimmed },
NetrwCopyFile = { fg = colors.blue.regular },

View File

@@ -4,7 +4,7 @@ function M.setup(colors, config)
return {
Comment = { fg = colors.yellow.regular, italic = true },
Constant = { fg = colors.purple.regular },
Constant = { fg = colors.magenta.regular },
Boolean = { link = "Constant" },
String = { fg = colors.green.regular },
Character = { link = "String" },

View File

@@ -4,7 +4,7 @@ function M.setup(colors, config)
return {
["@comment"] = { fg = colors.yellow.regular },
["@constant"] = { fg = colors.purple.regular },
["@constant"] = { fg = colors.magenta.regular },
["@constant.builtin"] = { link = "@constant" },
["@string"] = { fg = colors.green.regular },
["@string.regex"] = { link = "@string" }, -- TODO: Differentiate regex
@@ -58,7 +58,7 @@ function M.setup(colors, config)
-- ["@label"] = { link = "Normal" },
-- ["@module"] = { link = "Normal" },
-- ["@namespace"] = { link = "Normal" },
-- -- ["@none"] = { fg = colors.purple.regular },
-- -- ["@none"] = { fg = colors.magenta.regular },
-- ["@parameter"] = { link = "Normal" },
-- ["@parameter.reference"] = { link = "Normal" },
-- ["@property"] = { link = "Normal" },

View File

@@ -15,60 +15,71 @@ function M.setup(opts)
vim.g.colors_name = "voltage"
local colors = {
-- strings, numbers, etc
green = {
lightest = "#e6f3e8",
lighter = "#68766a",
light = "#99cda3",
regular = "#54dd7d",
dark = "#1c3e24",
darker = "#0c1a0f",
darkest = "#010502"
},
-- constants
purple = {
lightest = "#f7eaf5",
lighter = "#7a6d79",
light = "#dcabd6",
regular = "#fd8ff4",
dark = "#472944",
darker = "#1e111c",
darkest = "#060206"
},
-- comments
yellow = {
lightest = "#f4eee0",
lighter = "#777161",
light = "#d2bc82",
regular = "#ebb600",
dark = "#41340a",
darker = "#1b1505",
darkest = "#050300"
},
-- top-level definitions
blue = {
lightest = "#e0f2f6",
lighter = "#61767a",
light = "#7dccda",
regular = "#00d8f5",
dark = "#003d46",
darker = "#031a1e",
darkest = "#000406"
},
dimmed = "#636363",
-- errors, spellbad, etc
red = {
lightest = "#fceae8",
lighter = "#806c6a",
light = "#edaaa4",
regular = "#ff2335",
dark = "#502825",
darker = "#22100f",
darkest = "#080202"
lighter = "#f3bfba",
light = "#f69b94",
regular = "#f5746d",
dark = "#984742",
darker = "#47211e",
darkest = "#080202"
},
-- strings, numbers, etc
green = {
lightest = "#e6f3e8",
lighter = "#b3d9b9",
light = "#82cb92",
regular = "#46bc69",
dark = "#2b7440",
darker = "#14361d",
darkest = "#010502"
},
-- comments
yellow = {
lightest = "#f0f0e0",
lighter = "#d3d1a3",
light = "#c2bb64",
regular = "#b1a600",
dark = "#6d6600",
darker = "#322f04",
darkest = "#040300"
},
-- top-level definitions
blue = {
lightest = "#e4f0fb",
lighter = "#aed3f3",
light = "#78bff9",
regular = "#32a9fe",
dark = "#1f689d",
darker = "#0f304a",
darkest = "#010408"
},
-- constants
magenta = {
lightest = "#f6eaf6",
lighter = "#e3c1e4",
light = "#db9fde",
regular = "#d27bd8",
dark = "#824b85",
darker = "#3d233e",
darkest = "#060206"
},
cyan = {
lightest = "#e0f3f3",
lighter = "#a0dbda",
light = "#4fcdcd",
regular = "#00bcbc",
dark = "#007576",
darker = "#003737",
darkest = "#000505"
},
}
colors.fg = colors[M.config.accent].lightest
colors.dimmed = colors[M.config.accent].lighter
colors.inverted = colors[M.config.accent].darkest
-- colors.dimmed = colors[M.config.accent].dark
for _, highlight in ipairs({ "editor", "syntax", "treesitter" }) do
local mod = require("voltage.highlights." .. highlight)

View File

@@ -1,49 +1,62 @@
.green {
.lightest { color: oklch(0.95 0.02 150); }
.lighter { color: oklch(0.55 0.025 150); }
.light { color: oklch(0.8 0.08 150); }
.regular { color: oklch(0.8 0.18 150); }
.dark { color: oklch(0.33 0.06 150); }
.darker { color: oklch(0.2 0.03 150); }
.darkest { color: oklch(0.1 0.02 150); }
.white-normal { color: oklch(0.78 0.00 0); } /* #b7b7b7 */
.black-bright { color: oklch(0.50 0.00 0); } /* #636363 */
.red {
.lightest { color: oklch(0.95 0.02 25); } /* #fceae8 */
.lighter { color: oklch(0.85 0.06 25); } /* #f3bfba */
.light { color: oklch(0.78 0.11 25); } /* #f69b94 */
.regular { color: oklch(0.71 0.16 25); } /* #f5746d */
.dark { color: oklch(0.50 0.11 25); } /* #984742 */
.darker { color: oklch(0.30 0.06 25); } /* #47211e */
.darkest { color: oklch(0.10 0.02 25); } /* #080202 */
}
.purple {
.lightest { color: oklch(0.95 0.02 330); }
.lighter { color: oklch(0.55 0.025 330); }
.light { color: oklch(0.8 0.08 330); }
.regular { color: oklch(0.8 0.18 330); }
.dark { color: oklch(0.33 0.06 330); }
.darker { color: oklch(0.2 0.03 330); }
.darkest { color: oklch(0.1 0.02 330); }
.green {
.lightest { color: oklch(0.95 0.02 150); } /* #e6f3e8 */
.lighter { color: oklch(0.85 0.06 150); } /* #b3d9b9 */
.light { color: oklch(0.78 0.11 150); } /* #82cb92 */
.regular { color: oklch(0.71 0.16 150); } /* #46bc69 */
.dark { color: oklch(0.50 0.11 150); } /* #2b7440 */
.darker { color: oklch(0.30 0.06 150); } /* #14361d */
.darkest { color: oklch(0.10 0.02 150); } /* #010502 */
}
.yellow {
.lightest { color: oklch(0.95 0.02 90); }
.lighter { color: oklch(0.55 0.025 90); }
.light { color: oklch(0.8 0.08 90); }
.regular { color: oklch(0.8 0.18 90); }
.dark { color: oklch(0.33 0.06 90); }
.darker { color: oklch(0.2 0.03 90); }
.darkest { color: oklch(0.1 0.02 90); }
.lightest { color: oklch(0.95 0.02 105); } /* #f0f0e0 */
.lighter { color: oklch(0.85 0.06 105); } /* #d3d1a3 */
.light { color: oklch(0.78 0.11 105); } /* #c2bb64 */
.regular { color: oklch(0.71 0.16 105); } /* #b1a600 */
.dark { color: oklch(0.50 0.11 105); } /* #6d6600 */
.darker { color: oklch(0.30 0.06 105); } /* #322f04 */
.darkest { color: oklch(0.10 0.02 105); } /* #040300 */
}
.blue {
.lightest { color: oklch(0.95 0.02 210); }
.lighter { color: oklch(0.55 0.025 210); }
.light { color: oklch(0.8 0.08 210); }
.regular { color: oklch(0.8 0.18 210); }
.dark { color: oklch(0.33 0.06 210); }
.darker { color: oklch(0.2 0.03 210); }
.darkest { color: oklch(0.1 0.02 210); }
.lightest { color: oklch(0.95 0.02 245); } /* #e4f0fb */
.lighter { color: oklch(0.85 0.06 245); } /* #aed3f3 */
.light { color: oklch(0.78 0.11 245); } /* #78bff9 */
.regular { color: oklch(0.71 0.16 245); } /* #32a9fe */
.dark { color: oklch(0.50 0.11 245); } /* #1f689d */
.darker { color: oklch(0.30 0.06 245); } /* #0f304a */
.darkest { color: oklch(0.10 0.02 245); } /* #010408 */
}
.red {
.lightest { color: oklch(0.95 0.02 25); }
.lighter { color: oklch(0.55 0.025 25); }
.light { color: oklch(0.8 0.08 25); }
.regular { color: oklch(0.65 0.25 25); }
.dark { color: oklch(0.33 0.06 25); }
.darker { color: oklch(0.2 0.03 25); }
.darkest { color: oklch(0.1 0.02 25); }
.magenta {
.lightest { color: oklch(0.95 0.02 325); } /* #f6eaf6 */
.lighter { color: oklch(0.85 0.06 325); } /* #e3c1e4 */
.light { color: oklch(0.78 0.11 325); } /* #db9fde */
.regular { color: oklch(0.71 0.16 325); } /* #d27bd8 */
.dark { color: oklch(0.50 0.11 325); } /* #824b85 */
.darker { color: oklch(0.30 0.06 325); } /* #3d233e */
.darkest { color: oklch(0.10 0.02 325); } /* #060206 */
}
.cyan {
.lightest { color: oklch(0.95 0.02 195); } /* #e0f3f3 */
.lighter { color: oklch(0.85 0.06 195); } /* #a0dbda */
.light { color: oklch(0.78 0.11 195); } /* #4fcdcd */
.regular { color: oklch(0.71 0.16 195); } /* #00bcbc */
.dark { color: oklch(0.50 0.11 195); } /* #007576 */
.darker { color: oklch(0.30 0.06 195); } /* #003737 */
.darkest { color: oklch(0.10 0.02 195); } /* #000505 */
}