summaryrefslogtreecommitdiff
path: root/src/themes/catppuccin_latte.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 10:19:01 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:16 -0300
commitd7971dbed9ba8c050e5ec622aeef0dd6aa604db6 (patch)
tree2193945eb0407d1f5e4534fa0bad535f0f092738 /src/themes/catppuccin_latte.zig
parentea07bb00265fce0734c752e82eb5111b750c4f71 (diff)
downloadpardes-d7971dbed9ba8c050e5ec622aeef0dd6aa604db6.tar.gz
pardes-d7971dbed9ba8c050e5ec622aeef0dd6aa604db6.zip
Catppuccin, as close to the original as pardes draws: catppuccin_latte, catppuccin_frappe, catppuccin_macchiato, catppuccin_mocha
Every colour is the original's own, cited file:line in each theme file. Sources: palette; https://github.com/catppuccin/palette; ~/05-genizah/catppuccin-palette; 07d02aa110ef9eb7e7427afca5c73ba9cf7f8ebd neovim port (highlight mapping, terminal colours, lualine); https://github.com/catppuccin/nvim; ~/05-genizah/catppuccin-nvim; edefef779ab08ce1a4a404713e3012b0d202bd35 Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): catppuccin_latte: focused tag ground #e6e9ef -> #cdd0da: 1.00:1 off the unfocused #e6e9ef, pardes needs 1.25:1 on a light page catppuccin_latte: unfocused tag text #bcc0cc -> #66686e: 1.49:1 on #e6e9ef, tag text needs 4.5:1 to be read and run catppuccin_latte: rules between panes #dce0e8 -> #bcc0cc: 1.17:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) catppuccin_frappe: focused tag ground #292c3c -> #454a5d: 1.00:1 off the unfocused #292c3c, pardes needs 1.5:1 on a dark page catppuccin_frappe: unfocused tag text #51576d -> #9093a2: 1.93:1 on #292c3c, tag text needs 4.5:1 to be read and run catppuccin_frappe: rules between panes #232634 -> #51566a: 1.22:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) catppuccin_macchiato: focused tag ground #1e2030 -> #3d4053: 1.00:1 off the unfocused #1e2030, pardes needs 1.5:1 on a dark page catppuccin_macchiato: unfocused tag text #494d64 -> #878a99: 1.94:1 on #1e2030, tag text needs 4.5:1 to be read and run catppuccin_macchiato: rules between panes #181926 -> #46495c: 1.18:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) catppuccin_mocha: focused tag ground #181825 -> #393a4a: 1.00:1 off the unfocused #181825, pardes needs 1.5:1 on a dark page catppuccin_mocha: unfocused tag text #45475a -> #81828f: 1.92:1 on #181825, tag text needs 4.5:1 to be read and run catppuccin_mocha: rules between panes #11111b -> #3e404f: 1.14:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
Diffstat (limited to 'src/themes/catppuccin_latte.zig')
-rw-r--r--src/themes/catppuccin_latte.zig105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/themes/catppuccin_latte.zig b/src/themes/catppuccin_latte.zig
new file mode 100644
index 00000000..259198b4
--- /dev/null
+++ b/src/themes/catppuccin_latte.zig
@@ -0,0 +1,105 @@
+//! Catppuccin Latte: 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 #e6e9ef -> #cdd0da: 1.00:1 off the unfocused #e6e9ef, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #bcc0cc -> #66686e: 1.49:1 on #e6e9ef, tag text needs 4.5:1 to be read and run
+//! - rules between panes #dce0e8 -> #bcc0cc: 1.17: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_latte",
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:35 Normal bg = C.base (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:25)
+ .bg = .{ 0xef, 0xf1, 0xf5 },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:35 Normal fg = C.text (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:16)
+ .fg = .{ 0x4c, 0x4f, 0x69 },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:107 Visual bg = C.surface1 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:23)
+ .sel_bg = .{ 0xbc, 0xc0, 0xcc },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x4c, 0x4f, 0x69 },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:100 StatusLineNC bg = C.mantle (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:26)
+ .tag_bg = .{ 0xe6, 0xe9, 0xef },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:100 StatusLineNC fg = C.surface1 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:23) #bcc0cc, adjusted
+ .tag_fg = .{ 0x66, 0x68, 0x6e },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:99 StatusLine bg = C.mantle (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:26) #e6e9ef, adjusted
+ .tag_active_bg = .{ 0xcd, 0xd0, 0xda },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:99 StatusLine fg = C.text (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:16)
+ .tag_active_fg = .{ 0x4c, 0x4f, 0x69 },
+ // 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-latte.lua) -> C.blue (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:14)
+ .box = .{ 0x1e, 0x66, 0xf5 },
+ // derived: the grip at rest, the accent #1e66f5 faded toward the unfocused tag #e6e9ef as far as 1.6:1 off it (0.38 of the way)
+ .box_dim = .{ 0x9a, 0xb7, 0xf1 },
+ // 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/latte.lua:9)
+ .box_dirty = .{ 0xdf, 0x8e, 0x1d },
+ // 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/latte.lua:9)
+ .column_box = .{ 0xdf, 0x8e, 0x1d },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:20 Keyword fg = C.mauve (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:5)
+ .kw = .{ 0x88, 0x39, 0xef },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:8 String fg = C.green (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:10)
+ .str = .{ 0x40, 0xa0, 0x2b },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:10 Number fg = C.peach (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:8)
+ .num = .{ 0xfe, 0x64, 0x0b },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/syntax.lua:5 Comment fg = C.overlay2 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:19)
+ .comment = .{ 0x7c, 0x7f, 0x93 },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:27 LineNr fg = C.surface1 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:23)
+ .lineno = .{ 0xbc, 0xc0, 0xcc },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:28 CursorLineNr fg = C.lavender (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:15)
+ .lineno_active = .{ 0x72, 0x87, 0xfd },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:72 PmenuSbar bg = C.surface0 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:24)
+ .scroll_track = .{ 0xcc, 0xd0, 0xda },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:73 PmenuThumb bg = C.overlay0 (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:21)
+ .scroll_thumb = .{ 0x9c, 0xa0, 0xb0 },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:114 WinSeparator fg = C.crust (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:27) #dce0e8, adjusted
+ .border = .{ 0xbc, 0xc0, 0xcc },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:91 Search bg = U.darken(C.sky, 0.30, C.base) = blend(fg sky #04a5e5, bg base #eff1f5, alpha 0.3) per ~/05-genizah/catppuccin-nvim/lua/catppuccin/utils/colors.lua:29 -> #a8daf0
+ .search_bg = .{ 0xa8, 0xda, 0xf0 },
+ // ~/05-genizah/catppuccin-nvim/lua/catppuccin/groups/editor.lua:91 Search fg = C.text (~/05-genizah/catppuccin-nvim/lua/catppuccin/palettes/latte.lua:16)
+ .search_fg = .{ 0x4c, 0x4f, 0x69 },
+ // ~/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/latte.lua:6)
+ .diagnostic_error = .{ 0xd2, 0x0f, 0x39 },
+ // ~/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/latte.lua:9)
+ .diagnostic_warning = .{ 0xdf, 0x8e, 0x1d },
+ // ~/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/latte.lua:12)
+ .diagnostic_info = .{ 0x04, 0xa5, 0xe5 },
+ // ~/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/latte.lua:11)
+ .diagnostic_hint = .{ 0x17, 0x92, 0x99 },
+ .palette = .{
+ .{ 0x5c, 0x5f, 0x77 }, // 0: ~/05-genizah/catppuccin-palette/palette.json:562 latte.ansiColors.black.normal
+ .{ 0xd2, 0x0f, 0x39 }, // 1: ~/05-genizah/catppuccin-palette/palette.json:606 latte.ansiColors.red.normal
+ .{ 0x40, 0xa0, 0x2b }, // 2: ~/05-genizah/catppuccin-palette/palette.json:650 latte.ansiColors.green.normal
+ .{ 0xdf, 0x8e, 0x1d }, // 3: ~/05-genizah/catppuccin-palette/palette.json:694 latte.ansiColors.yellow.normal
+ .{ 0x1e, 0x66, 0xf5 }, // 4: ~/05-genizah/catppuccin-palette/palette.json:738 latte.ansiColors.blue.normal
+ .{ 0xea, 0x76, 0xcb }, // 5: ~/05-genizah/catppuccin-palette/palette.json:782 latte.ansiColors.magenta.normal
+ .{ 0x17, 0x92, 0x99 }, // 6: ~/05-genizah/catppuccin-palette/palette.json:826 latte.ansiColors.cyan.normal
+ .{ 0xac, 0xb0, 0xbe }, // 7: ~/05-genizah/catppuccin-palette/palette.json:870 latte.ansiColors.white.normal
+ .{ 0x6c, 0x6f, 0x85 }, // 8: ~/05-genizah/catppuccin-palette/palette.json:582 latte.ansiColors.black.bright
+ .{ 0xde, 0x29, 0x3e }, // 9: ~/05-genizah/catppuccin-palette/palette.json:626 latte.ansiColors.red.bright
+ .{ 0x49, 0xaf, 0x3d }, // 10: ~/05-genizah/catppuccin-palette/palette.json:670 latte.ansiColors.green.bright
+ .{ 0xee, 0xa0, 0x2d }, // 11: ~/05-genizah/catppuccin-palette/palette.json:714 latte.ansiColors.yellow.bright
+ .{ 0x45, 0x6e, 0xff }, // 12: ~/05-genizah/catppuccin-palette/palette.json:758 latte.ansiColors.blue.bright
+ .{ 0xfe, 0x85, 0xd8 }, // 13: ~/05-genizah/catppuccin-palette/palette.json:802 latte.ansiColors.magenta.bright
+ .{ 0x2d, 0x9f, 0xa8 }, // 14: ~/05-genizah/catppuccin-palette/palette.json:846 latte.ansiColors.cyan.bright
+ .{ 0xbc, 0xc0, 0xcc }, // 15: ~/05-genizah/catppuccin-palette/palette.json:890 latte.ansiColors.white.bright
+ },
+};