Skip to content

Instantly share code, notes, and snippets.

@mattpetters
Created September 19, 2024 14:35
Show Gist options
  • Save mattpetters/d68ded01d2f71b0ad087e0d7b353887c to your computer and use it in GitHub Desktop.
Save mattpetters/d68ded01d2f71b0ad087e0d7b353887c to your computer and use it in GitHub Desktop.
-- 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