sauce-nvim-config/lua/themenacesauce/plugins/colorscheme.lua
2026-02-05 10:51:25 -05:00

258 lines
12 KiB
Lua

return {
-- NOTE: Rose pine
{
"rose-pine/neovim",
name = "rose-pine",
-- priority = 1000,
config = function()
require("rose-pine").setup({
variant = "main", -- auto, main, moon, or dawn
dark_variant = "main", -- main, moon, or dawn
dim_inactive_windows = false,
-- disable_background = true,
-- disable_nc_background = false,
-- disable_float_background = false,
-- extend_background_behind_borders = false,
styles = {
bold = true,
italic = false,
transparency = true,
},
highlight_groups = {
ColorColumn = { bg = "#1C1C21" },
Normal = { bg = "none" }, -- Main background remains transparent
Pmenu = { bg = "", fg = "#e0def4" }, -- Completion menu background
PmenuSel = { bg = "#4a465d", fg = "#f8f5f2" }, -- Highlighted completion item
PmenuSbar = { bg = "#191724" }, -- Scrollbar background
PmenuThumb = { bg = "#9ccfd8" }, -- Scrollbar thumb
},
enable = {
terminal = false,
legacy_highlights = false, -- Improve compatibility for previous versions of Neovim
migrations = true, -- Handle deprecated options automatically
},
})
-- HACK: set this on the color you want to be persistent
-- when quit and reopening nvim
-- vim.cmd("colorscheme rose-pine")
end,
},
-- NOTE: gruvbox
{
"ellisonleao/gruvbox.nvim",
-- priority = 1000 ,
config = function()
require("gruvbox").setup({
terminal_colors = true, -- add neovim terminal colors
undercurl = true,
underline = true,
bold = true,
italic = {
strings = false,
emphasis = false,
comments = false,
folds = false,
operators = false,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "", -- can be "hard", "soft" or empty string
palette_overrides = {},
overrides = {
Pmenu = { bg = "" }, -- Completion menu background
},
dim_inactive = false,
transparent_mode = true,
})
end,
},
-- NOTE: Kanagwa
{
"rebelot/kanagawa.nvim",
config = function()
require('kanagawa').setup({
compile = false, -- enable compiling the colorscheme
undercurl = true, -- enable undercurls
commentStyle = { italic = true },
functionStyle = {},
keywordStyle = { italic = false },
statementStyle = { bold = true },
typeStyle = {},
transparent = true, -- do not set background color
dimInactive = false, -- dim inactive window `:h hl-NormalNC`
terminalColors = true, -- define vim.g.terminal_color_{0,17}
colors = { -- add/modify theme and palette colors
palette = {},
theme = {
wave = {},
dragon = {},
all = {
ui = {
bg_gutter = "none",
border = "rounded"
}
}
},
},
overrides = function(colors) -- add/modify highlights
local theme = colors.theme
return {
NormalFloat = { bg = "none" },
FloatBorder = { bg = "none" },
FloatTitle = { bg = "none" },
Pmenu = { fg = theme.ui.shade0, bg = "NONE", blend = vim.o.pumblend }, -- add `blend = vim.o.pumblend` to enable transparency
PmenuSel = { fg = "NONE", bg = theme.ui.bg_p2 },
PmenuSbar = { bg = theme.ui.bg_m1 },
PmenuThumb = { bg = theme.ui.bg_p2 },
-- Save an hlgroup with dark background and dimmed foreground
-- so that you can use it where your still want darker windows.
-- E.g.: autocmd TermOpen * setlocal winhighlight=Normal:NormalDark
NormalDark = { fg = theme.ui.fg_dim, bg = theme.ui.bg_m3 },
-- Popular plugins that open floats will link to NormalFloat by default;
-- set their background accordingly if you wish to keep them dark and borderless
LazyNormal = { bg = theme.ui.bg_m3, fg = theme.ui.fg_dim },
MasonNormal = { bg = theme.ui.bg_m3, fg = theme.ui.fg_dim },
TelescopeTitle = { fg = theme.ui.special, bold = true },
TelescopePromptBorder = { fg = theme.ui.special, },
TelescopeResultsNormal = { fg = theme.ui.fg_dim, },
TelescopeResultsBorder = { fg = theme.ui.special, },
TelescopePreviewBorder = { fg = theme.ui.special },
}
end,
theme = "wave", -- Load "wave" theme when 'background' option is not set
background = { -- map the value of 'background' option to a theme
dark = "wave", -- try "dragon" !
},
})
end
},
-- NOTE: neosolarized
{
"craftzdog/solarized-osaka.nvim",
lazy = false,
config = function()
require("solarized-osaka").setup({
transparent = true,
terminal_colors = true, -- Configure the colors used when opening a `:terminal` in [Neovim](https://github.com/neovim/neovim)
styles = {
-- Style to be applied to different syntax groups
-- Value is any valid attr-list value for `:help nvim_set_hl`
comments = { italic = true },
keywords = { italic = false },
functions = {},
variables = {},
-- Background styles. Can be "dark", "transparent" or "normal"
sidebars = "dark", -- style for sidebars, see below
floats = "dark", -- style for floating windows
},
sidebars = { "qf", "help" }, -- Set a darker background on sidebar-like windows. For example: `["qf", "vista_kind", "terminal", "packer"]`
day_brightness = 0.3, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors
hide_inactive_statusline = false, -- Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard **StatusLine** and **LuaLine**.
dim_inactive = false, -- dims inactive windows
lualine_bold = false, -- When `true`, section headers in the lualine theme will be bold
on_highlights = function(hl, c)
local prompt = "#2d3149"
hl.TelescopeNormal = {
bg = c.bg_dark,
fg = c.fg_dark,
}
hl.TelescopeBorder = {
bg = c.bg_dark,
fg = c.bg_dark,
}
hl.TelescopePromptNormal = {
bg = c.bg_dark,
}
hl.TelescopePromptBorder = {
bg = c.bg_dark,
fg = c.bg_dark,
}
hl.TelescopePromptTitle = {
bg = prompt,
fg = "#2C94DD",
}
hl.TelescopePreviewTitle = {
bg = c.bg_dark,
fg = c.bg_dark,
}
hl.TelescopeResultsTitle = {
bg = c.bg_dark,
fg = c.bg_dark,
}
end,
})
end
},
-- NOTE : tokyonight
{
"folke/tokyonight.nvim",
name = "folkeTokyonight",
-- priority = 1000,
config = function()
local transparent = true
local bg = "#011628"
local bg_dark = "#011423"
local bg_highlight = "#143652"
local bg_search = "#0A64AC"
local bg_visual = "#275378"
local fg = "#CBE0F0"
local fg_dark = "#B4D0E9"
local fg_gutter = "#627E97"
local border = "#547998"
require("tokyonight").setup({
style = "night",
transparent = transparent,
styles = {
comments = { italic = false },
keywords = { italic = false },
sidebars = transparent and "transparent" or "dark",
floats = transparent and "transparent" or "dark",
},
on_colors = function(colors)
colors.bg = transparent and colors.none or bg
colors.bg_dark = transparent and colors.none or bg_dark
colors.bg_float = transparent and colors.none or bg_dark
colors.bg_highlight = bg_highlight
colors.bg_popup = bg_dark
colors.bg_search = bg_search
colors.bg_sidebar = transparent and colors.none or bg_dark
colors.bg_statusline = transparent and colors.none or bg_dark
colors.bg_visual = bg_visual
colors.border = border
colors.fg = fg
colors.fg_dark = fg_dark
colors.fg_float = fg
colors.fg_gutter = fg_gutter
colors.fg_sidebar = fg_dark
end,
})
-- vim.cmd("colorscheme tokyonight")
-- NOTE: Auto switch to tokyonight for markdown files only
-- vim.api.nvim_create_autocmd("FileType", {
-- pattern = { "markdown" },
-- callback = function()
-- -- Ensure the theme switch only happens once for a buffer
-- local buffer = vim.api.nvim_get_current_buf()
-- if not vim.b[buffer].tokyonight_applied then
-- if vim.fn.expand("%:t") ~= "" and vim.api.nvim_buf_get_option(0, "buftype") ~= "nofile" then
-- vim.cmd("colorscheme tokyonight")
-- end
-- vim.b[buffer].tokyonight_applied = true
-- end
-- end,
-- })
end,
},
}