From 5ae1ef3c4ff0bd5d9e7a908ac8fb61e8b486ee4b Mon Sep 17 00:00:00 2001 From: Webhooked <9132742+webhooked@users.noreply.github.com> Date: Fri, 25 Jul 2025 10:32:07 +0200 Subject: [PATCH] improve color naming for easier maintainability and customization --- lua/kanso/colors.lua | 144 ++++++------- lua/kanso/themes.lua | 488 +++++++++++++++++++++---------------------- 2 files changed, 305 insertions(+), 327 deletions(-) diff --git a/lua/kanso/colors.lua b/lua/kanso/colors.lua index 45a9e3d..c5dcc54 100644 --- a/lua/kanso/colors.lua +++ b/lua/kanso/colors.lua @@ -1,97 +1,75 @@ ---@class PaletteColors local palette = { - -- Bg Shades - zen0 = "#090E13", - zen1 = "#1C1E25", - zen2 = "#22262D", - zen3 = "#393B44", + -- Zen Bg Shades + zenBg0 = "#090E13", + zenBg1 = "#1C1E25", + zenBg2 = "#22262D", + zenBg3 = "#393B44", + + -- Ink Bg Shades + inkBg0 = "#14171d", + inkBg1 = "#1f1f26", + inkBg2 = "#22262D", + inkBg3 = "#393B44", + inkBg4 = "#4b4e57", + + -- Mist Bg Shades + mistBg0 = "#22262D", + mistBg1 = "#2a2c35", + mistBg2 = "#393B44", + mistBg3 = "#5C6066", -- Popup and Floats - zenBlue1 = "#223249", - zenBlue2 = "#2D4F67", + altBlue1 = "#223249", + altBlue2 = "#2D4F67", -- Diff and Git - winterGreen = "#2B3328", - winterYellow = "#49443C", - winterRed = "#43242B", - winterBlue = "#252535", - autumnGreen = "#76946A", - autumnRed = "#C34043", - autumnYellow = "#DCA561", + diffGreen = "#2B3328", + diffYellow = "#49443C", + diffRed = "#43242B", + diffBlue = "#252535", + gitGreen = "#76946A", + gitRed = "#C34043", + gitYellow = "#DCA561", - -- Diag - samuraiRed = "#C34043", - roninYellow = "#DCA561", - zenAqua1 = "#6A9589", - inkBlue = "#658594", + -- Main Colors + red = "#C34043", + red2 = "#E46876", + red3 = "#c4746e", + yellow = "#DCA561", + yellow2 = "#E6C384", + yellow3 = "#c4b28a", + green = "#98BB6C", + green2 = "#87a987", + green3 = "#8a9a7b", + green4 = "#6A9589", + green5 = "#7AA89F", + blue = "#7FB4CA", + blue2 = "#658594", + blue3 = "#8ba4b0", + blue4 = "#8ea4a2", + violet = "#938AA9", + violet2 = "#8992a7", + violet3 = "#949fb5", + pink = "#a292a3", + orange = "#b6927b", + orange2 = "#b98d7b", + aqua = "#8ea4a2", -- Fg and Comments - oldWhite = "#C5C9C7", - fujiWhite = "#f2f1ef", + fg = "#C5C9C7", + fg2 = "#f2f1ef", + gray = "#717C7C", + gray2 = "#A4A7A4", + gray3 = "#909398", + gray4 = "#75797f", + gray5 = "#5C6066", - springViolet1 = "#938AA9", - springBlue = "#7FB4CA", - zenAqua2 = "#7AA89F", - - springGreen = "#98BB6C", - carpYellow = "#E6C384", - - zenRed = "#E46876", - katanaGray = "#717C7C", - - inkBlack0 = "#14171d", - inkBlack1 = "#1f1f26", - inkBlack2 = "#22262D", - inkBlack3 = "#393B44", - inkBlack4 = "#4b4e57", - - inkWhite = "#C5C9C7", - inkGreen = "#87a987", - inkGreen2 = "#8a9a7b", - inkPink = "#a292a3", - inkOrange = "#b6927b", - inkOrange2 = "#b98d7b", - inkGray = "#A4A7A4", - inkGray1 = "#909398", - inkGray2 = "#75797f", - inkGray3 = "#5C6066", - inkBlue2 = "#8ba4b0", - inkViolet = "#8992a7", - inkRed = "#c4746e", - inkAqua = "#8ea4a2", - inkAsh = "#5C6066", - inkTeal = "#949fb5", - inkYellow = "#c4b28a", --"#a99c8b", - -- "#8a9aa3", - - -- Mist Shades - mist0 = "#22262D", - mist1 = "#2a2c35", - mist2 = "#393B44", - mist3 = "#5C6066", - - mistWhite = "#C5C9C7", - mistGreen = "#87a987", - mistGreen2 = "#8a9a7b", - mistPink = "#a292a3", - mistOrange = "#b6927b", - mistOrange2 = "#b98d7b", - mistGray = "#A4A7A4", - mistGray1 = "#909398", - mistGray2 = "#75797f", - mistGray3 = "#5C6066", - mistBlue2 = "#8ba4b0", - mistViolet = "#8992a7", - mistRed = "#c4746e", - mistAqua = "#8ea4a2", - mistAsh = "#5C6066", - mistTeal = "#949fb5", - mistYellow = "#c4b28a", - - pearlInk0 = "#22262D", - pearlInk1 = "#545464", - pearlInk2 = "#43436c", + -- Light theme colors (pearl prefix) + pearlBlack0 = "#22262D", + pearlBlack1 = "#545464", + pearlBlack2 = "#43436c", pearlGray = "#e2e1df", pearlGray2 = "#5C6068", pearlGray3 = "#6D6D69", diff --git a/lua/kanso/themes.lua b/lua/kanso/themes.lua index 166587f..86c8813 100644 --- a/lua/kanso/themes.lua +++ b/lua/kanso/themes.lua @@ -99,108 +99,108 @@ return { return { ui = { none = "NONE", - fg = palette.inkWhite, - fg_dim = palette.inkGray, - fg_reverse = palette.zenBlue1, + fg = palette.fg, + fg_dim = palette.gray2, + fg_reverse = palette.altBlue1, - bg_dim = palette.zen0, + bg_dim = palette.zenBg0, - bg_m3 = palette.zen0, - bg_m2 = palette.zen0, - bg_m1 = palette.zen0, - bg = palette.zen0, - bg_p1 = palette.zen1, - bg_p2 = palette.zen2, + bg_m3 = palette.zenBg0, + bg_m2 = palette.zenBg0, + bg_m1 = palette.zenBg0, + bg = palette.zenBg0, + bg_p1 = palette.zenBg1, + bg_p2 = palette.zenBg2, - special = palette.inkGray3, - indent_line = palette.inkBlack2, - active_indent_line = palette.inkBlack3, - whitespace = palette.inkBlack3, - nontext = palette.inkAsh, + special = palette.gray5, + indent_line = palette.inkBg2, + active_indent_line = palette.inkBg3, + whitespace = palette.inkBg3, + nontext = palette.gray5, - bg_visual = palette.inkBlack3, - bg_search = palette.zenBlue2, + bg_visual = palette.inkBg3, + bg_search = palette.altBlue2, - cursor_line_nr_foreground = palette.inkGray3, - cursor_line_nr_active_foreground = palette.fujiWhite, - cursor_bg = palette.fujiWhite, - cursor_fg = palette.zen0, + cursor_line_nr_foreground = palette.gray5, + cursor_line_nr_active_foreground = palette.fg2, + cursor_bg = palette.fg2, + cursor_fg = palette.zenBg0, pmenu = { - fg = palette.fujiWhite, + fg = palette.fg2, fg_sel = "NONE", - bg = palette.zen0, - bg_sel = palette.inkBlack3, - bg_thumb = palette.inkBlack3, - bg_sbar = palette.zen0, + bg = palette.zenBg0, + bg_sel = palette.inkBg3, + bg_thumb = palette.inkBg3, + bg_sbar = palette.zenBg0, }, float = { - fg = palette.inkGray, - bg = palette.zen0, - fg_border = palette.zen2, - bg_border = palette.zen0, + fg = palette.gray2, + bg = palette.zenBg0, + fg_border = palette.zenBg2, + bg_border = palette.zenBg0, }, }, syn = { - string = palette.inkGreen2, + string = palette.green3, variable = "NONE", - number = palette.inkPink, - constant = palette.inkOrange, - identifier = palette.inkViolet, - parameter = palette.inkGray1, - fun = palette.inkBlue2, - statement = palette.inkViolet, - keyword = palette.inkViolet, - operator = palette.inkGray1, - preproc = palette.inkGray1, - type = palette.inkAqua, - regex = palette.inkRed, - deprecated = palette.katanaGray, - punct = palette.inkGray1, - comment = palette.inkGray2, - special1 = palette.inkYellow, - special2 = palette.inkViolet, - special3 = palette.inkViolet, + number = palette.pink, + constant = palette.orange, + identifier = palette.violet2, + parameter = palette.gray3, + fun = palette.blue3, + statement = palette.violet2, + keyword = palette.violet2, + operator = palette.gray3, + preproc = palette.gray3, + type = palette.aqua, + regex = palette.red3, + deprecated = palette.gray, + punct = palette.gray3, + comment = palette.gray4, + special1 = palette.yellow3, + special2 = palette.violet2, + special3 = palette.violet2, }, diag = { - error = palette.samuraiRed, - ok = palette.springGreen, - warning = palette.roninYellow, - info = palette.inkBlue, - hint = palette.zenAqua1, + error = palette.red, + ok = palette.green, + warning = palette.yellow, + info = palette.blue2, + hint = palette.green4, }, diff = { - add = palette.winterGreen, - delete = palette.winterRed, - change = palette.winterBlue, - text = palette.winterYellow, + add = palette.diffGreen, + delete = palette.diffRed, + change = palette.diffBlue, + text = palette.diffYellow, }, vcs = { - added = palette.autumnGreen, - removed = palette.autumnRed, - changed = palette.autumnYellow, - untracked = palette.inkGray2, + added = palette.gitGreen, + removed = palette.gitRed, + changed = palette.gitYellow, + untracked = palette.gray4, }, term = { - palette.zen0, -- black - palette.inkRed, -- red - palette.inkGreen2, -- green - palette.inkYellow, -- yellow - palette.inkBlue2, -- blue - palette.inkPink, -- magenta - palette.inkWhite, -- cyan - palette.inkGray, -- white - palette.inkGray1, -- bright black - palette.zenRed, -- bright red - palette.inkGreen, -- bright green - palette.carpYellow, -- bright yellow - palette.springBlue, -- bright blue - palette.springViolet1, -- bright magenta - palette.zenAqua2, -- bright cyan - palette.inkWhite, -- bright white - palette.inkOrange, -- extended color 1 - palette.inkOrange2, -- extended color 2 + palette.zenBg0, -- black + palette.red3, -- red + palette.green3, -- green + palette.yellow3, -- yellow + palette.blue3, -- blue + palette.pink, -- magenta + palette.fg, -- cyan + palette.gray2, -- white + palette.gray3, -- bright black + palette.red2, -- bright red + palette.green2, -- bright green + palette.yellow2, -- bright yellow + palette.blue, -- bright blue + palette.violet, -- bright magenta + palette.green5, -- bright cyan + palette.fg, -- bright white + palette.orange, -- extended color 1 + palette.orange2, -- extended color 2 }, } end, @@ -210,108 +210,108 @@ return { return { ui = { none = "NONE", - fg = palette.inkWhite, - fg_dim = palette.inkGray, - fg_reverse = palette.zenBlue1, + fg = palette.fg, + fg_dim = palette.gray2, + fg_reverse = palette.altBlue1, - bg_dim = palette.inkBlack0, + bg_dim = palette.inkBg0, - bg_m3 = palette.inkBlack0, - bg_m2 = palette.inkBlack0, - bg_m1 = palette.inkBlack0, - bg = palette.inkBlack0, - bg_p1 = palette.inkBlack1, - bg_p2 = palette.inkBlack2, + bg_m3 = palette.inkBg0, + bg_m2 = palette.inkBg0, + bg_m1 = palette.inkBg0, + bg = palette.inkBg0, + bg_p1 = palette.inkBg1, + bg_p2 = palette.inkBg2, - special = palette.inkGray3, - indent_line = palette.inkBlack2, - active_indent_line = palette.inkBlack3, - whitespace = palette.inkBlack4, - nontext = palette.inkAsh, + special = palette.gray5, + indent_line = palette.inkBg2, + active_indent_line = palette.inkBg3, + whitespace = palette.inkBg4, + nontext = palette.gray5, - bg_visual = palette.inkBlack3, - bg_search = palette.zenBlue2, + bg_visual = palette.inkBg3, + bg_search = palette.altBlue2, - cursor_line_nr_foreground = palette.inkGray3, - cursor_line_nr_active_foreground = palette.fujiWhite, - cursor_bg = palette.fujiWhite, - cursor_fg = palette.inkBlack0, + cursor_line_nr_foreground = palette.gray5, + cursor_line_nr_active_foreground = palette.fg2, + cursor_bg = palette.fg2, + cursor_fg = palette.inkBg0, pmenu = { - fg = palette.fujiWhite, + fg = palette.fg2, fg_sel = "NONE", - bg = palette.inkBlack0, - bg_sel = palette.inkBlack3, - bg_thumb = palette.inkBlack3, - bg_sbar = palette.inkBlack0, + bg = palette.inkBg0, + bg_sel = palette.inkBg3, + bg_thumb = palette.inkBg3, + bg_sbar = palette.inkBg0, }, float = { - fg = palette.inkGray, - bg = palette.inkBlack0, - fg_border = palette.inkBlack2, - bg_border = palette.inkBlack0, + fg = palette.gray2, + bg = palette.inkBg0, + fg_border = palette.inkBg2, + bg_border = palette.inkBg0, }, }, syn = { - string = palette.inkGreen2, + string = palette.green3, variable = "NONE", - number = palette.inkPink, - constant = palette.inkOrange, - identifier = palette.inkViolet, - parameter = palette.inkGray1, - fun = palette.inkBlue2, - statement = palette.inkViolet, - keyword = palette.inkViolet, - operator = palette.inkGray1, - preproc = palette.inkGray1, - type = palette.inkAqua, - regex = palette.inkRed, - deprecated = palette.katanaGray, - punct = palette.inkGray1, - comment = palette.inkGray2, - special1 = palette.inkYellow, - special2 = palette.inkViolet, - special3 = palette.inkViolet, + number = palette.pink, + constant = palette.orange, + identifier = palette.violet2, + parameter = palette.gray3, + fun = palette.blue3, + statement = palette.violet2, + keyword = palette.violet2, + operator = palette.gray3, + preproc = palette.gray3, + type = palette.aqua, + regex = palette.red3, + deprecated = palette.gray, + punct = palette.gray3, + comment = palette.gray4, + special1 = palette.yellow3, + special2 = palette.violet2, + special3 = palette.violet2, }, diag = { - error = palette.samuraiRed, - ok = palette.springGreen, - warning = palette.roninYellow, - info = palette.inkBlue, - hint = palette.zenAqua1, + error = palette.red, + ok = palette.green, + warning = palette.yellow, + info = palette.blue2, + hint = palette.green4, }, diff = { - add = palette.winterGreen, - delete = palette.winterRed, - change = palette.winterBlue, - text = palette.winterYellow, + add = palette.diffGreen, + delete = palette.diffRed, + change = palette.diffBlue, + text = palette.diffYellow, }, vcs = { - added = palette.autumnGreen, - removed = palette.autumnRed, - changed = palette.autumnYellow, - untracked = palette.inkGray2, + added = palette.gitGreen, + removed = palette.gitRed, + changed = palette.gitYellow, + untracked = palette.gray4, }, term = { - palette.inkBlack0, -- black - palette.inkRed, -- red - palette.inkGreen2, -- green - palette.inkYellow, -- yellow - palette.inkBlue2, -- blue - palette.inkPink, -- magenta - palette.inkWhite, -- cyan - palette.inkGray, -- white - palette.inkGray1, -- bright black - palette.zenRed, -- bright red - palette.inkGreen, -- bright green - palette.carpYellow, -- bright yellow - palette.springBlue, -- bright blue - palette.springViolet1, -- bright magenta - palette.zenAqua2, -- bright cyan - palette.inkWhite, -- bright white - palette.inkOrange, -- extended color 1 - palette.inkOrange2, -- extended color 2 + palette.inkBg0, -- black + palette.red3, -- red + palette.green3, -- green + palette.yellow3, -- yellow + palette.blue3, -- blue + palette.pink, -- magenta + palette.fg, -- cyan + palette.gray2, -- white + palette.gray3, -- bright black + palette.red2, -- bright red + palette.green2, -- bright green + palette.yellow2, -- bright yellow + palette.blue, -- bright blue + palette.violet, -- bright magenta + palette.green5, -- bright cyan + palette.fg, -- bright white + palette.orange, -- extended color 1 + palette.orange2, -- extended color 2 }, } end, @@ -321,8 +321,8 @@ return { return { ui = { none = "NONE", - fg = palette.pearlInk0, - fg_dim = palette.pearlInk1, + fg = palette.pearlBlack0, + fg_dim = palette.pearlBlack1, fg_reverse = palette.pearlGray, bg_dim = palette.pearlWhite0, @@ -344,12 +344,12 @@ return { bg_search = palette.pearlBlue2, cursor_line_nr_foreground = palette.pearlGray4, - cursor_line_nr_active_foreground = palette.inkBlack2, - cursor_bg = palette.fujiWhite, - cursor_fg = palette.inkBlack2, + cursor_line_nr_active_foreground = palette.inkBg2, + cursor_bg = palette.fg2, + cursor_fg = palette.inkBg2, pmenu = { - fg = palette.pearlInk2, + fg = palette.pearlBlack2, fg_sel = "NONE", -- This is important to make highlights pass-through bg = palette.pearlWhite0, bg_sel = palette.pearlWhite2, @@ -357,7 +357,7 @@ return { bg_sbar = palette.pearlWhite0, }, float = { - fg = palette.pearlInk2, + fg = palette.pearlBlack2, bg = palette.pearlWhite0, fg_border = palette.pearlWhite2, bg_border = palette.pearlWhite0, @@ -404,14 +404,14 @@ return { hint = palette.pearlAqua2, }, term = { - palette.inkBlack2, -- black + palette.inkBg2, -- black palette.pearlRed, -- red palette.pearlGreen, -- green palette.pearlYellow, -- yellow palette.pearlBlue4, -- blue palette.pearlPink, -- magenta palette.pearlAqua, -- cyan - palette.pearlInk0, -- white + palette.pearlBlack0, -- white palette.pearlGray3, -- bright black palette.pearlRed2, -- bright red palette.pearlGreen2, -- bright green @@ -419,7 +419,7 @@ return { palette.pearlTeal2, -- bright blue palette.pearlViolet4, -- bright magenta palette.pearlAqua2, -- bright cyan - palette.pearlInk2, -- bright white + palette.pearlBlack2, -- bright white palette.pearlOrange2, -- extended color 1 palette.pearlRed3, -- extended color 2 }, @@ -431,108 +431,108 @@ return { return { ui = { none = "NONE", - fg = palette.mistWhite, - fg_dim = palette.mistGray, - fg_reverse = palette.zenBlue1, + fg = palette.fg, + fg_dim = palette.gray2, + fg_reverse = palette.altBlue1, - bg_dim = palette.mist0, + bg_dim = palette.mistBg0, - bg_m3 = palette.mist0, - bg_m2 = palette.mist0, - bg_m1 = palette.mist0, - bg = palette.mist0, - bg_p1 = palette.mist2, - bg_p2 = palette.mist2, + bg_m3 = palette.mistBg0, + bg_m2 = palette.mistBg0, + bg_m1 = palette.mistBg0, + bg = palette.mistBg0, + bg_p1 = palette.mistBg2, + bg_p2 = palette.mistBg2, - special = palette.mistGray3, - indent_line = palette.mistGray3, - active_indent_line = palette.mistGray3, - whitespace = palette.mist3, - nontext = palette.mistAsh, + special = palette.gray5, + indent_line = palette.gray5, + active_indent_line = palette.gray5, + whitespace = palette.mistBg3, + nontext = palette.gray5, - bg_visual = palette.mist2, - bg_search = palette.zenBlue2, + bg_visual = palette.mistBg2, + bg_search = palette.altBlue2, - cursor_line_nr_foreground = palette.mistGray2, - cursor_line_nr_active_foreground = palette.fujiWhite, - cursor_bg = palette.fujiWhite, - cursor_fg = palette.mist0, + cursor_line_nr_foreground = palette.gray4, + cursor_line_nr_active_foreground = palette.fg2, + cursor_bg = palette.fg2, + cursor_fg = palette.mistBg0, pmenu = { - fg = palette.fujiWhite, + fg = palette.fg2, fg_sel = "NONE", - bg = palette.mist0, - bg_sel = palette.mist2, - bg_thumb = palette.mist2, - bg_sbar = palette.mist0, + bg = palette.mistBg0, + bg_sel = palette.mistBg2, + bg_thumb = palette.mistBg2, + bg_sbar = palette.mistBg0, }, float = { - fg = palette.mistGray, - bg = palette.mist0, - fg_border = palette.mist2, - bg_border = palette.mist0, + fg = palette.gray2, + bg = palette.mistBg0, + fg_border = palette.mistBg2, + bg_border = palette.mistBg0, }, }, syn = { - string = palette.mistGreen2, + string = palette.green3, variable = "NONE", - number = palette.mistPink, - constant = palette.mistOrange, - identifier = palette.mistViolet, - parameter = palette.mistGray1, - fun = palette.mistBlue2, - statement = palette.mistViolet, - keyword = palette.mistViolet, - operator = palette.mistGray1, - preproc = palette.mistGray1, - type = palette.mistAqua, - regex = palette.mistRed, - deprecated = palette.katanaGray, - punct = palette.mistGray1, - comment = palette.mistGray2, - special1 = palette.mistYellow, - special2 = palette.mistViolet, - special3 = palette.mistViolet, + number = palette.pink, + constant = palette.orange, + identifier = palette.violet2, + parameter = palette.gray3, + fun = palette.blue3, + statement = palette.violet2, + keyword = palette.violet2, + operator = palette.gray3, + preproc = palette.gray3, + type = palette.aqua, + regex = palette.red3, + deprecated = palette.gray, + punct = palette.gray3, + comment = palette.gray4, + special1 = palette.yellow3, + special2 = palette.violet2, + special3 = palette.violet2, }, diag = { - error = palette.samuraiRed, - ok = palette.springGreen, - warning = palette.roninYellow, - info = palette.inkBlue, - hint = palette.zenAqua1, + error = palette.red, + ok = palette.green, + warning = palette.yellow, + info = palette.blue2, + hint = palette.green4, }, diff = { - add = palette.winterGreen, - delete = palette.winterRed, - change = palette.winterBlue, - text = palette.winterYellow, + add = palette.diffGreen, + delete = palette.diffRed, + change = palette.diffBlue, + text = palette.diffYellow, }, vcs = { added = palette.autumnGreen, removed = palette.autumnRed, changed = palette.autumnYellow, - untracked = palette.mistGray2, + untracked = palette.gray4, }, term = { - palette.mist0, -- black - palette.mistRed, -- red - palette.mistGreen2, -- green - palette.mistYellow, -- yellow - palette.mistBlue2, -- blue - palette.mistPink, -- magenta - palette.mistWhite, -- cyan - palette.mistGray, -- white - palette.mistGray1, -- bright black - palette.zenRed, -- bright red - palette.mistGreen, -- bright green - palette.carpYellow, -- bright yellow - palette.springBlue, -- bright blue - palette.springViolet1, -- bright magenta - palette.zenAqua2, -- bright cyan - palette.mistWhite, -- bright white - palette.mistOrange, -- extended color 1 - palette.mistOrange2, -- extended color 2 + palette.mistBg0, -- black + palette.red3, -- red + palette.green3, -- green + palette.yellow3, -- yellow + palette.blue3, -- blue + palette.pink, -- magenta + palette.fg, -- cyan + palette.gray2, -- white + palette.gray3, -- bright black + palette.red2, -- bright red + palette.green2, -- bright green + palette.yellow2, -- bright yellow + palette.blue, -- bright blue + palette.violet, -- bright magenta + palette.green5, -- bright cyan + palette.fg, -- bright white + palette.orange, -- extended color 1 + palette.orange2, -- extended color 2 }, } end,