--- whiskers: version: "^2.3.0" matrix: - flavor - variant: ["default", "no_italics"] filename: "themes/{{ variant }}/catppuccin_{{ flavor.identifier }}.toml" --- {%- macro modifiers(other=false) -%} {%- if not other %}{% set other = [] %}{% endif -%} {%- set base = [] -%} {%- if variant == "default" -%} {%- set base = ["italic"] -%} {%- endif -%} {%- set all = base | concat(with=other) -%} {%- if all | length > 0 -%} , modifiers = [{% for mod in all %}"{{ mod }}"{% if not loop.last %}, {% endif %}{% endfor %}] {%- endif -%} {%- endmacro -%} # Syntax highlighting # ------------------- "attribute" = "yellow" "type" = "yellow" "type.builtin" = "mauve" "type.enum.variant" = "teal" "constructor" = "sapphire" "constant" = "peach" "constant.character" = "teal" "constant.character.escape" = "pink" "string" = "green" "string.regexp" = "pink" "string.special" = "blue" "string.special.symbol" = "red" "comment" = { fg = "overlay2"{{ self::modifiers() }} } "variable" = "text" "variable.parameter" = { fg = "maroon"{{ self::modifiers() }} } "variable.builtin" = "red" "variable.other.member" = "blue" "label" = "sapphire" # used for lifetimes "punctuation" = "overlay2" "punctuation.special" = "sky" "keyword" = "mauve" "keyword.control.conditional" = { fg = "mauve"{{ self::modifiers() }} } "operator" = "sky" "function" = "blue" "function.macro" = "rosewater" "tag" = "blue" "namespace" = { fg = "yellow"{{ self::modifiers() }} } "special" = "blue" # fuzzy highlight "markup.heading.1" = "red" "markup.heading.2" = "peach" "markup.heading.3" = "yellow" "markup.heading.4" = "green" "markup.heading.5" = "sapphire" "markup.heading.6" = "lavender" "markup.list" = "teal" "markup.list.unchecked" = "overlay2" "markup.list.checked" = "green" "markup.bold" = { fg = "red", modifiers = ["bold"] } "markup.italic" = { fg = "red", modifiers = ["italic"] } "markup.strikethrough" = { modifiers = ["crossed_out"] } "markup.link.url" = { fg = "blue"{{ self::modifiers(other=["underlined"]) }} } "markup.link.text" = "lavender" "markup.link.label" = "sapphire" "markup.raw" = "green" "markup.quote" = "pink" "diff.plus" = "green" "diff.minus" = "red" "diff.delta" = "blue" # User Interface # -------------- "ui.background" = { fg = "text", bg = "base" } "ui.linenr" = { fg = "surface1" } "ui.linenr.selected" = { fg = "lavender" } "ui.statusline" = { fg = "subtext1", bg = "mantle" } "ui.statusline.inactive" = { fg = "surface2", bg = "mantle" } "ui.statusline.normal" = { fg = "base", bg = "rosewater", modifiers = ["bold"] } "ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] } "ui.statusline.select" = { fg = "base", bg = "lavender", modifiers = ["bold"] } "ui.popup" = { fg = "text", bg = "surface0" } "ui.window" = { fg = "crust" } "ui.help" = { fg = "overlay2", bg = "surface0" } "ui.bufferline" = { fg = "subtext0", bg = "mantle" } "ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } } "ui.bufferline.background" = { bg = "crust" } "ui.text" = "text" "ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] } "ui.text.inactive" = { fg = "overlay1" } "ui.text.directory" = { fg = "blue" } "ui.virtual" = "overlay0" "ui.virtual.ruler" = { bg = "surface0" } "ui.virtual.indent-guide" = "surface0" "ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" } "ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] } "ui.selection" = { bg = "surface1" } "ui.cursor" = { fg = "base", bg = "secondary_cursor" } "ui.cursor.primary" = { fg = "base", bg = "rosewater" } "ui.cursor.match" = { fg = "peach", modifiers = ["bold"] } "ui.cursor.primary.normal" = { fg = "base", bg = "rosewater" } "ui.cursor.primary.insert" = { fg = "base", bg = "green" } "ui.cursor.primary.select" = { fg = "base", bg = "lavender" } "ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" } "ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" } "ui.cursor.select" = { fg = "base", bg = "secondary_cursor_select" } "ui.cursorline.primary" = { bg = "cursorline" } "ui.highlight" = { bg = "surface1", modifiers = ["bold"] } "ui.menu" = { fg = "overlay2", bg = "surface0" } "ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] } "diagnostic.error" = { underline = { color = "red", style = "curl" } } "diagnostic.warning" = { underline = { color = "yellow", style = "curl" } } "diagnostic.info" = { underline = { color = "sky", style = "curl" } } "diagnostic.hint" = { underline = { color = "teal", style = "curl" } } "diagnostic.unnecessary" = { modifiers = ["dim"] } "diagnostic.deprecated" = { modifiers = ["crossed_out"] } error = "red" warning = "yellow" info = "sky" hint = "teal" rainbow = ["red", "peach", "yellow", "green", "sapphire", "lavender"] [palette] {%- for identifier, color in flavor.colors %} {{ identifier }} = "#{{ color.hex }}" {%- endfor %} cursorline = "#{% if flavor.dark %}{{ surface0 | mix(color=base, amount=0.64) | get(key="hex") }}{% else %}{{ mantle | mix(color=base, amount=0.7) | get(key="hex") }}{% endif %}" secondary_cursor = "#{{ rosewater | mix(color=base, amount=0.7) | get(key="hex") }}" secondary_cursor_select = "#{{ lavender | mix(color=base, amount=0.7) | get(key="hex") }}" secondary_cursor_normal = "#{{ rosewater | mix(color=base, amount=0.7) | get(key="hex") }}" secondary_cursor_insert = "#{{ green | mix(color=base, amount=0.7) | get(key="hex") }}"