summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/colors.zig20
-rw-r--r--src/themes/duckbones.zig92
-rw-r--r--src/themes/forestbones_dark.zig92
-rw-r--r--src/themes/forestbones_light.zig94
-rw-r--r--src/themes/kanagawabones.zig93
-rw-r--r--src/themes/neobones_dark.zig92
-rw-r--r--src/themes/neobones_light.zig92
-rw-r--r--src/themes/nordbones.zig95
-rw-r--r--src/themes/rosebones_dark.zig93
-rw-r--r--src/themes/rosebones_light.zig94
-rw-r--r--src/themes/seoulbones_dark.zig95
-rw-r--r--src/themes/seoulbones_light.zig95
-rw-r--r--src/themes/tokyobones_dark.zig93
-rw-r--r--src/themes/tokyobones_light.zig94
-rw-r--r--src/themes/vimbones.zig95
-rw-r--r--src/themes/zenbones_dark.zig92
-rw-r--r--src/themes/zenbones_light.zig93
-rw-r--r--src/themes/zenburned.zig92
-rw-r--r--src/themes/zenwritten_dark.zig92
-rw-r--r--src/themes/zenwritten_light.zig93
20 files changed, 1791 insertions, 0 deletions
diff --git a/src/colors.zig b/src/colors.zig
index 44a07871..14979448 100644
--- a/src/colors.zig
+++ b/src/colors.zig
@@ -364,6 +364,25 @@ const curated = struct {
pub const seoul256_light_254 = @import("themes/seoul256_light_254.zig");
pub const seoul256_light_255 = @import("themes/seoul256_light_255.zig");
pub const seoul256_light_256 = @import("themes/seoul256_light_256.zig");
+ pub const zenbones_light = @import("themes/zenbones_light.zig");
+ pub const zenbones_dark = @import("themes/zenbones_dark.zig");
+ pub const neobones_light = @import("themes/neobones_light.zig");
+ pub const neobones_dark = @import("themes/neobones_dark.zig");
+ pub const vimbones = @import("themes/vimbones.zig");
+ pub const forestbones_light = @import("themes/forestbones_light.zig");
+ pub const forestbones_dark = @import("themes/forestbones_dark.zig");
+ pub const nordbones = @import("themes/nordbones.zig");
+ pub const rosebones_light = @import("themes/rosebones_light.zig");
+ pub const rosebones_dark = @import("themes/rosebones_dark.zig");
+ pub const tokyobones_light = @import("themes/tokyobones_light.zig");
+ pub const tokyobones_dark = @import("themes/tokyobones_dark.zig");
+ pub const seoulbones_light = @import("themes/seoulbones_light.zig");
+ pub const seoulbones_dark = @import("themes/seoulbones_dark.zig");
+ pub const duckbones = @import("themes/duckbones.zig");
+ pub const zenburned = @import("themes/zenburned.zig");
+ pub const zenwritten_light = @import("themes/zenwritten_light.zig");
+ pub const zenwritten_dark = @import("themes/zenwritten_dark.zig");
+ pub const kanagawabones = @import("themes/kanagawabones.zig");
// The legacy pair last.
pub const helix = @import("themes/helix.zig");
pub const dark = @import("themes/dark.zig");
@@ -435,6 +454,7 @@ const theme_groups = [_]ThemeGroup{
.{ .title = "Rosé Pine", .first = "rose_pine" },
.{ .title = "Catppuccin", .first = "catppuccin_latte" },
.{ .title = "Seoul256", .first = "seoul256_dark_233" },
+ .{ .title = "Zenbones", .first = "zenbones_light" },
.{ .title = "Legacy themes", .first = "helix" },
};
diff --git a/src/themes/duckbones.zig b/src/themes/duckbones.zig
new file mode 100644
index 00000000..c4f86997
--- /dev/null
+++ b/src/themes/duckbones.zig
@@ -0,0 +1,92 @@
+//! Duckbones: Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #232738 -> #353b51: 1.13:1 off the unfocused #1a1d2b, pardes needs 1.5:1 on a dark page
+//! - focused grip #444a67 -> #4f5570: 1.28:1 on the focused tag #353b51
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/duckbones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/duckbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. Dark-only
+//! flavour (zenbones.json background='dark'). TabLineSel is guifg/guibg=NONE
+//! (bold only), so it inherits Normal. TabLine links to StatusLine, TabLineFill
+//! to StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral
+//! (the theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "duckbones",
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:34 Normal guibg
+ .bg = .{ 0x0e, 0x10, 0x1a },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:34 Normal guifg
+ .fg = .{ 0xeb, 0xef, 0xc0 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:212 Visual guibg
+ .sel_bg = .{ 0x37, 0x38, 0x2d },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xeb, 0xef, 0xc0 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:199 StatusLineNC guibg
+ .tag_bg = .{ 0x1a, 0x1d, 0x2b },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:199 StatusLineNC guifg
+ .tag_fg = .{ 0xf0, 0xf5, 0xc4 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:196 StatusLine guibg #232738, adjusted
+ .tag_active_bg = .{ 0x35, 0x3b, 0x51 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:196 StatusLine guifg
+ .tag_active_fg = .{ 0xeb, 0xef, 0xc0 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/duckbones_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x4f, 0x55, 0x70 },
+ // derived: the grip at rest, the accent #444a67 faded toward the unfocused tag #1a1d2b as far as 1.6:1 off it (0.76 of the way)
+ .box_dim = .{ 0x3a, 0x3f, 0x59 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/duckbones.vim:42 Changed guifg
+ .box_dirty = .{ 0x00, 0xa3, 0xcb },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/duckbones.vim:208 Type guifg
+ .column_box = .{ 0x89, 0x8f, 0xb1 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:193 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x79, 0x5c, 0xcc },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:202 String guifg
+ .str = .{ 0xae, 0xb1, 0x8d },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:165 Number guifg
+ .num = .{ 0xae, 0xb1, 0x8d },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:48 Comment guifg
+ .comment = .{ 0x5a, 0x5f, 0x7b },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:151 LineNr guifg
+ .lineno = .{ 0x51, 0x58, 0x7a },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:63 CursorLineNr guifg
+ .lineno_active = .{ 0xeb, 0xef, 0xc0 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:168 PmenuSbar guibg
+ .scroll_track = .{ 0x4b, 0x51, 0x70 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:170 PmenuThumb guibg
+ .scroll_thumb = .{ 0x75, 0x7d, 0xa3 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:219 WinSeparator guifg
+ .border = .{ 0x51, 0x58, 0x7a },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:174 Search guibg
+ .search_bg = .{ 0x4d, 0x31, 0x91 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:174 Search guifg
+ .search_fg = .{ 0xeb, 0xef, 0xc0 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:114 Error guifg via DiagnosticError->Error (link :115)
+ .diagnostic_error = .{ 0xe0, 0x36, 0x00 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:213 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :214)
+ .diagnostic_warning = .{ 0xe3, 0x95, 0x00 },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:73 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x00, 0xa3, 0xcb },
+ // ~/05-genizah/zenbones.nvim/colors/duckbones.vim:68 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x79, 0x5c, 0xcc },
+ .palette = .{
+ .{ 0x0e, 0x10, 0x1a }, // 0: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:18 g:terminal_color_0
+ .{ 0xe0, 0x36, 0x00 }, // 1: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:19 g:terminal_color_1
+ .{ 0x5d, 0xcd, 0x97 }, // 2: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:20 g:terminal_color_2
+ .{ 0xe3, 0x95, 0x00 }, // 3: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:21 g:terminal_color_3
+ .{ 0x00, 0xa3, 0xcb }, // 4: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:22 g:terminal_color_4
+ .{ 0x79, 0x5c, 0xcc }, // 5: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:23 g:terminal_color_5
+ .{ 0x00, 0xa3, 0xcb }, // 6: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:24 g:terminal_color_6
+ .{ 0xeb, 0xef, 0xc0 }, // 7: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:25 g:terminal_color_7
+ .{ 0x2b, 0x2f, 0x46 }, // 8: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:26 g:terminal_color_8
+ .{ 0xff, 0x48, 0x21 }, // 9: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:27 g:terminal_color_9
+ .{ 0x58, 0xdb, 0x9e }, // 10: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:28 g:terminal_color_10
+ .{ 0xf6, 0xa1, 0x00 }, // 11: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:29 g:terminal_color_11
+ .{ 0x00, 0xb4, 0xe0 }, // 12: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:30 g:terminal_color_12
+ .{ 0xb3, 0xa1, 0xe6 }, // 13: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:31 g:terminal_color_13
+ .{ 0x00, 0xb4, 0xe0 }, // 14: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:32 g:terminal_color_14
+ .{ 0xb3, 0xb6, 0x92 }, // 15: ~/05-genizah/zenbones.nvim/colors/duckbones.vim:33 g:terminal_color_15
+ },
+};
diff --git a/src/themes/forestbones_dark.zig b/src/themes/forestbones_dark.zig
new file mode 100644
index 00000000..11825525
--- /dev/null
+++ b/src/themes/forestbones_dark.zig
@@ -0,0 +1,92 @@
+//! Forestbones (dark): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #3e4850 -> #505a64: 1.15:1 off the unfocused #353f46, pardes needs 1.5:1 on a dark page
+//! - focused grip #596873 -> #6a7781: 1.22:1 on the focused tag #505a64
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/forestbones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/forestbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "forestbones_dark",
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:33 Normal guibg
+ .bg = .{ 0x2c, 0x34, 0x3a },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:33 Normal guifg
+ .fg = .{ 0xe7, 0xdc, 0xc4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:211 Visual guibg
+ .sel_bg = .{ 0x61, 0x5b, 0x51 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xe7, 0xdc, 0xc4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:198 StatusLineNC guibg
+ .tag_bg = .{ 0x35, 0x3f, 0x46 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:198 StatusLineNC guifg
+ .tag_fg = .{ 0xed, 0xe5, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:195 StatusLine guibg #3e4850, adjusted
+ .tag_active_bg = .{ 0x50, 0x5a, 0x64 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:195 StatusLine guifg
+ .tag_active_fg = .{ 0xe7, 0xdc, 0xc4 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/forestbones_dark_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x6a, 0x77, 0x81 },
+ // derived: the grip at rest, the accent #596873 faded toward the unfocused tag #353f46 as far as 1.6:1 off it (0.76 of the way)
+ .box_dim = .{ 0x50, 0x5e, 0x68 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/forestbones.vim:41 Changed guifg
+ .box_dirty = .{ 0x7f, 0xbc, 0xb4 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/forestbones.vim:207 Type guifg
+ .column_box = .{ 0x7f, 0xbc, 0xb4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:192 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0xa9, 0xc1, 0x81 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:201 String guifg
+ .str = .{ 0xad, 0xa2, 0x8b },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:164 Number guifg
+ .num = .{ 0xad, 0xa2, 0x8b },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:47 Comment guifg
+ .comment = .{ 0x6e, 0x7b, 0x85 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:150 LineNr guifg
+ .lineno = .{ 0x66, 0x77, 0x83 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:62 CursorLineNr guifg
+ .lineno_active = .{ 0xe7, 0xdc, 0xc4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:167 PmenuSbar guibg
+ .scroll_track = .{ 0x60, 0x6f, 0x7b },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:169 PmenuThumb guibg
+ .scroll_thumb = .{ 0x82, 0x96, 0xa5 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:218 WinSeparator guifg
+ .border = .{ 0x66, 0x77, 0x83 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:173 Search guibg
+ .search_bg = .{ 0x9e, 0x51, 0x79 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:173 Search guifg
+ .search_fg = .{ 0xe7, 0xdc, 0xc4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:113 Error guifg via DiagnosticError->Error (link :114)
+ .diagnostic_error = .{ 0xe6, 0x7c, 0x7f },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:212 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :213)
+ .diagnostic_warning = .{ 0xdd, 0xbd, 0x7f },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:72 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x7f, 0xbc, 0xb4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:67 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xd6, 0x9a, 0xb7 },
+ .palette = .{
+ .{ 0x2c, 0x34, 0x3a }, // 0: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:17 g:terminal_color_0
+ .{ 0xe6, 0x7c, 0x7f }, // 1: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:18 g:terminal_color_1
+ .{ 0xa9, 0xc1, 0x81 }, // 2: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:19 g:terminal_color_2
+ .{ 0xdd, 0xbd, 0x7f }, // 3: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:20 g:terminal_color_3
+ .{ 0x7f, 0xbc, 0xb4 }, // 4: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:21 g:terminal_color_4
+ .{ 0xd6, 0x9a, 0xb7 }, // 5: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:22 g:terminal_color_5
+ .{ 0x83, 0xc1, 0x93 }, // 6: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:23 g:terminal_color_6
+ .{ 0xe7, 0xdc, 0xc4 }, // 7: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:24 g:terminal_color_7
+ .{ 0x45, 0x52, 0x5c }, // 8: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:25 g:terminal_color_8
+ .{ 0xed, 0x92, 0x94 }, // 9: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:26 g:terminal_color_9
+ .{ 0xb0, 0xce, 0x7b }, // 10: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:27 g:terminal_color_10
+ .{ 0xed, 0xc7, 0x7a }, // 11: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:28 g:terminal_color_11
+ .{ 0x7a, 0xc9, 0xc0 }, // 12: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:29 g:terminal_color_12
+ .{ 0xe5, 0xa7, 0xc4 }, // 13: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:30 g:terminal_color_13
+ .{ 0x7d, 0xd0, 0x93 }, // 14: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:31 g:terminal_color_14
+ .{ 0xb2, 0xa7, 0x90 }, // 15: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:32 g:terminal_color_15
+ },
+};
diff --git a/src/themes/forestbones_light.zig b/src/themes/forestbones_light.zig
new file mode 100644
index 00000000..e227d6a9
--- /dev/null
+++ b/src/themes/forestbones_light.zig
@@ -0,0 +1,94 @@
+//! Forestbones (light): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #e3d191 -> #ddca87: 1.18:1 off the unfocused #f3e2aa, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #758690 -> #59666d: 2.92:1 on #f3e2aa, tag text needs 4.5:1 to be read and run
+//! - focused tag text #4f5b62 -> #4c575e: 4.28:1 on #ddca87, tag text needs 4.5:1
+//! - focused grip #c0b079 -> #b1a26f: 1.32:1 on the focused tag #ddca87
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/forestbones/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/forestbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "forestbones_light",
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:267 Normal guibg
+ .bg = .{ 0xfa, 0xf3, 0xe1 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:267 Normal guifg
+ .fg = .{ 0x4f, 0x5b, 0x62 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:445 Visual guibg
+ .sel_bg = .{ 0xd3, 0xdf, 0xe6 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x4f, 0x5b, 0x62 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:432 StatusLineNC guibg
+ .tag_bg = .{ 0xf3, 0xe2, 0xaa },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:432 StatusLineNC guifg #758690, adjusted
+ .tag_fg = .{ 0x59, 0x66, 0x6d },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:429 StatusLine guibg #e3d191, adjusted
+ .tag_active_bg = .{ 0xdd, 0xca, 0x87 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:429 StatusLine guifg #4f5b62, adjusted
+ .tag_active_fg = .{ 0x4c, 0x57, 0x5e },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/forestbones_light_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0xb1, 0xa2, 0x6f },
+ // derived: the grip at rest, the accent #c0b079 faded toward the unfocused tag #f3e2aa as far as 1.6:1 off it (0.94 of the way)
+ .box_dim = .{ 0xc3, 0xb3, 0x7c },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/forestbones.vim:275 Changed guifg
+ .box_dirty = .{ 0x3a, 0x94, 0xc4 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/forestbones.vim:441 Type guifg
+ .column_box = .{ 0x3a, 0x94, 0xc4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:426 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x8d, 0xa2, 0x00 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:435 String guifg
+ .str = .{ 0x73, 0x84, 0x8d },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:398 Number guifg
+ .num = .{ 0x73, 0x84, 0x8d },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:281 Comment guifg
+ .comment = .{ 0x9a, 0x90, 0x71 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:384 LineNr guifg
+ .lineno = .{ 0xa9, 0x9b, 0x6a },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:296 CursorLineNr guifg
+ .lineno_active = .{ 0x4f, 0x5b, 0x62 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:401 PmenuSbar guibg
+ .scroll_track = .{ 0xb7, 0xa8, 0x74 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:403 PmenuThumb guibg
+ .scroll_thumb = .{ 0xfc, 0xf9, 0xf1 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:452 WinSeparator guifg
+ .border = .{ 0xa9, 0x9b, 0x6a },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:407 Search guibg
+ .search_bg = .{ 0xee, 0xba, 0xdb },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:407 Search guifg
+ .search_fg = .{ 0x4f, 0x5b, 0x62 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:347 Error guifg via DiagnosticError->Error (link :348)
+ .diagnostic_error = .{ 0xf8, 0x55, 0x50 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:446 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :447)
+ .diagnostic_warning = .{ 0xde, 0xa0, 0x00 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:306 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x3a, 0x94, 0xc4 },
+ // ~/05-genizah/zenbones.nvim/colors/forestbones.vim:301 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xdf, 0x69, 0xba },
+ .palette = .{
+ .{ 0xfa, 0xf3, 0xe1 }, // 0: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:251 g:terminal_color_0
+ .{ 0xf8, 0x55, 0x50 }, // 1: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:252 g:terminal_color_1
+ .{ 0x8d, 0xa2, 0x00 }, // 2: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:253 g:terminal_color_2
+ .{ 0xde, 0xa0, 0x00 }, // 3: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:254 g:terminal_color_3
+ .{ 0x3a, 0x94, 0xc4 }, // 4: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:255 g:terminal_color_4
+ .{ 0xdf, 0x69, 0xba }, // 5: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:256 g:terminal_color_5
+ .{ 0x36, 0xa8, 0x7e }, // 6: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:257 g:terminal_color_6
+ .{ 0x4f, 0x5b, 0x62 }, // 7: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:258 g:terminal_color_7
+ .{ 0xdb, 0xc9, 0x88 }, // 8: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:259 g:terminal_color_8
+ .{ 0xe6, 0x27, 0x1c }, // 9: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:260 g:terminal_color_9
+ .{ 0x75, 0x87, 0x00 }, // 10: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:261 g:terminal_color_10
+ .{ 0xb9, 0x85, 0x00 }, // 11: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:262 g:terminal_color_11
+ .{ 0x29, 0x7c, 0xa6 }, // 12: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:263 g:terminal_color_12
+ .{ 0xca, 0x43, 0xa3 }, // 13: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:264 g:terminal_color_13
+ .{ 0x25, 0x8c, 0x67 }, // 14: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:265 g:terminal_color_14
+ .{ 0x6e, 0x7f, 0x88 }, // 15: ~/05-genizah/zenbones.nvim/colors/forestbones.vim:266 g:terminal_color_15
+ },
+};
diff --git a/src/themes/kanagawabones.zig b/src/themes/kanagawabones.zig
new file mode 100644
index 00000000..94e5aab0
--- /dev/null
+++ b/src/themes/kanagawabones.zig
@@ -0,0 +1,93 @@
+//! Kanagawabones: Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #363644 -> #444456: 1.21:1 off the unfocused #292934, pardes needs 1.5:1 on a dark page
+//! - focused grip #565668 -> #606071: 1.33:1 on the focused tag #444456
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/kanagawabones/palette.lua + lua/zenbones/specs/dark.lua); values are
+//! the default 'ness' baked into colors/kanagawabones.vim. Palette = the 16
+//! names term.lua maps to ANSI, taken from the generated terminal colours.
+//! Dark-only flavour (zenbones.json background='dark'). TabLineSel is
+//! guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "kanagawabones",
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:34 Normal guibg
+ .bg = .{ 0x1f, 0x1f, 0x28 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:34 Normal guifg
+ .fg = .{ 0xdd, 0xd8, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:212 Visual guibg
+ .sel_bg = .{ 0x49, 0x47, 0x3e },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xdd, 0xd8, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:199 StatusLineNC guibg
+ .tag_bg = .{ 0x29, 0x29, 0x34 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:199 StatusLineNC guifg
+ .tag_fg = .{ 0xe9, 0xe3, 0xc5 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:196 StatusLine guibg #363644, adjusted
+ .tag_active_bg = .{ 0x44, 0x44, 0x56 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:196 StatusLine guifg
+ .tag_active_fg = .{ 0xdd, 0xd8, 0xbb },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/kanagawabones_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x60, 0x60, 0x71 },
+ // derived: the grip at rest, the accent #565668 faded toward the unfocused tag #292934 as far as 1.6:1 off it (0.70 of the way)
+ .box_dim = .{ 0x49, 0x49, 0x58 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:42 Changed guifg
+ .box_dirty = .{ 0x7e, 0xb3, 0xc9 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:208 Type guifg
+ .column_box = .{ 0x97, 0x97, 0xa5 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:192 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0xdd, 0xd8, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:202 String guifg
+ .str = .{ 0xa2, 0x9e, 0x89 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:165 Number guifg
+ .num = .{ 0xa2, 0x9e, 0x89 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:48 Comment guifg
+ .comment = .{ 0x69, 0x69, 0x77 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:151 LineNr guifg
+ .lineno = .{ 0x64, 0x64, 0x76 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:63 CursorLineNr guifg
+ .lineno_active = .{ 0xdd, 0xd8, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:168 PmenuSbar guibg
+ .scroll_track = .{ 0x5d, 0x5d, 0x6f },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:170 PmenuThumb guibg
+ .scroll_thumb = .{ 0x85, 0x85, 0x94 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:219 WinSeparator guifg
+ .border = .{ 0x64, 0x64, 0x76 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:173 Search guibg
+ .search_bg = .{ 0x61, 0x4a, 0x82 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:173 Search guifg
+ .search_fg = .{ 0xdd, 0xd8, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:114 Error guifg via DiagnosticError->Error (link :115)
+ .diagnostic_error = .{ 0xe4, 0x6a, 0x78 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:213 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :214)
+ .diagnostic_warning = .{ 0xe5, 0xc2, 0x83 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:73 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x7e, 0xb3, 0xc9 },
+ // ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:68 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x95, 0x7f, 0xb8 },
+ .palette = .{
+ .{ 0x1f, 0x1f, 0x28 }, // 0: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:18 g:terminal_color_0
+ .{ 0xe4, 0x6a, 0x78 }, // 1: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:19 g:terminal_color_1
+ .{ 0x98, 0xbc, 0x6d }, // 2: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:20 g:terminal_color_2
+ .{ 0xe5, 0xc2, 0x83 }, // 3: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:21 g:terminal_color_3
+ .{ 0x7e, 0xb3, 0xc9 }, // 4: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:22 g:terminal_color_4
+ .{ 0x95, 0x7f, 0xb8 }, // 5: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:23 g:terminal_color_5
+ .{ 0x7e, 0xb3, 0xc9 }, // 6: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:24 g:terminal_color_6
+ .{ 0xdd, 0xd8, 0xbb }, // 7: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:25 g:terminal_color_7
+ .{ 0x3c, 0x3c, 0x51 }, // 8: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:26 g:terminal_color_8
+ .{ 0xec, 0x81, 0x8c }, // 9: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:27 g:terminal_color_9
+ .{ 0x9e, 0xc9, 0x67 }, // 10: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:28 g:terminal_color_10
+ .{ 0xf1, 0xc9, 0x82 }, // 11: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:29 g:terminal_color_11
+ .{ 0x7b, 0xc2, 0xdf }, // 12: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:30 g:terminal_color_12
+ .{ 0xa9, 0x8f, 0xd2 }, // 13: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:31 g:terminal_color_13
+ .{ 0x7b, 0xc2, 0xdf }, // 14: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:32 g:terminal_color_14
+ .{ 0xa8, 0xa4, 0x8d }, // 15: ~/05-genizah/zenbones.nvim/colors/kanagawabones.vim:33 g:terminal_color_15
+ },
+};
diff --git a/src/themes/neobones_dark.zig b/src/themes/neobones_dark.zig
new file mode 100644
index 00000000..b0167da2
--- /dev/null
+++ b/src/themes/neobones_dark.zig
@@ -0,0 +1,92 @@
+//! Neobones (dark): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #20303a -> #2e4350: 1.15:1 off the unfocused #18252d, pardes needs 1.5:1 on a dark page
+//! - focused grip #3b5362 -> #4b616f: 1.28:1 on the focused tag #2e4350
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/neobones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/neobones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "neobones_dark",
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:33 Normal guibg
+ .bg = .{ 0x0f, 0x19, 0x1f },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:33 Normal guifg
+ .fg = .{ 0xc6, 0xd5, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:209 Visual guibg
+ .sel_bg = .{ 0x3a, 0x3e, 0x3d },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xc6, 0xd5, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:196 StatusLineNC guibg
+ .tag_bg = .{ 0x18, 0x25, 0x2d },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:196 StatusLineNC guifg
+ .tag_fg = .{ 0xd1, 0xe0, 0xda },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:193 StatusLine guibg #20303a, adjusted
+ .tag_active_bg = .{ 0x2e, 0x43, 0x50 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:193 StatusLine guifg
+ .tag_active_fg = .{ 0xc6, 0xd5, 0xcf },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/neobones_dark_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x4b, 0x61, 0x6f },
+ // derived: the grip at rest, the accent #3b5362 faded toward the unfocused tag #18252d as far as 1.6:1 off it (0.74 of the way)
+ .box_dim = .{ 0x32, 0x47, 0x54 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/neobones.vim:41 Changed guifg
+ .box_dirty = .{ 0x81, 0x90, 0xd4 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/neobones.vim:205 Type guifg
+ .column_box = .{ 0x6e, 0x99, 0xb2 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:189 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0xc6, 0xd5, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:199 String guifg
+ .str = .{ 0x93, 0x9e, 0x99 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:163 Number guifg
+ .num = .{ 0x93, 0x9e, 0x99 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:47 Comment guifg
+ .comment = .{ 0x53, 0x69, 0x77 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:149 LineNr guifg
+ .lineno = .{ 0x46, 0x62, 0x73 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:61 CursorLineNr guifg
+ .lineno_active = .{ 0xc6, 0xd5, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:166 PmenuSbar guibg
+ .scroll_track = .{ 0x40, 0x5a, 0x6b },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:168 PmenuThumb guibg
+ .scroll_thumb = .{ 0x60, 0x86, 0x9d },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:216 WinSeparator guifg
+ .border = .{ 0x46, 0x62, 0x73 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:171 Search guibg
+ .search_bg = .{ 0x62, 0x41, 0x5b },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:171 Search guifg
+ .search_fg = .{ 0xc6, 0xd5, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:112 Error guifg via DiagnosticError->Error (link :113)
+ .diagnostic_error = .{ 0xde, 0x6e, 0x7c },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:210 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :211)
+ .diagnostic_warning = .{ 0xb7, 0x7e, 0x64 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:71 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x81, 0x90, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:66 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xb2, 0x79, 0xa7 },
+ .palette = .{
+ .{ 0x0f, 0x19, 0x1f }, // 0: ~/05-genizah/zenbones.nvim/colors/neobones.vim:17 g:terminal_color_0
+ .{ 0xde, 0x6e, 0x7c }, // 1: ~/05-genizah/zenbones.nvim/colors/neobones.vim:18 g:terminal_color_1
+ .{ 0x90, 0xff, 0x6b }, // 2: ~/05-genizah/zenbones.nvim/colors/neobones.vim:19 g:terminal_color_2
+ .{ 0xb7, 0x7e, 0x64 }, // 3: ~/05-genizah/zenbones.nvim/colors/neobones.vim:20 g:terminal_color_3
+ .{ 0x81, 0x90, 0xd4 }, // 4: ~/05-genizah/zenbones.nvim/colors/neobones.vim:21 g:terminal_color_4
+ .{ 0xb2, 0x79, 0xa7 }, // 5: ~/05-genizah/zenbones.nvim/colors/neobones.vim:22 g:terminal_color_5
+ .{ 0x66, 0xa5, 0xad }, // 6: ~/05-genizah/zenbones.nvim/colors/neobones.vim:23 g:terminal_color_6
+ .{ 0xc6, 0xd5, 0xcf }, // 7: ~/05-genizah/zenbones.nvim/colors/neobones.vim:24 g:terminal_color_7
+ .{ 0x26, 0x39, 0x45 }, // 8: ~/05-genizah/zenbones.nvim/colors/neobones.vim:25 g:terminal_color_8
+ .{ 0xe8, 0x83, 0x8f }, // 9: ~/05-genizah/zenbones.nvim/colors/neobones.vim:26 g:terminal_color_9
+ .{ 0xa0, 0xff, 0x85 }, // 10: ~/05-genizah/zenbones.nvim/colors/neobones.vim:27 g:terminal_color_10
+ .{ 0xd6, 0x8c, 0x67 }, // 11: ~/05-genizah/zenbones.nvim/colors/neobones.vim:28 g:terminal_color_11
+ .{ 0x92, 0xa0, 0xe2 }, // 12: ~/05-genizah/zenbones.nvim/colors/neobones.vim:29 g:terminal_color_12
+ .{ 0xcf, 0x86, 0xc1 }, // 13: ~/05-genizah/zenbones.nvim/colors/neobones.vim:30 g:terminal_color_13
+ .{ 0x65, 0xb8, 0xc1 }, // 14: ~/05-genizah/zenbones.nvim/colors/neobones.vim:31 g:terminal_color_14
+ .{ 0x98, 0xa3, 0x9e }, // 15: ~/05-genizah/zenbones.nvim/colors/neobones.vim:32 g:terminal_color_15
+ },
+};
diff --git a/src/themes/neobones_light.zig b/src/themes/neobones_light.zig
new file mode 100644
index 00000000..b24fcef5
--- /dev/null
+++ b/src/themes/neobones_light.zig
@@ -0,0 +1,92 @@
+//! Neobones (light): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #c2cfc4 -> #bac6bc: 1.16:1 off the unfocused #d0ded2, pardes needs 1.25:1 on a light page
+//! - focused grip #a3aea4 -> #96a097: 1.30:1 on the focused tag #bac6bc
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/neobones/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/neobones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "neobones_light",
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:266 Normal guibg
+ .bg = .{ 0xe5, 0xed, 0xe6 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:266 Normal guifg
+ .fg = .{ 0x20, 0x2e, 0x18 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:442 Visual guibg
+ .sel_bg = .{ 0xad, 0xe4, 0x8c },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x20, 0x2e, 0x18 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:429 StatusLineNC guibg
+ .tag_bg = .{ 0xd0, 0xde, 0xd2 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:429 StatusLineNC guifg
+ .tag_fg = .{ 0x4b, 0x66, 0x3c },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:426 StatusLine guibg #c2cfc4, adjusted
+ .tag_active_bg = .{ 0xba, 0xc6, 0xbc },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:426 StatusLine guifg
+ .tag_active_fg = .{ 0x20, 0x2e, 0x18 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/neobones_light_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x96, 0xa0, 0x97 },
+ // derived: the grip at rest, the accent #a3aea4 faded toward the unfocused tag #d0ded2 as far as 1.6:1 off it (0.98 of the way)
+ .box_dim = .{ 0xa4, 0xaf, 0xa5 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/neobones.vim:274 Changed guifg
+ .box_dirty = .{ 0x28, 0x64, 0x86 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/neobones.vim:438 Type guifg
+ .column_box = .{ 0x49, 0x5c, 0x4c },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:422 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x20, 0x2e, 0x18 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:432 String guifg
+ .str = .{ 0x47, 0x60, 0x38 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:396 Number guifg
+ .num = .{ 0x47, 0x60, 0x38 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:280 Comment guifg
+ .comment = .{ 0x87, 0x8d, 0x88 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:382 LineNr guifg
+ .lineno = .{ 0x8f, 0x98, 0x90 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:294 CursorLineNr guifg
+ .lineno_active = .{ 0x20, 0x2e, 0x18 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:399 PmenuSbar guibg
+ .scroll_track = .{ 0x9b, 0xa6, 0x9d },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:401 PmenuThumb guibg
+ .scroll_thumb = .{ 0xf4, 0xf7, 0xf5 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:449 WinSeparator guifg
+ .border = .{ 0x8f, 0x98, 0x90 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:404 Search guibg
+ .search_bg = .{ 0xdc, 0xb5, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:404 Search guifg
+ .search_fg = .{ 0x20, 0x2e, 0x18 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:345 Error guifg via DiagnosticError->Error (link :346)
+ .diagnostic_error = .{ 0xa8, 0x33, 0x4c },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:443 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :444)
+ .diagnostic_warning = .{ 0x94, 0x49, 0x27 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:304 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x28, 0x64, 0x86 },
+ // ~/05-genizah/zenbones.nvim/colors/neobones.vim:299 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x88, 0x50, 0x7d },
+ .palette = .{
+ .{ 0xe5, 0xed, 0xe6 }, // 0: ~/05-genizah/zenbones.nvim/colors/neobones.vim:250 g:terminal_color_0
+ .{ 0xa8, 0x33, 0x4c }, // 1: ~/05-genizah/zenbones.nvim/colors/neobones.vim:251 g:terminal_color_1
+ .{ 0x56, 0x7a, 0x30 }, // 2: ~/05-genizah/zenbones.nvim/colors/neobones.vim:252 g:terminal_color_2
+ .{ 0x94, 0x49, 0x27 }, // 3: ~/05-genizah/zenbones.nvim/colors/neobones.vim:253 g:terminal_color_3
+ .{ 0x28, 0x64, 0x86 }, // 4: ~/05-genizah/zenbones.nvim/colors/neobones.vim:254 g:terminal_color_4
+ .{ 0x88, 0x50, 0x7d }, // 5: ~/05-genizah/zenbones.nvim/colors/neobones.vim:255 g:terminal_color_5
+ .{ 0x3b, 0x89, 0x92 }, // 6: ~/05-genizah/zenbones.nvim/colors/neobones.vim:256 g:terminal_color_6
+ .{ 0x20, 0x2e, 0x18 }, // 7: ~/05-genizah/zenbones.nvim/colors/neobones.vim:257 g:terminal_color_7
+ .{ 0xb3, 0xc6, 0xb6 }, // 8: ~/05-genizah/zenbones.nvim/colors/neobones.vim:258 g:terminal_color_8
+ .{ 0x94, 0x25, 0x3e }, // 9: ~/05-genizah/zenbones.nvim/colors/neobones.vim:259 g:terminal_color_9
+ .{ 0x3f, 0x5a, 0x22 }, // 10: ~/05-genizah/zenbones.nvim/colors/neobones.vim:260 g:terminal_color_10
+ .{ 0x80, 0x3d, 0x1c }, // 11: ~/05-genizah/zenbones.nvim/colors/neobones.vim:261 g:terminal_color_11
+ .{ 0x1d, 0x55, 0x73 }, // 12: ~/05-genizah/zenbones.nvim/colors/neobones.vim:262 g:terminal_color_12
+ .{ 0x7b, 0x3b, 0x70 }, // 13: ~/05-genizah/zenbones.nvim/colors/neobones.vim:263 g:terminal_color_13
+ .{ 0x2b, 0x74, 0x7c }, // 14: ~/05-genizah/zenbones.nvim/colors/neobones.vim:264 g:terminal_color_14
+ .{ 0x41, 0x59, 0x34 }, // 15: ~/05-genizah/zenbones.nvim/colors/neobones.vim:265 g:terminal_color_15
+ },
+};
diff --git a/src/themes/nordbones.zig b/src/themes/nordbones.zig
new file mode 100644
index 00000000..e7ec64b3
--- /dev/null
+++ b/src/themes/nordbones.zig
@@ -0,0 +1,95 @@
+//! Nordbones: Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #414959 -> #515b6e: 1.15:1 off the unfocused #39404e, pardes needs 1.5:1 on a dark page
+//! - focused grip #5e687e -> #6e778b: 1.22:1 on the focused tag #515b6e
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/nordbones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/nordbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. Dark-only
+//! flavour (zenbones.json background='dark'). palette.lua also names nord0,
+//! nord1, nord10, nord11, nord12, nord13, nord14, nord15, nord2, nord3, nord4,
+//! nord5, nord6, nord7, nord8, nord9 (in one or both backgrounds) with no
+//! generated literal-hex output; omitted. TabLineSel is guifg/guibg=NONE (bold
+//! only), so it inherits Normal. TabLine links to StatusLine, TabLineFill to
+//! StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral (the
+//! theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "nordbones",
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:34 Normal guibg
+ .bg = .{ 0x2f, 0x35, 0x41 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:34 Normal guifg
+ .fg = .{ 0xeb, 0xee, 0xf3 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:212 Visual guibg
+ .sel_bg = .{ 0x54, 0x5f, 0x70 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xeb, 0xee, 0xf3 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:199 StatusLineNC guibg
+ .tag_bg = .{ 0x39, 0x40, 0x4e },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:199 StatusLineNC guifg
+ .tag_fg = .{ 0xf2, 0xf4, 0xf7 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:196 StatusLine guibg #414959, adjusted
+ .tag_active_bg = .{ 0x51, 0x5b, 0x6e },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:196 StatusLine guifg
+ .tag_active_fg = .{ 0xeb, 0xee, 0xf3 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/nordbones_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x6e, 0x77, 0x8b },
+ // derived: the grip at rest, the accent #5e687e faded toward the unfocused tag #39404e as far as 1.6:1 off it (0.78 of the way)
+ .box_dim = .{ 0x56, 0x5f, 0x73 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/nordbones.vim:42 Changed guifg
+ .box_dirty = .{ 0x8f, 0xbc, 0xba },
+ // derived: the column grip, the original's function colour, ~/05-genizah/zenbones.nvim/colors/nordbones.vim:123 Function guifg
+ .column_box = .{ 0x87, 0xbf, 0xce },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:192 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x81, 0xa1, 0xc1 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:202 String guifg
+ .str = .{ 0x9e, 0xaf, 0xc9 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:165 Number guifg
+ .num = .{ 0x8f, 0xbc, 0xba },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:48 Comment guifg
+ .comment = .{ 0x73, 0x7c, 0x90 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:151 LineNr guifg
+ .lineno = .{ 0x69, 0x75, 0x8c },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:63 CursorLineNr guifg
+ .lineno_active = .{ 0xeb, 0xee, 0xf3 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:168 PmenuSbar guibg
+ .scroll_track = .{ 0x65, 0x70, 0x87 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:170 PmenuThumb guibg
+ .scroll_thumb = .{ 0x86, 0x94, 0xb0 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:219 WinSeparator guifg
+ .border = .{ 0x69, 0x75, 0x8c },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:173 Search guibg
+ .search_bg = .{ 0x84, 0x63, 0x7e },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:173 Search guifg
+ .search_fg = .{ 0xeb, 0xee, 0xf3 },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:114 Error guifg via DiagnosticError->Error (link :115)
+ .diagnostic_error = .{ 0xc1, 0x61, 0x6a },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:213 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :214)
+ .diagnostic_warning = .{ 0xcf, 0x86, 0x6f },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:73 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x8f, 0xbc, 0xba },
+ // ~/05-genizah/zenbones.nvim/colors/nordbones.vim:68 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xb3, 0x8d, 0xac },
+ .palette = .{
+ .{ 0x2f, 0x35, 0x41 }, // 0: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:18 g:terminal_color_0
+ .{ 0xc1, 0x61, 0x6a }, // 1: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:19 g:terminal_color_1
+ .{ 0xa4, 0xbe, 0x8d }, // 2: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:20 g:terminal_color_2
+ .{ 0xcf, 0x86, 0x6f }, // 3: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:21 g:terminal_color_3
+ .{ 0x8f, 0xbc, 0xba }, // 4: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:22 g:terminal_color_4
+ .{ 0xb3, 0x8d, 0xac }, // 5: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:23 g:terminal_color_5
+ .{ 0x87, 0xbf, 0xce }, // 6: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:24 g:terminal_color_6
+ .{ 0xeb, 0xee, 0xf3 }, // 7: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:25 g:terminal_color_7
+ .{ 0x47, 0x50, 0x63 }, // 8: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:26 g:terminal_color_8
+ .{ 0xd6, 0x78, 0x7f }, // 9: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:27 g:terminal_color_9
+ .{ 0xa8, 0xcc, 0x86 }, // 10: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:28 g:terminal_color_10
+ .{ 0xe0, 0x96, 0x80 }, // 11: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:29 g:terminal_color_11
+ .{ 0x89, 0xca, 0xc8 }, // 12: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:30 g:terminal_color_12
+ .{ 0xcf, 0x97, 0xc5 }, // 13: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:31 g:terminal_color_13
+ .{ 0x82, 0xcc, 0xe0 }, // 14: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:32 g:terminal_color_14
+ .{ 0xa5, 0xb4, 0xcd }, // 15: ~/05-genizah/zenbones.nvim/colors/nordbones.vim:33 g:terminal_color_15
+ },
+};
diff --git a/src/themes/rosebones_dark.zig b/src/themes/rosebones_dark.zig
new file mode 100644
index 00000000..bd3ae169
--- /dev/null
+++ b/src/themes/rosebones_dark.zig
@@ -0,0 +1,93 @@
+//! Rosebones (dark): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #312e43 -> #423e59: 1.19:1 off the unfocused #242232, pardes needs 1.5:1 on a dark page
+//! - focused grip #534e6f -> #5d5978: 1.30:1 on the focused tag #423e59
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/rosebones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/rosebones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours.
+//! palette.lua also names bg_warm, text (in one or both backgrounds) with no
+//! generated literal-hex output; omitted. TabLineSel is guifg/guibg=NONE (bold
+//! only), so it inherits Normal. TabLine links to StatusLine, TabLineFill to
+//! StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral (the
+//! theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "rosebones_dark",
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:33 Normal guibg
+ .bg = .{ 0x1a, 0x18, 0x25 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:33 Normal guifg
+ .fg = .{ 0xe1, 0xd4, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:211 Visual guibg
+ .sel_bg = .{ 0x52, 0x3a, 0x39 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xe1, 0xd4, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:198 StatusLineNC guibg
+ .tag_bg = .{ 0x24, 0x22, 0x32 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:198 StatusLineNC guifg
+ .tag_fg = .{ 0xe9, 0xe0, 0xe0 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:195 StatusLine guibg #312e43, adjusted
+ .tag_active_bg = .{ 0x42, 0x3e, 0x59 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:195 StatusLine guifg
+ .tag_active_fg = .{ 0xe1, 0xd4, 0xd4 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/rosebones_dark_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x5d, 0x59, 0x78 },
+ // derived: the grip at rest, the accent #534e6f faded toward the unfocused tag #242232 as far as 1.6:1 off it (0.72 of the way)
+ .box_dim = .{ 0x46, 0x42, 0x5e },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/rosebones.vim:41 Changed guifg
+ .box_dirty = .{ 0x9c, 0xcf, 0xd8 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/rosebones.vim:207 Type guifg
+ .column_box = .{ 0xdf, 0xde, 0xf1 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:191 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x31, 0x74, 0x90 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:201 String guifg
+ .str = .{ 0xbc, 0x94, 0x93 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:164 Number guifg
+ .num = .{ 0xbc, 0x94, 0x93 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:47 Comment guifg
+ .comment = .{ 0x69, 0x65, 0x7e },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:150 LineNr guifg
+ .lineno = .{ 0x62, 0x5d, 0x7f },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:62 CursorLineNr guifg
+ .lineno_active = .{ 0xe1, 0xd4, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:167 PmenuSbar guibg
+ .scroll_track = .{ 0x5a, 0x55, 0x78 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:169 PmenuThumb guibg
+ .scroll_thumb = .{ 0x84, 0x80, 0x9d },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:218 WinSeparator guifg
+ .border = .{ 0x62, 0x5d, 0x7f },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:172 Search guibg
+ .search_bg = .{ 0x67, 0x35, 0x92 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:172 Search guifg
+ .search_fg = .{ 0xe1, 0xd4, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:113 Error guifg via DiagnosticError->Error (link :114)
+ .diagnostic_error = .{ 0xeb, 0x71, 0x93 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:212 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :213)
+ .diagnostic_warning = .{ 0xf6, 0xc0, 0x74 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:72 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x9c, 0xcf, 0xd8 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:67 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xc4, 0xa7, 0xe7 },
+ .palette = .{
+ .{ 0x1a, 0x18, 0x25 }, // 0: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:17 g:terminal_color_0
+ .{ 0xeb, 0x71, 0x93 }, // 1: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:18 g:terminal_color_1
+ .{ 0x31, 0x74, 0x90 }, // 2: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:19 g:terminal_color_2
+ .{ 0xf6, 0xc0, 0x74 }, // 3: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:20 g:terminal_color_3
+ .{ 0x9c, 0xcf, 0xd8 }, // 4: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:21 g:terminal_color_4
+ .{ 0xc4, 0xa7, 0xe7 }, // 5: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:22 g:terminal_color_5
+ .{ 0x9c, 0xcf, 0xd8 }, // 6: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:23 g:terminal_color_6
+ .{ 0xe1, 0xd4, 0xd4 }, // 7: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:24 g:terminal_color_7
+ .{ 0x3a, 0x36, 0x51 }, // 8: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:25 g:terminal_color_8
+ .{ 0xf2, 0x89, 0xa4 }, // 9: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:26 g:terminal_color_9
+ .{ 0x35, 0x8d, 0xaf }, // 10: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:27 g:terminal_color_10
+ .{ 0xf9, 0xca, 0x8e }, // 11: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:28 g:terminal_color_11
+ .{ 0x94, 0xda, 0xe6 }, // 12: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:29 g:terminal_color_12
+ .{ 0xce, 0xb3, 0xef }, // 13: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:30 g:terminal_color_13
+ .{ 0x94, 0xda, 0xe6 }, // 14: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:31 g:terminal_color_14
+ .{ 0xbf, 0x9b, 0x99 }, // 15: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:32 g:terminal_color_15
+ },
+};
diff --git a/src/themes/rosebones_light.zig b/src/themes/rosebones_light.zig
new file mode 100644
index 00000000..314424a6
--- /dev/null
+++ b/src/themes/rosebones_light.zig
@@ -0,0 +1,94 @@
+//! Rosebones (light): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #ecd0a9 -> #e9c89a: 1.18:1 off the unfocused #f3e3cf, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #ae6966 -> #8f5654: 3.33:1 on #f3e3cf, tag text needs 4.5:1 to be read and run
+//! - focused grip #ceaf7e -> #bea174: 1.31:1 on the focused tag #e9c89a
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/rosebones/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/rosebones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours.
+//! palette.lua also names bg_warm, text (in one or both backgrounds) with no
+//! generated literal-hex output; omitted. TabLineSel is guifg/guibg=NONE (bold
+//! only), so it inherits Normal. TabLine links to StatusLine, TabLineFill to
+//! StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral (the
+//! theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "rosebones_light",
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:267 Normal guibg
+ .bg = .{ 0xfb, 0xf6, 0xf0 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:267 Normal guifg
+ .fg = .{ 0x72, 0x43, 0x41 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:445 Visual guibg
+ .sel_bg = .{ 0xea, 0xdd, 0xdc },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x72, 0x43, 0x41 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:432 StatusLineNC guibg
+ .tag_bg = .{ 0xf3, 0xe3, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:432 StatusLineNC guifg #ae6966, adjusted
+ .tag_fg = .{ 0x8f, 0x56, 0x54 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:429 StatusLine guibg #ecd0a9, adjusted
+ .tag_active_bg = .{ 0xe9, 0xc8, 0x9a },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:429 StatusLine guifg
+ .tag_active_fg = .{ 0x72, 0x43, 0x41 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/rosebones_light_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0xbe, 0xa1, 0x74 },
+ // derived: the grip at rest, the accent #ceaf7e faded toward the unfocused tag #f3e3cf as far as 1.6:1 off it (0.96 of the way)
+ .box_dim = .{ 0xcf, 0xb1, 0x81 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/rosebones.vim:275 Changed guifg
+ .box_dirty = .{ 0x57, 0x95, 0xa0 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/rosebones.vim:441 Type guifg
+ .column_box = .{ 0x57, 0x52, 0x7a },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:425 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x28, 0x6a, 0x84 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:435 String guifg
+ .str = .{ 0xab, 0x67, 0x63 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:398 Number guifg
+ .num = .{ 0xab, 0x67, 0x63 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:281 Comment guifg
+ .comment = .{ 0xa1, 0x8e, 0x72 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:384 LineNr guifg
+ .lineno = .{ 0xb6, 0x9a, 0x6e },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:296 CursorLineNr guifg
+ .lineno_active = .{ 0x72, 0x43, 0x41 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:401 PmenuSbar guibg
+ .scroll_track = .{ 0xc5, 0xa7, 0x78 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:403 PmenuThumb guibg
+ .scroll_thumb = .{ 0xfe, 0xfc, 0xfa },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:452 WinSeparator guifg
+ .border = .{ 0xb6, 0x9a, 0x6e },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:406 Search guibg
+ .search_bg = .{ 0xd1, 0xc9, 0xdc },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:406 Search guifg
+ .search_fg = .{ 0x72, 0x43, 0x41 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:347 Error guifg via DiagnosticError->Error (link :348)
+ .diagnostic_error = .{ 0xb5, 0x63, 0x7a },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:446 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :447)
+ .diagnostic_warning = .{ 0xec, 0x9d, 0x33 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:306 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x57, 0x95, 0xa0 },
+ // ~/05-genizah/zenbones.nvim/colors/rosebones.vim:301 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x91, 0x7b, 0xa9 },
+ .palette = .{
+ .{ 0xfb, 0xf6, 0xf0 }, // 0: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:251 g:terminal_color_0
+ .{ 0xb5, 0x63, 0x7a }, // 1: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:252 g:terminal_color_1
+ .{ 0x28, 0x6a, 0x84 }, // 2: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:253 g:terminal_color_2
+ .{ 0xec, 0x9d, 0x33 }, // 3: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:254 g:terminal_color_3
+ .{ 0x57, 0x95, 0xa0 }, // 4: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:255 g:terminal_color_4
+ .{ 0x91, 0x7b, 0xa9 }, // 5: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:256 g:terminal_color_5
+ .{ 0x57, 0x95, 0xa0 }, // 6: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:257 g:terminal_color_6
+ .{ 0x72, 0x43, 0x41 }, // 7: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:258 g:terminal_color_7
+ .{ 0xe8, 0xc4, 0x8b }, // 8: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:259 g:terminal_color_8
+ .{ 0xa5, 0x4a, 0x66 }, // 9: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:260 g:terminal_color_9
+ .{ 0x1c, 0x59, 0x70 }, // 10: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:261 g:terminal_color_10
+ .{ 0xc6, 0x82, 0x23 }, // 11: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:262 g:terminal_color_11
+ .{ 0x40, 0x7d, 0x88 }, // 12: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:263 g:terminal_color_12
+ .{ 0x85, 0x5a, 0xac }, // 13: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:264 g:terminal_color_13
+ .{ 0x40, 0x7d, 0x88 }, // 14: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:265 g:terminal_color_14
+ .{ 0xa4, 0x63, 0x5f }, // 15: ~/05-genizah/zenbones.nvim/colors/rosebones.vim:266 g:terminal_color_15
+ },
+};
diff --git a/src/themes/seoulbones_dark.zig b/src/themes/seoulbones_dark.zig
new file mode 100644
index 00000000..74cdf1ff
--- /dev/null
+++ b/src/themes/seoulbones_dark.zig
@@ -0,0 +1,95 @@
+//! Seoulbones (dark): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #5e5e5e -> #727272: 1.15:1 off the unfocused #555555, pardes needs 1.5:1 on a dark page
+//! - focused tag text #dddddd -> #f8f8f8: 3.54:1 on #727272, tag text needs 4.5:1
+//! - focused grip #797979 -> #919191: 1.11:1 on the focused tag #727272
+//! - scroll thumb #a0a0a0 -> #a1a1a1: 1.49:1 on its track #818181
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/seoulbones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/seoulbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours.
+//! palette.lua also names orange (in one or both backgrounds) with no generated
+//! literal-hex output; omitted. TabLineSel is guifg/guibg=NONE (bold only), so
+//! it inherits Normal. TabLine links to StatusLine, TabLineFill to
+//! StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral (the
+//! theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "seoulbones_dark",
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:33 Normal guibg
+ .bg = .{ 0x4b, 0x4b, 0x4b },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:33 Normal guifg
+ .fg = .{ 0xdd, 0xdd, 0xdd },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:213 Visual guibg
+ .sel_bg = .{ 0x77, 0x77, 0x77 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xdd, 0xdd, 0xdd },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:200 StatusLineNC guibg
+ .tag_bg = .{ 0x55, 0x55, 0x55 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:200 StatusLineNC guifg
+ .tag_fg = .{ 0xe5, 0xe5, 0xe5 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:197 StatusLine guibg #5e5e5e, adjusted
+ .tag_active_bg = .{ 0x72, 0x72, 0x72 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:197 StatusLine guifg #dddddd, adjusted
+ .tag_active_fg = .{ 0xf8, 0xf8, 0xf8 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/seoulbones_dark_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x91, 0x91, 0x91 },
+ // derived: the grip at rest, the accent #797979 faded toward the unfocused tag #555555 as far as 1.6:1 off it (0.88 of the way)
+ .box_dim = .{ 0x75, 0x75, 0x75 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:41 Changed guifg
+ .box_dirty = .{ 0x97, 0xbd, 0xde },
+ // derived: the column grip, the original's function colour, ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:122 Function guifg
+ .column_box = .{ 0xdf, 0xdf, 0xc1 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:150 Keyword guifg
+ .kw = .{ 0xdc, 0x8c, 0xa3 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:203 String guifg
+ .str = .{ 0xab, 0xc4, 0xdb },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:166 Number guifg
+ .num = .{ 0xf7, 0xe0, 0xb3 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:47 Comment guifg
+ .comment = .{ 0x71, 0x98, 0x71 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:152 LineNr guifg
+ .lineno = .{ 0x86, 0x86, 0x86 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:62 CursorLineNr guifg
+ .lineno_active = .{ 0xdd, 0xdd, 0xdd },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:169 PmenuSbar guibg
+ .scroll_track = .{ 0x81, 0x81, 0x81 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:171 PmenuThumb guibg #a0a0a0, adjusted
+ .scroll_thumb = .{ 0xa1, 0xa1, 0xa1 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:220 WinSeparator guifg
+ .border = .{ 0x86, 0x86, 0x86 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:175 Search guibg
+ .search_bg = .{ 0x82, 0x83, 0xad },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:175 Search guifg
+ .search_fg = .{ 0xdd, 0xdd, 0xdd },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:113 Error guifg via DiagnosticError->Error (link :114)
+ .diagnostic_error = .{ 0xe3, 0x88, 0xa3 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:214 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :215)
+ .diagnostic_warning = .{ 0xff, 0xdf, 0x9b },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:72 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x97, 0xbd, 0xde },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:67 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xa5, 0xa6, 0xc5 },
+ .palette = .{
+ .{ 0x4b, 0x4b, 0x4b }, // 0: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:17 g:terminal_color_0
+ .{ 0xe3, 0x88, 0xa3 }, // 1: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:18 g:terminal_color_1
+ .{ 0x98, 0xbd, 0x99 }, // 2: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:19 g:terminal_color_2
+ .{ 0xff, 0xdf, 0x9b }, // 3: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:20 g:terminal_color_3
+ .{ 0x97, 0xbd, 0xde }, // 4: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:21 g:terminal_color_4
+ .{ 0xa5, 0xa6, 0xc5 }, // 5: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:22 g:terminal_color_5
+ .{ 0x6f, 0xbd, 0xbe }, // 6: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:23 g:terminal_color_6
+ .{ 0xdd, 0xdd, 0xdd }, // 7: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:24 g:terminal_color_7
+ .{ 0x6c, 0x64, 0x65 }, // 8: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:25 g:terminal_color_8
+ .{ 0xeb, 0x99, 0xb1 }, // 9: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:26 g:terminal_color_9
+ .{ 0x8f, 0xcd, 0x92 }, // 10: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:27 g:terminal_color_10
+ .{ 0xff, 0xe5, 0xb3 }, // 11: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:28 g:terminal_color_11
+ .{ 0xa2, 0xc8, 0xe9 }, // 12: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:29 g:terminal_color_12
+ .{ 0xb2, 0xb3, 0xda }, // 13: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:30 g:terminal_color_13
+ .{ 0x6b, 0xca, 0xcb }, // 14: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:31 g:terminal_color_14
+ .{ 0xa8, 0xa8, 0xa8 }, // 15: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:32 g:terminal_color_15
+ },
+};
diff --git a/src/themes/seoulbones_light.zig b/src/themes/seoulbones_light.zig
new file mode 100644
index 00000000..7b897be5
--- /dev/null
+++ b/src/themes/seoulbones_light.zig
@@ -0,0 +1,95 @@
+//! Seoulbones (light): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #c4c4c4 -> #bdbdbd: 1.18:1 off the unfocused #d4d4d4, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #818181 -> #5a5a5a: 2.63:1 on #d4d4d4, tag text needs 4.5:1 to be read and run
+//! - focused tag text #555555 -> #4b4b4b: 3.97:1 on #bdbdbd, tag text needs 4.5:1
+//! - focused grip #a6a6a6 -> #999999: 1.30:1 on the focused tag #bdbdbd
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/seoulbones/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/seoulbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours.
+//! palette.lua also names orange (in one or both backgrounds) with no generated
+//! literal-hex output; omitted. TabLineSel is guifg/guibg=NONE (bold only), so
+//! it inherits Normal. TabLine links to StatusLine, TabLineFill to
+//! StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral (the
+//! theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "seoulbones_light",
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:269 Normal guibg
+ .bg = .{ 0xe2, 0xe2, 0xe2 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:269 Normal guifg
+ .fg = .{ 0x55, 0x55, 0x55 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:449 Visual guibg
+ .sel_bg = .{ 0xcc, 0xcc, 0xcc },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x55, 0x55, 0x55 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:436 StatusLineNC guibg
+ .tag_bg = .{ 0xd4, 0xd4, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:436 StatusLineNC guifg #818181, adjusted
+ .tag_fg = .{ 0x5a, 0x5a, 0x5a },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:433 StatusLine guibg #c4c4c4, adjusted
+ .tag_active_bg = .{ 0xbd, 0xbd, 0xbd },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:433 StatusLine guifg #555555, adjusted
+ .tag_active_fg = .{ 0x4b, 0x4b, 0x4b },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/seoulbones_light_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x99, 0x99, 0x99 },
+ // derived: the grip at rest, the accent #a6a6a6 faded toward the unfocused tag #d4d4d4 as far as 1.6:1 off it (0.98 of the way)
+ .box_dim = .{ 0xa7, 0xa7, 0xa7 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:277 Changed guifg
+ .box_dirty = .{ 0x00, 0x84, 0xa3 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:445 Type guifg
+ .column_box = .{ 0x6d, 0x4c, 0x52 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:386 Keyword guifg
+ .kw = .{ 0xca, 0x62, 0x84 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:439 String guifg
+ .str = .{ 0x4a, 0x75, 0x87 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:402 Number guifg
+ .num = .{ 0x89, 0x65, 0x00 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:283 Comment guifg
+ .comment = .{ 0x62, 0x85, 0x62 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:388 LineNr guifg
+ .lineno = .{ 0x91, 0x91, 0x91 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:298 CursorLineNr guifg
+ .lineno_active = .{ 0x55, 0x55, 0x55 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:405 PmenuSbar guibg
+ .scroll_track = .{ 0x9e, 0x9e, 0x9e },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:407 PmenuThumb guibg
+ .scroll_thumb = .{ 0xf3, 0xf3, 0xf3 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:456 WinSeparator guifg
+ .border = .{ 0x91, 0x91, 0x91 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:411 Search guibg
+ .search_bg = .{ 0xcb, 0xb1, 0xca },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:411 Search guifg
+ .search_fg = .{ 0x55, 0x55, 0x55 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:349 Error guifg via DiagnosticError->Error (link :350)
+ .diagnostic_error = .{ 0xdc, 0x52, 0x84 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:450 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :451)
+ .diagnostic_warning = .{ 0xc4, 0x85, 0x62 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:308 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x00, 0x84, 0xa3 },
+ // ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:303 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x89, 0x67, 0x88 },
+ .palette = .{
+ .{ 0xe2, 0xe2, 0xe2 }, // 0: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:253 g:terminal_color_0
+ .{ 0xdc, 0x52, 0x84 }, // 1: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:254 g:terminal_color_1
+ .{ 0x62, 0x85, 0x62 }, // 2: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:255 g:terminal_color_2
+ .{ 0xc4, 0x85, 0x62 }, // 3: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:256 g:terminal_color_3
+ .{ 0x00, 0x84, 0xa3 }, // 4: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:257 g:terminal_color_4
+ .{ 0x89, 0x67, 0x88 }, // 5: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:258 g:terminal_color_5
+ .{ 0x00, 0x85, 0x86 }, // 6: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:259 g:terminal_color_6
+ .{ 0x55, 0x55, 0x55 }, // 7: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:260 g:terminal_color_7
+ .{ 0xbf, 0xba, 0xbb }, // 8: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:261 g:terminal_color_8
+ .{ 0xbe, 0x3c, 0x6d }, // 9: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:262 g:terminal_color_9
+ .{ 0x48, 0x72, 0x49 }, // 10: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:263 g:terminal_color_10
+ .{ 0xa7, 0x6b, 0x48 }, // 11: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:264 g:terminal_color_11
+ .{ 0x00, 0x6f, 0x89 }, // 12: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:265 g:terminal_color_12
+ .{ 0x7f, 0x4c, 0x7e }, // 13: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:266 g:terminal_color_13
+ .{ 0x00, 0x6f, 0x70 }, // 14: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:267 g:terminal_color_14
+ .{ 0x77, 0x77, 0x77 }, // 15: ~/05-genizah/zenbones.nvim/colors/seoulbones.vim:268 g:terminal_color_15
+ },
+};
diff --git a/src/themes/tokyobones_dark.zig b/src/themes/tokyobones_dark.zig
new file mode 100644
index 00000000..6a05e456
--- /dev/null
+++ b/src/themes/tokyobones_dark.zig
@@ -0,0 +1,93 @@
+//! Tokyobones (dark): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #303142 -> #404157: 1.19:1 off the unfocused #242532, pardes needs 1.5:1 on a dark page
+//! - focused grip #51536d -> #5b5d76: 1.33:1 on the focused tag #404157
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/tokyobones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/tokyobones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours.
+//! palette.lua also names bg_warm, orange (in one or both backgrounds) with no
+//! generated literal-hex output; omitted. TabLineSel is guifg/guibg=NONE (bold
+//! only), so it inherits Normal. TabLine links to StatusLine, TabLineFill to
+//! StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral (the
+//! theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "tokyobones_dark",
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:33 Normal guibg
+ .bg = .{ 0x1a, 0x1b, 0x26 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:33 Normal guifg
+ .fg = .{ 0xc0, 0xca, 0xf5 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:214 Visual guibg
+ .sel_bg = .{ 0x2c, 0x40, 0x75 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xc0, 0xca, 0xf5 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:198 StatusLineNC guibg
+ .tag_bg = .{ 0x24, 0x25, 0x32 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:198 StatusLineNC guifg
+ .tag_fg = .{ 0xd2, 0xd9, 0xf8 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:195 StatusLine guibg #303142, adjusted
+ .tag_active_bg = .{ 0x40, 0x41, 0x57 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:195 StatusLine guifg
+ .tag_active_fg = .{ 0xc0, 0xca, 0xf5 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/tokyobones_dark_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x5b, 0x5d, 0x76 },
+ // derived: the grip at rest, the accent #51536d faded toward the unfocused tag #242532 as far as 1.6:1 off it (0.70 of the way)
+ .box_dim = .{ 0x44, 0x45, 0x5b },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:41 Changed guifg
+ .box_dirty = .{ 0x7b, 0xa2, 0xf7 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:210 Type guifg
+ .column_box = .{ 0x93, 0x94, 0xaa },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:192 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0xbb, 0x9b, 0xf7 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:201 String guifg
+ .str = .{ 0x75, 0x92, 0xea },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:164 Number guifg
+ .num = .{ 0x2b, 0xc4, 0xde },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:47 Comment guifg
+ .comment = .{ 0x65, 0x67, 0x7d },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:150 LineNr guifg
+ .lineno = .{ 0x5f, 0x61, 0x7e },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:62 CursorLineNr guifg
+ .lineno_active = .{ 0xc0, 0xca, 0xf5 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:167 PmenuSbar guibg
+ .scroll_track = .{ 0x58, 0x5a, 0x76 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:169 PmenuThumb guibg
+ .scroll_thumb = .{ 0x80, 0x82, 0x9b },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:221 WinSeparator guifg
+ .border = .{ 0x5f, 0x61, 0x7e },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:173 Search guibg
+ .search_bg = .{ 0x6e, 0x20, 0xbd },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:173 Search guifg
+ .search_fg = .{ 0xc0, 0xca, 0xf5 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:113 Error guifg via DiagnosticError->Error (link :114)
+ .diagnostic_error = .{ 0xf7, 0x78, 0x90 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:215 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :216)
+ .diagnostic_warning = .{ 0xe1, 0xb0, 0x68 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:72 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x7b, 0xa2, 0xf7 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:67 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xbb, 0x9b, 0xf7 },
+ .palette = .{
+ .{ 0x1a, 0x1b, 0x26 }, // 0: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:17 g:terminal_color_0
+ .{ 0xf7, 0x78, 0x90 }, // 1: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:18 g:terminal_color_1
+ .{ 0x74, 0xdb, 0xcb }, // 2: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:19 g:terminal_color_2
+ .{ 0xe1, 0xb0, 0x68 }, // 3: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:20 g:terminal_color_3
+ .{ 0x7b, 0xa2, 0xf7 }, // 4: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:21 g:terminal_color_4
+ .{ 0xbb, 0x9b, 0xf7 }, // 5: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:22 g:terminal_color_5
+ .{ 0x2b, 0xc4, 0xde }, // 6: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:23 g:terminal_color_6
+ .{ 0xc0, 0xca, 0xf5 }, // 7: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:24 g:terminal_color_7
+ .{ 0x36, 0x38, 0x4d }, // 8: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:25 g:terminal_color_8
+ .{ 0xf9, 0x8e, 0xa0 }, // 9: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:26 g:terminal_color_9
+ .{ 0x6d, 0xe5, 0xd3 }, // 10: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:27 g:terminal_color_10
+ .{ 0xf2, 0xba, 0x64 }, // 11: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:28 g:terminal_color_11
+ .{ 0x90, 0xaf, 0xfa }, // 12: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:29 g:terminal_color_12
+ .{ 0xc6, 0xac, 0xfa }, // 13: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:30 g:terminal_color_13
+ .{ 0x74, 0xdb, 0xcb }, // 14: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:31 g:terminal_color_14
+ .{ 0x7e, 0x98, 0xeb }, // 15: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:32 g:terminal_color_15
+ },
+};
diff --git a/src/themes/tokyobones_light.zig b/src/themes/tokyobones_light.zig
new file mode 100644
index 00000000..f57287ce
--- /dev/null
+++ b/src/themes/tokyobones_light.zig
@@ -0,0 +1,94 @@
+//! Tokyobones (light): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #b9bbc3 -> #b1b3bc: 1.16:1 off the unfocused #c8c9cf, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #5f6b9b -> #4a5379: 3.13:1 on #c8c9cf, tag text needs 4.5:1 to be read and run
+//! - focused grip #9b9da9 -> #8f909b: 1.29:1 on the focused tag #b1b3bc
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/tokyobones/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/tokyobones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours.
+//! palette.lua also names bg_warm, orange (in one or both backgrounds) with no
+//! generated literal-hex output; omitted. TabLineSel is guifg/guibg=NONE (bold
+//! only), so it inherits Normal. TabLine links to StatusLine, TabLineFill to
+//! StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral (the
+//! theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "tokyobones_light",
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:271 Normal guibg
+ .bg = .{ 0xd6, 0xd7, 0xdc },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:271 Normal guifg
+ .fg = .{ 0x33, 0x3a, 0x57 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:452 Visual guibg
+ .sel_bg = .{ 0xbb, 0xc0, 0xd8 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x33, 0x3a, 0x57 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:436 StatusLineNC guibg
+ .tag_bg = .{ 0xc8, 0xc9, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:436 StatusLineNC guifg #5f6b9b, adjusted
+ .tag_fg = .{ 0x4a, 0x53, 0x79 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:433 StatusLine guibg #b9bbc3, adjusted
+ .tag_active_bg = .{ 0xb1, 0xb3, 0xbc },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:433 StatusLine guifg
+ .tag_active_fg = .{ 0x33, 0x3a, 0x57 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/tokyobones_light_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x8f, 0x90, 0x9b },
+ // derived: the grip at rest, the accent #9b9da9 faded toward the unfocused tag #c8c9cf as far as 1.6:1 off it (0.98 of the way)
+ .box_dim = .{ 0x9c, 0x9e, 0xaa },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:279 Changed guifg
+ .box_dirty = .{ 0x34, 0x54, 0x8c },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:448 Type guifg
+ .column_box = .{ 0x48, 0x4f, 0x6b },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:430 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x5a, 0x4a, 0x79 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:439 String guifg
+ .str = .{ 0x5b, 0x66, 0x94 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:402 Number guifg
+ .num = .{ 0x17, 0x67, 0x75 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:285 Comment guifg
+ .comment = .{ 0x7c, 0x7e, 0x89 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:388 LineNr guifg
+ .lineno = .{ 0x88, 0x8b, 0x99 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:300 CursorLineNr guifg
+ .lineno_active = .{ 0x33, 0x3a, 0x57 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:405 PmenuSbar guibg
+ .scroll_track = .{ 0x93, 0x95, 0xa2 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:407 PmenuThumb guibg
+ .scroll_thumb = .{ 0xed, 0xee, 0xf0 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:459 WinSeparator guifg
+ .border = .{ 0x88, 0x8b, 0x99 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:411 Search guibg
+ .search_bg = .{ 0xb3, 0xa9, 0xc9 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:411 Search guifg
+ .search_fg = .{ 0x33, 0x3a, 0x57 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:351 Error guifg via DiagnosticError->Error (link :352)
+ .diagnostic_error = .{ 0x8b, 0x43, 0x51 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:453 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :454)
+ .diagnostic_warning = .{ 0x8f, 0x5e, 0x14 },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:310 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x34, 0x54, 0x8c },
+ // ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:305 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x5a, 0x4a, 0x79 },
+ .palette = .{
+ .{ 0xd6, 0xd7, 0xdc }, // 0: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:255 g:terminal_color_0
+ .{ 0x8b, 0x43, 0x51 }, // 1: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:256 g:terminal_color_1
+ .{ 0x34, 0x64, 0x5d }, // 2: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:257 g:terminal_color_2
+ .{ 0x8f, 0x5e, 0x14 }, // 3: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:258 g:terminal_color_3
+ .{ 0x34, 0x54, 0x8c }, // 4: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:259 g:terminal_color_4
+ .{ 0x5a, 0x4a, 0x79 }, // 5: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:260 g:terminal_color_5
+ .{ 0x17, 0x67, 0x75 }, // 6: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:261 g:terminal_color_6
+ .{ 0x33, 0x3a, 0x57 }, // 7: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:262 g:terminal_color_7
+ .{ 0xad, 0xb0, 0xbd }, // 8: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:263 g:terminal_color_8
+ .{ 0x7e, 0x32, 0x42 }, // 9: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:264 g:terminal_color_9
+ .{ 0x26, 0x55, 0x4f }, // 10: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:265 g:terminal_color_10
+ .{ 0x79, 0x4e, 0x0d }, // 11: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:266 g:terminal_color_11
+ .{ 0x26, 0x46, 0x7a }, // 12: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:267 g:terminal_color_12
+ .{ 0x50, 0x38, 0x75 }, // 13: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:268 g:terminal_color_13
+ .{ 0x34, 0x64, 0x5d }, // 14: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:269 g:terminal_color_14
+ .{ 0x56, 0x61, 0x8d }, // 15: ~/05-genizah/zenbones.nvim/colors/tokyobones.vim:270 g:terminal_color_15
+ },
+};
diff --git a/src/themes/vimbones.zig b/src/themes/vimbones.zig
new file mode 100644
index 00000000..1823c40d
--- /dev/null
+++ b/src/themes/vimbones.zig
@@ -0,0 +1,95 @@
+//! Vimbones: Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #d1d1b0 -> #c7c7a8: 1.15:1 off the unfocused #dfdfbc, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #686868 -> #606060: 4.09:1 on #dfdfbc, tag text needs 4.5:1 to be read and run
+//! - focused grip #b0b093 -> #a2a287: 1.28:1 on the focused tag #c7c7a8
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/vimbones/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/vimbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. Light-only
+//! flavour (zenbones.json background='light'). palette.lua also names vim (in
+//! one or both backgrounds) with no generated literal-hex output; omitted.
+//! TabLineSel is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine
+//! links to StatusLine, TabLineFill to StatusLineNC. Accent is the lualine
+//! normal-mode a bg, a muted neutral (the theme is contrast-based, not
+//! hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "vimbones",
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:34 Normal guibg
+ .bg = .{ 0xf0, 0xf0, 0xca },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:34 Normal guifg
+ .fg = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:212 Visual guibg
+ .sel_bg = .{ 0xd7, 0xd7, 0xd7 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:199 StatusLineNC guibg
+ .tag_bg = .{ 0xdf, 0xdf, 0xbc },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:199 StatusLineNC guifg #686868, adjusted
+ .tag_fg = .{ 0x60, 0x60, 0x60 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:196 StatusLine guibg #d1d1b0, adjusted
+ .tag_active_bg = .{ 0xc7, 0xc7, 0xa8 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:196 StatusLine guifg
+ .tag_active_fg = .{ 0x35, 0x35, 0x35 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/vimbones_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0xa2, 0xa2, 0x87 },
+ // derived: the grip at rest, the accent #b0b093 faded toward the unfocused tag #dfdfbc as far as 1.6:1 off it (1.00 of the way)
+ .box_dim = .{ 0xb0, 0xb0, 0x93 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/vimbones.vim:42 Changed guifg
+ .box_dirty = .{ 0x28, 0x64, 0x86 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/vimbones.vim:208 Type guifg
+ .column_box = .{ 0x5b, 0x5b, 0x42 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:193 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x15, 0x6a, 0x29 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:202 String guifg
+ .str = .{ 0x63, 0x63, 0x63 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:165 Number guifg
+ .num = .{ 0x2a, 0x65, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:48 Comment guifg
+ .comment = .{ 0x8c, 0x8c, 0x7c },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:151 LineNr guifg
+ .lineno = .{ 0x9a, 0x9a, 0x81 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:63 CursorLineNr guifg
+ .lineno_active = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:168 PmenuSbar guibg
+ .scroll_track = .{ 0xa7, 0xa7, 0x8d },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:170 PmenuThumb guibg
+ .scroll_thumb = .{ 0xf9, 0xf9, 0xd2 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:219 WinSeparator guifg
+ .border = .{ 0x9a, 0x9a, 0x81 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:174 Search guibg
+ .search_bg = .{ 0xde, 0xb9, 0xd6 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:174 Search guifg
+ .search_fg = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:114 Error guifg via DiagnosticError->Error (link :115)
+ .diagnostic_error = .{ 0xa8, 0x33, 0x4c },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:213 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :214)
+ .diagnostic_warning = .{ 0x94, 0x49, 0x27 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:73 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x28, 0x64, 0x86 },
+ // ~/05-genizah/zenbones.nvim/colors/vimbones.vim:68 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x88, 0x50, 0x7d },
+ .palette = .{
+ .{ 0xf0, 0xf0, 0xca }, // 0: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:18 g:terminal_color_0
+ .{ 0xa8, 0x33, 0x4c }, // 1: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:19 g:terminal_color_1
+ .{ 0x4f, 0x6c, 0x31 }, // 2: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:20 g:terminal_color_2
+ .{ 0x94, 0x49, 0x27 }, // 3: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:21 g:terminal_color_3
+ .{ 0x28, 0x64, 0x86 }, // 4: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:22 g:terminal_color_4
+ .{ 0x88, 0x50, 0x7d }, // 5: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:23 g:terminal_color_5
+ .{ 0x3b, 0x89, 0x92 }, // 6: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:24 g:terminal_color_6
+ .{ 0x35, 0x35, 0x35 }, // 7: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:25 g:terminal_color_7
+ .{ 0xc6, 0xc6, 0xa3 }, // 8: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:26 g:terminal_color_8
+ .{ 0x94, 0x25, 0x3e }, // 9: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:27 g:terminal_color_9
+ .{ 0x3f, 0x5a, 0x22 }, // 10: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:28 g:terminal_color_10
+ .{ 0x80, 0x3d, 0x1c }, // 11: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:29 g:terminal_color_11
+ .{ 0x1d, 0x55, 0x73 }, // 12: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:30 g:terminal_color_12
+ .{ 0x7b, 0x3b, 0x70 }, // 13: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:31 g:terminal_color_13
+ .{ 0x2b, 0x74, 0x7c }, // 14: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:32 g:terminal_color_14
+ .{ 0x5c, 0x5c, 0x5c }, // 15: ~/05-genizah/zenbones.nvim/colors/vimbones.vim:33 g:terminal_color_15
+ },
+};
diff --git a/src/themes/zenbones_dark.zig b/src/themes/zenbones_dark.zig
new file mode 100644
index 00000000..89f5a934
--- /dev/null
+++ b/src/themes/zenbones_dark.zig
@@ -0,0 +1,92 @@
+//! Zenbones (dark): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #352f2d -> #473f3d: 1.18:1 off the unfocused #272321, pardes needs 1.5:1 on a dark page
+//! - focused grip #59514d -> #635b58: 1.32:1 on the focused tag #473f3d
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/zenbones/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/zenbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "zenbones_dark",
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:33 Normal guibg
+ .bg = .{ 0x1c, 0x19, 0x17 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:33 Normal guifg
+ .fg = .{ 0xb4, 0xbd, 0xc3 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:211 Visual guibg
+ .sel_bg = .{ 0x3d, 0x40, 0x42 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xb4, 0xbd, 0xc3 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:198 StatusLineNC guibg
+ .tag_bg = .{ 0x27, 0x23, 0x21 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:198 StatusLineNC guifg
+ .tag_fg = .{ 0xca, 0xd0, 0xd4 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:195 StatusLine guibg #352f2d, adjusted
+ .tag_active_bg = .{ 0x47, 0x3f, 0x3d },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:195 StatusLine guifg
+ .tag_active_fg = .{ 0xb4, 0xbd, 0xc3 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/zenbones_dark_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x63, 0x5b, 0x58 },
+ // derived: the grip at rest, the accent #59514d faded toward the unfocused tag #272321 as far as 1.6:1 off it (0.72 of the way)
+ .box_dim = .{ 0x4b, 0x44, 0x41 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/zenbones.vim:41 Changed guifg
+ .box_dirty = .{ 0x60, 0x99, 0xc0 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/zenbones.vim:207 Type guifg
+ .column_box = .{ 0xa1, 0x93, 0x8c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:191 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0xb4, 0xbd, 0xc3 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:201 String guifg
+ .str = .{ 0x86, 0x8c, 0x91 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:164 Number guifg
+ .num = .{ 0x86, 0x8c, 0x91 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:47 Comment guifg
+ .comment = .{ 0x6e, 0x67, 0x63 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:150 LineNr guifg
+ .lineno = .{ 0x68, 0x5f, 0x5a },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:62 CursorLineNr guifg
+ .lineno_active = .{ 0xb4, 0xbd, 0xc3 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:167 PmenuSbar guibg
+ .scroll_track = .{ 0x61, 0x58, 0x53 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:169 PmenuThumb guibg
+ .scroll_thumb = .{ 0x8e, 0x81, 0x7b },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:218 WinSeparator guifg
+ .border = .{ 0x68, 0x5f, 0x5a },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:172 Search guibg
+ .search_bg = .{ 0x65, 0x43, 0x5e },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:172 Search guifg
+ .search_fg = .{ 0xb4, 0xbd, 0xc3 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:113 Error guifg via DiagnosticError->Error (link :114)
+ .diagnostic_error = .{ 0xde, 0x6e, 0x7c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:212 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :213)
+ .diagnostic_warning = .{ 0xb7, 0x7e, 0x64 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:72 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x60, 0x99, 0xc0 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:67 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xb2, 0x79, 0xa7 },
+ .palette = .{
+ .{ 0x1c, 0x19, 0x17 }, // 0: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:17 g:terminal_color_0
+ .{ 0xde, 0x6e, 0x7c }, // 1: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:18 g:terminal_color_1
+ .{ 0x81, 0x9b, 0x69 }, // 2: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:19 g:terminal_color_2
+ .{ 0xb7, 0x7e, 0x64 }, // 3: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:20 g:terminal_color_3
+ .{ 0x60, 0x99, 0xc0 }, // 4: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:21 g:terminal_color_4
+ .{ 0xb2, 0x79, 0xa7 }, // 5: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:22 g:terminal_color_5
+ .{ 0x66, 0xa5, 0xad }, // 6: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:23 g:terminal_color_6
+ .{ 0xb4, 0xbd, 0xc3 }, // 7: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:24 g:terminal_color_7
+ .{ 0x40, 0x38, 0x33 }, // 8: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:25 g:terminal_color_8
+ .{ 0xe8, 0x83, 0x8f }, // 9: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:26 g:terminal_color_9
+ .{ 0x8b, 0xae, 0x68 }, // 10: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:27 g:terminal_color_10
+ .{ 0xd6, 0x8c, 0x67 }, // 11: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:28 g:terminal_color_11
+ .{ 0x61, 0xab, 0xda }, // 12: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:29 g:terminal_color_12
+ .{ 0xcf, 0x86, 0xc1 }, // 13: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:30 g:terminal_color_13
+ .{ 0x65, 0xb8, 0xc1 }, // 14: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:31 g:terminal_color_14
+ .{ 0x88, 0x8f, 0x94 }, // 15: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:32 g:terminal_color_15
+ },
+};
diff --git a/src/themes/zenbones_light.zig b/src/themes/zenbones_light.zig
new file mode 100644
index 00000000..8d5cc2b8
--- /dev/null
+++ b/src/themes/zenbones_light.zig
@@ -0,0 +1,93 @@
+//! Zenbones (light): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #d6cdc9 -> #cfc3bf: 1.15:1 off the unfocused #e1dcd9, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #596a76 -> #52626d: 4.12:1 on #e1dcd9, tag text needs 4.5:1 to be read and run
+//! - focused grip #bbaba3 -> #ac9d96: 1.29:1 on the focused tag #cfc3bf
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/zenbones/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/zenbones.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "zenbones_light",
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:267 Normal guibg
+ .bg = .{ 0xf0, 0xed, 0xec },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:267 Normal guifg
+ .fg = .{ 0x2c, 0x36, 0x3c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:445 Visual guibg
+ .sel_bg = .{ 0xcb, 0xd9, 0xe3 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x2c, 0x36, 0x3c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:432 StatusLineNC guibg
+ .tag_bg = .{ 0xe1, 0xdc, 0xd9 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:432 StatusLineNC guifg #596a76, adjusted
+ .tag_fg = .{ 0x52, 0x62, 0x6d },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:429 StatusLine guibg #d6cdc9, adjusted
+ .tag_active_bg = .{ 0xcf, 0xc3, 0xbf },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:429 StatusLine guifg
+ .tag_active_fg = .{ 0x2c, 0x36, 0x3c },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/zenbones_light_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0xac, 0x9d, 0x96 },
+ // derived: the grip at rest, the accent #bbaba3 faded toward the unfocused tag #e1dcd9 as far as 1.6:1 off it (0.98 of the way)
+ .box_dim = .{ 0xbc, 0xac, 0xa4 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/zenbones.vim:275 Changed guifg
+ .box_dirty = .{ 0x28, 0x64, 0x86 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/zenbones.vim:441 Type guifg
+ .column_box = .{ 0x6a, 0x55, 0x49 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:425 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x2c, 0x36, 0x3c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:435 String guifg
+ .str = .{ 0x55, 0x65, 0x70 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:398 Number guifg
+ .num = .{ 0x55, 0x65, 0x70 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:281 Comment guifg
+ .comment = .{ 0x94, 0x89, 0x85 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:384 LineNr guifg
+ .lineno = .{ 0xa4, 0x96, 0x8f },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:296 CursorLineNr guifg
+ .lineno_active = .{ 0x2c, 0x36, 0x3c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:401 PmenuSbar guibg
+ .scroll_track = .{ 0xb2, 0xa3, 0x9b },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:403 PmenuThumb guibg
+ .scroll_thumb = .{ 0xf7, 0xf6, 0xf5 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:452 WinSeparator guifg
+ .border = .{ 0xa4, 0x96, 0x8f },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:406 Search guibg
+ .search_bg = .{ 0xde, 0xb9, 0xd6 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:406 Search guifg
+ .search_fg = .{ 0x2c, 0x36, 0x3c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:347 Error guifg via DiagnosticError->Error (link :348)
+ .diagnostic_error = .{ 0xa8, 0x33, 0x4c },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:446 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :447)
+ .diagnostic_warning = .{ 0x94, 0x49, 0x27 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:306 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x28, 0x64, 0x86 },
+ // ~/05-genizah/zenbones.nvim/colors/zenbones.vim:301 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x88, 0x50, 0x7d },
+ .palette = .{
+ .{ 0xf0, 0xed, 0xec }, // 0: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:251 g:terminal_color_0
+ .{ 0xa8, 0x33, 0x4c }, // 1: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:252 g:terminal_color_1
+ .{ 0x4f, 0x6c, 0x31 }, // 2: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:253 g:terminal_color_2
+ .{ 0x94, 0x49, 0x27 }, // 3: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:254 g:terminal_color_3
+ .{ 0x28, 0x64, 0x86 }, // 4: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:255 g:terminal_color_4
+ .{ 0x88, 0x50, 0x7d }, // 5: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:256 g:terminal_color_5
+ .{ 0x3b, 0x89, 0x92 }, // 6: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:257 g:terminal_color_6
+ .{ 0x2c, 0x36, 0x3c }, // 7: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:258 g:terminal_color_7
+ .{ 0xcf, 0xc1, 0xba }, // 8: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:259 g:terminal_color_8
+ .{ 0x94, 0x25, 0x3e }, // 9: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:260 g:terminal_color_9
+ .{ 0x3f, 0x5a, 0x22 }, // 10: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:261 g:terminal_color_10
+ .{ 0x80, 0x3d, 0x1c }, // 11: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:262 g:terminal_color_11
+ .{ 0x1d, 0x55, 0x73 }, // 12: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:263 g:terminal_color_12
+ .{ 0x7b, 0x3b, 0x70 }, // 13: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:264 g:terminal_color_13
+ .{ 0x2b, 0x74, 0x7c }, // 14: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:265 g:terminal_color_14
+ .{ 0x4f, 0x5e, 0x68 }, // 15: ~/05-genizah/zenbones.nvim/colors/zenbones.vim:266 g:terminal_color_15
+ },
+};
diff --git a/src/themes/zenburned.zig b/src/themes/zenburned.zig
new file mode 100644
index 00000000..3c8baa82
--- /dev/null
+++ b/src/themes/zenburned.zig
@@ -0,0 +1,92 @@
+//! Zenburned: Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #555555 -> #646464: 1.21:1 off the unfocused #494949, pardes needs 1.5:1 on a dark page
+//! - focused grip #6f6f6f -> #838383: 1.18:1 on the focused tag #646464
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/zenburned/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/zenburned.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. Dark-only
+//! flavour (zenbones.json background='dark'). TabLineSel is guifg/guibg=NONE
+//! (bold only), so it inherits Normal. TabLine links to StatusLine, TabLineFill
+//! to StatusLineNC. Accent is the lualine normal-mode a bg, a muted neutral
+//! (the theme is contrast-based, not hue-accented). Modified = Changed fg.
+pub const theme = .{
+ .name = "zenburned",
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:34 Normal guibg
+ .bg = .{ 0x40, 0x40, 0x40 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:34 Normal guifg
+ .fg = .{ 0xf0, 0xe4, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:212 Visual guibg
+ .sel_bg = .{ 0x74, 0x69, 0x56 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xf0, 0xe4, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:199 StatusLineNC guibg
+ .tag_bg = .{ 0x49, 0x49, 0x49 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:199 StatusLineNC guifg
+ .tag_fg = .{ 0xf5, 0xed, 0xe0 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:196 StatusLine guibg #555555, adjusted
+ .tag_active_bg = .{ 0x64, 0x64, 0x64 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:196 StatusLine guifg
+ .tag_active_fg = .{ 0xf0, 0xe4, 0xcf },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/zenburned_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x83, 0x83, 0x83 },
+ // derived: the grip at rest, the accent #6f6f6f faded toward the unfocused tag #494949 as far as 1.6:1 off it (0.82 of the way)
+ .box_dim = .{ 0x68, 0x68, 0x68 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/zenburned.vim:42 Changed guifg
+ .box_dirty = .{ 0x60, 0x99, 0xc0 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/zenburned.vim:208 Type guifg
+ .column_box = .{ 0xa8, 0xa8, 0xa8 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:193 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0xdc, 0xa2, 0xa2 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:202 String guifg
+ .str = .{ 0xba, 0xa6, 0x81 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:165 Number guifg
+ .num = .{ 0xba, 0xa6, 0x81 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:48 Comment guifg
+ .comment = .{ 0x84, 0x84, 0x84 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:151 LineNr guifg
+ .lineno = .{ 0x7f, 0x7f, 0x7f },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:63 CursorLineNr guifg
+ .lineno_active = .{ 0xf0, 0xe4, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:168 PmenuSbar guibg
+ .scroll_track = .{ 0x77, 0x77, 0x77 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:170 PmenuThumb guibg
+ .scroll_thumb = .{ 0x9b, 0x9b, 0x9b },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:219 WinSeparator guifg
+ .border = .{ 0x7f, 0x7f, 0x7f },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:174 Search guibg
+ .search_bg = .{ 0x9c, 0x69, 0x92 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:174 Search guifg
+ .search_fg = .{ 0xf0, 0xe4, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:114 Error guifg via DiagnosticError->Error (link :115)
+ .diagnostic_error = .{ 0xe3, 0x71, 0x6e },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:213 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :214)
+ .diagnostic_warning = .{ 0xb7, 0x7e, 0x64 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:73 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x60, 0x99, 0xc0 },
+ // ~/05-genizah/zenbones.nvim/colors/zenburned.vim:68 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xb2, 0x79, 0xa7 },
+ .palette = .{
+ .{ 0x40, 0x40, 0x40 }, // 0: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:18 g:terminal_color_0
+ .{ 0xe3, 0x71, 0x6e }, // 1: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:19 g:terminal_color_1
+ .{ 0x81, 0x9b, 0x69 }, // 2: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:20 g:terminal_color_2
+ .{ 0xb7, 0x7e, 0x64 }, // 3: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:21 g:terminal_color_3
+ .{ 0x60, 0x99, 0xc0 }, // 4: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:22 g:terminal_color_4
+ .{ 0xb2, 0x79, 0xa7 }, // 5: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:23 g:terminal_color_5
+ .{ 0x66, 0xa5, 0xad }, // 6: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:24 g:terminal_color_6
+ .{ 0xf0, 0xe4, 0xcf }, // 7: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:25 g:terminal_color_7
+ .{ 0x62, 0x5a, 0x5b }, // 8: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:26 g:terminal_color_8
+ .{ 0xec, 0x86, 0x85 }, // 9: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:27 g:terminal_color_9
+ .{ 0x8b, 0xae, 0x68 }, // 10: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:28 g:terminal_color_10
+ .{ 0xd6, 0x8c, 0x67 }, // 11: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:29 g:terminal_color_11
+ .{ 0x61, 0xab, 0xda }, // 12: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:30 g:terminal_color_12
+ .{ 0xcf, 0x86, 0xc1 }, // 13: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:31 g:terminal_color_13
+ .{ 0x65, 0xb8, 0xc1 }, // 14: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:32 g:terminal_color_14
+ .{ 0xc0, 0xab, 0x86 }, // 15: ~/05-genizah/zenbones.nvim/colors/zenburned.vim:33 g:terminal_color_15
+ },
+};
diff --git a/src/themes/zenwritten_dark.zig b/src/themes/zenwritten_dark.zig
new file mode 100644
index 00000000..76b7047e
--- /dev/null
+++ b/src/themes/zenwritten_dark.zig
@@ -0,0 +1,92 @@
+//! Zenwritten (dark): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #303030 -> #414141: 1.18:1 off the unfocused #242424, pardes needs 1.5:1 on a dark page
+//! - focused grip #525252 -> #5c5c5c: 1.31:1 on the focused tag #414141
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/zenwritten/palette.lua + lua/zenbones/specs/dark.lua); values are the
+//! default 'ness' baked into colors/zenwritten.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "zenwritten_dark",
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:33 Normal guibg
+ .bg = .{ 0x19, 0x19, 0x19 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:33 Normal guifg
+ .fg = .{ 0xbb, 0xbb, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:211 Visual guibg
+ .sel_bg = .{ 0x40, 0x40, 0x40 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0xbb, 0xbb, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:198 StatusLineNC guibg
+ .tag_bg = .{ 0x24, 0x24, 0x24 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:198 StatusLineNC guifg
+ .tag_fg = .{ 0xcf, 0xcf, 0xcf },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:195 StatusLine guibg #303030, adjusted
+ .tag_active_bg = .{ 0x41, 0x41, 0x41 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:195 StatusLine guifg
+ .tag_active_fg = .{ 0xbb, 0xbb, 0xbb },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/zenwritten_dark_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0x5c, 0x5c, 0x5c },
+ // derived: the grip at rest, the accent #525252 faded toward the unfocused tag #242424 as far as 1.6:1 off it (0.72 of the way)
+ .box_dim = .{ 0x45, 0x45, 0x45 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:41 Changed guifg
+ .box_dirty = .{ 0x60, 0x99, 0xc0 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:207 Type guifg
+ .column_box = .{ 0x96, 0x96, 0x96 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:191 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0xbb, 0xbb, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:201 String guifg
+ .str = .{ 0x8b, 0x8b, 0x8b },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:164 Number guifg
+ .num = .{ 0x8b, 0x8b, 0x8b },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:47 Comment guifg
+ .comment = .{ 0x68, 0x68, 0x68 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:150 LineNr guifg
+ .lineno = .{ 0x61, 0x61, 0x61 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:62 CursorLineNr guifg
+ .lineno_active = .{ 0xbb, 0xbb, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:167 PmenuSbar guibg
+ .scroll_track = .{ 0x59, 0x59, 0x59 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:169 PmenuThumb guibg
+ .scroll_thumb = .{ 0x84, 0x84, 0x84 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:218 WinSeparator guifg
+ .border = .{ 0x61, 0x61, 0x61 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:172 Search guibg
+ .search_bg = .{ 0x65, 0x43, 0x5e },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:172 Search guifg
+ .search_fg = .{ 0xbb, 0xbb, 0xbb },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:113 Error guifg via DiagnosticError->Error (link :114)
+ .diagnostic_error = .{ 0xde, 0x6e, 0x7c },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:212 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :213)
+ .diagnostic_warning = .{ 0xb7, 0x7e, 0x64 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:72 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x60, 0x99, 0xc0 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:67 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0xb2, 0x79, 0xa7 },
+ .palette = .{
+ .{ 0x19, 0x19, 0x19 }, // 0: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:17 g:terminal_color_0
+ .{ 0xde, 0x6e, 0x7c }, // 1: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:18 g:terminal_color_1
+ .{ 0x81, 0x9b, 0x69 }, // 2: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:19 g:terminal_color_2
+ .{ 0xb7, 0x7e, 0x64 }, // 3: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:20 g:terminal_color_3
+ .{ 0x60, 0x99, 0xc0 }, // 4: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:21 g:terminal_color_4
+ .{ 0xb2, 0x79, 0xa7 }, // 5: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:22 g:terminal_color_5
+ .{ 0x66, 0xa5, 0xad }, // 6: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:23 g:terminal_color_6
+ .{ 0xbb, 0xbb, 0xbb }, // 7: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:24 g:terminal_color_7
+ .{ 0x3d, 0x38, 0x39 }, // 8: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:25 g:terminal_color_8
+ .{ 0xe8, 0x83, 0x8f }, // 9: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:26 g:terminal_color_9
+ .{ 0x8b, 0xae, 0x68 }, // 10: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:27 g:terminal_color_10
+ .{ 0xd6, 0x8c, 0x67 }, // 11: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:28 g:terminal_color_11
+ .{ 0x61, 0xab, 0xda }, // 12: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:29 g:terminal_color_12
+ .{ 0xcf, 0x86, 0xc1 }, // 13: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:30 g:terminal_color_13
+ .{ 0x65, 0xb8, 0xc1 }, // 14: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:31 g:terminal_color_14
+ .{ 0x8e, 0x8e, 0x8e }, // 15: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:32 g:terminal_color_15
+ },
+};
diff --git a/src/themes/zenwritten_light.zig b/src/themes/zenwritten_light.zig
new file mode 100644
index 00000000..42e1623a
--- /dev/null
+++ b/src/themes/zenwritten_light.zig
@@ -0,0 +1,93 @@
+//! Zenwritten (light): Zenbones, 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:
+//! repo; url https://github.com/zenbones-theme/zenbones.nvim; genizah ~/05-genizah/zenbones.nvim; commit 8304d8df9b823ff11e103afa62f38c39f534abe6
+//! 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 #cfcfcf -> #c5c5c5: 1.15:1 off the unfocused #dddddd, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #686868 -> #606060: 4.10:1 on #dddddd, tag text needs 4.5:1 to be read and run
+//! - focused grip #aeaeae -> #a0a0a0: 1.29:1 on the focused tag #c5c5c5
+//! Upstream notes: Generated by shipwright from lush/HSLuv
+//! (lua/zenwritten/palette.lua + lua/zenbones/specs/light.lua); values are the
+//! default 'ness' baked into colors/zenwritten.vim. Palette = the 16 names
+//! term.lua maps to ANSI, taken from the generated terminal colours. TabLineSel
+//! is guifg/guibg=NONE (bold only), so it inherits Normal. TabLine links to
+//! StatusLine, TabLineFill to StatusLineNC. Accent is the lualine normal-mode a
+//! bg, a muted neutral (the theme is contrast-based, not hue-accented).
+//! Modified = Changed fg.
+pub const theme = .{
+ .name = "zenwritten_light",
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:267 Normal guibg
+ .bg = .{ 0xee, 0xee, 0xee },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:267 Normal guifg
+ .fg = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:445 Visual guibg
+ .sel_bg = .{ 0xd7, 0xd7, 0xd7 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:432 StatusLineNC guibg
+ .tag_bg = .{ 0xdd, 0xdd, 0xdd },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:432 StatusLineNC guifg #686868, adjusted
+ .tag_fg = .{ 0x60, 0x60, 0x60 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:429 StatusLine guibg #cfcfcf, adjusted
+ .tag_active_bg = .{ 0xc5, 0xc5, 0xc5 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:429 StatusLine guifg
+ .tag_active_fg = .{ 0x35, 0x35, 0x35 },
+ // the focused grip: ~/05-genizah/zenbones.nvim/lua/lualine/themes/zenwritten_light_default.lua:8 normal.a bg (lualine theme, default ness; generator derives it as PmenuSbar.bg.abs_da(3), lua/zenbones/shipwright/runners/lualine.lua:66)
+ .box = .{ 0xa0, 0xa0, 0xa0 },
+ // derived: the grip at rest, the accent #aeaeae faded toward the unfocused tag #dddddd as far as 1.6:1 off it (0.98 of the way)
+ .box_dim = .{ 0xaf, 0xaf, 0xaf },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:275 Changed guifg
+ .box_dirty = .{ 0x28, 0x64, 0x86 },
+ // derived: the column grip, the original's type colour, ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:441 Type guifg
+ .column_box = .{ 0x73, 0x50, 0x57 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:425 Statement guifg (no Keyword group defined; Vim default links Keyword to Statement)
+ .kw = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:435 String guifg
+ .str = .{ 0x63, 0x63, 0x63 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:398 Number guifg
+ .num = .{ 0x63, 0x63, 0x63 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:281 Comment guifg
+ .comment = .{ 0x8b, 0x8b, 0x8b },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:384 LineNr guifg
+ .lineno = .{ 0x98, 0x98, 0x98 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:296 CursorLineNr guifg
+ .lineno_active = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:401 PmenuSbar guibg
+ .scroll_track = .{ 0xa6, 0xa6, 0xa6 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:403 PmenuThumb guibg
+ .scroll_thumb = .{ 0xf6, 0xf6, 0xf6 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:452 WinSeparator guifg
+ .border = .{ 0x98, 0x98, 0x98 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:406 Search guibg
+ .search_bg = .{ 0xde, 0xb9, 0xd6 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:406 Search guifg
+ .search_fg = .{ 0x35, 0x35, 0x35 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:347 Error guifg via DiagnosticError->Error (link :348)
+ .diagnostic_error = .{ 0xa8, 0x33, 0x4c },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:446 WarningMsg guifg via DiagnosticWarn->WarningMsg (link :447)
+ .diagnostic_warning = .{ 0x94, 0x49, 0x27 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:306 DiagnosticInfo guifg
+ .diagnostic_info = .{ 0x28, 0x64, 0x86 },
+ // ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:301 DiagnosticHint guifg
+ .diagnostic_hint = .{ 0x88, 0x50, 0x7d },
+ .palette = .{
+ .{ 0xee, 0xee, 0xee }, // 0: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:251 g:terminal_color_0
+ .{ 0xa8, 0x33, 0x4c }, // 1: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:252 g:terminal_color_1
+ .{ 0x4f, 0x6c, 0x31 }, // 2: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:253 g:terminal_color_2
+ .{ 0x94, 0x49, 0x27 }, // 3: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:254 g:terminal_color_3
+ .{ 0x28, 0x64, 0x86 }, // 4: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:255 g:terminal_color_4
+ .{ 0x88, 0x50, 0x7d }, // 5: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:256 g:terminal_color_5
+ .{ 0x3b, 0x89, 0x92 }, // 6: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:257 g:terminal_color_6
+ .{ 0x35, 0x35, 0x35 }, // 7: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:258 g:terminal_color_7
+ .{ 0xc6, 0xc3, 0xc3 }, // 8: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:259 g:terminal_color_8
+ .{ 0x94, 0x25, 0x3e }, // 9: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:260 g:terminal_color_9
+ .{ 0x3f, 0x5a, 0x22 }, // 10: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:261 g:terminal_color_10
+ .{ 0x80, 0x3d, 0x1c }, // 11: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:262 g:terminal_color_11
+ .{ 0x1d, 0x55, 0x73 }, // 12: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:263 g:terminal_color_12
+ .{ 0x7b, 0x3b, 0x70 }, // 13: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:264 g:terminal_color_13
+ .{ 0x2b, 0x74, 0x7c }, // 14: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:265 g:terminal_color_14
+ .{ 0x5c, 0x5c, 0x5c }, // 15: ~/05-genizah/zenbones.nvim/colors/zenwritten.vim:266 g:terminal_color_15
+ },
+};