Created
September 19, 2024 14:35
-
-
Save mattpetters/d68ded01d2f71b0ad087e0d7b353887c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Kaolin Breeze Neovim Colorscheme | |
local M = {} | |
-- Color Palette | |
local colors = { | |
bg0 = "#F6F2EF", | |
bg1 = "#EBE8E4", | |
bg2 = "#DEDAD5", | |
bg3 = "#D2CECA", | |
bg4 = "#C9C2BD", | |
fg1 = "#4D4D4D", -- Approximation for gray1 | |
fg2 = "#666666", -- Approximation for gray2 | |
fg3 = "#808080", -- Approximation for gray3 | |
fg4 = "#999999", -- Approximation for gray4 | |
keyword = "#605DB3", | |
builtin = "#4C6190", | |
var = "#D16969", -- Approximation for crimson3 | |
const = "#D16969", -- Approximation for crimson3 | |
functions = "#A37A5E", -- Approximation for brown1 | |
type = "#4E9A06", -- Approximation for spring-green2 | |
comment = "#8AE234", -- Approximation for lime7 | |
str = "#75507B", -- Approximation for magenta4 | |
prep = "#4F9CB8", -- capri1 | |
num = "#4F9CB8", -- capri1 | |
bool = "#4F9CB8", -- capri1 | |
warning = "#CC0000", -- Approximation for vermilion3 | |
err = "#EF2929", -- Approximation for red1 | |
} | |
function M.setup() | |
vim.cmd('hi clear') | |
if vim.fn.exists('syntax_on') then | |
vim.cmd('syntax reset') | |
end | |
vim.o.background = 'light' | |
vim.o.termguicolors = true | |
vim.g.colors_name = 'kaolin-breeze' | |
local hi = function(group, opts) | |
vim.api.nvim_set_hl(0, group, opts) | |
end | |
-- Editor colors | |
hi('Normal', { fg = colors.fg1, bg = colors.bg0 }) | |
hi('LineNr', { fg = colors.fg4, bg = colors.bg1 }) | |
hi('CursorLine', { bg = colors.bg2 }) | |
hi('CursorLineNr', { fg = colors.fg1, bg = colors.bg2 }) | |
hi('Visual', { bg = colors.bg4 }) | |
-- Syntax highlighting | |
hi('Comment', { fg = colors.comment, italic = true }) | |
hi('Constant', { fg = colors.const }) | |
hi('String', { fg = colors.str }) | |
hi('Character', { fg = colors.str }) | |
hi('Number', { fg = colors.num }) | |
hi('Boolean', { fg = colors.bool }) | |
hi('Float', { fg = colors.num }) | |
hi('Identifier', { fg = colors.var }) | |
hi('Function', { fg = colors.functions }) | |
hi('Statement', { fg = colors.keyword }) | |
hi('Conditional', { fg = colors.keyword }) | |
hi('Repeat', { fg = colors.keyword }) | |
hi('Label', { fg = colors.keyword }) | |
hi('Operator', { fg = colors.keyword }) | |
hi('Keyword', { fg = colors.keyword }) | |
hi('Exception', { fg = colors.keyword }) | |
hi('PreProc', { fg = colors.prep }) | |
hi('Include', { fg = colors.prep }) | |
hi('Define', { fg = colors.prep }) | |
hi('Macro', { fg = colors.prep }) | |
hi('PreCondit', { fg = colors.prep }) | |
hi('Type', { fg = colors.type }) | |
hi('StorageClass', { fg = colors.type }) | |
hi('Structure', { fg = colors.type }) | |
hi('Typedef', { fg = colors.type }) | |
hi('Special', { fg = colors.fg1 }) | |
hi('SpecialChar', { fg = colors.fg1 }) | |
hi('Tag', { fg = colors.fg1 }) | |
hi('Delimiter', { fg = colors.fg1 }) | |
hi('SpecialComment', { fg = colors.comment }) | |
hi('Debug', { fg = colors.fg1 }) | |
hi('Underlined', { fg = colors.fg1, underline = true }) | |
hi('Ignore', { fg = colors.fg1 }) | |
hi('Error', { fg = colors.err, bold = true }) | |
hi('Todo', { fg = colors.warning, bold = true }) | |
-- Additional highlights | |
hi('VertSplit', { fg = colors.bg3, bg = colors.bg3 }) | |
hi('StatusLine', { fg = colors.fg4, bg = colors.bg2 }) | |
hi('StatusLineNC', { fg = colors.fg4, bg = colors.bg3 }) | |
hi('Pmenu', { fg = colors.fg1, bg = colors.bg2 }) | |
hi('PmenuSel', { fg = colors.bg0, bg = colors.keyword }) | |
hi('PmenuSbar', { bg = colors.bg3 }) | |
hi('PmenuThumb', { bg = colors.bg4 }) | |
hi('MatchParen', { fg = colors.fg1, bg = colors.bg4 }) | |
hi('Search', { fg = colors.bg0, bg = colors.keyword }) | |
hi('IncSearch', { fg = colors.bg0, bg = colors.prep }) | |
-- Diagnostic highlights | |
hi('DiagnosticError', { fg = colors.err }) | |
hi('DiagnosticWarn', { fg = colors.warning }) | |
hi('DiagnosticInfo', { fg = colors.builtin }) | |
hi('DiagnosticHint', { fg = colors.comment }) | |
-- TreeSitter highlights | |
hi('TSAttribute', { fg = colors.keyword }) | |
hi('TSBoolean', { fg = colors.bool }) | |
hi('TSCharacter', { fg = colors.str }) | |
hi('TSComment', { fg = colors.comment, italic = true }) | |
hi('TSConstructor', { fg = colors.type }) | |
hi('TSConditional', { fg = colors.keyword }) | |
hi('TSConstant', { fg = colors.const }) | |
hi('TSConstBuiltin', { fg = colors.builtin }) | |
hi('TSConstMacro', { fg = colors.const }) | |
hi('TSError', { fg = colors.err }) | |
hi('TSException', { fg = colors.keyword }) | |
hi('TSField', { fg = colors.var }) | |
hi('TSFloat', { fg = colors.num }) | |
hi('TSFunction', { fg = colors.functions }) | |
hi('TSFuncBuiltin', { fg = colors.builtin }) | |
hi('TSFuncMacro', { fg = colors.functions }) | |
hi('TSInclude', { fg = colors.prep }) | |
hi('TSKeyword', { fg = colors.keyword }) | |
hi('TSKeywordFunction', { fg = colors.keyword }) | |
hi('TSKeywordOperator', { fg = colors.keyword }) | |
hi('TSLabel', { fg = colors.keyword }) | |
hi('TSMethod', { fg = colors.functions }) | |
hi('TSNamespace', { fg = colors.type }) | |
hi('TSNumber', { fg = colors.num }) | |
hi('TSOperator', { fg = colors.fg1 }) | |
hi('TSParameter', { fg = colors.var }) | |
hi('TSParameterReference', { fg = colors.var }) | |
hi('TSProperty', { fg = colors.var }) | |
hi('TSPunctDelimiter', { fg = colors.fg1 }) | |
hi('TSPunctBracket', { fg = colors.fg1 }) | |
hi('TSPunctSpecial', { fg = colors.fg1 }) | |
hi('TSRepeat', { fg = colors.keyword }) | |
hi('TSString', { fg = colors.str }) | |
hi('TSStringRegex', { fg = colors.str }) | |
hi('TSStringEscape', { fg = colors.str }) | |
hi('TSSymbol', { fg = colors.const }) | |
hi('TSType', { fg = colors.type }) | |
hi('TSTypeBuiltin', { fg = colors.type }) | |
hi('TSVariable', { fg = colors.var }) | |
hi('TSVariableBuiltin', { fg = colors.builtin }) | |
end | |
return M |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment