From f0069f6e127d1499345216029cf788ef9ff567c2 Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Fri, 15 Aug 2025 11:07:39 +1000 Subject: [PATCH 01/10] feat(snacks): Add Snacks Support --- doc/github-nvim-theme.txt | 1 + lua/github-theme/config.lua | 3 +- lua/github-theme/group/modules/snacks.lua | 113 ++++++++++++++++++++++ 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 lua/github-theme/group/modules/snacks.lua diff --git a/doc/github-nvim-theme.txt b/doc/github-nvim-theme.txt index 4c0394b..2bd5248 100644 --- a/doc/github-nvim-theme.txt +++ b/doc/github-nvim-theme.txt @@ -520,6 +520,7 @@ Current list of modules are: - neotree - notify - nvimtree +- snacks - telescope - treesitter - treesitter_context diff --git a/lua/github-theme/config.lua b/lua/github-theme/config.lua index a48bebb..c1c27c9 100644 --- a/lua/github-theme/config.lua +++ b/lua/github-theme/config.lua @@ -155,9 +155,9 @@ M.module_names = { 'coc', 'coc_explorer', 'dapui', - 'diffchar', 'dashboard', 'diagnostic', + 'diffchar', 'fidget', 'fzf', 'gitgutter', @@ -171,6 +171,7 @@ M.module_names = { 'neotree', 'notify', 'nvimtree', + 'snacks', 'telescope', 'treesitter', 'treesitter_context', diff --git a/lua/github-theme/group/modules/snacks.lua b/lua/github-theme/group/modules/snacks.lua new file mode 100644 index 0000000..5473fa8 --- /dev/null +++ b/lua/github-theme/group/modules/snacks.lua @@ -0,0 +1,113 @@ +local C = require('github-theme.lib.color') + +local M = {} + +---@param spec GhTheme.Spec +---@param config GhTheme.Config.Options +---@param opts GhTheme.Config.Module +function M.get(spec, config, opts) + local c = spec.palette + + local function blend(color, a) + return C(spec.bg1):blend(C(color), a):to_css() + end + + -- Get indent scope color from config if available, fallback to default + local indent_scope_color = (opts and opts.indent_scope_color) or spec.syntax.builtin2 + + -- stylua: ignore + ---@type table + local hlgroups = { + SnacksNormal = { link = "NormalFloat" }, + SnacksWinBar = { link = "Title" }, + SnacksBackdrop = { link = "FloatShadow" }, + SnacksNormalNC = { link = "NormalFloat" }, + SnacksWinBarNC = { link = "SnacksWinBar" }, + + -- Notifier highlights + SnacksNotifierInfo = { fg = c.blue.base }, + SnacksNotifierIconInfo = { fg = c.blue.base }, + SnacksNotifierTitleInfo = { fg = c.blue.base, style = { "italic" } }, + SnacksNotifierFooterInfo = { link = "DiagnosticInfo" }, + SnacksNotifierBorderInfo = { fg = c.blue.base }, + + SnacksNotifierWarn = { fg = c.yellow.base }, + SnacksNotifierIconWarn = { fg = c.yellow.base }, + SnacksNotifierTitleWarn = { fg = c.yellow.base, style = { "italic" } }, + SnacksNotifierBorderWarn = { fg = c.yellow.base }, + SnacksNotifierFooterWarn = { link = "DiagnosticWarn" }, + + SnacksNotifierDebug = { fg = c.orange }, + SnacksNotifierIconDebug = { fg = c.orange }, + SnacksNotifierTitleDebug = { fg = c.orange, style = { "italic" } }, + SnacksNotifierBorderDebug = { fg = c.orange }, + SnacksNotifierFooterDebug = { link = "DiagnosticHint" }, + + SnacksNotifierError = { fg = c.red.base }, + SnacksNotifierIconError = { fg = c.red.base }, + SnacksNotifierTitleError = { fg = c.red.base, style = { "italic" } }, + SnacksNotifierBorderError = { fg = c.red.base }, + SnacksNotifierFooterError = { link = "DiagnosticError" }, + + SnacksNotifierTrace = { fg = c.magenta.base }, + SnacksNotifierIconTrace = { fg = c.magenta.base }, + SnacksNotifierTitleTrace = { fg = c.magenta.base, style = { "italic" } }, + SnacksNotifierBorderTrace = { fg = c.magenta.base }, + SnacksNotifierFooterTrace = { link = "DiagnosticHint" }, + + -- Dashboard highlights + SnacksDashboardNormal = { link = "Normal" }, + SnacksDashboardDesc = { fg = c.blue.base }, + SnacksDashboardFile = { fg = c.blue.bright }, + SnacksDashboardDir = { link = "NonText" }, + SnacksDashboardFooter = { fg = c.yellow.base, style = { "italic" } }, + SnacksDashboardHeader = { fg = c.blue.base }, + SnacksDashboardIcon = { fg = c.magenta.base, bold = true }, + SnacksDashboardKey = { fg = c.orange }, + SnacksDashboardTerminal = { link = "SnacksDashboardNormal" }, + SnacksDashboardSpecial = { link = "Special" }, + SnacksDashboardTitle = { link = "Title" }, + + -- Indent highlights + SnacksIndent = { fg = spec.bg3 }, + SnacksIndentScope = { fg = indent_scope_color }, + + -- Picker highlights + SnacksPickerSelected = { + fg = spec.fg1, + bg = spec.sel0, + style = { "bold" }, + }, + SnacksPickerMatch = { fg = c.blue.base }, + + SnacksPicker = { link = "NormalFloat" }, + SnacksPickerBorder = { link = "FloatBorder" }, + SnacksPickerInputBorder = { link = "SnacksPickerBorder" }, + SnacksPickerInput = { link = "NormalFloat" }, + SnacksPickerPrompt = { fg = c.accent.fg }, + } + + -- Add solid background titles if transparent is disabled + if config and config.options and not config.options.transparent then + hlgroups['SnacksPickerTitle'] = { + fg = spec.bg0, + bg = c.magenta.base, + } + hlgroups['SnacksPickerPreviewTitle'] = { + fg = spec.bg0, + bg = c.green.base, + } + hlgroups['SnacksPickerInputTitle'] = { + fg = spec.bg0, + bg = c.red.base, + } + hlgroups['SnacksPickerListTitle'] = { + fg = spec.bg0, + bg = c.blue.bright, + } + end + + return hlgroups +end + +return M From 3154a25243bb7871cf6477e38064d081e49a5de6 Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Fri, 15 Aug 2025 11:48:41 +1000 Subject: [PATCH 02/10] feat(snacks): Improve Snacks Definitions --- lua/github-theme/config.lua | 4 + lua/github-theme/group/editor.lua | 2 +- lua/github-theme/group/modules/snacks.lua | 173 +++++++++++----------- 3 files changed, 95 insertions(+), 84 deletions(-) diff --git a/lua/github-theme/config.lua b/lua/github-theme/config.lua index c1c27c9..b4198fd 100644 --- a/lua/github-theme/config.lua +++ b/lua/github-theme/config.lua @@ -113,6 +113,7 @@ local defaults = { ---@field neogit? boolean|GhTheme.Config.Module ---@field neotree? boolean|GhTheme.Config.Module ---@field notify? boolean|GhTheme.Config.Module + ---@field snacks? boolean|GhTheme.Config.Module ---@field nvimtree? boolean|GhTheme.Config.Module ---@field telescope? boolean|GhTheme.Config.Module ---@field treesitter? boolean|GhTheme.Config.Module @@ -147,6 +148,9 @@ local defaults = { treesitter = util.is_nvim, lsp_semantic_tokens = util.is_nvim, + snacks = { + enable = true, + }, }, } diff --git a/lua/github-theme/group/editor.lua b/lua/github-theme/group/editor.lua index 89044f0..f57dedd 100644 --- a/lua/github-theme/group/editor.lua +++ b/lua/github-theme/group/editor.lua @@ -52,7 +52,7 @@ function M.get(spec, config) NormalNC = { fg = spec.fg1, bg = inactive and spec.bg0 or trans and 'NONE' or spec.bg1 }, -- normal text in non-current windows NormalFloat = { fg = spec.fg1, bg = trans and 'NONE' or config.darken.floats and spec.bg0 or spec.bg1 }, -- Normal text in floating windows. - FloatBorder = { fg = c.border.default }, -- TODO + FloatBorder = { fg = spec.fg2, bg = trans and 'NONE' or spec.bg0 }, Pmenu = { fg = spec.fg1, bg = spec.bg0 }, -- Popup menu: normal item. PmenuSel = { bg = spec.sel1 }, -- Popup menu: selected item. PmenuSbar = { link = 'Pmenu' }, -- Popup menu: scrollbar. diff --git a/lua/github-theme/group/modules/snacks.lua b/lua/github-theme/group/modules/snacks.lua index 5473fa8..970c1f1 100644 --- a/lua/github-theme/group/modules/snacks.lua +++ b/lua/github-theme/group/modules/snacks.lua @@ -1,5 +1,3 @@ -local C = require('github-theme.lib.color') - local M = {} ---@param spec GhTheme.Spec @@ -8,102 +6,111 @@ local M = {} function M.get(spec, config, opts) local c = spec.palette - local function blend(color, a) - return C(spec.bg1):blend(C(color), a):to_css() - end + -- Map catppuccin colors to github theme equivalents + local C = { + blue = c.blue.base, + yellow = c.yellow.base, + peach = c.orange, + red = c.red.base, + rosewater = c.magenta.base, + lavender = c.blue.bright, + pink = c.magenta.base, + flamingo = c.accent.fg, + surface0 = spec.bg3, + text = spec.fg1, + none = 'NONE', + crust = spec.bg0, + mauve = c.magenta.base, + green = c.green.base, + } - -- Get indent scope color from config if available, fallback to default - local indent_scope_color = (opts and opts.indent_scope_color) or spec.syntax.builtin2 + -- Handle configuration options + local indent_scope_color = (opts and opts.indent_scope_color) or 'text' + local float_transparent = config and config.options and config.options.transparent + local float_solid = config and config.options and not config.options.transparent - -- stylua: ignore - ---@type table local hlgroups = { - SnacksNormal = { link = "NormalFloat" }, - SnacksWinBar = { link = "Title" }, - SnacksBackdrop = { link = "FloatShadow" }, - SnacksNormalNC = { link = "NormalFloat" }, - SnacksWinBarNC = { link = "SnacksWinBar" }, - - -- Notifier highlights - SnacksNotifierInfo = { fg = c.blue.base }, - SnacksNotifierIconInfo = { fg = c.blue.base }, - SnacksNotifierTitleInfo = { fg = c.blue.base, style = { "italic" } }, - SnacksNotifierFooterInfo = { link = "DiagnosticInfo" }, - SnacksNotifierBorderInfo = { fg = c.blue.base }, - - SnacksNotifierWarn = { fg = c.yellow.base }, - SnacksNotifierIconWarn = { fg = c.yellow.base }, - SnacksNotifierTitleWarn = { fg = c.yellow.base, style = { "italic" } }, - SnacksNotifierBorderWarn = { fg = c.yellow.base }, - SnacksNotifierFooterWarn = { link = "DiagnosticWarn" }, - - SnacksNotifierDebug = { fg = c.orange }, - SnacksNotifierIconDebug = { fg = c.orange }, - SnacksNotifierTitleDebug = { fg = c.orange, style = { "italic" } }, - SnacksNotifierBorderDebug = { fg = c.orange }, - SnacksNotifierFooterDebug = { link = "DiagnosticHint" }, - - SnacksNotifierError = { fg = c.red.base }, - SnacksNotifierIconError = { fg = c.red.base }, - SnacksNotifierTitleError = { fg = c.red.base, style = { "italic" } }, - SnacksNotifierBorderError = { fg = c.red.base }, - SnacksNotifierFooterError = { link = "DiagnosticError" }, - - SnacksNotifierTrace = { fg = c.magenta.base }, - SnacksNotifierIconTrace = { fg = c.magenta.base }, - SnacksNotifierTitleTrace = { fg = c.magenta.base, style = { "italic" } }, - SnacksNotifierBorderTrace = { fg = c.magenta.base }, - SnacksNotifierFooterTrace = { link = "DiagnosticHint" }, - - -- Dashboard highlights - SnacksDashboardNormal = { link = "Normal" }, - SnacksDashboardDesc = { fg = c.blue.base }, - SnacksDashboardFile = { fg = c.blue.bright }, - SnacksDashboardDir = { link = "NonText" }, - SnacksDashboardFooter = { fg = c.yellow.base, style = { "italic" } }, - SnacksDashboardHeader = { fg = c.blue.base }, - SnacksDashboardIcon = { fg = c.magenta.base, bold = true }, - SnacksDashboardKey = { fg = c.orange }, - SnacksDashboardTerminal = { link = "SnacksDashboardNormal" }, - SnacksDashboardSpecial = { link = "Special" }, - SnacksDashboardTitle = { link = "Title" }, - - -- Indent highlights - SnacksIndent = { fg = spec.bg3 }, - SnacksIndentScope = { fg = indent_scope_color }, - - -- Picker highlights + SnacksNormal = { link = 'NormalFloat' }, + SnacksWinBar = { link = 'Title' }, + SnacksBackdrop = { link = 'FloatShadow' }, + SnacksNormalNC = { link = 'NormalFloat' }, + SnacksWinBarNC = { link = 'SnacksWinBar' }, + + SnacksNotifierInfo = { fg = C.blue }, + SnacksNotifierIconInfo = { fg = C.blue }, + SnacksNotifierTitleInfo = { fg = C.blue, style = 'italic' }, + SnacksNotifierFooterInfo = { link = 'DiagnosticInfo' }, + SnacksNotifierBorderInfo = { fg = C.blue }, + + SnacksNotifierWarn = { fg = C.yellow }, + SnacksNotifierIconWarn = { fg = C.yellow }, + SnacksNotifierTitleWarn = { fg = C.yellow, style = 'italic' }, + SnacksNotifierBorderWarn = { fg = C.yellow }, + SnacksNotifierFooterWarn = { link = 'DiagnosticWarn' }, + + SnacksNotifierDebug = { fg = C.peach }, + SnacksNotifierIconDebug = { fg = C.peach }, + SnacksNotifierTitleDebug = { fg = C.peach, style = 'italic' }, + SnacksNotifierBorderDebug = { fg = C.peach }, + SnacksNotifierFooterDebug = { link = 'DiagnosticHint' }, + + SnacksNotifierError = { fg = C.red }, + SnacksNotifierIconError = { fg = C.red }, + SnacksNotifierTitleError = { fg = C.red, style = 'italic' }, + SnacksNotifierBorderError = { fg = C.red }, + SnacksNotifierFooterError = { link = 'DiagnosticError' }, + + SnacksNotifierTrace = { fg = C.rosewater }, + SnacksNotifierIconTrace = { fg = C.rosewater }, + SnacksNotifierTitleTrace = { fg = C.rosewater, style = 'italic' }, + SnacksNotifierBorderTrace = { fg = C.rosewater }, + SnacksNotifierFooterTrace = { link = 'DiagnosticHint' }, + + SnacksDashboardNormal = { link = 'Normal' }, + SnacksDashboardDesc = { fg = C.blue }, + SnacksDashboardFile = { fg = C.lavender }, + SnacksDashboardDir = { link = 'NonText' }, + SnacksDashboardFooter = { fg = C.yellow, style = 'italic' }, + SnacksDashboardHeader = { fg = C.blue }, + SnacksDashboardIcon = { fg = C.pink, style = 'bold' }, + SnacksDashboardKey = { fg = C.peach }, + SnacksDashboardTerminal = { link = 'SnacksDashboardNormal' }, + SnacksDashboardSpecial = { link = 'Special' }, + SnacksDashboardTitle = { link = 'Title' }, + + SnacksIndent = { fg = C.surface0 }, + SnacksIndentScope = { fg = C[indent_scope_color] or C.text }, + SnacksPickerSelected = { - fg = spec.fg1, - bg = spec.sel0, - style = { "bold" }, + fg = float_transparent and C.flamingo or C.text, + bg = float_transparent and C.none or C.surface0, + style = 'bold', }, - SnacksPickerMatch = { fg = c.blue.base }, + SnacksPickerMatch = { fg = C.blue }, - SnacksPicker = { link = "NormalFloat" }, - SnacksPickerBorder = { link = "FloatBorder" }, - SnacksPickerInputBorder = { link = "SnacksPickerBorder" }, - SnacksPickerInput = { link = "NormalFloat" }, - SnacksPickerPrompt = { fg = c.accent.fg }, + SnacksPicker = { link = 'NormalFloat' }, + SnacksPickerBorder = { link = 'FloatBorder' }, + SnacksPickerInputBorder = { link = 'SnacksPickerBorder' }, + SnacksPickerInput = { link = 'NormalFloat' }, + SnacksPickerPrompt = { fg = C.flamingo }, } - -- Add solid background titles if transparent is disabled - if config and config.options and not config.options.transparent then + if float_solid then hlgroups['SnacksPickerTitle'] = { - fg = spec.bg0, - bg = c.magenta.base, + fg = C.crust, + bg = C.mauve, } hlgroups['SnacksPickerPreviewTitle'] = { - fg = spec.bg0, - bg = c.green.base, + fg = C.crust, + bg = C.green, } hlgroups['SnacksPickerInputTitle'] = { - fg = spec.bg0, - bg = c.red.base, + fg = C.crust, + bg = C.red, } hlgroups['SnacksPickerListTitle'] = { - fg = spec.bg0, - bg = c.blue.bright, + fg = C.crust, + bg = C.lavender, } end From f47762bb3ad77eb88f1b318c08a1051f47b113c0 Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Fri, 15 Aug 2025 11:48:56 +1000 Subject: [PATCH 03/10] feat(lualine): Respect Transparency for C Section --- lua/github-theme/util/lualine.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lua/github-theme/util/lualine.lua b/lua/github-theme/util/lualine.lua index 23c4853..55eabc6 100644 --- a/lua/github-theme/util/lualine.lua +++ b/lua/github-theme/util/lualine.lua @@ -16,7 +16,10 @@ return function(style) return { a = { bg = color, fg = s.bg1 }, b = { bg = blend(color, 0.2), fg = blend(color, 0.8) }, - c = { bg = blend(color, 0.01), fg = blend(color, 0.60) }, + c = { + bg = config.transparent and 'NONE' or blend(color, 0.01), + fg = blend(color, 0.8), + }, } end From b886b1ac687e9aa0fabf5fa6fe9dcb2bd7dad58e Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Fri, 15 Aug 2025 11:52:45 +1000 Subject: [PATCH 04/10] feat(lualine): Adjust Color Blend on B Sections --- lua/github-theme/util/lualine.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/github-theme/util/lualine.lua b/lua/github-theme/util/lualine.lua index 55eabc6..678bedc 100644 --- a/lua/github-theme/util/lualine.lua +++ b/lua/github-theme/util/lualine.lua @@ -15,7 +15,7 @@ return function(style) local tint = function(color) return { a = { bg = color, fg = s.bg1 }, - b = { bg = blend(color, 0.2), fg = blend(color, 0.8) }, + b = { bg = blend(color, 0.1), fg = blend(color, 0.9) }, c = { bg = config.transparent and 'NONE' or blend(color, 0.01), fg = blend(color, 0.8), From e676e35b0a29a84af807ab4646435816580e0b9e Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Fri, 15 Aug 2025 11:58:47 +1000 Subject: [PATCH 05/10] feat(snacks): Add Snacks Link --- lua/github-theme/group/modules/snacks.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lua/github-theme/group/modules/snacks.lua b/lua/github-theme/group/modules/snacks.lua index 970c1f1..cdfa5b4 100644 --- a/lua/github-theme/group/modules/snacks.lua +++ b/lua/github-theme/group/modules/snacks.lua @@ -1,3 +1,5 @@ +-- https://github.com/folke/snacks.nvim/ + local M = {} ---@param spec GhTheme.Spec From f7cbb14bca049376974b0fae1bea762f1785cdf4 Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Fri, 15 Aug 2025 13:02:35 +1000 Subject: [PATCH 06/10] feat(snacks): Snacks Color Changes --- lua/github-theme/group/modules/snacks.lua | 102 ++++++++++------------ 1 file changed, 44 insertions(+), 58 deletions(-) diff --git a/lua/github-theme/group/modules/snacks.lua b/lua/github-theme/group/modules/snacks.lua index cdfa5b4..77c69e5 100644 --- a/lua/github-theme/group/modules/snacks.lua +++ b/lua/github-theme/group/modules/snacks.lua @@ -8,24 +8,6 @@ local M = {} function M.get(spec, config, opts) local c = spec.palette - -- Map catppuccin colors to github theme equivalents - local C = { - blue = c.blue.base, - yellow = c.yellow.base, - peach = c.orange, - red = c.red.base, - rosewater = c.magenta.base, - lavender = c.blue.bright, - pink = c.magenta.base, - flamingo = c.accent.fg, - surface0 = spec.bg3, - text = spec.fg1, - none = 'NONE', - crust = spec.bg0, - mauve = c.magenta.base, - green = c.green.base, - } - -- Handle configuration options local indent_scope_color = (opts and opts.indent_scope_color) or 'text' local float_transparent = config and config.options and config.options.transparent @@ -38,81 +20,85 @@ function M.get(spec, config, opts) SnacksNormalNC = { link = 'NormalFloat' }, SnacksWinBarNC = { link = 'SnacksWinBar' }, - SnacksNotifierInfo = { fg = C.blue }, - SnacksNotifierIconInfo = { fg = C.blue }, - SnacksNotifierTitleInfo = { fg = C.blue, style = 'italic' }, + SnacksNotifierInfo = { fg = c.blue.base }, + SnacksNotifierIconInfo = { fg = c.blue.base }, + SnacksNotifierTitleInfo = { fg = c.blue.base, style = 'italic' }, SnacksNotifierFooterInfo = { link = 'DiagnosticInfo' }, - SnacksNotifierBorderInfo = { fg = C.blue }, + SnacksNotifierBorderInfo = { fg = c.blue.base }, - SnacksNotifierWarn = { fg = C.yellow }, - SnacksNotifierIconWarn = { fg = C.yellow }, - SnacksNotifierTitleWarn = { fg = C.yellow, style = 'italic' }, - SnacksNotifierBorderWarn = { fg = C.yellow }, + SnacksNotifierWarn = { fg = c.yellow.base }, + SnacksNotifierIconWarn = { fg = c.yellow.base }, + SnacksNotifierTitleWarn = { fg = c.yellow.base, style = 'italic' }, + SnacksNotifierBorderWarn = { fg = c.yellow.base }, SnacksNotifierFooterWarn = { link = 'DiagnosticWarn' }, - SnacksNotifierDebug = { fg = C.peach }, - SnacksNotifierIconDebug = { fg = C.peach }, - SnacksNotifierTitleDebug = { fg = C.peach, style = 'italic' }, - SnacksNotifierBorderDebug = { fg = C.peach }, + SnacksNotifierDebug = { fg = c.orange }, + SnacksNotifierIconDebug = { fg = c.orange }, + SnacksNotifierTitleDebug = { fg = c.orange, style = 'italic' }, + SnacksNotifierBorderDebug = { fg = c.orange }, SnacksNotifierFooterDebug = { link = 'DiagnosticHint' }, - SnacksNotifierError = { fg = C.red }, - SnacksNotifierIconError = { fg = C.red }, - SnacksNotifierTitleError = { fg = C.red, style = 'italic' }, - SnacksNotifierBorderError = { fg = C.red }, + SnacksNotifierError = { fg = c.red.base }, + SnacksNotifierIconError = { fg = c.red.base }, + SnacksNotifierTitleError = { fg = c.red.base, style = 'italic' }, + SnacksNotifierBorderError = { fg = c.red.base }, SnacksNotifierFooterError = { link = 'DiagnosticError' }, - SnacksNotifierTrace = { fg = C.rosewater }, - SnacksNotifierIconTrace = { fg = C.rosewater }, - SnacksNotifierTitleTrace = { fg = C.rosewater, style = 'italic' }, - SnacksNotifierBorderTrace = { fg = C.rosewater }, + SnacksNotifierTrace = { fg = c.magenta.base }, + SnacksNotifierIconTrace = { fg = c.magenta.base }, + SnacksNotifierTitleTrace = { fg = c.magenta.base, style = 'italic' }, + SnacksNotifierBorderTrace = { fg = c.magenta.base }, SnacksNotifierFooterTrace = { link = 'DiagnosticHint' }, SnacksDashboardNormal = { link = 'Normal' }, - SnacksDashboardDesc = { fg = C.blue }, - SnacksDashboardFile = { fg = C.lavender }, + SnacksDashboardDesc = { fg = c.blue.base }, + SnacksDashboardFile = { fg = c.blue.bright }, SnacksDashboardDir = { link = 'NonText' }, - SnacksDashboardFooter = { fg = C.yellow, style = 'italic' }, - SnacksDashboardHeader = { fg = C.blue }, - SnacksDashboardIcon = { fg = C.pink, style = 'bold' }, - SnacksDashboardKey = { fg = C.peach }, + SnacksDashboardFooter = { fg = c.yellow.base, style = 'italic' }, + SnacksDashboardHeader = { fg = c.blue.base }, + SnacksDashboardIcon = { fg = c.magenta.base, style = 'bold' }, + SnacksDashboardKey = { fg = c.orange }, SnacksDashboardTerminal = { link = 'SnacksDashboardNormal' }, SnacksDashboardSpecial = { link = 'Special' }, SnacksDashboardTitle = { link = 'Title' }, - SnacksIndent = { fg = C.surface0 }, - SnacksIndentScope = { fg = C[indent_scope_color] or C.text }, + SnacksIndent = { fg = spec.bg3 }, + SnacksIndentScope = { + fg = indent_scope_color == 'text' and spec.fg1 + or c[indent_scope_color] and c[indent_scope_color].base + or spec.fg1, + }, SnacksPickerSelected = { - fg = float_transparent and C.flamingo or C.text, - bg = float_transparent and C.none or C.surface0, + fg = float_transparent and c.accent.fg or spec.fg1, + bg = float_transparent and 'NONE' or spec.bg3, style = 'bold', }, - SnacksPickerMatch = { fg = C.blue }, + SnacksPickerMatch = { fg = c.orange }, SnacksPicker = { link = 'NormalFloat' }, SnacksPickerBorder = { link = 'FloatBorder' }, SnacksPickerInputBorder = { link = 'SnacksPickerBorder' }, SnacksPickerInput = { link = 'NormalFloat' }, - SnacksPickerPrompt = { fg = C.flamingo }, + SnacksPickerPrompt = { fg = c.accent.fg }, } if float_solid then hlgroups['SnacksPickerTitle'] = { - fg = C.crust, - bg = C.mauve, + fg = spec.bg0, + bg = c.magenta.base, } hlgroups['SnacksPickerPreviewTitle'] = { - fg = C.crust, - bg = C.green, + fg = spec.bg0, + bg = c.green.base, } hlgroups['SnacksPickerInputTitle'] = { - fg = C.crust, - bg = C.red, + fg = spec.bg0, + bg = c.red.base, } hlgroups['SnacksPickerListTitle'] = { - fg = C.crust, - bg = C.lavender, + fg = spec.bg0, + bg = c.blue.bright, } end From 571fb3fd2a2ed48581a9e5410517d0826ef5ff33 Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Sat, 16 Aug 2025 08:55:24 +1000 Subject: [PATCH 07/10] style(snacks): Style Snacks Dashboard --- lua/github-theme/group/modules/snacks.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lua/github-theme/group/modules/snacks.lua b/lua/github-theme/group/modules/snacks.lua index 77c69e5..a138013 100644 --- a/lua/github-theme/group/modules/snacks.lua +++ b/lua/github-theme/group/modules/snacks.lua @@ -51,15 +51,15 @@ function M.get(spec, config, opts) SnacksNotifierFooterTrace = { link = 'DiagnosticHint' }, SnacksDashboardNormal = { link = 'Normal' }, - SnacksDashboardDesc = { fg = c.blue.base }, + SnacksDashboardDesc = { fg = c.fg.default }, SnacksDashboardFile = { fg = c.blue.bright }, SnacksDashboardDir = { link = 'NonText' }, SnacksDashboardFooter = { fg = c.yellow.base, style = 'italic' }, - SnacksDashboardHeader = { fg = c.blue.base }, - SnacksDashboardIcon = { fg = c.magenta.base, style = 'bold' }, - SnacksDashboardKey = { fg = c.orange }, + SnacksDashboardHeader = { fg = c.magenta.bright }, + SnacksDashboardIcon = { fg = c.orange, style = 'bold' }, + SnacksDashboardKey = { fg = c.yellow.bright }, SnacksDashboardTerminal = { link = 'SnacksDashboardNormal' }, - SnacksDashboardSpecial = { link = 'Special' }, + SnacksDashboardSpecial = { fg = c.fg.muted }, SnacksDashboardTitle = { link = 'Title' }, SnacksIndent = { fg = spec.bg3 }, @@ -74,7 +74,7 @@ function M.get(spec, config, opts) bg = float_transparent and 'NONE' or spec.bg3, style = 'bold', }, - SnacksPickerMatch = { fg = c.orange }, + SnacksPickerMatch = { fg = c.yellow.bright }, SnacksPicker = { link = 'NormalFloat' }, SnacksPickerBorder = { link = 'FloatBorder' }, From 5d61f33d7396f97d9f5c26cb7d480b2e977eefb0 Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Sat, 16 Aug 2025 12:21:36 +1000 Subject: [PATCH 08/10] style(snacks): Change Special Color --- lua/github-theme/group/modules/snacks.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/github-theme/group/modules/snacks.lua b/lua/github-theme/group/modules/snacks.lua index a138013..38ca599 100644 --- a/lua/github-theme/group/modules/snacks.lua +++ b/lua/github-theme/group/modules/snacks.lua @@ -59,7 +59,7 @@ function M.get(spec, config, opts) SnacksDashboardIcon = { fg = c.orange, style = 'bold' }, SnacksDashboardKey = { fg = c.yellow.bright }, SnacksDashboardTerminal = { link = 'SnacksDashboardNormal' }, - SnacksDashboardSpecial = { fg = c.fg.muted }, + SnacksDashboardSpecial = { fg = c.fg.default }, SnacksDashboardTitle = { link = 'Title' }, SnacksIndent = { fg = spec.bg3 }, From 564a065bb7e2f5fd29d63771dd958286e799226d Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Wed, 20 Aug 2025 09:56:02 +1000 Subject: [PATCH 09/10] style(diagnostics): Style Hint Diagnostic --- lua/github-theme/palette/github_dark.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/github-theme/palette/github_dark.lua b/lua/github-theme/palette/github_dark.lua index 7c5d883..412072a 100755 --- a/lua/github-theme/palette/github_dark.lua +++ b/lua/github-theme/palette/github_dark.lua @@ -171,7 +171,7 @@ local function generate_spec(pal) error = pal.danger.fg, warn = pal.attention.fg, info = pal.accent.fg, - hint = pal.fg.muted, + hint = pal.attention.fg, } spec.diag_bg = { From a544a829dd9f4fc686dc5f3d0fc74629f86fc0c4 Mon Sep 17 00:00:00 2001 From: itsonlyjames Date: Wed, 20 Aug 2025 12:24:34 +1000 Subject: [PATCH 10/10] style(diagnostics): Better Represent Warning and Hint --- lua/github-theme/palette/github_dark.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/github-theme/palette/github_dark.lua b/lua/github-theme/palette/github_dark.lua index 412072a..dd0f3c0 100755 --- a/lua/github-theme/palette/github_dark.lua +++ b/lua/github-theme/palette/github_dark.lua @@ -169,7 +169,7 @@ local function generate_spec(pal) spec.diag = { error = pal.danger.fg, - warn = pal.attention.fg, + warn = pal.severe.fg, info = pal.accent.fg, hint = pal.attention.fg, }