|
-- Minimal Monochrome Light |
|
|
|
vim.o.background = "light" |
|
vim.g.colors_name = "minimal_mono_light" |
|
|
|
local c = { |
|
bg = "#FCFCFC", |
|
fg = "#1A1A1A", -- approximates VS Code #000000DF (alpha not supported here) |
|
fg_soft = "#404040", |
|
comment = "#999999", |
|
subtle = "#D0D0D0", |
|
subtle2 = "#F0F0F0", |
|
cursor = "#1A1A1A", |
|
visual = "#D0D0D0", |
|
|
|
red = "#C97A7D", |
|
green = "#5A9E6F", |
|
yellow = "#B8893A", |
|
blue = "#5A8FB8", |
|
magenta = "#8B6BA8", |
|
cyan = "#4A9EA8", |
|
} |
|
|
|
local function hl(group, spec) |
|
vim.api.nvim_set_hl(0, group, spec) |
|
end |
|
|
|
-- Core UI |
|
hl("Normal", { fg = c.fg, bg = c.bg }) |
|
hl("NormalNC", { fg = c.fg, bg = c.bg }) |
|
hl("Cursor", { fg = c.bg, bg = c.cursor }) |
|
hl("CursorLine", { bg = c.subtle2 }) |
|
hl("CursorColumn", { bg = c.subtle2 }) |
|
hl("LineNr", { fg = "#7A7A7A" }) |
|
hl("CursorLineNr", { fg = c.fg }) |
|
hl("SignColumn", { bg = c.bg }) |
|
hl("ColorColumn", { bg = c.subtle2 }) |
|
|
|
hl("Visual", { bg = c.visual }) |
|
hl("Search", { bg = "#D9D9D9", fg = c.fg }) |
|
hl("IncSearch", { bg = "#D9D9D9", fg = c.fg }) |
|
|
|
hl("Pmenu", { bg = "#F9F9F9", fg = c.fg }) |
|
hl("PmenuSel", { bg = c.subtle2, fg = c.fg }) |
|
hl("FloatBorder", { fg = c.subtle, bg = "#F9F9F9" }) |
|
hl("NormalFloat", { bg = "#F9F9F9", fg = c.fg }) |
|
|
|
hl("WinSeparator", { fg = c.subtle }) |
|
hl("VertSplit", { fg = c.subtle }) |
|
|
|
hl("StatusLine", { bg = c.bg, fg = c.fg }) |
|
hl("StatusLineNC", { bg = c.bg, fg = "#646464" }) |
|
hl("TabLine", { bg = c.bg, fg = "#646464" }) |
|
hl("TabLineSel", { bg = c.bg, fg = c.fg, bold = true }) |
|
hl("TabLineFill", { bg = c.bg }) |
|
|
|
-- Syntax (keep mostly monochrome) |
|
hl("Comment", { fg = c.comment }) |
|
hl("Constant", { fg = "#777777" }) |
|
hl("String", { fg = "#777777" }) |
|
hl("Character", { fg = "#777777" }) |
|
hl("Number", { fg = "#777777" }) |
|
hl("Boolean", { fg = c.fg }) |
|
hl("Identifier", { fg = c.fg }) |
|
hl("Function", { fg = c.fg }) |
|
hl("Statement", { fg = c.fg, bold = true }) |
|
hl("Keyword", { fg = c.fg, bold = true }) |
|
hl("Operator", { fg = c.fg }) |
|
hl("Type", { fg = c.fg }) |
|
hl("PreProc", { fg = c.fg }) |
|
hl("Special", { fg = c.fg }) |
|
|
|
-- Diagnostics (subtle but readable) |
|
hl("DiagnosticError", { fg = c.red }) |
|
hl("DiagnosticWarn", { fg = c.yellow }) |
|
hl("DiagnosticInfo", { fg = c.blue }) |
|
hl("DiagnosticHint", { fg = c.green }) |
|
|
|
hl("DiagnosticUnderlineError", { undercurl = true, sp = c.red }) |
|
hl("DiagnosticUnderlineWarn", { undercurl = true, sp = c.yellow }) |
|
hl("DiagnosticUnderlineInfo", { undercurl = true, sp = c.blue }) |
|
hl("DiagnosticUnderlineHint", { undercurl = true, sp = c.green }) |
|
|
|
-- Diff |
|
hl("DiffAdd", { bg = "#E8F0EA" }) |
|
hl("DiffDelete", { bg = "#F5ECEC" }) |
|
hl("DiffChange", { bg = "#E8EEF4" }) |
|
hl("DiffText", { bg = "#DDE7EF" }) |
|
|
|
-- GitSigns (if you use it) |
|
hl("GitSignsAdd", { fg = c.green }) |
|
hl("GitSignsChange", { fg = c.blue }) |
|
hl("GitSignsDelete", { fg = c.red }) |
|
|
|
-- Treesitter links (keep simple) |
|
hl("@comment", { link = "Comment" }) |
|
hl("@string", { link = "String" }) |
|
hl("@number", { link = "Number" }) |
|
hl("@keyword", { link = "Keyword" }) |
|
hl("@keyword.function", { link = "Keyword" }) |
|
hl("@function", { link = "Function" }) |
|
hl("@type", { link = "Type" }) |
|
hl("@variable", { fg = c.fg }) |
|
hl("@property", { fg = c.fg }) |
|
hl("@punctuation", { fg = c.fg }) |