Adding custom color schemes.
This commit is contained in:
151
colors/sistine.lua
Normal file
151
colors/sistine.lua
Normal file
@@ -0,0 +1,151 @@
|
||||
-- Sistine Theme for Neovim (Extended)
|
||||
-- Inspired by the Sistine Chapel
|
||||
|
||||
local variant = vim.o.background -- "dark" or "light"
|
||||
local colors = {}
|
||||
|
||||
if variant == "dark" then
|
||||
colors = {
|
||||
bg = "#1f2428",
|
||||
fg = "#dfd8c0",
|
||||
comment = "#8a9286",
|
||||
blue = "#6d8ec7",
|
||||
green = "#a5c39f",
|
||||
yellow = "#dfc17d",
|
||||
red = "#dba59a",
|
||||
magenta = "#dba59a", -- repurpose if needed
|
||||
cursorline= "#2a2e33",
|
||||
highlight = "#343a40", -- darker than bg2 for visual selects
|
||||
}
|
||||
else
|
||||
colors = {
|
||||
bg = "#f4f1ec", -- Fresco White
|
||||
fg = "#80614d", -- Divine Umber
|
||||
red = "#d18a74", -- Cherub Blush
|
||||
green = "#7c8957", -- Olive Laurel
|
||||
yellow = "#c9a04f", -- Renaissance Gold
|
||||
blue = "#a8c3d1", -- Sky Blue
|
||||
magenta = "#e5b1aa", -- Angel Pink
|
||||
cyan = "#c1b6aa", -- Marble Grey
|
||||
comment = "#a1978e", -- Softened Marble
|
||||
highlight = "#c9a04f", -- Renaissance Gold
|
||||
cursorline = "#e8e2db",
|
||||
}
|
||||
end
|
||||
|
||||
vim.cmd("hi clear")
|
||||
vim.o.termguicolors = true
|
||||
vim.g.colors_name = "sistine"
|
||||
|
||||
local set = vim.api.nvim_set_hl
|
||||
local function hi(group, opts) set(0, group, opts) end
|
||||
|
||||
-- Core UI
|
||||
hi("Normal", { fg = colors.fg, bg = colors.bg })
|
||||
hi("Comment", { fg = colors.comment, italic = true })
|
||||
hi("CursorLine", { bg = colors.cursorline })
|
||||
hi("Visual", { bg = colors.highlight })
|
||||
hi("LineNr", { fg = colors.comment })
|
||||
hi("CursorLineNr", { fg = colors.yellow, bold = true })
|
||||
hi("StatusLine", { fg = colors.fg, bg = colors.cursorline })
|
||||
hi("VertSplit", { fg = colors.comment })
|
||||
hi("Title", { fg = colors.magenta, bold = true })
|
||||
hi("Search", { bg = colors.yellow, fg = colors.bg })
|
||||
hi("IncSearch", { bg = colors.red, fg = colors.bg })
|
||||
|
||||
-- Diagnostics (LSP)
|
||||
hi("DiagnosticError", { fg = colors.red })
|
||||
hi("DiagnosticWarn", { fg = colors.yellow })
|
||||
hi("DiagnosticInfo", { fg = colors.blue })
|
||||
hi("DiagnosticHint", { fg = colors.green })
|
||||
|
||||
hi("DiagnosticUnderlineError", { undercurl = true, sp = colors.red })
|
||||
hi("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.yellow })
|
||||
hi("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.blue })
|
||||
hi("DiagnosticUnderlineHint", { undercurl = true, sp = colors.green })
|
||||
|
||||
-- LSP Semantic Tokens
|
||||
hi("@lsp.type.class", { fg = colors.yellow })
|
||||
hi("@lsp.type.function", { fg = colors.blue })
|
||||
hi("@lsp.type.variable", { fg = colors.fg })
|
||||
hi("@lsp.type.parameter", { fg = colors.cyan })
|
||||
hi("@lsp.type.property", { fg = colors.green })
|
||||
hi("@lsp.type.enum", { fg = colors.magenta })
|
||||
|
||||
-- Treesitter
|
||||
hi("@comment", { fg = colors.comment, italic = true })
|
||||
hi("@function", { fg = colors.blue })
|
||||
hi("@keyword", { fg = colors.red, italic = true })
|
||||
hi("@string", { fg = colors.green })
|
||||
hi("@variable", { fg = colors.fg })
|
||||
hi("@type", { fg = colors.yellow })
|
||||
hi("@property", { fg = colors.green })
|
||||
hi("@number", { fg = colors.magenta })
|
||||
|
||||
-- Telescope
|
||||
hi("TelescopeBorder", { fg = colors.comment })
|
||||
hi("TelescopePromptTitle",{ fg = colors.yellow, bold = true })
|
||||
hi("TelescopeSelection", { bg = colors.cursorline })
|
||||
hi("TelescopeMatching", { fg = colors.blue })
|
||||
|
||||
-- DAP (Debug)
|
||||
hi("DebugBreakpoint", { fg = colors.red })
|
||||
hi("DebugBreakpointLine", { bg = colors.cursorline })
|
||||
hi("DebugPC", { bg = colors.highlight })
|
||||
hi("DebugCurrentLine", { underline = true, sp = colors.yellow })
|
||||
|
||||
-- Pmenu (Completion)
|
||||
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
|
||||
hi("PmenuSel", { fg = colors.bg, bg = colors.highlight })
|
||||
hi("PmenuThumb", { bg = colors.highlight })
|
||||
|
||||
-- Notify / Noice / Snacks
|
||||
hi("NotifyINFOBorder", { fg = colors.blue })
|
||||
hi("NotifyWARNBorder", { fg = colors.yellow })
|
||||
hi("NotifyERRORBorder", { fg = colors.red })
|
||||
hi("NotifyDEBUGBorder", { fg = colors.cyan })
|
||||
hi("NotifyTRACEBorder", { fg = colors.magenta })
|
||||
|
||||
hi("NoicePopup", { bg = colors.cursorline })
|
||||
hi("NoicePopupmenu", { bg = colors.cursorline, fg = colors.fg })
|
||||
|
||||
-- Git Diff
|
||||
hi("DiffAdd", { fg = colors.green })
|
||||
hi("DiffChange", { fg = colors.blue })
|
||||
hi("DiffDelete", { fg = colors.red })
|
||||
|
||||
-- Terminal Colors
|
||||
vim.g.terminal_color_0 = colors.bg
|
||||
vim.g.terminal_color_1 = colors.red
|
||||
vim.g.terminal_color_2 = colors.green
|
||||
vim.g.terminal_color_3 = colors.yellow
|
||||
vim.g.terminal_color_4 = colors.blue
|
||||
vim.g.terminal_color_5 = colors.magenta
|
||||
vim.g.terminal_color_6 = colors.cyan
|
||||
vim.g.terminal_color_7 = colors.fg
|
||||
vim.g.terminal_color_8 = colors.comment
|
||||
vim.g.terminal_color_9 = colors.red
|
||||
vim.g.terminal_color_10 = colors.green
|
||||
vim.g.terminal_color_11 = colors.yellow
|
||||
vim.g.terminal_color_12 = colors.blue
|
||||
vim.g.terminal_color_13 = colors.magenta
|
||||
vim.g.terminal_color_14 = colors.cyan
|
||||
vim.g.terminal_color_15 = colors.fg
|
||||
|
||||
-- Bottom of sistine.lua (after terminal colors)
|
||||
-- Apply Snacks highlights unconditionally
|
||||
hi("SnacksNormal", { fg = colors.fg, bg = colors.bg })
|
||||
hi("SnacksNormalNC", { fg = colors.comment, bg = colors.bg })
|
||||
hi("SnacksWinBar", { fg = colors.magenta, bg = colors.bg, bold = true })
|
||||
hi("SnacksWinBarNC", { fg = colors.comment, bg = colors.bg })
|
||||
hi("SnacksCursorLine", { bg = colors.highlight })
|
||||
hi("SnacksCursor", { bg = colors.highlight })
|
||||
hi("SnacksPickerFile", { fg = colors.green, bold = true })
|
||||
hi("SnacksPickerDir", { fg = colors.comment })
|
||||
hi("SnacksPickerPathHidden", { fg = colors.comment, italic = true })
|
||||
hi("SnacksPickerPathIgnored",{ fg = colors.comment, italic = true })
|
||||
hi("SnacksPickerPrefix", { fg = colors.yellow })
|
||||
hi("SnacksPickerNormal", { fg = colors.fg, bg = colors.yellow }) -- Normal picker line
|
||||
hi("SnacksPickerSelected", { fg = colors.bg, bg = colors.highlight }) -- Selected item (invert fg/bg)
|
||||
hi("SnacksPickerCursor", { fg = colors.yellow, bg = colors.cursorline })
|
||||
hi("NormalFloat", { fg = colors.fg, bg = colors.bg })
|
||||
Reference in New Issue
Block a user