feat: new naming convention and better color transitions

dev
Pocco81 2 years ago
parent 4dcb70647d
commit 833ff1a98a

@ -6,15 +6,17 @@ config.options = {
term_colors = false, term_colors = false,
styles = { styles = {
comments = "italic", comments = "italic",
functions = "italic", conditionals = "italic",
keywords = "italic", loops = "NONE",
functions = "NONE",
keywords = "NONE",
strings = "NONE", strings = "NONE",
variables = "italic", variables = "NONE",
numbers = "bold", numbers = "NONE",
booleans = "bold", booleans = "NONE",
operators = "NONE",
properties = "NONE", properties = "NONE",
types = "NONE" types = "NONE",
operators = "NONE",
}, },
integrations = { integrations = {
treesitter = true, treesitter = true,

@ -2,23 +2,23 @@ local M = {}
function M.get(cp) function M.get(cp)
return { return {
BufferCurrent = { bg = cp.black4, fg = cp.white }, BufferCurrent = { bg = cp.surface1, fg = cp.text },
BufferCurrentIndex = { bg = cp.black4, fg = cp.blue }, BufferCurrentIndex = { bg = cp.surface1, fg = cp.blue },
BufferCurrentMod = { bg = cp.black4, fg = cp.yellow }, BufferCurrentMod = { bg = cp.surface1, fg = cp.yellow },
BufferCurrentSign = { bg = cp.black4, fg = cp.blue }, BufferCurrentSign = { bg = cp.surface1, fg = cp.blue },
BufferCurrentTarget = { bg = cp.black4, fg = cp.red }, BufferCurrentTarget = { bg = cp.surface1, fg = cp.red },
BufferVisible = { bg = cp.black1, fg = cp.white }, BufferVisible = { bg = cp.base1, fg = cp.text },
BufferVisibleIndex = { bg = cp.black1, fg = cp.blue }, BufferVisibleIndex = { bg = cp.base1, fg = cp.blue },
BufferVisibleMod = { bg = cp.black1, fg = cp.yellow }, BufferVisibleMod = { bg = cp.base1, fg = cp.yellow },
BufferVisibleSign = { bg = cp.black1, fg = cp.blue }, BufferVisibleSign = { bg = cp.base1, fg = cp.blue },
BufferVisibleTarget = { bg = cp.black1, fg = cp.red }, BufferVisibleTarget = { bg = cp.base1, fg = cp.red },
BufferInactive = { bg = cp.black1, fg = cp.gray0 }, BufferInactive = { bg = cp.base1, fg = cp.overlay0 },
BufferInactiveIndex = { bg = cp.black1, fg = cp.gray0 }, BufferInactiveIndex = { bg = cp.base1, fg = cp.overlay0 },
BufferInactiveMod = { bg = cp.black1, fg = cp.yellow }, BufferInactiveMod = { bg = cp.base1, fg = cp.yellow },
BufferInactiveSign = { bg = cp.black1, fg = cp.blue }, BufferInactiveSign = { bg = cp.base1, fg = cp.blue },
BufferInactiveTarget = { bg = cp.black1, fg = cp.red }, BufferInactiveTarget = { bg = cp.base1, fg = cp.red },
BufferTabpages = { bg = cp.black1, fg = cp.none }, BufferTabpages = { bg = cp.base1, fg = cp.none },
BufferTabpage = { bg = cp.black1, fg = cp.blue }, BufferTabpage = { bg = cp.base1, fg = cp.blue },
} }
end end

@ -2,25 +2,25 @@ local M = {}
function M.get(cp) function M.get(cp)
local inactive_bg = cp.black1 local inactive_bg = cp.base1
return { return {
BufferLineFill = { bg = cp.black0 }, BufferLineFill = { bg = cp.base0 },
BufferLineBackground = { fg = cp.white, bg = inactive_bg }, -- others BufferLineBackground = { fg = cp.text, bg = inactive_bg }, -- others
BufferLineBufferVisible = { fg = cp.black4, bg = inactive_bg }, BufferLineBufferVisible = { fg = cp.surface1, bg = inactive_bg },
BufferLineBufferSelected = { fg = cp.white, bg = cp.black2, style = "bold,italic" }, -- current BufferLineBufferSelected = { fg = cp.text, bg = cp.base2, style = "bold,italic" }, -- current
BufferLineTab = { fg = cp.black4, bg = cp.black2 }, BufferLineTab = { fg = cp.surface1, bg = cp.base2 },
BufferLineTabSelected = { fg = cp.red, bg = cp.blue }, BufferLineTabSelected = { fg = cp.red, bg = cp.blue },
BufferLineTabClose = { fg = cp.red, bg = inactive_bg }, BufferLineTabClose = { fg = cp.red, bg = inactive_bg },
BufferLineIndicatorSelected = { fg = cp.peach, bg = cp.black2 }, BufferLineIndicatorSelected = { fg = cp.peach, bg = cp.base2 },
-- separators -- separators
BufferLineSeparator = { fg = inactive_bg, bg = inactive_bg }, BufferLineSeparator = { fg = inactive_bg, bg = inactive_bg },
BufferLineSeparatorVisible = { fg = inactive_bg, bg = inactive_bg }, BufferLineSeparatorVisible = { fg = inactive_bg, bg = inactive_bg },
BufferLineSeparatorSelected = { fg = inactive_bg, bg = inactive_bg }, BufferLineSeparatorSelected = { fg = inactive_bg, bg = inactive_bg },
-- close buttons -- close buttons
BufferLineCloseButton = { fg = cp.black4, bg = inactive_bg }, BufferLineCloseButton = { fg = cp.surface1, bg = inactive_bg },
BufferLineCloseButtonVisible = { fg = cp.black4, bg = inactive_bg }, BufferLineCloseButtonVisible = { fg = cp.surface1, bg = inactive_bg },
BufferLineCloseButtonSelected = { fg = cp.red, bg = cp.black2 }, BufferLineCloseButtonSelected = { fg = cp.red, bg = cp.base2 },
} }
end end

@ -2,12 +2,12 @@ local M = {}
function M.get(cp) function M.get(cp)
return { return {
CmpItemAbbr = { fg = cp.gray2 }, CmpItemAbbr = { fg = cp.overlay2 },
CmpItemAbbrDeprecated = { fg = cp.gray0, style = "strikethrough" }, CmpItemAbbrDeprecated = { fg = cp.overlay0, style = "strikethrough" },
CmpItemKind = { fg = cp.blue }, CmpItemKind = { fg = cp.blue },
CmpItemMenu = { fg = cp.white }, CmpItemMenu = { fg = cp.text },
CmpItemAbbrMatch = { fg = cp.white, style = "bold" }, CmpItemAbbrMatch = { fg = cp.text, style = "bold" },
CmpItemAbbrMatchFuzzy = { fg = cp.white, style = "bold" }, CmpItemAbbrMatchFuzzy = { fg = cp.text, style = "bold" },
-- kind support -- kind support
CmpItemKindSnippet = { fg = cp.mauve }, CmpItemKindSnippet = { fg = cp.mauve },

@ -30,9 +30,9 @@ local clrs = require("catppuccin.core.color_palette")
-- settings -- settings
local sett = { local sett = {
bkg = clrs.black3, bkg = clrs.surface0,
diffs = clrs.mauve, diffs = clrs.mauve,
extras = clrs.gray1, extras = clrs.overlay1,
curr_file = clrs.maroon, curr_file = clrs.maroon,
curr_dir = clrs.flamingo, curr_dir = clrs.flamingo,
} }

@ -2,9 +2,9 @@ local M = {}
function M.get(cp) function M.get(cp)
return { return {
GitSignsAdd = { fg = cp.green, bg = cnf.transparent_background and cp.none or cp.black2 }, -- diff mode: Added line |diff.txt| GitSignsAdd = { fg = cp.green, bg = cnf.transparent_background and cp.none or cp.base2 }, -- diff mode: Added line |diff.txt|
GitSignsChange = { fg = cp.yellow, bg = cnf.transparent_background and cp.none or cp.black2 }, -- diff mode: Changed line |diff.txt| GitSignsChange = { fg = cp.yellow, bg = cnf.transparent_background and cp.none or cp.base2 }, -- diff mode: Changed line |diff.txt|
GitSignsDelete = { fg = cp.red, bg = cnf.transparent_background and cp.none or cp.black2 }, -- diff mode: Deleted line |diff.txt| GitSignsDelete = { fg = cp.red, bg = cnf.transparent_background and cp.none or cp.base2 }, -- diff mode: Deleted line |diff.txt|
} }
end end

@ -2,10 +2,10 @@ local M = {}
function M.get(cp) function M.get(cp)
return { return {
HopNextKey = { bg = cp.black2, fg = cp.peach, style = "bold,underline" }, HopNextKey = { bg = cp.base2, fg = cp.peach, style = "bold,underline" },
HopNextKey1 = { bg = cp.black2, fg = cp.blue, style = "bold" }, HopNextKey1 = { bg = cp.base2, fg = cp.blue, style = "bold" },
HopNextKey2 = { bg = cp.black2, fg = cp.teal, style = "bold,italic" }, HopNextKey2 = { bg = cp.base2, fg = cp.teal, style = "bold,italic" },
HopUnmatched = { bg = cp.black2, fg = cp.gray0 }, HopUnmatched = { bg = cp.base2, fg = cp.overlay0 },
} }
end end

@ -3,8 +3,8 @@ local M = {}
function M.get(cp) function M.get(cp)
local hi = { local hi = {
IndentBlanklineChar = { fg = cp.black3 }, IndentBlanklineChar = { fg = cp.surface0 },
IndentBlanklineContextChar = { fg = cp.white }, IndentBlanklineContextChar = { fg = cp.text },
} }
if cnf.integrations.indent_blankline.colored_indent_levels then if cnf.integrations.indent_blankline.colored_indent_levels then

@ -28,20 +28,20 @@ function M.get(cp)
end end
return { return {
LightspeedLabel = {bg = cp.black4, fg = cp.white}, LightspeedLabel = {bg = cp.surface1, fg = cp.text},
LightspeedOverlapped = {bg = cp.black4, fg = cp.white}, LightspeedOverlapped = {bg = cp.surface1, fg = cp.text},
LightspeedLabelDistant = {bg = cp.mauve, fg = cp.white}, LightspeedLabelDistant = {bg = cp.mauve, fg = cp.text},
LightspeedLabelDistantOverlapped = {bg = cp.mauve, fg = cp.white}, LightspeedLabelDistantOverlapped = {bg = cp.mauve, fg = cp.text},
LightspeedShortcut = {bg = cp.black2, fg = cp.peach, style = "italic"}, LightspeedShortcut = {bg = cp.base2, fg = cp.peach, style = "italic"},
LightspeedShortcutOverlapped = {bg = cp.black2, fg = cp.peach, style = "bold"}, LightspeedShortcutOverlapped = {bg = cp.base2, fg = cp.peach, style = "bold"},
LightspeedMaskedChar = {bg = cp.black2, fg = cp.red, style = "undercurl"}, LightspeedMaskedChar = {bg = cp.base2, fg = cp.red, style = "undercurl"},
LightspeedGreyWash = {bg = cp.black2, fg = cp.gray0}, LightspeedGreyWash = {bg = cp.base2, fg = cp.overlay0},
LightspeedUnlabeledMatch = {bg = cp.black2, fg = cp.red, style = "underline"}, LightspeedUnlabeledMatch = {bg = cp.base2, fg = cp.red, style = "underline"},
LightspeedOneCharMatch = {bg = cp.black2, fg = cp.red, style = "underline"}, LightspeedOneCharMatch = {bg = cp.base2, fg = cp.red, style = "underline"},
LightspeedUniqueChar = {bg = cp.black2, fg = cp.green, style = "strikethrough"}, LightspeedUniqueChar = {bg = cp.base2, fg = cp.green, style = "strikethrough"},
LightspeedPendingOpArea = {bg = cp.black2, fg = cp.green, style = "strikethrough"}, LightspeedPendingOpArea = {bg = cp.base2, fg = cp.green, style = "strikethrough"},
LightspeedPendingChangeOpArea = {bg = cp.black2, fg = cp.green, style = "strikethrough"}, LightspeedPendingChangeOpArea = {bg = cp.base2, fg = cp.green, style = "strikethrough"},
LightspeedCursor = {fg = cp.black2, bg = cp.white}, LightspeedCursor = {fg = cp.base2, bg = cp.text},
} }
end end

@ -6,14 +6,14 @@ function M.get(cp)
DiagnosticWarning = { fg = cp.yellow }, DiagnosticWarning = { fg = cp.yellow },
DiagnosticInformation = { fg = cp.blue }, DiagnosticInformation = { fg = cp.blue },
DiagnosticHint = { fg = cp.hint }, DiagnosticHint = { fg = cp.hint },
LspFloatWinNormal = { bg = cp.black0 }, LspFloatWinNormal = { bg = cp.base0 },
LspFloatWinBorder = { fg = cp.blue }, LspFloatWinBorder = { fg = cp.blue },
LspSagaBorderTitle = { fg = cp.flamingo }, LspSagaBorderTitle = { fg = cp.flamingo },
LspSagaHoverBorder = { fg = cp.blue }, LspSagaHoverBorder = { fg = cp.blue },
LspSagaRenameBorder = { fg = cp.teal }, LspSagaRenameBorder = { fg = cp.teal },
LspSagaDefPreviewBorder = { fg = cp.teal }, LspSagaDefPreviewBorder = { fg = cp.teal },
LspSagaCodeActionBorder = { fg = cp.blue }, LspSagaCodeActionBorder = { fg = cp.blue },
LspSagaFinderSelection = { fg = cp.black4 }, LspSagaFinderSelection = { fg = cp.surface1 },
LspSagaCodeActionTitle = { fg = cp.blue1 }, LspSagaCodeActionTitle = { fg = cp.blue1 },
LspSagaCodeActionContent = { fg = cp.purple }, LspSagaCodeActionContent = { fg = cp.purple },
LspSagaSignatureHelpBorder = { fg = cp.red }, LspSagaSignatureHelpBorder = { fg = cp.red },

@ -3,8 +3,8 @@ local M = {}
function M.get(cp) function M.get(cp)
return { return {
LspTroubleText = { fg = cp.green }, LspTroubleText = { fg = cp.green },
LspTroubleCount = { fg = cp.pink, bg = cp.black4 }, LspTroubleCount = { fg = cp.pink, bg = cp.surface1 },
LspTroubleNormal = { fg = cp.white, bg = cp.black0 }, LspTroubleNormal = { fg = cp.text, bg = cp.base0 },
} }
end end

@ -16,14 +16,14 @@ function M.get(cp)
-- These groups are for the native LSP cliencp. Some other LSP clients may -- These groups are for the native LSP cliencp. Some other LSP clients may
-- use these groups, or use their own. Consult your LSP client's -- use these groups, or use their own. Consult your LSP client's
-- documentation. -- documentation.
LspReferenceText = { bg = cp.black4 }, -- used for highlighting "text" references LspReferenceText = { bg = cp.surface1 }, -- used for highlighting "text" references
LspReferenceRead = { bg = cp.black4 }, -- used for highlighting "read" references LspReferenceRead = { bg = cp.surface1 }, -- used for highlighting "read" references
LspReferenceWrite = { bg = cp.black4 }, -- used for highlighting "write" references LspReferenceWrite = { bg = cp.surface1 }, -- used for highlighting "write" references
-- hightlight diagnostics in numberline -- hightlight diagnostics in numberline
DiagnosticError = { bg = util.darken(error, darkening_percentage, cp.black2), fg = error, style = virtual_text.errors }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default DiagnosticError = { bg = util.darken(error, darkening_percentage, cp.base2), fg = error, style = virtual_text.errors }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
DiagnosticWarn = { bg = util.darken(warning, darkening_percentage, cp.black2), fg = warning, style = virtual_text.warnings }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default DiagnosticWarn = { bg = util.darken(warning, darkening_percentage, cp.base2), fg = warning, style = virtual_text.warnings }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
DiagnosticInfo = { bg = util.darken(info, darkening_percentage, cp.black2), fg = info, style = virtual_text.information }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default DiagnosticInfo = { bg = util.darken(info, darkening_percentage, cp.base2), fg = info, style = virtual_text.information }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
DiagnosticHint = { bg = util.darken(hint, darkening_percentage, cp.black2), fg = hint, style = virtual_text.hints }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default DiagnosticHint = { bg = util.darken(hint, darkening_percentage, cp.base2), fg = hint, style = virtual_text.hints }, -- Used as the base highlight group. Other Diagnostic highlights link to this by default
-- util. -- util.
-- for nvim nightly -- for nvim nightly
@ -54,7 +54,7 @@ function M.get(cp)
LspDiagnosticsUnderlineWarning = { style = underlines.warnings, sp = warning }, -- Used to underline "Warning" diagnostics LspDiagnosticsUnderlineWarning = { style = underlines.warnings, sp = warning }, -- Used to underline "Warning" diagnostics
LspDiagnosticsUnderlineInformation = { style = underlines.information, sp = info }, -- Used to underline "Information" diagnostics LspDiagnosticsUnderlineInformation = { style = underlines.information, sp = info }, -- Used to underline "Information" diagnostics
LspDiagnosticsUnderlineHint = { style = underlines.hints, sp = hint }, -- Used to underline "Hint" diagnostics LspDiagnosticsUnderlineHint = { style = underlines.hints, sp = hint }, -- Used to underline "Hint" diagnostics
LspCodeLens = { fg = cp.gray0 }, -- virtual text of the codelens LspCodeLens = { fg = cp.overlay0 }, -- virtual text of the codelens
} }
end end

@ -4,11 +4,11 @@ function M.get(cp)
return { return {
NeogitBranch = { fg = cp.pink }, NeogitBranch = { fg = cp.pink },
NeogitRemote = { fg = cp.pink }, NeogitRemote = { fg = cp.pink },
NeogitHunkHeader = { bg = cp.blue, fg = cp.white }, NeogitHunkHeader = { bg = cp.blue, fg = cp.text },
NeogitHunkHeaderHighlight = { bg = cp.black2, fg = cp.blue }, NeogitHunkHeaderHighlight = { bg = cp.base2, fg = cp.blue },
NeogitDiffContextHighlight = { bg = cp.black1, fg = cp.gray2 }, NeogitDiffContextHighlight = { bg = cp.base1, fg = cp.overlay2 },
NeogitDiffDeleteHighlight = { bg = cp.black1, fg = cp.red }, NeogitDiffDeleteHighlight = { bg = cp.base1, fg = cp.red },
NeogitDiffAddHighlight = { bg = cp.black1, fg = cp.green }, NeogitDiffAddHighlight = { bg = cp.base1, fg = cp.green },
} }
end end

@ -13,8 +13,8 @@ function M.get(cp)
return { return {
NeoTreeDirectoryName = { fg = cp.blue }, NeoTreeDirectoryName = { fg = cp.blue },
NeoTreeDirectoryIcon = { fg = cp.blue }, NeoTreeDirectoryIcon = { fg = cp.blue },
NeoTreeNormal = { fg = cp.white, bg = neotree.transparent_panel and "NONE" or cp.black1 }, NeoTreeNormal = { fg = cp.text, bg = neotree.transparent_panel and "NONE" or cp.base1 },
NeoTreeIndentMarker = { fg = cp.gray0 }, NeoTreeIndentMarker = { fg = cp.overlay0 },
NeoTreeRootName = { fg = root_dir_color, style = "bold" }, NeoTreeRootName = { fg = root_dir_color, style = "bold" },
NeoTreeSymbolicLinkTarget = { fg = cp.pink }, NeoTreeSymbolicLinkTarget = { fg = cp.pink },
NeoTreeGitModified = { fg = cp.yellow }, NeoTreeGitModified = { fg = cp.yellow },

@ -4,7 +4,7 @@ function M.get(cp)
local config = require("catppuccin.config").options local config = require("catppuccin.config").options
local nvimtree = config.integrations.nvimtree local nvimtree = config.integrations.nvimtree
local root_dir_color = cp.black1 local root_dir_color = cp.base1
if nvimtree.show_root == true then if nvimtree.show_root == true then
root_dir_color = cp.blue root_dir_color = cp.blue
end end
@ -13,19 +13,19 @@ function M.get(cp)
return { return {
NvimTreeFolderName = { fg = cp.blue }, NvimTreeFolderName = { fg = cp.blue },
NvimTreeFolderIcon = { fg = cp.blue }, NvimTreeFolderIcon = { fg = cp.blue },
NvimTreeNormal = { fg = cp.white, bg = nvimtree.transparent_panel and "NONE" or cp.black1 }, NvimTreeNormal = { fg = cp.text, bg = nvimtree.transparent_panel and "NONE" or cp.base1 },
NvimTreeOpenedFolderName = { fg = cp.blue }, NvimTreeOpenedFolderName = { fg = cp.blue },
NvimTreeEmptyFolderName = { fg = cp.blue }, NvimTreeEmptyFolderName = { fg = cp.blue },
NvimTreeIndentMarker = { fg = cp.gray0 }, NvimTreeIndentMarker = { fg = cp.overlay0 },
NvimTreeVertSplit = { fg = cp.black2, bg = cp.black2 }, NvimTreeVertSplit = { fg = cp.base2, bg = cp.base2 },
NvimTreeRootFolder = { fg = root_dir_color, style = "bold" }, NvimTreeRootFolder = { fg = root_dir_color, style = "bold" },
NvimTreeSymlink = { fg = cp.pink }, NvimTreeSymlink = { fg = cp.pink },
NvimTreeStatuslineNc = { fg = cp.black1, bg = cp.black1 }, NvimTreeStatuslineNc = { fg = cp.base1, bg = cp.base1 },
NvimTreeGitDirty = { fg = cp.yellow }, NvimTreeGitDirty = { fg = cp.yellow },
NvimTreeGitNew = { fg = cp.blue }, NvimTreeGitNew = { fg = cp.blue },
NvimTreeGitDeleted = { fg = cp.red }, NvimTreeGitDeleted = { fg = cp.red },
NvimTreeSpecialFile = { fg = cp.flamingo }, NvimTreeSpecialFile = { fg = cp.flamingo },
NvimTreeImageFile = { fg = cp.white }, NvimTreeImageFile = { fg = cp.text },
NvimTreeOpenedFile = { fg = cp.pink }, NvimTreeOpenedFile = { fg = cp.pink },
} }
end end

@ -2,7 +2,7 @@ local M = {}
function M.get(cp) function M.get(cp)
return { return {
FocusedSymbol = { fg = cp.yellow, bg = cp.black2 }, FocusedSymbol = { fg = cp.yellow, bg = cp.base2 },
} }
end end

@ -4,7 +4,7 @@ function M.get(cp)
return { return {
TelescopeBorder = { fg = cp.blue }, TelescopeBorder = { fg = cp.blue },
TelescopeSelectionCaret = { fg = cp.flamingo }, TelescopeSelectionCaret = { fg = cp.flamingo },
TelescopeSelection = { fg = cp.white, bg = cp.black3, style = "bold" }, TelescopeSelection = { fg = cp.text, bg = cp.surface0, style = "bold" },
TelescopeMatching = { fg = cp.blue }, TelescopeMatching = { fg = cp.blue },
} }
end end

@ -1,7 +1,7 @@
local M = {} local M = {}
function M.get(cp) function M.get(cp)
-- local delimeters = cp.gray2 -- local delimeters = cp.overlay2
local operators = cp.sky local operators = cp.sky
local cl = cp.mauve -- conditionals, loops local cl = cp.mauve -- conditionals, loops
local keywords = cp.mauve local keywords = cp.mauve
@ -27,8 +27,8 @@ function M.get(cp)
TSConstructor = { fg = cp.sapphire }, -- For constructor calls and definitions: = { } in Lua, and Java constructors. TSConstructor = { fg = cp.sapphire }, -- For constructor calls and definitions: = { } in Lua, and Java constructors.
TSConstant = { fg = cp.peach }, -- For constants TSConstant = { fg = cp.peach }, -- For constants
TSConditional = { fg = cl, style = cnf.styles.keywords or "NONE" }, -- For keywords related to conditionnals. TSConditional = { fg = cl, style = cnf.styles.conditionals or "NONE" }, -- For keywords related to conditionnals.
TSRepeat = { fg = cl, style = cnf.styles.keywords or "NONE" }, -- For keywords related to loops. TSRepeat = { fg = cl, style = cnf.styles.loops or "NONE" }, -- For keywords related to loops.
TSException = { fg = cp.mauve, style = cnf.styles.keywords or "NONE" }, -- For exception related keywords. TSException = { fg = cp.mauve, style = cnf.styles.keywords or "NONE" }, -- For exception related keywords.
-- builtin -- builtin
@ -49,29 +49,29 @@ function M.get(cp)
-- TSAnnotation = { }; -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information. -- TSAnnotation = { }; -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
-- TSAttribute = { }; -- (unstable) TODO: docs -- TSAttribute = { }; -- (unstable) TODO: docs
-- TSCharacter = { }; -- For characters. -- TSCharacter = { }; -- For characters.
-- TSgray0 = { }; -- For gray0 blocks. -- TSoverlay0 = { }; -- For overlay0 blocks.
TSNote = { fg = cp.black2, bg = cp.blue }, TSNote = { fg = cp.base2, bg = cp.blue },
TSWarning = { fg = cp.black2, bg = cp.yellow }, TSWarning = { fg = cp.base2, bg = cp.yellow },
TSDanger = { fg = cp.black2, bg = cp.red }, TSDanger = { fg = cp.base2, bg = cp.red },
TSConstMacro = { fg = cp.mauve }; -- For constants that are defined by macros: NULL in cp. TSConstMacro = { fg = cp.mauve }; -- For constants that are defined by macros: NULL in cp.
-- TSError = { fg = cp.red }, -- For syntax/parser errors. -- TSError = { fg = cp.red }, -- For syntax/parser errors.
-- rustTSField = { fg = cp.black4 }, -- For fields. -- rustTSField = { fg = cp.surface1 }, -- For fields.
TSLabel = { fg = cp.sapphire }, -- For labels: label: in C and :label: in Lua. TSLabel = { fg = cp.sapphire }, -- For labels: label: in C and :label: in Lua.
TSMethod = { fg = cp.blue, style = cnf.styles.functions or "NONE" }, -- For method calls and definitions. TSMethod = { fg = cp.blue, style = cnf.styles.functions or "NONE" }, -- For method calls and definitions.
-- TSNone = { }; -- TODO: docs -- TSNone = { }; -- TODO: docs
-- TSParameterReference= { }; -- For references to parameters of a function. -- TSParameterReference= { }; -- For references to parameters of a function.
tomlTSProperty = { fg = cp.blue }, -- Differentiates between string and properties tomlTSProperty = { fg = cp.blue }, -- Differentiates between string and properties
TSPunctDelimiter = { fg = cp.gray2 }, -- For delimiters ie: . TSPunctDelimiter = { fg = cp.overlay2 }, -- For delimiters ie: .
-- TSPunctBracket = { fg = delimeters }, -- For brackets and parenthesis. -- TSPunctBracket = { fg = delimeters }, -- For brackets and parenthesis.
TSPunctBracket = { fg = cp.gray2 }, -- For brackets and parenthesis. TSPunctBracket = { fg = cp.overlay2 }, -- For brackets and parenthesis.
TSString = { fg = cp.green, style = cnf.styles.strings or "NONE" }, -- For strings. TSString = { fg = cp.green, style = cnf.styles.strings or "NONE" }, -- For strings.
TSStringRegex = { fg = cp.peach, style = cnf.styles.strings or "NONE" }, -- For regexes. TSStringRegex = { fg = cp.peach, style = cnf.styles.strings or "NONE" }, -- For regexes.
-- TSSymbol = { }; -- For identifiers referring to symbols or atoms. -- TSSymbol = { }; -- For identifiers referring to symbols or atoms.
TSVariable = { fg = cp.white, style = cnf.styles.variables or "NONE" }, -- Any variable name that does not have another highlighcp. TSVariable = { fg = cp.text, style = cnf.styles.variables or "NONE" }, -- Any variable name that does not have another highlighcp.
TSTagAttribute = { fg = cp.teal, style = "italic" }, -- Tags like html tag names. TSTagAttribute = { fg = cp.teal, style = "italic" }, -- Tags like html tag names.
TSTag = { fg = cp.mauve }, -- Tags like html tag names. TSTag = { fg = cp.mauve }, -- Tags like html tag names.
TSTagDelimiter = { fg = cp.sky }, -- Tag delimiter like < > / TSTagDelimiter = { fg = cp.sky }, -- Tag delimiter like < > /
TSText = { fg = cp.white }, -- For strings considerated text in a markup language. TSText = { fg = cp.text }, -- For strings considerated text in a markup language.
-- TSEmphasis = { }; -- For text to be represented with emphasis. -- TSEmphasis = { }; -- For text to be represented with emphasis.
-- TSUnderline = { }; -- For text to be represented with an underline. -- TSUnderline = { }; -- For text to be represented with an underline.
-- TSStrike = { }; -- For strikethrough texcp. -- TSStrike = { }; -- For strikethrough texcp.
@ -106,7 +106,7 @@ function M.get(cp)
tsxTSTagAttribute = { fg = cp.mauve }, tsxTSTagAttribute = { fg = cp.mauve },
-- cpp -- cpp
cppTSProperty = { fg = cp.white }, cppTSProperty = { fg = cp.text },
-- yaml -- yaml
yamlTSField = { fg = cp.blue }, -- For fields. yamlTSField = { fg = cp.blue }, -- For fields.

@ -2,7 +2,7 @@ local M = {}
function M.get(cp) function M.get(cp)
local transparent_background = require("catppuccin.config").options.transparent_background local transparent_background = require("catppuccin.config").options.transparent_background
local bg_highlight = transparent_background and "NONE" or cp.black2 local bg_highlight = transparent_background and "NONE" or cp.base2
return { return {
rainbowcol1 = {bg = bg_highlight, fg = cp.red}, rainbowcol1 = {bg = bg_highlight, fg = cp.red},
rainbowcol2 = {bg = bg_highlight, fg = cp.teal}, rainbowcol2 = {bg = bg_highlight, fg = cp.teal},

@ -2,8 +2,8 @@ local M = {}
function M.get(cp) function M.get(cp)
return { return {
Sneak = { fg = cp.gray2, bg = cp.pink }, Sneak = { fg = cp.overlay2, bg = cp.pink },
SneakScope = { bg = cp.white }, SneakScope = { bg = cp.text },
} }
end end

@ -5,10 +5,10 @@ function M.get(cp)
WhichKey = { fg = cp.flamingo }, WhichKey = { fg = cp.flamingo },
WhichKeyGroup = { fg = cp.blue }, WhichKeyGroup = { fg = cp.blue },
WhichKeyDesc = { fg = cp.pink }, WhichKeyDesc = { fg = cp.pink },
WhichKeySeperator = { fg = cp.gray0 }, WhichKeySeperator = { fg = cp.overlay0 },
WhichKeySeparator = { fg = cp.gray0 }, WhichKeySeparator = { fg = cp.overlay0 },
WhichKeyFloat = { bg = cp.black0 }, WhichKeyFloat = { bg = cp.base0 },
WhichKeyValue = { fg = cp.gray0 }, WhichKeyValue = { fg = cp.overlay0 },
} }
end end

@ -10,7 +10,7 @@ local function get_properties()
background = "dark", background = "dark",
} }
if colors_util.assert_brightness(cp.black2) then if colors_util.assert_brightness(cp.base2) then
props["background"] = "light" props["background"] = "light"
end end
@ -21,65 +21,65 @@ local function get_base()
cp.none = "NONE" cp.none = "NONE"
return { return {
Comment = { fg = cp.gray0, style = cnf.styles.comments }, -- just comments Comment = { fg = cp.surface2, style = cnf.styles.comments }, -- just comments
ColorColumn = { bg = cp.black3 }, -- used for the columns set with 'colorcolumn' ColorColumn = { bg = cp.surface0 }, -- used for the columns set with 'colorcolumn'
Conceal = { fg = cp.gray1 }, -- placeholder characters substituted for concealed text (see 'conceallevel') Conceal = { fg = cp.overlay1 }, -- placeholder characters substituted for concealed text (see 'conceallevel')
Cursor = { fg = cp.black2, bg = cp.white }, -- character under the cursor Cursor = { fg = cp.base2, bg = cp.text }, -- character under the cursor
lCursor = { fg = cp.black2, bg = cp.white }, -- the character under the cursor when |language-mapping| is used (see 'guicursor') lCursor = { fg = cp.base2, bg = cp.text }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
CursorIM = { fg = cp.black2, bg = cp.white }, -- like Cursor, but used when in IME mode |CursorIM| CursorIM = { fg = cp.base2, bg = cp.text }, -- like Cursor, but used when in IME mode |CursorIM|
CursorColumn = { bg = cp.black1 }, -- Screen-column at the cursor, when 'cursorcolumn' is secp. CursorColumn = { bg = cp.base1 }, -- Screen-column at the cursor, when 'cursorcolumn' is secp.
CursorLine = { bg = colors_util.vary_color({latte = util.lighten(cp.black1, 0.70, cp.black2)}, util.darken(cp.black3, 0.64, cp.black2)) }, -- Screen-line at the cursor, when 'cursorline' is secp. Low-priority if foreground (ctermfg OR guifg) is not secp. CursorLine = { bg = colors_util.vary_color({latte = util.lighten(cp.base1, 0.70, cp.base2)}, util.darken(cp.surface0, 0.64, cp.base2)) }, -- Screen-line at the cursor, when 'cursorline' is secp. Low-priority if foreground (ctermfg OR guifg) is not secp.
Directory = { fg = cp.blue }, -- directory names (and other special names in listings) Directory = { fg = cp.blue }, -- directory names (and other special names in listings)
EndOfBuffer = { fg = cp.black2 }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. EndOfBuffer = { fg = cp.base2 }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
ErrorMsg = { fg = cp.red, style = "bold,italic" }, -- error messages on the command line ErrorMsg = { fg = cp.red, style = "bold,italic" }, -- error messages on the command line
VertSplit = { fg = cp.black0 }, -- the column separating vertically split windows VertSplit = { fg = cp.base0 }, -- the column separating vertically split windows
Folded = { fg = cp.blue, bg = cp.black4 }, -- line used for closed folds Folded = { fg = cp.blue, bg = cp.surface1 }, -- line used for closed folds
FoldColumn = { bg = cp.black2, fg = cp.gray0 }, -- 'foldcolumn' FoldColumn = { bg = cp.base2, fg = cp.overlay0 }, -- 'foldcolumn'
SignColumn = { bg = cnf.transparent_background and cp.none or cp.black2, fg = cp.black4 }, -- column where |signs| are displayed SignColumn = { bg = cnf.transparent_background and cp.none or cp.base2, fg = cp.surface1 }, -- column where |signs| are displayed
SignColumnSB = { bg = cp.black0, fg = cp.black4 }, -- column where |signs| are displayed SignColumnSB = { bg = cp.base0, fg = cp.surface1 }, -- column where |signs| are displayed
Substitute = { bg = cp.black4, fg = cp.pink }, -- |:substitute| replacement text highlighting Substitute = { bg = cp.surface1, fg = cp.pink }, -- |:substitute| replacement text highlighting
LineNr = { fg = colors_util.vary_color({latte = cp.black0}, cp.black4) }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is secp. LineNr = { fg = colors_util.vary_color({latte = cp.base0}, cp.surface1) }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is secp.
CursorLineNr = { fg = cp.lavender }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. highlights the number in numberline. CursorLineNr = { fg = cp.lavender }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. highlights the number in numberline.
MatchParen = { fg = cp.peach, style = "bold" }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| MatchParen = { fg = cp.peach, style = "bold" }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
ModeMsg = { fg = cp.white, style = "bold" }, -- 'showmode' message (e.g., "-- INSERT -- ") ModeMsg = { fg = cp.text, style = "bold" }, -- 'showmode' message (e.g., "-- INSERT -- ")
MsgArea = { fg = cp.white }, -- Area for messages and cmdline MsgArea = { fg = cp.text }, -- Area for messages and cmdline
MsgSeparator = {}, -- Separator for scrolled messages, `msgsep` flag of 'display' MsgSeparator = {}, -- Separator for scrolled messages, `msgsep` flag of 'display'
MoreMsg = { fg = cp.blue }, -- |more-prompt| MoreMsg = { fg = cp.blue }, -- |more-prompt|
NonText = { fg = cp.gray0 }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. NonText = { fg = cp.overlay0 }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
Normal = { fg = cp.white, bg = cnf.transparent_background and cp.none or cp.black2 }, -- normal text Normal = { fg = cp.text, bg = cnf.transparent_background and cp.none or cp.base2 }, -- normal text
NormalNC = { fg = cp.white, bg = cnf.transparent_background and cp.none or cp.black2 }, -- normal text in non-current windows NormalNC = { fg = cp.text, bg = cnf.transparent_background and cp.none or cp.base2 }, -- normal text in non-current windows
NormalSB = { fg = cp.white, bg = cp.black0 }, -- normal text in non-current windows NormalSB = { fg = cp.text, bg = cp.base0 }, -- normal text in non-current windows
NormalFloat = { fg = cp.white, bg = cp.black1 }, -- Normal text in floating windows. NormalFloat = { fg = cp.text, bg = cp.base1 }, -- Normal text in floating windows.
FloatBorder = { fg = cp.blue }, FloatBorder = { fg = cp.blue },
Pmenu = { bg = cp.black3, fg = cp.gray2 }, -- Popup menu: normal item. Pmenu = { bg = cp.surface0, fg = cp.overlay2 }, -- Popup menu: normal item.
PmenuSel = { fg = cp.white, bg = cp.black4, style = "bold" }, -- Popup menu: selected item. PmenuSel = { fg = cp.text, bg = cp.surface1, style = "bold" }, -- Popup menu: selected item.
PmenuSbar = { bg = cp.black4 }, -- Popup menu: scrollbar. PmenuSbar = { bg = cp.surface1 }, -- Popup menu: scrollbar.
PmenuThumb = { bg = cp.gray0 }, -- Popup menu: Thumb of the scrollbar. PmenuThumb = { bg = cp.overlay0 }, -- Popup menu: Thumb of the scrollbar.
Question = { fg = cp.blue }, -- |hit-enter| prompt and yes/no questions Question = { fg = cp.blue }, -- |hit-enter| prompt and yes/no questions
QuickFixLine = { bg = cp.black4, style = "bold" }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. QuickFixLine = { bg = cp.surface1, style = "bold" }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
Search = { bg = cp.black4, fg = cp.pink, style = "bold" }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand oucp. Search = { bg = cp.surface1, fg = cp.pink, style = "bold" }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand oucp.
IncSearch = { bg = cp.pink, fg = cp.black4 }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" IncSearch = { bg = cp.pink, fg = cp.surface1 }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
SpecialKey = { fg = cp.white }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| SpecialKey = { fg = cp.text }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' textspace. |hl-Whitespace|
SpellBad = { sp = cp.red, style = "undercurl" }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise. SpellBad = { sp = cp.red, style = "undercurl" }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
SpellCap = { sp = cp.yellow, style = "undercurl" }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise. SpellCap = { sp = cp.yellow, style = "undercurl" }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
SpellLocal = { sp = cp.blue, style = "undercurl" }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. SpellLocal = { sp = cp.blue, style = "undercurl" }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
SpellRare = { sp = cp.green, style = "undercurl" }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. SpellRare = { sp = cp.green, style = "undercurl" }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
StatusLine = { fg = cp.white, bg = cp.black1 }, -- status line of current window StatusLine = { fg = cp.text, bg = cp.base1 }, -- status line of current window
StatusLineNC = { fg = cp.black4, bg = cp.black1 }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. StatusLineNC = { fg = cp.surface1, bg = cp.base1 }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
TabLine = { bg = cp.black1, fg = cp.black4 }, -- tab pages line, not active tab page label TabLine = { bg = cp.base1, fg = cp.surface1 }, -- tab pages line, not active tab page label
TabLineFill = { bg = cp.black }, -- tab pages line, where there are no labels TabLineFill = { bg = cp.black }, -- tab pages line, where there are no labels
TabLineSel = { fg = cp.green, bg = cp.black4 }, -- tab pages line, active tab page label TabLineSel = { fg = cp.green, bg = cp.surface1 }, -- tab pages line, active tab page label
Title = { fg = cp.blue, style = "bold" }, -- titles for output from ":set all", ":autocmd" etcp. Title = { fg = cp.blue, style = "bold" }, -- titles for output from ":set all", ":autocmd" etcp.
Visual = { bg = cp.black4, style = "bold" }, -- Visual mode selection Visual = { bg = cp.surface1, style = "bold" }, -- Visual mode selection
VisualNOS = { bg = cp.black4, style = "bold" }, -- Visual mode selection when vim is "Not Owning the Selection". VisualNOS = { bg = cp.surface1, style = "bold" }, -- Visual mode selection when vim is "Not Owning the Selection".
WarningMsg = { fg = cp.yellow }, -- warning messages WarningMsg = { fg = cp.yellow }, -- warning messages
Whitespace = { fg = cp.black4 }, -- "nbsp", "space", "tab" and "trail" in 'listchars' Whitespace = { fg = cp.surface1 }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
WildMenu = { bg = cp.gray0 }, -- current match in 'wildmenu' completion WildMenu = { bg = cp.overlay0 }, -- current match in 'wildmenu' completion
-- These groups are not listed as default vim groups, -- These groups are not listed as default vim groups,
-- but they are defacto standard group names for syntax highlighting. -- but they are defacto standard group names for syntax highlighting.
-- gray0ed out groups should chain up to their "preferred" group by -- overlay0ed out groups should chain up to their "preferred" group by
-- default, -- default,
-- Ungray0 and edit if you want more specific syntax highlighting. -- Unoverlay0 and edit if you want more specific syntax highlighting.
-- code itself -- code itself
@ -113,7 +113,7 @@ local function get_base()
-- SpecialChar = { }, -- special character in a constant -- SpecialChar = { }, -- special character in a constant
-- Tag = { }, -- you can use CTRL-] on this -- Tag = { }, -- you can use CTRL-] on this
-- Delimiter = { }, -- character that needs attention -- Delimiter = { }, -- character that needs attention
-- Specialgray0= { }, -- special things inside a gray0 -- Specialoverlay0= { }, -- special things inside a overlay0
-- Debug = { }, -- debugging statements -- Debug = { }, -- debugging statements
Underlined = { style = "underline" }, -- (preferred) text that stands out, HTML links Underlined = { style = "underline" }, -- (preferred) text that stands out, HTML links
@ -123,24 +123,24 @@ local function get_base()
-- Ignore = { }, -- (preferred) left blank, hidden |hl-Ignore| -- Ignore = { }, -- (preferred) left blank, hidden |hl-Ignore|
Error = { fg = cp.red }, -- (preferred) any erroneous construct Error = { fg = cp.red }, -- (preferred) any erroneous construct
Todo = { bg = cp.yellow, fg = cp.black2, style = "bold" }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX Todo = { bg = cp.yellow, fg = cp.base2, style = "bold" }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX
qfLineNr = { fg = cp.yellow }, qfLineNr = { fg = cp.yellow },
qfFileName = { fg = cp.blue }, qfFileName = { fg = cp.blue },
htmlH1 = { fg = cp.pink, style = "bold" }, htmlH1 = { fg = cp.pink, style = "bold" },
htmlH2 = { fg = cp.blue, style = "bold" }, htmlH2 = { fg = cp.blue, style = "bold" },
-- mkdHeading = { fg = cp.peach, style = "bold" }, -- mkdHeading = { fg = cp.peach, style = "bold" },
-- mkdCode = { bg = cp.terminal_black, fg = cp.white }, -- mkdCode = { bg = cp.terminal_black, fg = cp.text },
mkdCodeDelimiter = { bg = cp.black2, fg = cp.white }, mkdCodeDelimiter = { bg = cp.base2, fg = cp.text },
mkdCodeStart = { fg = cp.flamingo, style = "bold" }, mkdCodeStart = { fg = cp.flamingo, style = "bold" },
mkdCodeEnd = { fg = cp.flamingo, style = "bold" }, mkdCodeEnd = { fg = cp.flamingo, style = "bold" },
-- mkdLink = { fg = cp.blue, style = "underline" }, -- mkdLink = { fg = cp.blue, style = "underline" },
-- debugging -- debugging
debugPC = { bg = cp.black0 }, -- used for highlighting the current line in terminal-debug debugPC = { bg = cp.base0 }, -- used for highlighting the current line in terminal-debug
debugBreakpoint = { bg = cp.black2, fg = cp.gray0 }, -- used for breakpoint colors in terminal-debug debugBreakpoint = { bg = cp.base2, fg = cp.overlay0 }, -- used for breakpoint colors in terminal-debug
-- illuminate -- illuminate
illuminatedWord = { bg = cp.black4 }, illuminatedWord = { bg = cp.surface1 },
illuminatedCurWord = { bg = cp.black4 }, illuminatedCurWord = { bg = cp.surface1 },
-- diff -- diff
diffAdded = { fg = cp.green }, diffAdded = { fg = cp.green },
diffRemoved = { fg = cp.red }, diffRemoved = { fg = cp.red },
@ -148,12 +148,12 @@ local function get_base()
diffOldFile = { fg = cp.yellow }, diffOldFile = { fg = cp.yellow },
diffNewFile = { fg = cp.peach }, diffNewFile = { fg = cp.peach },
diffFile = { fg = cp.blue }, diffFile = { fg = cp.blue },
diffLine = { fg = cp.gray0 }, diffLine = { fg = cp.overlay0 },
diffIndexLine = { fg = cp.pink }, diffIndexLine = { fg = cp.pink },
DiffAdd = { fg = cp.green, bg = cp.black2 }, -- diff mode: Added line |diff.txt| DiffAdd = { fg = cp.green, bg = cp.base2 }, -- diff mode: Added line |diff.txt|
DiffChange = { fg = cp.yellow, bg = cp.black2 }, -- diff mode: Changed line |diff.txt| DiffChange = { fg = cp.yellow, bg = cp.base2 }, -- diff mode: Changed line |diff.txt|
DiffDelete = { fg = cp.red, bg = cp.black2 }, -- diff mode: Deleted line |diff.txt| DiffDelete = { fg = cp.red, bg = cp.base2 }, -- diff mode: Deleted line |diff.txt|
DiffText = { fg = cp.blue, bg = cp.black2 }, -- diff mode: Changed text within a changed line |diff.txt| DiffText = { fg = cp.blue, bg = cp.base2 }, -- diff mode: Changed text within a changed line |diff.txt|
-- NeoVim -- NeoVim
healthError = { fg = cp.red }, healthError = { fg = cp.red },
healthSuccess = { fg = cp.teal }, healthSuccess = { fg = cp.teal },
@ -166,7 +166,7 @@ local function get_base()
GlyphPalette3 = { fg = cp.yellow }, GlyphPalette3 = { fg = cp.yellow },
GlyphPalette4 = { fg = cp.blue }, GlyphPalette4 = { fg = cp.blue },
GlyphPalette6 = { fg = cp.teal }, GlyphPalette6 = { fg = cp.teal },
GlyphPalette7 = { fg = cp.white }, GlyphPalette7 = { fg = cp.text },
GlyphPalette9 = { fg = cp.red }, GlyphPalette9 = { fg = cp.red },
} }
end end

@ -1,28 +1,33 @@
-- NOTE: references for Catppuccin Frappé
-- monochromatic: https://coolors.co/c6ceef-b1b8d7-9ba2bf-868ca7-707590-5b5f78-454960-303348-252737-181a25
-- analogous 1: https://coolors.co/f2d5cf-eebebe-f4b8e4-ca9ee6-ea999c-e78284-ef9f76
-- analogous 2: https://coolors.co/bfb7e4-8caaee-99d1db-e5c890-85c1dc-a6d189-81c8be
local color_palette = { local color_palette = {
rosewater = "#F5E0DC", -- not ready rosewater = "#F2D5CF",
flamingo = "#F2CDCD", flamingo = "#EEBEBE",
pink = "#F5C2E7", pink = "#F4B8E4",
mauve = "#CA9EE6", -- g + mauve = "#CA9EE6",
red = "#E78284", -- g +? red = "#E78284",
maroon = "#EA999C", -- g maroon = "#EA999C",
peach = "#EE9E76", -- g + peach = "#EF9F76",
yellow = "#E5C890", -- g + yellow = "#E5C890",
green = "#A6D189", -- g + green = "#A6D189",
teal = "#81C8BE", -- g + teal = "#81C8BE",
sky = "#99D1DB", -- g? + sky = "#99D1DB",
blue = "#8CAAEE", -- g +? blue = "#8CAAEE",
sapphire = "#85C1DC", -- gotta tweak this one sapphire = "#85C1DC",
lavender = "#BFB7E4", -- g lavender = "#BFB7E4",
white = "#C6CEEF", -- g text = "#C6CEEF",
gray2 = "#B1B8D7", overlay2 = "#B1B8D7",
gray1 = "#9BA2BF", overlay1 = "#9BA2BF",
gray0 = "#868CA7", overlay0 = "#868CA7",
black5 = "#707590", surface2 = "#707590",
black4 = "#5B5F78", -- surface1 = "#5B5F78",
black3 = "#454960", -- surface0 = "#454960",
black2 = "#303348", -- base2 = "#303348",
black1 = "#252737", base1 = "#252737",
black0 = "#181A25", base0 = "#181A25",
} }
return color_palette return color_palette

@ -1,30 +1,33 @@
-- NOTE: references for Catppuccin Latte
-- monochromatic: https://coolors.co/fbf8f4-e9e6e6-d7d3d9-c4c1cb-b2aebd-a09cb0-8e89a2-7b7794-696487-575279
-- analogous 1: https://coolors.co/de9584-dd7878-ec83d0-822fee-e64553-bb0d33-fe640b
-- analogous 2: https://coolors.co/7287fd-2a6ef5-04a5e5-e49320-209fb5-40a02b-179299
local color_palette = { local color_palette = {
rosewater = "#DC907F", rosewater = "#DE9584",
flamingo = "#DD7878", flamingo = "#DD7878",
pink = "#EC83D0", pink = "#EC83D0",
mauve = "#9247ED", -- mauve = "#8839EF",
red = "#BB0D33", red = "#D20F39",
maroon = "#E63B4A", maroon = "#E64553",
peach = "#FE640B", peach = "#FE640B",
yellow = "#E49320", yellow = "#E49320",
green = "#53A947", -- green = "#40A02B",
teal = "#23979F", teal = "#179299",
sky = "#04A5E5", sky = "#04A5E5",
blue = "#3474EE", blue = "#2A6EF5",
sapphire = "#209FB5", sapphire = "#209FB5",
lavender = "#7287FD", lavender = "#7287FD",
white = "#575279", text = "#575279",
gray2 = "#696486", overlay2 = "#696487",
gray1 = "#7B7794", overlay1 = "#7B7794",
gray0 = "#8E89A1", overlay0 = "#8E89A2",
black5 = "#A09BAE", surface2 = "#A09BAF",
black4 = "#B2AEBC", surface1 = "#B2AEBD",
black0 = "#C4C0C9", base0 = "#C4C0CA",
black3 = "#D7D2D6", surface0 = "#D7D2D8",
black1 = "#E9E5E4", base1 = "#E9E5E5",
black2 = "#FBF7F1", base2 = "#FBF7F3",
} }
return color_palette return color_palette

@ -1,28 +1,33 @@
-- NOTE: references for Catppuccin Macchiato
-- monochromatic: https://coolors.co/c5cff5-aeb7da-979fc0-8087a5-696f8a-52576f-3b3f55-24273a-181926-0c0d13
-- analogous 1: https://coolors.co/f4dbd6-f0c6c6-f5bde6-c6a0f6-ee99a0-ed8796-f5a97f
-- analogous 2: https://coolors.co/bfb7e4-8caaee-99d1db-e5c890-85c1dc-a6d189-81c8be
local color_palette = { local color_palette = {
rosewater = "#F5DFDA", rosewater = "#F4DBD6",
flamingo = "#F2CBCB", flamingo = "#F0C6C6",
pink = "#F5BFE7", pink = "#F5BDE6",
mauve = "#C59FF6", mauve = "#C6A0F6",
red = "#F67E98", red = "#ED8796",
maroon = "#F1949B", maroon = "#EE99A0",
peach = "#FEA571", peach = "#F5A97F",
yellow = "#F1D8A4", yellow = "#EED49F",
green = "#A1DF8E", green = "#A6DA95",
teal = "#85E0D1", teal = "#8BD5CA",
sky = "#89DCFD", sky = "#91D7E3",
blue = "#83ABF9", blue = "#86AEF8",
sapphire = "#34C3DC", sapphire = "#7DC4E4",
lavender = "#B8C1FE", lavender = "#B9BEF8",
white = "#C5CFF5", text = "#C5CFF5",
gray2 = "#AEB7DA", overlay2 = "#AEB7DA",
gray1 = "#979FC0", overlay1 = "#979FC0",
gray0 = "#8087A5", overlay0 = "#8087A5",
black5 = "#696F8A", surface2 = "#696F8A",
black4 = "#52576F", surface1 = "#52576F",
black3 = "#3B3F55", surface0 = "#3B3F55",
black2 = "#24273A", base2 = "#24273A",
black1 = "#1F2232", base1 = "#181926",
black0 = "#181926", base0 = "#0C0D13",
} }
return color_palette return color_palette

@ -1,3 +1,8 @@
-- NOTE: references for Catppuccin Moccha
-- monochromatic: https://coolors.co/c6d0f5-aeb7d9-969dbc-7e84a0-666a83-4e5167-36374a-1e1e2e-12121c-07070a
-- analogous 1: https://coolors.co/f5e0dc-f2cdcd-f5c2e7-cba6f7-eba0ac-f38ba8-fab387
-- analogous 2: https://coolors.co/bfb7e4-8caaee-99d1db-e5c890-85c1dc-a6d189-81c8be
local color_palette = { local color_palette = {
rosewater = "#F5E0DC", rosewater = "#F5E0DC",
flamingo = "#F2CDCD", flamingo = "#F2CDCD",
@ -13,16 +18,16 @@ local color_palette = {
blue = "#90C1FB", blue = "#90C1FB",
sapphire = "#74C7EC", sapphire = "#74C7EC",
lavender = "#B4BEFE", lavender = "#B4BEFE",
white = "#C6D0F5", text = "#C6D0F5",
gray2 = "#AEB7D9", overlay2 = "#AEB7D9",
gray1 = "#969DBC", overlay1 = "#969DBC",
gray0 = "#7E84A0", overlay0 = "#7E84A0",
black5 = "#666A83", surface2 = "#666A83",
black4 = "#4E5167", surface1 = "#4E5167",
black3 = "#36374A", surface0 = "#36374A",
black2 = "#1E1E2E", base2 = "#1E1E2E",
black1 = "#181825", base1 = "#12121C",
black0 = "#101019", base0 = "#07070A",
} }
return color_palette return color_palette

@ -1,6 +1,11 @@
local M = {} local M = {}
local utils = require("catppuccin.utils.util") local utils = require("catppuccin.utils.util")
local flavours = {"latte", "frappe", "macchiato", "moccha"}
function M.cli_flavour_completion()
return vim.tbl_keys(require("catppuccin.utils.data").set_of(flavours))
end
local function load() local function load()
local catppuccin = require("catppuccin") local catppuccin = require("catppuccin")
@ -18,17 +23,11 @@ local function load()
end end
end end
local function clear()
vim.cmd("hi clear")
end
function M.main(option) function M.main(option)
option = option or "load" option = option or "load"
if option == "load" then if option == "load" then
load() load()
elseif option == "clear" then
clear()
else else
print("catppuccin: option was not recognized") print("catppuccin: option was not recognized")
end end

@ -6,7 +6,7 @@ local function color_is_bright(r, g, b)
if luminance > 0.5 then if luminance > 0.5 then
return true -- Bright colors, black font return true -- Bright colors, black font
else else
return false -- Dark colors, white font return false -- Dark colors, text font
end end
end end

@ -0,0 +1,11 @@
local M = {}
function M.set_of(list)
local set = {}
for i = 1, #list do
set[list[i]] = true
end
return set
end
return M

@ -78,7 +78,7 @@ function util.string_to_color(colors, value, default)
return value return value
end end
local acceptable_colors = { "black", "red", "green", "blue", "magenta", "cyan", "white", "orange", "pink" } local acceptable_colors = { "black", "red", "green", "blue", "magenta", "cyan", "text", "orange", "pink" }
for _, ac in ipairs(acceptable_colors) do for _, ac in ipairs(acceptable_colors) do
if string.match(value, ac) then if string.match(value, ac) then
return colors[value] return colors[value]
@ -117,8 +117,8 @@ function util.properties(tbl)
end end
function util.terminal(cp) function util.terminal(cp)
g.terminal_color_0 = cp.gray0 g.terminal_color_0 = cp.overlay0
g.terminal_color_8 = cp.gray1 g.terminal_color_8 = cp.overlay1
g.terminal_color_1 = cp.red g.terminal_color_1 = cp.red
g.terminal_color_9 = cp.red g.terminal_color_9 = cp.red
@ -138,8 +138,8 @@ function util.terminal(cp)
g.terminal_color_6 = cp.sky g.terminal_color_6 = cp.sky
g.terminal_color_14 = cp.sky g.terminal_color_14 = cp.sky
g.terminal_color_7 = cp.white g.terminal_color_7 = cp.text
g.terminal_color_15 = cp.white g.terminal_color_15 = cp.text
end end
function util.load(theme) function util.load(theme)

@ -2,36 +2,36 @@ local cp = require("catppuccin.core.color_palette")
local catppuccin = {} local catppuccin = {}
catppuccin.normal = { catppuccin.normal = {
left = { { cp.black1, cp.blue }, { cp.blue, cp.black2 } }, left = { { cp.base1, cp.blue }, { cp.blue, cp.base2 } },
middle = { { cp.blue, cp.black4 } }, middle = { { cp.blue, cp.surface1 } },
right = { { cp.gray0, cp.black2 }, { cp.blue, cp.black3 } }, right = { { cp.overlay0, cp.base2 }, { cp.blue, cp.surface0 } },
error = { { cp.black1, cp.red } }, error = { { cp.base1, cp.red } },
warning = { { cp.black1, cp.yellow } }, warning = { { cp.base1, cp.yellow } },
} }
catppuccin.insert = { catppuccin.insert = {
left = { { cp.black1, cp.teal }, { cp.blue, cp.black2 } }, left = { { cp.base1, cp.teal }, { cp.blue, cp.base2 } },
} }
catppuccin.visual = { catppuccin.visual = {
left = { { cp.black1, cp.mauve }, { cp.blue, cp.black2 } }, left = { { cp.base1, cp.mauve }, { cp.blue, cp.base2 } },
} }
catppuccin.replace = { catppuccin.replace = {
left = { { cp.black1, cp.red }, { cp.blue, cp.black2 } }, left = { { cp.base1, cp.red }, { cp.blue, cp.base2 } },
} }
catppuccin.inactive = { catppuccin.inactive = {
left = { { cp.blue, cp.black2 }, { cp.gray0, cp.black2 } }, left = { { cp.blue, cp.base2 }, { cp.overlay0, cp.base2 } },
middle = { { cp.black4, cp.black2 } }, middle = { { cp.surface1, cp.base2 } },
right = { { cp.black4, cp.black2 }, { cp.gray0, cp.black2 } }, right = { { cp.surface1, cp.base2 }, { cp.overlay0, cp.base2 } },
} }
catppuccin.tabline = { catppuccin.tabline = {
left = { { cp.gray0, cp.black2 }, { cp.gray0, cp.black2 } }, left = { { cp.overlay0, cp.base2 }, { cp.overlay0, cp.base2 } },
middle = { { cp.black4, cp.black2 } }, middle = { { cp.surface1, cp.base2 } },
right = { { cp.black4, cp.black2 }, { cp.gray0, cp.black2 } }, right = { { cp.surface1, cp.base2 }, { cp.overlay0, cp.base2 } },
tabsel = { { cp.blue, cp.black4 }, { cp.gray0, cp.black2 } }, tabsel = { { cp.blue, cp.surface1 }, { cp.overlay0, cp.base2 } },
} }
return catppuccin return catppuccin

@ -2,35 +2,35 @@ local cp = require("catppuccin.core.color_palette")
local catppuccin = {} local catppuccin = {}
catppuccin.normal = { catppuccin.normal = {
a = { bg = cp.blue, fg = cp.black1, gui = "bold" }, a = { bg = cp.blue, fg = cp.base1, gui = "bold" },
b = { bg = cp.black4, fg = cp.blue }, b = { bg = cp.surface1, fg = cp.blue },
c = { bg = cp.black1, fg = cp.white }, c = { bg = cp.base1, fg = cp.text },
} }
catppuccin.insert = { catppuccin.insert = {
a = { bg = cp.green, fg = cp.black2, gui = "bold" }, a = { bg = cp.green, fg = cp.base2, gui = "bold" },
b = { bg = cp.black4, fg = cp.teal }, b = { bg = cp.surface1, fg = cp.teal },
} }
catppuccin.command = { catppuccin.command = {
a = { bg = cp.peach, fg = cp.black2, gui = "bold" }, a = { bg = cp.peach, fg = cp.base2, gui = "bold" },
b = { bg = cp.black4, fg = cp.peach }, b = { bg = cp.surface1, fg = cp.peach },
} }
catppuccin.visual = { catppuccin.visual = {
a = { bg = cp.mauve, fg = cp.black2, gui = "bold" }, a = { bg = cp.mauve, fg = cp.base2, gui = "bold" },
b = { bg = cp.black4, fg = cp.mauve }, b = { bg = cp.surface1, fg = cp.mauve },
} }
catppuccin.replace = { catppuccin.replace = {
a = { bg = cp.red, fg = cp.black2, gui = "bold" }, a = { bg = cp.red, fg = cp.base2, gui = "bold" },
b = { bg = cp.black4, fg = cp.red }, b = { bg = cp.surface1, fg = cp.red },
} }
catppuccin.inactive = { catppuccin.inactive = {
a = { bg = cp.black1, fg = cp.blue }, a = { bg = cp.base1, fg = cp.blue },
b = { bg = cp.black1, fg = cp.black4, gui = "bold" }, b = { bg = cp.base1, fg = cp.surface1, gui = "bold" },
c = { bg = cp.black1, fg = cp.gray0 }, c = { bg = cp.base1, fg = cp.overlay0 },
} }
return catppuccin return catppuccin

@ -0,0 +1,15 @@
if exists('g:loaded_catppuccin') | finish | endif
function! s:FlavourCompletion(...) abort
return join(sort(luaeval("require'catppuccin.main'.cli_flavour_completion()")), "\n")
endfunction
function! s:ApplyFlavour(args) abort
let l:flavour = matchstr(a:args[0], "[a-z]*")
let g:catppuccin_flavour = flavour
colorscheme catppuccin
endfunction
command! -nargs=1 -complete=custom,s:FlavourCompletion Catppuccin call s:ApplyFlavour([<f-args>])
let g:loaded_catppuccin = 1
Loading…
Cancel
Save