summaryrefslogtreecommitdiff
path: root/config/nvim/lua/theme/colors.lua
diff options
context:
space:
mode:
Diffstat (limited to 'config/nvim/lua/theme/colors.lua')
-rw-r--r--config/nvim/lua/theme/colors.lua871
1 files changed, 803 insertions, 68 deletions
diff --git a/config/nvim/lua/theme/colors.lua b/config/nvim/lua/theme/colors.lua
index 6197328..dd9d491 100644
--- a/config/nvim/lua/theme/colors.lua
+++ b/config/nvim/lua/theme/colors.lua
@@ -1,68 +1,803 @@
-local HsvToRgb = require("theme.asset.hsv-to-rgb")
-local colors = {
-
- black = {HsvToRgb(0, 0, 0), 0},--0 Black
- black_l = {HsvToRgb(0, 0, 10), 0},
- black_ll = {HsvToRgb(0, 0, 20), 0},
-
- gray_dd = {HsvToRgb(0, 0, 30), 8},--8 DarkGray
- gray_d = {HsvToRgb(0, 0, 40), 8},
- gray = {HsvToRgb(0, 0, 50), 7},--7 Gray
- gray_l = {HsvToRgb(0, 0, 60), 7},
- gray_ll = {HsvToRgb(0, 0, 70), 7},
-
- white_dd = {HsvToRgb(0, 0, 80), 15},--15 White
- white_d = {HsvToRgb(0, 0, 90), 15},
- white = {HsvToRgb(0, 0, 100), 15},
-
- red_d = {HsvToRgb(0, 100, 75), 12},--12 Red
- red = {HsvToRgb(0, 100, 100), 12},
- red_l = {HsvToRgb(0, 75, 100), 12},
-
- orange_d = {HsvToRgb(30, 100, 75), 4},--4 DarkRed
- orange = {HsvToRgb(30, 100, 100), 4},
- orange_l = {HsvToRgb(30, 75, 100), 4},
-
- yellow_d = {HsvToRgb(60, 100, 75), 14},--14 Yellow
- yellow = {HsvToRgb(60, 100, 100), 14},
- yellow_l = {HsvToRgb(60, 75, 100), 14},
-
- chartreuse_d = {HsvToRgb(90, 100, 75), 6},--6 DarkYellow
- chartreuse = {HsvToRgb(90, 100, 100), 6},
- chartreuse_l = {HsvToRgb(90, 75, 100), 6},
-
- green_d = {HsvToRgb(120, 100, 75), 10},--10 Green
- green = {HsvToRgb(120, 100, 100), 10},
- green_l = {HsvToRgb(120, 75, 100), 10},
-
- turquoise_d = {HsvToRgb(150, 100, 75), 2},--2 DarkGreen
- turquoise = {HsvToRgb(150, 100, 100), 2},
- turquoise_l = {HsvToRgb(150, 75, 100), 2},
-
- cyan_d = {HsvToRgb(180, 100, 75), 11},--11 Cyan
- cyan = {HsvToRgb(180, 100, 100), 11},
- cyan_l = {HsvToRgb(180, 75, 100), 11},
-
- royal_d = {HsvToRgb(210, 100, 75), 3},--3 DarkCyan
- royal = {HsvToRgb(210, 100, 100), 3},
- royal_l = {HsvToRgb(210, 75, 100), 3},
-
- blue_d = {HsvToRgb(240, 100, 75), 9},--9 Blue
- blue = {HsvToRgb(240, 100, 100), 9},
- blue_l = {HsvToRgb(240, 75, 100), 9},
-
- purple_d = {HsvToRgb(270, 100, 75), 1},--1 DarkBlue
- purple = {HsvToRgb(270, 100, 100), 1},
- purple_l = {HsvToRgb(270, 75, 100), 1},
-
- pink_d = {HsvToRgb(300, 100, 75), 13},--13 Magenta
- pink = {HsvToRgb(300, 100, 100), 13},
- pink_l = {HsvToRgb(300, 75, 100), 13},
-
- salmon_d = {HsvToRgb(330, 100, 75), 5},--5 DarkMagenta
- salmon = {HsvToRgb(330, 100, 100), 5},
- salmon_l = {HsvToRgb(330, 75, 100), 5},
-
- none = {"NONE", "NONE"}
-}
-return colors
+vim.cmd("hi clear")
+if vim.fn.exists("syntax_on") == 1 then
+ vim.cmd("syntax reset")
+end
+
+vim.g.colors_name = "alabaster"
+
+local theme
+---@diagnostic disable: undefined-global
+if vim.o.background == "dark" then
+ -- terminal colors
+ vim.g.terminal_color_0 = "#000000"
+ vim.g.terminal_color_1 = "#d2322d"
+ vim.g.terminal_color_2 = "#6abf40"
+ vim.g.terminal_color_3 = "#cd974b"
+ vim.g.terminal_color_4 = "#217EBC"
+ vim.g.terminal_color_5 = "#9B3596"
+ vim.g.terminal_color_6 = "#178F79"
+ vim.g.terminal_color_7 = "#cecece"
+ vim.g.terminal_color_8 = "#333333"
+ vim.g.terminal_color_9 = "#c33c33"
+ vim.g.terminal_color_10 = "#95cb82"
+ vim.g.terminal_color_11 = "#dfdf8e"
+ vim.g.terminal_color_12 = "#71aed7"
+ vim.g.terminal_color_13 = "#cc8bc9"
+ vim.g.terminal_color_14 = "#47BEA9"
+ vim.g.terminal_color_15 = "#ffffff"
+
+ -- colors
+ local fg = "#cecece"
+ local punct_fg = "#708b8d"
+ local def_fg = "#71ade7"
+ local const_fg = "#cc8bc9"
+ local active = "#cd974b"
+ local string_fg = "#95cb82"
+ local darker_fg = "#7d7d7d"
+ local diffadd = "#6abf40"
+ local diffdelete = "#d2322d"
+ local diffchange = "#ec8013"
+ local statusline = "#162022"
+ local comment = "#dfdf8e"
+ local dim_comment = "#696969"
+ local mistake = {
+ fg = "#c33c33",
+ bg = "#2b1d1e",
+ }
+ local error = "#d13e23"
+ local warn = "#f4b371"
+ local hint = "#8ebeec"
+ local info = "#88cc66"
+ local ansi = {
+ black = "#333333",
+ blue = "#71aed7",
+ brightyellow = "#dfdf8e",
+ cyan = "#47bea9",
+ green = "#95cb82",
+ magenta = "#cc8bc9",
+ red = "#c33c33",
+ white = "#cecece",
+ yellow = "#cd974b",
+ }
+ local comment_fg = vim.g.alabaster_dim_comments and dim_comment or comment
+ local pmenu_bg = "#182325"
+ local float_bg = vim.g.alabaster_floatborder and bg or pmenu_bg
+ local floatborder = vim.g.alabaster_floatborder and { bg = bg, fg = "#333333" }
+ or {
+ bg = float_bg,
+ fg = float_bg,
+ }
+ theme = {
+ Comment = { fg = comment_fg },
+ ColorColumn = { bg = "#182325" },
+ Conceal = { fg = "#b0b0b0" },
+ Cursor = { bg = active, fg = "#000000" },
+ -- lCursor { }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
+ -- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM|
+ CursorColumn = { bg = "#182325" },
+ CursorLine = { bg = "#182325" },
+ Directory = { fg = ansi.blue },
+ DiffAdd = { bg = "#244032", fg = "#56d364" },
+ DiffDelete = { bg = "#462c32", fg = "#f85149" },
+ DiffText = { fg = "#341a00", bg = "#fff987" },
+ DiffChange = { bg = "#341a00", fg = "#e3b341" },
+ EndOfBuffer = { fg = "#354c50" },
+ -- TermCursor { }, -- cursor in a focused terminal
+ TermCursorNC = { fg = bg, bg = fg },
+ ErrorMsg = { fg = error, bg = mistake.bg },
+ VertSplit = { fg = "#2b3d40" },
+ Folded = { bg = "#182325", fg = "#7d7d7d" },
+ FoldColumn = { bg = bg, fg = "#4d4d4d" },
+ SignColumn = {},
+ IncSearch = { bg = ansi.yellow, fg = bg },
+ -- Substitute { }, -- |:substitute| replacement text highlighting
+ LineNr = { fg = "#5c5c5c" },
+ CursorLineNr = { fg = ansi.blue, bold = 1 },
+ MatchParen = { underline = 1, sp = active },
+ -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ")
+ -- MsgArea { }, -- Area for messages and cmdline
+ -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display'
+ MoreMsg = { fg = ansi.green, bold = 1 },
+ NonText = { fg = "#696969" },
+ Normal = { bg = bg, fg = fg },
+ NormalFloat = { bg = float_bg },
+ -- NormalNC { }, -- normal text in non-current windows
+ FloatBorder = floatborder,
+ Pmenu = { bg = pmenu_bg },
+ PmenuSel = { bg = "#354c50" },
+ PmenuSbar = { bg = "#212f31" },
+ PmenuThumb = { bg = "#47666b" },
+ Question = { fg = diffadd },
+ QuickFixLine = { bg = "#182325" },
+ Search = { bg = "#354c50" },
+ SpecialKey = { fg = ansi.cyan },
+ SpellBad = { undercurl = 1, sp = ansi.red },
+ SpellCap = { undercurl = 1, sp = ansi.blue },
+ SpellLocal = { undercurl = 1, sp = ansi.cyan },
+ SpellRare = { undercurl = 1, sp = ansi.magenta },
+ StatusLine = { bg = statusline, fg = fg },
+ StatusLineNC = { bg = statusline, fg = "#9f9f9f" },
+ TabLine = { bg = statusline, fg = "#7d7d7d" },
+ TabLineFill = { bg = statusline },
+ TabLineSel = { bg = statusline, fg = ansi.blue },
+ Title = { fg = const_fg },
+ Visual = { bg = "#293334" },
+ VisualNOS = { bg = "#293334" },
+ WarningMsg = { fg = "#e1ad4c" },
+ WildMenu = { bg = "#354c50" },
+ WinBar = { bg = bg, fg = ansi.white, bold = true },
+ WinBarNC = { bg = bg, fg = "#7d7d7d" },
+
+ --- SYNTAX I: TS groups link to these
+ Constant = { fg = const_fg },
+ String = { fg = string_fg },
+ Character = { fg = const_fg },
+ Number = { fg = const_fg },
+ Boolean = { fg = const_fg },
+ Float = { fg = const_fg },
+ Operator = { fg = punct_fg },
+
+ --- SYNTAX II: TS groups have their own definition, the below are defined to have somewhat working hl w/o treesitter
+ Identifier = { fg = def_fg }, -- ansi.white },
+ Function = { fg = def_fg },
+ Statement = { fg = ansi.white },
+ Conditional = { fg = ansi.white },
+ Repeat = { fg = ansi.white },
+ Label = { fg = def_fg },
+ Keyword = { fg = ansi.white },
+ Exception = { fg = ansi.white },
+ PreProc = { fg = ansi.white },
+ Include = { fg = ansi.white },
+ Define = { fg = ansi.white },
+ Macro = { fg = ansi.white },
+ PreCondit = { fg = ansi.white },
+ Type = { fg = ansi.white },
+ StorageClass = { fg = ansi.white },
+ Structure = { fg = def_fg },
+ Typedef = { fg = def_fg },
+
+ Special = { fg = ansi.yellow },
+ -- TODO better color than diffchange, try reddish
+ -- SpecialChar = { fg = diffchange }, -- special character in a constant
+ -- Tag { }, -- you can use CTRL-] on this
+ -- Delimiter { },
+ SpecialComment = { bg = "#1d292b", fg = ansi.blue },
+ debugPc = { bg = "#0f2534" },
+ debugBreakpoint = { bg = "#b33229" },
+ helpHyperTextJump = { fg = ansi.magenta },
+ helpSectionDelim = { fg = ansi.magenta },
+ helpExample = { fg = ansi.cyan },
+ helpCommand = { fg = ansi.cyan },
+ helpHeadline = { fg = ansi.blue },
+ helpHeader = { fg = ansi.magenta },
+
+ Underlined = { underline = 1 }, -- (preferred) text that stands out, HTML links
+ Italic = { italic = 1 },
+
+ -- ("Ignore", below, may be invisible...)
+ -- Ignore { }, -- (preferred) left blank, hidden |hl-Ignore|
+
+ Error = { bg = mistake.bg, fg = mistake.fg },
+
+ Todo = { bg = "#d0d058", fg = bg },
+
+ --- Diagnostic
+ LspReferenceText = { bg = "#253437" },
+ LspReferenceRead = { bg = "#253437" },
+ LspReferenceWrite = { bg = "#253437", underline = 1, sp = active },
+ LspCodeLens = { fg = "#5c5c5c" },
+ LspCodeLensSeparator = { fg = "#5c5c5c" },
+
+ --- Diagnostic
+ DiagnosticError = { fg = error },
+ DiagnosticWarn = { fg = warn },
+ DiagnosticHint = { fg = hint },
+ DiagnosticInfo = { fg = info },
+ DiagnosticVirtualTextError = { bg = "#350B0B", fg = "#D1503A" },
+ DiagnosticVirtualTextWarn = { bg = "#3F240A", fg = "#C8935D" },
+ DiagnosticVirtualTextHint = { bg = "#1D2B37", fg = "#7E9CB9" },
+ DiagnosticVirtualTextInfo = { bg = "#162C0B", fg = "#7BAC62" },
+
+ --- Treesitter
+ TSAttribute = {},
+ TSConstructor = { fg = ansi.white },
+ TSConditional = { fg = ansi.white },
+ TSConstBuiltin = { fg = const_fg },
+ TSConstMacro = { fg = ansi.white },
+ TSError = { bg = mistake.bg, fg = mistake.fg },
+ TSException = { fg = ansi.white },
+ TSField = { fg = def_fg }, -- ansi.white },
+ TSFunction = { fg = ansi.white },
+ TSFuncBuiltin = { fg = ansi.white },
+ TSFuncMacro = { fg = ansi.white },
+ TSKeyword = { fg = ansi.white },
+ TSKeywordFunction = { fg = ansi.white },
+ TSLabel = { fg = ansi.white },
+ TSMethod = { fg = ansi.white },
+ TSNamespace = { fg = ansi.white },
+ TSNone = { fg = const_fg },
+ TSParameter = { fg = ansi.white },
+ TSParameterReference = { fg = ansi.white },
+ TSProperty = { fg = ansi.white },
+ TSPunctDelimiter = { fg = punct_fg },
+ TSPunctBracket = { fg = "#bababa" },
+ TSPunctSpecial = { fg = punct_fg },
+ TSRepeat = { fg = ansi.white },
+ TSString = { fg = string_fg },
+ TSStringRegex = { bg = "#1d292b", fg = const_fg },
+ TSStringEscape = { bg = "#1d292b", fg = const_fg },
+ TSSymbol = {},
+ TSType = { fg = ansi.white },
+ TSTypeBuiltin = { fg = ansi.white },
+ TSVariable = { fg = ansi.white },
+ TSVariableBuiltin = { fg = ansi.white },
+ TSTag = { fg = ansi.white },
+ TSTagDelimiter = { fg = punct_fg },
+ TSText = { fg = ansi.white },
+ ["@attribute"] = {},
+ ["@constructor"] = { fg = ansi.white },
+ ["@conditional"] = { fg = ansi.white },
+ ["@constant.builtin"] = { fg = const_fg },
+ ["@constant.macro"] = { fg = ansi.white },
+ ["@error"] = { bg = mistake.bg, fg = mistake.fg },
+ ["@exception"] = { fg = ansi.white },
+ ["@field"] = { fg = ansi.white },
+ ["@function"] = { fg = ansi.white },
+ ["@function.builtin"] = { fg = ansi.white },
+ ["@function.macro"] = { fg = ansi.white },
+ ["@keyword"] = { fg = ansi.white },
+ ["@keyword.function"] = { fg = ansi.white },
+ ["@keyword.operator"] = { fg = punct_fg },
+ ["@label"] = { fg = ansi.white },
+ ["@method"] = { fg = ansi.white },
+ ["@module"] = { fg = ansi.white },
+ ["@namespace"] = { fg = ansi.white },
+ ["@none"] = { fg = const_fg },
+ ["@parameter"] = { fg = ansi.white },
+ ["@parameter.reference"] = { fg = ansi.white },
+ ["@property"] = { fg = ansi.white },
+ ["@punctuation.delimiter"] = { fg = punct_fg },
+ ["@punctuation.bracket"] = { fg = "#bababa" },
+ ["@punctuation.special"] = { fg = punct_fg },
+ ["@repeat"] = { fg = ansi.white },
+ ["@string"] = { fg = string_fg },
+ ["@string.regex"] = { bg = "#1d292b", fg = const_fg },
+ ["@string.escape"] = { bg = "#1d292b", fg = const_fg },
+ ["@symbol"] = {},
+ ["@type.builtin"] = { fg = ansi.white },
+ ["@variable"] = { fg = ansi.white },
+ ["@variable.builtin"] = { fg = ansi.white },
+ ["@tag"] = { fg = ansi.white },
+ ["@tag.delimiter"] = { fg = punct_fg },
+ ["@text"] = { fg = ansi.white },
+ ["@text.note"] = { bg = "#1d292b", fg = ansi.blue },
+ ["@text.warning"] = { bg = "#d0d058", fg = bg },
+
+ ["@type"] = { fg = def_fg },
+ ---
+ --- Theme specific
+ ["@AlabasterBase"] = { fg = ansi.white },
+ ["@AlabasterConstant"] = { fg = const_fg },
+ ["@AlabasterDefinition"] = { fg = def_fg },
+ ["@AlabasterPunct"] = { fg = punct_fg },
+ ["@AlabasterString"] = { fg = string_fg },
+ ["@AlabasterHashbang"] = { fg = dim_comment },
+ --- Gitsigns
+ GitSignsAdd = { fg = diffadd },
+ GitSignsChange = { fg = diffchange },
+ GitSignsDelete = { fg = diffdelete },
+ --- Telescope
+ TelescopeBorder = { fg = "#2b3d40" },
+ TelescopeMatching = { fg = "#f09942" },
+ TelescopeMultiSelection = { fg = ansi.magenta },
+ TelescopePromptPrefix = { fg = ansi.blue },
+ TelescopeSelectionCaret = { fg = mistake.fg },
+ TelescopeTitle = { fg = ansi.brightyellow },
+ TelescopeResultsTitle = { fg = ansi.yellow },
+ --- fzf-lua
+ FzfLuaBorder = { fg = "#2b3d40" },
+ --- mini.nvim
+ MiniPickMatchCurrent = { fg = "#f09942" },
+ --- Neogit
+ NeogitPopupActionDisabled = { fg = darker_fg },
+ NeogitPopupActionKey = { fg = ansi.magenta },
+ NeogitPopupOptionDisabled = { fg = darker_fg },
+ NeogitPopupOptionKey = { fg = ansi.blue },
+ NeogitPopupSwitchDisabled = { fg = darker_fg },
+ NeogitPopupSwitchEnabled = { fg = ansi.cyan },
+ NeogitPopupSwitchKey = { fg = ansi.magenta },
+ --- Fugitive
+ diffAdded = { link = "DiffAdd" },
+ diffRemoved = { link = "DiffDelete" },
+ --- Startify
+ StartifyBracket = { fg = darker_fg },
+ StartifyFile = { fg = ansi.white },
+ StartifySection = { fg = ansi.green },
+ StartifySlash = { fg = "#4e6e75" },
+ StartifyPath = { fg = "#4e6e75" },
+ --- Statusline
+ StatuslineAdd = { fg = diffadd, bg = statusline },
+ StatuslineErr = { fg = error, bg = statusline },
+ StatuslineHint = { fg = hint, bg = statusline },
+ StatuslineInfo = { fg = info, bg = statusline },
+ StatuslineWarn = { fg = warn, bg = statusline },
+ StatuslineBlue = { fg = ansi.blue, bg = statusline },
+ StatuslineRed = { fg = ansi.red, bg = statusline },
+ StatuslineGreen = { fg = ansi.green, bg = statusline },
+ StatuslineCyan = { fg = ansi.cyan, bg = statusline },
+ StatuslineMagenta = { fg = ansi.magenta, bg = statusline },
+ --- ALE
+ ALEWarningSign = { fg = warn },
+ --- vim-matchup
+ MatchupVirtualText = { fg = ansi.yellow },
+ --- For `highlight link`
+ AlabasterBlack = { fg = ansi.black },
+ AlabasterBlue = { fg = ansi.blue },
+ AlabasterBrightYellow = { fg = ansi.brightyellow },
+ AlabasterCyan = { fg = ansi.cyan },
+ AlabasterGreen = { fg = ansi.green },
+ AlabasterDarkGreen = { fg = "#6abf40" },
+ AlabasterMagenta = { fg = ansi.magenta },
+ AlabasterRed = { fg = ansi.red },
+ AlabasterWhite = { fg = ansi.white },
+ AlabasterYellow = { fg = ansi.yellow },
+ --- Hop
+ HopNextKey = { fg = ansi.brightyellow },
+ HopNextKey1 = { fg = ansi.cyan },
+ HopNextKey2 = { fg = "#297567" },
+ HopUnmatched = { fg = "#3d3d3d" },
+ --- Lightspeed
+ LightspeedGreyWash = { fg = "#3d3d3d" },
+ --- checkhealth
+ healthSuccess = { fg = ansi.green, bg = bg },
+ --- cmp
+ CmpItemMenuDefault = { fg = ansi.magenta },
+ --- nvim-ts-rainbow
+ rainbowcol1 = { fg = ansi.yellow },
+ rainbowcol2 = { fg = ansi.magenta },
+ rainbowcol3 = { fg = ansi.blue },
+ rainbowcol4 = { fg = ansi.green },
+ rainbowcol5 = { fg = ansi.brightyellow },
+ rainbowcol6 = { fg = ansi.red },
+ rainbowcol7 = { fg = ansi.cyan },
+ --- Iswap
+ ISwapSnipe = { bg = ansi.yellow, fg = bg },
+ ISwapGrey = { fg = "#3d3d3d" },
+ --- vim-dadbod-ui
+ dbui_help = { fg = dim_comment },
+ dbui_connection_source = { fg = dim_comment },
+ --- nvim-dap-virtual-text
+ NvimDapVirtualText = { bg = "#1d292b", fg = ansi.cyan },
+ --- Noice
+ NoiceCmdlineIcon = { link = "AlabasterDarkGreen" },
+ NoiceCmdlinePopupBorder = { link = "AlabasterDarkGreen" },
+ NoiceConfirmBorder = { link = "AlabasterDarkGreen" },
+ NoiceCmdlinePopupBorderCmdline = { link = "AlabasterDarkGreen" },
+ NoiceCmdlineIconCmdline = { link = "AlabasterDarkGreen" },
+ NoiceCmdlinePopupBorderFilter = { link = "AlabasterDarkGreen" },
+ NoiceCmdlineIconFilter = { link = "AlabasterDarkGreen" },
+ NoiceCmdlinePopupBorderLua = { link = "AlabasterDarkGreen" },
+ NoiceCmdlineIconLua = { link = "AlabasterDarkGreen" },
+ NoiceCmdlinePopupBorderSearch = { link = "AlabasterYellow" },
+ NoiceCmdlineIconSearch = { link = "AlabasterYellow" },
+ -- Languages
+ --- asm
+ asmDirective = { fg = dim_comment },
+ nasmLabel = { link = "@AlabasterDefinition" },
+
+ ["@lsp.mod.declaration"] = { fg = fg },
+ ["@lsp.type.enumMember"] = { fg = fg },
+ ["@lsp.type.function"] = { fg = fg },
+ ["@lsp.type.method"] = { fg = fg },
+ ["@lsp.type.selfKeyword"] = { fg = fg },
+ ["@lsp.typemod.class.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.class.definition"] = { fg = def_fg },
+ ["@lsp.typemod.enum.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.enumMember.defaultLibrary"] = { fg = fg },
+ ["@lsp.typemod.function.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.function.definition"] = { fg = def_fg },
+ ["@lsp.typemod.macro.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.method.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.selfKeyword"] = { fg = fg },
+ ["@lsp.typemod.struct.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.type.declaration"] = { fg = def_fg },
+ }
+else
+ -- terminal colors
+ vim.g.terminal_color_0 = "#000000"
+ vim.g.terminal_color_1 = "#aa3731"
+ vim.g.terminal_color_2 = "#448c27"
+ vim.g.terminal_color_3 = "#cb9000"
+ vim.g.terminal_color_4 = "#325cc0"
+ vim.g.terminal_color_5 = "#7a3e9d"
+ vim.g.terminal_color_6 = "#0083b2"
+ vim.g.terminal_color_7 = "#f7f7f7"
+ vim.g.terminal_color_8 = "#777777"
+ vim.g.terminal_color_9 = "#f05050"
+ vim.g.terminal_color_10 = "#60cb00"
+ vim.g.terminal_color_11 = "#ffbc5d"
+ vim.g.terminal_color_12 = "#007acc"
+ vim.g.terminal_color_13 = "#e64ce6"
+ vim.g.terminal_color_14 = "#00aacb"
+ vim.g.terminal_color_15 = "#f7f7f7"
+
+ -- colors
+ local bg = "#f7f7f7"
+ local fg = "#000000"
+ local punct_fg = "#777777"
+ local def_fg = "#325cc0"
+ local const_fg = "#7a3e9d"
+ local active = "#ffbc5d"
+ local active_blue = "#007acc"
+ local string_fg = "#448c27"
+ local darker_fg = "#7d7d7d"
+ local diffadd = "#284918"
+ local diffdelete = "#B40600"
+ local diffchange = "#ec8013"
+ local statusline = "#c9c9c9"
+ local comment = "#aa3731"
+ local dim_comment = "#696969"
+ local mistake = {
+ fg = "#c33c33",
+ bg = "#f8b28f",
+ }
+ local ansi = {
+ black = "#000000",
+ blue = "#325cc0",
+ brightyellow = "#ffbc5d",
+ cyan = "#0083b2",
+ green = "#448c27",
+ magenta = "#7a3e9d",
+ red = "#aa3731",
+ white = "#f7f7f7",
+ yellow = "#cb9000",
+ }
+ local error = "#d13e23"
+ local warn = "#BC7500"
+ local hint = ansi.blue
+ local info = "#278C00"
+ local comment_fg = vim.g.alabaster_dim_comments and dim_comment or comment
+ local pmenu_bg = "#e7e7e7"
+ local float_bg = vim.g.alabaster_floatborder and bg or pmenu_bg
+ local floatborder = vim.g.alabaster_floatborder and { bg = bg, fg = "#999999" }
+ or {
+ bg = float_bg,
+ fg = float_bg,
+ }
+ theme = {
+ Comment = { fg = comment_fg },
+ ColorColumn = { bg = "#E2EEEE" },
+ Conceal = { fg = "#b0b0b0" },
+ Cursor = { bg = "#007acc", fg = "#bfdbfe" },
+ -- lCursor { }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
+ -- CursorIM { }, -- like Cursor, but used when in IME mode |CursorIM|
+ CursorColumn = { bg = "#E2EEEE" },
+ CursorLine = { bg = "#E2EEEE" },
+ Directory = { fg = ansi.blue },
+ DiffAdd = { bg = "#ADFFB7", fg = "#0A7816" },
+ DiffDelete = { bg = "#F8B28F", fg = "#872C28" },
+ DiffText = { fg = "#fff987", bg = "#876004" },
+ DiffChange = { bg = "#fff987", fg = "#341a00" },
+ EndOfBuffer = { fg = "#b6b6b6" },
+ -- TermCursor { }, -- cursor in a focused terminal
+ TermCursorNC = { fg = bg, bg = fg },
+ ErrorMsg = { fg = error, bg = mistake.bg },
+ VertSplit = { fg = "#abbdc0" },
+ Folded = { bg = "#dddddd", fg = "#7d7d7d" },
+ FoldColumn = { bg = bg, fg = "#4d4d4d" },
+ SignColumn = {},
+ IncSearch = { bg = active, fg = fg },
+ -- Substitute { }, -- |:substitute| replacement text highlighting
+ LineNr = { fg = "#7d7c7c" },
+ CursorLineNr = { fg = ansi.blue, bold = 1 },
+ MatchParen = { underline = 1, sp = active },
+ -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ")
+ -- MsgArea { }, -- Area for messages and cmdline
+ -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display'
+ MoreMsg = { fg = ansi.green, bold = 1 },
+ NonText = { fg = "#696969" },
+ Normal = { bg = bg, fg = fg },
+ NormalFloat = { bg = float_bg },
+ -- NormalNC { }, -- normal text in non-current windows
+ FloatBorder = floatborder,
+ Pmenu = { bg = pmenu_bg },
+ PmenuSel = { bg = "#c7c7c7" },
+ PmenuSbar = { bg = "#777777" },
+ PmenuThumb = { bg = "#333333" },
+ Question = { fg = ansi.green },
+ QuickFixLine = { bg = "#E2EEEE" },
+ Search = { bg = "#fae9b7", fg = fg },
+ SpecialKey = { fg = ansi.cyan },
+ SpellBad = { undercurl = 1, sp = ansi.red },
+ SpellCap = { undercurl = 1, sp = ansi.blue },
+ SpellLocal = { undercurl = 1, sp = ansi.cyan },
+ SpellRare = { undercurl = 1, sp = ansi.magenta },
+ StatusLine = { bg = statusline, fg = fg },
+ StatusLineNC = { bg = statusline, fg = "#9f9f9f" },
+ TabLine = { bg = statusline, fg = "#7d7d7d" },
+ TabLineFill = { bg = statusline },
+ TabLineSel = { bg = statusline, fg = ansi.blue },
+ Title = { fg = const_fg },
+ Visual = { bg = "#bfdbfe" },
+ VisualNOS = { bg = "#bfdbfe" },
+ WarningMsg = { fg = "#e1ad4c" },
+ WildMenu = { bg = "#999999" },
+ WinBar = { bg = bg, fg = ansi.black, bold = true },
+ WinBarNC = { bg = bg, fg = "#7d7d7d" },
+
+ --- SYNTAX I: TS groups link to these
+ Constant = { fg = const_fg },
+ String = { fg = string_fg },
+ Character = { fg = const_fg },
+ Number = { fg = const_fg },
+ Boolean = { fg = const_fg },
+ Float = { fg = const_fg },
+ Operator = { fg = punct_fg },
+
+ --- SYNTAX II: TS groups have their own definition, the below are defined to have somewhat working hl w/o treesitter
+ Identifier = { fg = ansi.black },
+ Function = { fg = def_fg },
+ Statement = { fg = ansi.black },
+ Conditional = { fg = ansi.black },
+ Repeat = { fg = ansi.black },
+ Label = { fg = def_fg },
+ Keyword = { fg = ansi.black },
+ Exception = { fg = ansi.black },
+ PreProc = { fg = ansi.black },
+ Include = { fg = ansi.black },
+ Define = { fg = ansi.black },
+ Macro = { fg = ansi.black },
+ PreCondit = { fg = ansi.black },
+ Type = { fg = ansi.black },
+ StorageClass = { fg = ansi.black },
+ Structure = { fg = def_fg },
+ Typedef = { fg = def_fg },
+
+ Special = { fg = ansi.yellow },
+ -- TODO better color than diffchange, try reddish
+ -- SpecialChar = { fg = diffchange }, -- special character in a constant
+ -- Tag { }, -- you can use CTRL-] on this
+ -- Delimiter { },
+ SpecialComment = { bg = "#FFDEAA", fg = ansi.blue },
+ debugPc = { bg = "#C7C7EE" },
+ debugBreakpoint = { bg = "#F8B28F" },
+ helpHyperTextJump = { fg = ansi.magenta },
+ helpSectionDelim = { fg = ansi.magenta },
+ helpExample = { fg = ansi.cyan },
+ helpCommand = { fg = ansi.cyan },
+ helpHeadline = { fg = ansi.blue },
+ helpHeader = { fg = ansi.magenta },
+
+ Underlined = { underline = 1 }, -- (preferred) text that stands out, HTML links
+ Italic = { italic = 1 },
+
+ -- ("Ignore", below, may be invisible...)
+ -- Ignore { }, -- (preferred) left blank, hidden |hl-Ignore|
+
+ Error = { bg = mistake.bg, fg = mistake.fg },
+
+ Todo = { bg = "#FFDEAA", fg = ansi.blue },
+
+ --- Diagnostic
+ LspReferenceText = { bg = "#dadada" },
+ LspReferenceRdad = { bg = "#dadada" },
+ LspReferenceWrite = { bg = "#dadada", underline = 1, sp = active_blue },
+ LspCodeLens = { fg = "#999999" },
+ LspCodeLensSeparator = { fg = "#999999" },
+
+ --- Diagnostic
+ DiagnosticError = { fg = error },
+ DiagnosticWarn = { fg = warn },
+ DiagnosticHint = { fg = hint },
+ DiagnosticInfo = { fg = info },
+ DiagnosticVirtualTextError = { bg = "#F8B28F", fg = "#411414" },
+ DiagnosticVirtualTextWarn = { bg = "#fff987", fg = fg },
+ DiagnosticVirtualTextHint = { fg = "#0F171D", bg = "#C3D0DA" },
+ DiagnosticVirtualTextInfo = { bg = "#ADFFB7", fg = "#042F09" },
+
+ --- Treesitter
+ TSAttribute = {},
+ TSConstructor = { fg = ansi.black },
+ TSConditional = { fg = ansi.black },
+ TSConstBuiltin = { fg = const_fg },
+ TSConstMacro = { fg = ansi.black },
+ TSError = { bg = mistake.bg, fg = mistake.fg },
+ TSException = { fg = ansi.black },
+ TSField = { fg = ansi.black },
+ TSFunction = { fg = ansi.black },
+ TSFuncBuiltin = { fg = ansi.black },
+ TSFuncMacro = { fg = ansi.black },
+ TSKeyword = { fg = ansi.black },
+ TSKeywordFunction = { fg = ansi.black },
+ TSLabel = { fg = ansi.black },
+ TSMethod = { fg = ansi.black },
+ TSNamespace = { fg = ansi.black },
+ TSNone = { fg = const_fg },
+ TSParameter = { fg = ansi.black },
+ TSParameterReference = { fg = ansi.black },
+ TSProperty = { fg = ansi.black },
+ TSPunctDelimiter = { fg = punct_fg },
+ TSPunctBracket = { fg = punct_fg },
+ TSPunctSpecial = { fg = punct_fg },
+ TSRepeat = { fg = ansi.black },
+ TSString = { fg = string_fg },
+ TSStringRegex = { bg = bg, fg = "#777777" },
+ TSStringEscape = { bg = bg, fg = "#777777" },
+ TSSymbol = {},
+ TSType = { fg = ansi.black },
+ TSTypeBuiltin = { fg = ansi.black },
+ TSVariable = { fg = ansi.black },
+ TSVariableBuiltin = { fg = ansi.black },
+ TSTag = { fg = ansi.black },
+ TSTagDelimiter = { fg = punct_fg },
+ TSText = { fg = ansi.black },
+
+ ["@attribute"] = {},
+ ["@constructor"] = { fg = ansi.black },
+ ["@conditional"] = { fg = ansi.black },
+ ["@constant.builtin"] = { fg = const_fg },
+ ["@constant.macro"] = { fg = ansi.black },
+ ["@error"] = { bg = mistake.bg, fg = mistake.fg },
+ ["@exception"] = { fg = ansi.black },
+ ["@field"] = { fg = ansi.black },
+ ["@function"] = { fg = ansi.black },
+ ["@function.builtin"] = { fg = ansi.black },
+ ["@function.macro"] = { fg = ansi.black },
+ ["@keyword"] = { fg = ansi.black },
+ ["@keyword.function"] = { fg = ansi.black },
+ ["@label"] = { fg = ansi.black },
+ ["@method"] = { fg = ansi.black },
+ ["@module"] = { fg = ansi.black },
+ ["@namespace"] = { fg = ansi.black },
+ ["@none"] = { fg = const_fg },
+ ["@parameter"] = { fg = ansi.black },
+ ["@parameter.reference"] = { fg = ansi.black },
+ ["@property"] = { fg = ansi.black },
+ ["@punctuation.delimiter"] = { fg = punct_fg },
+ ["@punctuation.bracket"] = { fg = punct_fg },
+ ["@punctuation.special"] = { fg = punct_fg },
+ ["@repeat"] = { fg = ansi.black },
+ ["@string"] = { fg = string_fg },
+ ["@string.regex"] = { bg = bg, fg = "#777777" },
+ ["@string.escape"] = { bg = bg, fg = "#777777" },
+ ["@symbol"] = {},
+ ["@type"] = { fg = ansi.black },
+ ["@type.builtin"] = { fg = ansi.black },
+ ["@variable"] = { fg = ansi.black },
+ ["@variable.builtin"] = { fg = ansi.black },
+ ["@tag"] = { fg = ansi.black },
+ ["@tag.delimiter"] = { fg = punct_fg },
+ ["@text"] = { fg = ansi.black },
+ ["@text.note"] = { bg = "#dddddd", fg = ansi.blue },
+ ["@text.warning"] = { bg = "#FFDEAA", fg = ansi.blue },
+
+ --- Theme specific
+ ["@AlabasterConstant"] = { fg = const_fg },
+ ["@AlabasterDefinition"] = { fg = def_fg },
+ ["@AlabasterPunct"] = { fg = punct_fg },
+ ["@AlabasterString"] = { fg = string_fg },
+ ["@AlabasterHashbang"] = { fg = dim_comment },
+ --- Gitsigns
+ GitSignsAdd = { fg = "#6abf40" },
+ GitSignsChange = { fg = diffchange },
+ GitSignsDelete = { fg = diffdelete },
+ --- Telescope
+ TelescopeBorder = { fg = "#abbdc0" },
+ TelescopeMatching = { fg = "#CC6F14" },
+ TelescopeMultiSelection = { fg = ansi.magenta },
+ TelescopePromptPrefix = { fg = ansi.blue },
+ TelescopeSelectionCaret = { fg = mistake.fg },
+ TelescopeTitle = { fg = ansi.yellow },
+ TelescopeResultsTitle = { fg = ansi.yellow },
+ --- fzf-lua
+ FzfLuaBorder = { fg = "#abbdc0" },
+ --- Neogit
+ NeogitPopupActionDisabled = { fg = darker_fg },
+ NeogitPopupActionKey = { fg = ansi.magenta },
+ NeogitPopupOptionDisabled = { fg = darker_fg },
+ NeogitPopupOptionKey = { fg = ansi.blue },
+ NeogitPopupSwitchDisabled = { fg = darker_fg },
+ NeogitPopupSwitchEnabled = { fg = ansi.cyan },
+ NeogitPopupSwitchKey = { fg = ansi.magenta },
+ --- Fugitive
+ diffAdded = { link = "DiffAdd" },
+ diffRemoved = { link = "DiffDelete" },
+ --- Startify
+ StartifyBracket = { fg = darker_fg },
+ StartifyFile = { fg = ansi.black },
+ StartifySection = { fg = ansi.green },
+ StartifySlash = { fg = "#4e6e75" },
+ StartifyPath = { fg = "#4e6e75" },
+ --- Statusline
+ StatuslineAdd = { fg = diffadd, bg = statusline },
+ StatuslineErr = { fg = "#8E1410", bg = statusline },
+ StatuslineHint = { fg = hint, bg = statusline },
+ StatuslineInfo = { fg = info, bg = statusline },
+ StatuslineWarn = { fg = warn, bg = statusline },
+ StatuslineBlue = { fg = ansi.blue, bg = statusline },
+ StatuslineRed = { fg = ansi.red, bg = statusline },
+ StatuslineGreen = { fg = ansi.green, bg = statusline },
+ StatuslineCyan = { fg = ansi.cyan, bg = statusline },
+ StatuslineMagenta = { fg = ansi.magenta, bg = statusline },
+ --- ALE
+ ALEWarningSign = { fg = warn },
+ --- vim-matchup
+ MatchupVirtualText = { fg = ansi.yellow },
+ --- For `highlight link`
+ AlabasterBlack = { fg = ansi.black },
+ AlabasterBlue = { fg = ansi.blue },
+ AlabasterBrightYellow = { fg = ansi.brightyellow },
+ AlabasterCyan = { fg = ansi.cyan },
+ AlabasterGreen = { fg = ansi.green },
+ AlabasterBrightGreen = { fg = "#60cb00" },
+ AlabasterMagenta = { fg = ansi.magenta },
+ AlabasterRed = { fg = ansi.red },
+ AlabasterWhite = { fg = ansi.black },
+ AlabasterYellow = { fg = ansi.yellow },
+ --- Hop
+ HopNextKey = { fg = ansi.yellow },
+ HopNextKey1 = { fg = ansi.blue },
+ HopNextKey2 = { fg = "#17A2D6" },
+ HopUnmatched = { fg = "#bfbfbf" },
+ --- Lightspeed
+ LightspeedGreyWash = { fg = "#bfbfbf" },
+ --- checkhealth
+ healthSuccess = { fg = ansi.green, bg = bg },
+ --- cmp
+ CmpItemMenuDefault = { fg = ansi.magenta },
+ --- nvim-ts-rainbow
+ rainbowcol1 = { fg = ansi.yellow },
+ rainbowcol2 = { fg = ansi.magenta },
+ rainbowcol3 = { fg = ansi.blue },
+ rainbowcol4 = { fg = ansi.green },
+ rainbowcol5 = { fg = ansi.brightyellow },
+ rainbowcol6 = { fg = ansi.red },
+ rainbowcol7 = { fg = ansi.cyan },
+ --- Iswap
+ ISwapSnipe = { bg = ansi.yellow, fg = bg },
+ ISwapGrey = { fg = "#bfbfbf" },
+ --- vim-dadbod-ui
+ dbui_help = { fg = dim_comment },
+ dbui_connection_source = { fg = dim_comment },
+ --- nvim-dap-virtual-text
+ NvimDapVirtualText = { bg = "#78D2C9", fg = fg },
+ --- Noice
+ NoiceCmdlineIcon = { link = "AlabasterBrightGreen" },
+ NoiceCmdlinePopupBorder = { link = "AlabasterBrightGreen" },
+ NoiceConfirmBorder = { link = "AlabasterBrightGreen" },
+ NoiceCmdlinePopupBorderCmdline = { link = "AlabasterBrightGreen" },
+ NoiceCmdlineIconCmdline = { link = "AlabasterBrightGreen" },
+ NoiceCmdlinePopupBorderFilter = { link = "AlabasterBrightGreen" },
+ NoiceCmdlineIconFilter = { link = "AlabasterBrightGreen" },
+ NoiceCmdlinePopupBorderLua = { link = "AlabasterBrightGreen" },
+ NoiceCmdlineIconLua = { link = "AlabasterBrightGreen" },
+ NoiceCmdlinePopupBorderSearch = { link = "AlabasterYellow" },
+ NoiceCmdlineIconSearch = { link = "AlabasterYellow" },
+ -- Languages
+ --- asm
+ asmDirective = { fg = dim_comment },
+ nasmLabel = { link = "@AlabasterDefinition" },
+ ["@lsp.mod.declaration"] = { fg = fg },
+ ["@lsp.type.enumMember"] = { fg = fg },
+ ["@lsp.type.function"] = { fg = fg },
+ ["@lsp.type.method"] = { fg = fg },
+ ["@lsp.type.selfKeyword"] = { fg = fg },
+ ["@lsp.typemod.class.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.class.definition"] = { fg = def_fg },
+ ["@lsp.typemod.enum.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.enumMember.defaultLibrary"] = { fg = fg },
+ ["@lsp.typemod.function.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.function.definition"] = { fg = def_fg },
+ ["@lsp.typemod.macro.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.method.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.selfKeyword"] = { fg = fg },
+ ["@lsp.typemod.struct.declaration"] = { fg = def_fg },
+ ["@lsp.typemod.type.declaration"] = { fg = def_fg },
+ }
+end
+
+for group, hl in pairs(theme) do
+ vim.api.nvim_set_hl(0, group, hl)
+end
+
+-- vi:nowrap