//! Catppuccin Mocha: Catppuccin, as close to the original as pardes can draw it. //! Every value is the original's own, cited on its line (path:line key); the //! chrome pardes needs and the original lacks is derived from its palette. //! Sources: //! palette; url https://github.com/catppuccin/palette; genizah ~/05-genizah/catppuccin-palette; commit 07d02aa110ef9eb7e7427afca5c73ba9cf7f8ebd //! neovim port (highlight mapping, terminal colours, lualine); url https://github.com/catppuccin/nvim; genizah ~/05-genizah/catppuccin-nvim; commit edefef779ab08ce1a4a404713e3012b0d202bd35 //! Tags: the window bar (StatusLine / StatusLineNC, or mode-line / mode-line-inactive). //! Adjusted to meet pardes's floors (chrome only; text, syntax and ANSI are untouched): //! - focused tag ground #181825 -> #393a4a: 1.00:1 off the unfocused #181825, pardes needs 1.5:1 on a dark page //! - unfocused tag text #45475a -> #81828f: 1.92:1 on #181825, tag text needs 4.5:1 to be read and run //! - rules between panes #11111b -> #3e404f: 1.14:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) //! Upstream notes: Highlight mapping: catppuccin/nvim with default options //! (transparent_background false, float.solid/transparent false, dim_inactive //! off, color_overrides/highlight_overrides empty, kitty false, i.e. not //! running under kitty; under kitty the port nudges every palette blue channel //! by +/-1, palettes/init.lua:19-28). Runtime-computed values done exactly as //! utils/colors.lua blend (floor(clamp(a*fg+(1-a)*bg)+0.5)): cursorline and //! search_bg; inputs in the cites. U.darken(c, a, bg) = blend(c, bg, a); //! U.lighten(c, a, fg) = blend(c, fg, a). Terminal colours: groups/terminal.lua //! terminal_color_0..15, but NOTE the port only applies them when term_colors = //! true, and the default is false (init.lua:15, lib/compiler.lua:42); used //! anyway as the port's own terminal palette. Bright 1-7 equal normal; 0 = //! overlay0, 8 = overlay1, 5/13 = pink, 7/15 = text. palette.json also carries //! a separate ansiColors table (the terminal ports' palette), which differs; //! not used here. tabline_sel is TabLineSel -> link Normal. selection_fg: //! Visual has no fg (only bold). modified = Changed fg (blue); the gitsigns //! integration (auto-detected) instead uses GitSignsChange = C.yellow //! (groups/integrations/gitsigns.lua:11), and neo-tree uses NeoTreeModified = //! peach. Keyword = mauve directly (Statement also mauve). Diagnostic groups //! are in groups/lsp.lua (merged into editor groups by lib/mapper.lua:26). pub const theme = .{ .name = "catppuccin_mocha", // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:35 Normal bg = C.base (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:25) .bg = .{ 0x1e, 0x1e, 0x2e }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:35 Normal fg = C.text (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:16) .fg = .{ 0xcd, 0xd6, 0xf4 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:107 Visual bg = C.surface1 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:23) .sel_bg = .{ 0x45, 0x47, 0x5a }, // the original keeps text colours over its selection; its text colour .sel_fg = .{ 0xcd, 0xd6, 0xf4 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:100 StatusLineNC bg = C.mantle (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:26) .tag_bg = .{ 0x18, 0x18, 0x25 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:100 StatusLineNC fg = C.surface1 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:23) #45475a, adjusted .tag_fg = .{ 0x81, 0x82, 0x8f }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:99 StatusLine bg = C.mantle (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:26) #181825, adjusted .tag_active_bg = .{ 0x39, 0x3a, 0x4a }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:99 StatusLine fg = C.text (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:16) .tag_active_fg = .{ 0xcd, 0xd6, 0xf4 }, // the focused grip: ~/05-genizah/catppuccin-nvim/lua/catppuccin/utils/lualine.lua:20 lualine normal.a bg = C.blue (used by lua/lualine/themes/catppuccin-mocha.lua) -> C.blue (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:14) .box = .{ 0x89, 0xb4, 0xfa }, // derived: the grip at rest, the accent #89b4fa faded toward the unfocused tag #181825 as far as 1.6:1 off it (0.24 of the way) .box_dim = .{ 0x33, 0x3d, 0x58 }, // an unsaved grip: the original's warning colour, ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/lsp.lua:51 DiagnosticWarn fg = warning (local warning = C.yellow at line 9) -> C.yellow (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:9) .box_dirty = .{ 0xf9, 0xe2, 0xaf }, // derived: the column grip, the original's type colour, ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:32 Type fg = C.yellow (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:9) .column_box = .{ 0xf9, 0xe2, 0xaf }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:20 Keyword fg = C.mauve (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:5) .kw = .{ 0xcb, 0xa6, 0xf7 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:8 String fg = C.green (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:10) .str = .{ 0xa6, 0xe3, 0xa1 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:10 Number fg = C.peach (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:8) .num = .{ 0xfa, 0xb3, 0x87 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:5 Comment fg = C.overlay2 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:19) .comment = .{ 0x93, 0x99, 0xb2 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:27 LineNr fg = C.surface1 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:23) .lineno = .{ 0x45, 0x47, 0x5a }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:28 CursorLineNr fg = C.lavender (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:15) .lineno_active = .{ 0xb4, 0xbe, 0xfe }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:72 PmenuSbar bg = C.surface0 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:24) .scroll_track = .{ 0x31, 0x32, 0x44 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:73 PmenuThumb bg = C.overlay0 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:21) .scroll_thumb = .{ 0x6c, 0x70, 0x86 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:114 WinSeparator fg = C.crust (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:27) #11111b, adjusted .border = .{ 0x3e, 0x40, 0x4f }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:91 Search bg = U.darken(C.sky, 0.30, C.base) = blend(fg sky #89dceb, bg base #1e1e2e, alpha 0.3) per ~/05-genizah/catppuccin-nvim/lua/catppuccin/utils/colors.lua:29 -> #3e5767 .search_bg = .{ 0x3e, 0x57, 0x67 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:91 Search fg = C.text (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:16) .search_fg = .{ 0xcd, 0xd6, 0xf4 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/lsp.lua:50 DiagnosticError fg = error (local error = C.red at line 8) -> C.red (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:6) .diagnostic_error = .{ 0xf3, 0x8b, 0xa8 }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/lsp.lua:51 DiagnosticWarn fg = warning (local warning = C.yellow at line 9) -> C.yellow (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:9) .diagnostic_warning = .{ 0xf9, 0xe2, 0xaf }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/lsp.lua:52 DiagnosticInfo fg = info (local info = C.sky at line 10) -> C.sky (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:12) .diagnostic_info = .{ 0x89, 0xdc, 0xeb }, // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/lsp.lua:53 DiagnosticHint fg = hint (local hint = C.teal at line 11) -> C.teal (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/mocha.lua:11) .diagnostic_hint = .{ 0x94, 0xe2, 0xd5 }, .palette = .{ .{ 0x45, 0x47, 0x5a }, // 0: ~/05-genizah/catppuccin-palette/palette.json:3286 mocha.ansiColors.black.normal .{ 0xf3, 0x8b, 0xa8 }, // 1: ~/05-genizah/catppuccin-palette/palette.json:3330 mocha.ansiColors.red.normal .{ 0xa6, 0xe3, 0xa1 }, // 2: ~/05-genizah/catppuccin-palette/palette.json:3374 mocha.ansiColors.green.normal .{ 0xf9, 0xe2, 0xaf }, // 3: ~/05-genizah/catppuccin-palette/palette.json:3418 mocha.ansiColors.yellow.normal .{ 0x89, 0xb4, 0xfa }, // 4: ~/05-genizah/catppuccin-palette/palette.json:3462 mocha.ansiColors.blue.normal .{ 0xf5, 0xc2, 0xe7 }, // 5: ~/05-genizah/catppuccin-palette/palette.json:3506 mocha.ansiColors.magenta.normal .{ 0x94, 0xe2, 0xd5 }, // 6: ~/05-genizah/catppuccin-palette/palette.json:3550 mocha.ansiColors.cyan.normal .{ 0xa6, 0xad, 0xc8 }, // 7: ~/05-genizah/catppuccin-palette/palette.json:3594 mocha.ansiColors.white.normal .{ 0x58, 0x5b, 0x70 }, // 8: ~/05-genizah/catppuccin-palette/palette.json:3306 mocha.ansiColors.black.bright .{ 0xf3, 0x77, 0x99 }, // 9: ~/05-genizah/catppuccin-palette/palette.json:3350 mocha.ansiColors.red.bright .{ 0x89, 0xd8, 0x8b }, // 10: ~/05-genizah/catppuccin-palette/palette.json:3394 mocha.ansiColors.green.bright .{ 0xeb, 0xd3, 0x91 }, // 11: ~/05-genizah/catppuccin-palette/palette.json:3438 mocha.ansiColors.yellow.bright .{ 0x74, 0xa8, 0xfc }, // 12: ~/05-genizah/catppuccin-palette/palette.json:3482 mocha.ansiColors.blue.bright .{ 0xf2, 0xae, 0xde }, // 13: ~/05-genizah/catppuccin-palette/palette.json:3526 mocha.ansiColors.magenta.bright .{ 0x6b, 0xd7, 0xca }, // 14: ~/05-genizah/catppuccin-palette/palette.json:3570 mocha.ansiColors.cyan.bright .{ 0xba, 0xc2, 0xde }, // 15: ~/05-genizah/catppuccin-palette/palette.json:3614 mocha.ansiColors.white.bright }, };