diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 10:19:01 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:16 -0300 |
| commit | 008fc998d8d8b24358c650a234c55163508a1d78 (patch) | |
| tree | d716a462c7a19d319a140e54c5d28eeebfd2ec7b | |
| parent | d7971dbed9ba8c050e5ec622aeef0dd6aa604db6 (diff) | |
| download | pardes-008fc998d8d8b24358c650a234c55163508a1d78.tar.gz pardes-008fc998d8d8b24358c650a234c55163508a1d78.zip | |
Seoul256, as close to the original as pardes draws: seoul256_dark_233, seoul256_dark_234, seoul256_dark_235, seoul256_dark_236, seoul256_dark_237, seoul256_dark_238, seoul256_dark_239, seoul256_light_252, seoul256_light_253, seoul256_light_254, seoul256_light_255, seoul256_light_256
Every colour is the original's own, cited file:line in each theme file.
Sources:
repo; https://github.com/junegunn/seoul256.vim; ~/05-genizah/seoul256.vim; 0357ff3e44faab66c98bc98dfc89c834e37012da
Chrome moved to meet pardes's floors (text, syntax, ANSI untouched):
seoul256_dark_233: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_dark_233: focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372
seoul256_dark_233: rules between panes #000000 -> #3d3d3d: 1.17:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_dark_234: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_dark_234: focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372
seoul256_dark_234: rules between panes #060606 -> #4a4a4a: 1.32:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_dark_235: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_dark_235: focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372
seoul256_dark_235: rules between panes #171717 -> #515151: 1.40:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_dark_236: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_dark_236: focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372
seoul256_dark_236: rules between panes #252525 -> #5f5f5f: 1.46:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_dark_237: focused tag ground #9a7372 -> #9d7473: 1.50:1 off the unfocused #616161, pardes needs 1.5:1 on a dark page
seoul256_dark_237: focused tag text #dfdebd -> #12120f: 2.96:1 on #9d7473, tag text needs 4.5:1
seoul256_dark_237: focused grip #007173 -> #006c6e: 1.43:1 on the focused tag #9d7473
seoul256_dark_237: rules between panes #333233 -> #6b6b6b: 1.46:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_dark_238: focused tag ground #9a7372 -> #b97877: 1.29:1 off the unfocused #6b6b6b, pardes needs 1.5:1 on a dark page
seoul256_dark_238: unfocused tag text #dfdebd -> #eeeddb: 3.89:1 on #6b6b6b, tag text needs 4.5:1 to be read and run
seoul256_dark_238: focused tag text #dfdebd -> #1f1f1a: 2.55:1 on #b97877, tag text needs 4.5:1
seoul256_dark_238: rules between panes #3f3f3f -> #767676: 1.43:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_dark_239: focused tag ground #9a7372 -> #ac8f86: 1.11:1 off the unfocused #757575, pardes needs 1.5:1 on a dark page
seoul256_dark_239: unfocused tag text #dfdebd -> #fdfdfb: 3.36:1 on #757575, tag text needs 4.5:1 to be read and run
seoul256_dark_239: focused tag text #dfdebd -> #2d2c26: 2.18:1 on #ac8f86, tag text needs 4.5:1
seoul256_dark_239: rules between panes #4b4b4b -> #848484: 1.41:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_light_252: unfocused tag text #565656 -> #545454: 4.39:1 on #c8c8c8, tag text needs 4.5:1 to be read and run
seoul256_light_252: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_light_252: focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372
seoul256_light_252: rules between panes #bfbfbf -> #acacac: 1.30:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_light_253: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_light_253: focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372
seoul256_light_253: rules between panes #c8c8c8 -> #b3b3b3: 1.28:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_light_254: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_light_254: focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372
seoul256_light_254: rules between panes #d1d0d1 -> #b8b8b8: 1.27:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_light_255: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_light_255: focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372
seoul256_light_255: rules between panes #d9d9d9 -> #bfbfbf: 1.25:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
seoul256_light_256: focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1
seoul256_light_256: focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372
seoul256_light_256: rules between panes #e1e1e1 -> #cacaca: 1.31:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
| -rw-r--r-- | docs/themes.md | 1 | ||||
| -rw-r--r-- | src/colors.zig | 13 | ||||
| -rw-r--r-- | src/themes/seoul256_dark_233.zig | 101 | ||||
| -rw-r--r-- | src/themes/seoul256_dark_234.zig | 101 | ||||
| -rw-r--r-- | src/themes/seoul256_dark_235.zig | 101 | ||||
| -rw-r--r-- | src/themes/seoul256_dark_236.zig | 101 | ||||
| -rw-r--r-- | src/themes/seoul256_dark_237.zig | 100 | ||||
| -rw-r--r-- | src/themes/seoul256_dark_238.zig | 102 | ||||
| -rw-r--r-- | src/themes/seoul256_dark_239.zig | 102 | ||||
| -rw-r--r-- | src/themes/seoul256_light_252.zig | 102 | ||||
| -rw-r--r-- | src/themes/seoul256_light_253.zig | 99 | ||||
| -rw-r--r-- | src/themes/seoul256_light_254.zig | 101 | ||||
| -rw-r--r-- | src/themes/seoul256_light_255.zig | 101 | ||||
| -rw-r--r-- | src/themes/seoul256_light_256.zig | 101 |
14 files changed, 1226 insertions, 0 deletions
diff --git a/docs/themes.md b/docs/themes.md index 75e609a7..4a6340a5 100644 --- a/docs/themes.md +++ b/docs/themes.md @@ -112,6 +112,7 @@ are never adjusted. | Tokyo Night | `tokyonight_night`, `tokyonight_storm`, `tokyonight_moon`, `tokyonight_day` | [folke/tokyonight.nvim](https://github.com/folke/tokyonight.nvim) | | Rosé Pine | `rose_pine`, `rose_pine_moon`, `rose_pine_dawn` | [rose-pine/palette](https://github.com/rose-pine/palette); [rose-pine/neovim](https://github.com/rose-pine/neovim) | | Catppuccin | `catppuccin_latte`, `catppuccin_frappe`, `catppuccin_macchiato`, `catppuccin_mocha` | [catppuccin/palette](https://github.com/catppuccin/palette); [catppuccin/nvim](https://github.com/catppuccin/nvim) | +| Seoul256 | `seoul256_dark_233`, `seoul256_dark_234`, `seoul256_dark_235`, `seoul256_dark_236`, `seoul256_dark_237`, `seoul256_dark_238`, `seoul256_dark_239`, `seoul256_light_252`, `seoul256_light_253`, `seoul256_light_254`, `seoul256_light_255`, `seoul256_light_256` | [junegunn/seoul256.vim](https://github.com/junegunn/seoul256.vim) | ## Make a theme your own diff --git a/src/colors.zig b/src/colors.zig index d9e57a61..44a07871 100644 --- a/src/colors.zig +++ b/src/colors.zig @@ -352,6 +352,18 @@ const curated = struct { pub const catppuccin_frappe = @import("themes/catppuccin_frappe.zig"); pub const catppuccin_macchiato = @import("themes/catppuccin_macchiato.zig"); pub const catppuccin_mocha = @import("themes/catppuccin_mocha.zig"); + pub const seoul256_dark_233 = @import("themes/seoul256_dark_233.zig"); + pub const seoul256_dark_234 = @import("themes/seoul256_dark_234.zig"); + pub const seoul256_dark_235 = @import("themes/seoul256_dark_235.zig"); + pub const seoul256_dark_236 = @import("themes/seoul256_dark_236.zig"); + pub const seoul256_dark_237 = @import("themes/seoul256_dark_237.zig"); + pub const seoul256_dark_238 = @import("themes/seoul256_dark_238.zig"); + pub const seoul256_dark_239 = @import("themes/seoul256_dark_239.zig"); + pub const seoul256_light_252 = @import("themes/seoul256_light_252.zig"); + pub const seoul256_light_253 = @import("themes/seoul256_light_253.zig"); + 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"); // The legacy pair last. pub const helix = @import("themes/helix.zig"); pub const dark = @import("themes/dark.zig"); @@ -422,6 +434,7 @@ const theme_groups = [_]ThemeGroup{ .{ .title = "Tokyo Night", .first = "tokyonight_night" }, .{ .title = "Rosé Pine", .first = "rose_pine" }, .{ .title = "Catppuccin", .first = "catppuccin_latte" }, + .{ .title = "Seoul256", .first = "seoul256_dark_233" }, .{ .title = "Legacy themes", .first = "helix" }, }; diff --git a/src/themes/seoul256_dark_233.zig b/src/themes/seoul256_dark_233.zig new file mode 100644 index 00000000..12e36a5e --- /dev/null +++ b/src/themes/seoul256_dark_233.zig @@ -0,0 +1,101 @@ +//! Seoul256 (233): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372 +//! - rules between panes #000000 -> #3d3d3d: 1.17:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 233 (dark). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=233, +//! light_bg=253, dark_bg_2=16 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! first (dark) list element (s:style_idx, line 165) and maps any index >255 to +//! 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (237) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_fg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_dark_233", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:dark_bg = 233 -> s:rgb_map[233] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 + .bg = .{ 0x17, 0x17, 0x17 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .sel_bg = .{ 0x00, 0x71, 0x73 }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:dark_bg + 2 = 235 -> s:rgb_map[235] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0x33, 0x32, 0x33 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0xdf, 0xde, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x00, 0x6a, 0x6c }, + // derived: the grip at rest, the accent #007173 faded toward the unfocused tag #333233 as far as 1.6:1 off it (0.66 of the way) + .box_dim = .{ 0x11, 0x5c, 0x5d }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 179 = 179 -> s:rgb_map[179] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129 + .column_box = .{ 0xdf, 0xbc, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 109 = 109 -> s:rgb_map[109] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .str = .{ 0x98, 0xbc, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 222 = 222 -> s:rgb_map[222] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .num = .{ 0xff, 0xde, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:dark_bg_2 = 16 -> s:rgb_map[16] ~/05-genizah/seoul256.vim/colors/seoul256.vim:120 #000000, adjusted + .border = .{ 0x3d, 0x3d, 0x3d }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 24 = 24 -> s:rgb_map[24] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .search_bg = .{ 0x00, 0x72, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .search_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 174 = 174 -> s:rgb_map[174] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xe0, 0x9b, 0x99 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd6, 0x87, 0x87 }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x86, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0xaf, 0x5f }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x85, 0xad, 0xd4 }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0xaf, 0xaf }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0xaf }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd0, 0xd0, 0xd0 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x62, 0x62, 0x62 }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0x5f, 0x87 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0x87 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xd7, 0x87 }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xad, 0xd4, 0xfb }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xaf, 0xaf }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xd7, 0xd7 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_dark_234.zig b/src/themes/seoul256_dark_234.zig new file mode 100644 index 00000000..e017e985 --- /dev/null +++ b/src/themes/seoul256_dark_234.zig @@ -0,0 +1,101 @@ +//! Seoul256 (234): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372 +//! - rules between panes #060606 -> #4a4a4a: 1.32:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 234 (dark). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=234, +//! light_bg=253, dark_bg_2=232 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! first (dark) list element (s:style_idx, line 165) and maps any index >255 to +//! 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (237) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_fg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_dark_234", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:dark_bg = 234 -> s:rgb_map[234] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 + .bg = .{ 0x25, 0x25, 0x25 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .sel_bg = .{ 0x00, 0x71, 0x73 }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:dark_bg + 2 = 236 -> s:rgb_map[236] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0x3f, 0x3f, 0x3f }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0xdf, 0xde, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x00, 0x6a, 0x6c }, + // derived: the grip at rest, the accent #007173 faded toward the unfocused tag #3f3f3f as far as 1.6:1 off it (0.84 of the way) + .box_dim = .{ 0x0a, 0x69, 0x6b }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 179 = 179 -> s:rgb_map[179] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129 + .column_box = .{ 0xdf, 0xbc, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 109 = 109 -> s:rgb_map[109] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .str = .{ 0x98, 0xbc, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 222 = 222 -> s:rgb_map[222] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .num = .{ 0xff, 0xde, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:dark_bg_2 = 232 -> s:rgb_map[232] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 #060606, adjusted + .border = .{ 0x4a, 0x4a, 0x4a }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 24 = 24 -> s:rgb_map[24] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .search_bg = .{ 0x00, 0x72, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .search_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 174 = 174 -> s:rgb_map[174] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xe0, 0x9b, 0x99 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd6, 0x87, 0x87 }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x86, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0xaf, 0x5f }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x85, 0xad, 0xd4 }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0xaf, 0xaf }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0xaf }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd0, 0xd0, 0xd0 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x62, 0x62, 0x62 }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0x5f, 0x87 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0x87 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xd7, 0x87 }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xad, 0xd4, 0xfb }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xaf, 0xaf }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xd7, 0xd7 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_dark_235.zig b/src/themes/seoul256_dark_235.zig new file mode 100644 index 00000000..125d86df --- /dev/null +++ b/src/themes/seoul256_dark_235.zig @@ -0,0 +1,101 @@ +//! Seoul256 (235): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372 +//! - rules between panes #171717 -> #515151: 1.40:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 235 (dark). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=235, +//! light_bg=253, dark_bg_2=233 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! first (dark) list element (s:style_idx, line 165) and maps any index >255 to +//! 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (237) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_fg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_dark_235", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:dark_bg = 235 -> s:rgb_map[235] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 + .bg = .{ 0x33, 0x32, 0x33 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .sel_bg = .{ 0x00, 0x71, 0x73 }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:dark_bg + 2 = 237 -> s:rgb_map[237] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0x4b, 0x4b, 0x4b }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0xdf, 0xde, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x00, 0x6a, 0x6c }, + // derived: the grip at rest, the accent #007173 faded toward the unfocused tag #4b4b4b as far as 1.6:1 off it (1.00 of the way) + .box_dim = .{ 0x0a, 0x77, 0x79 }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 179 = 179 -> s:rgb_map[179] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129 + .column_box = .{ 0xdf, 0xbc, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 109 = 109 -> s:rgb_map[109] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .str = .{ 0x98, 0xbc, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 222 = 222 -> s:rgb_map[222] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .num = .{ 0xff, 0xde, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:dark_bg_2 = 233 -> s:rgb_map[233] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 #171717, adjusted + .border = .{ 0x51, 0x51, 0x51 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 24 = 24 -> s:rgb_map[24] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .search_bg = .{ 0x00, 0x72, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .search_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 174 = 174 -> s:rgb_map[174] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xe0, 0x9b, 0x99 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd6, 0x87, 0x87 }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x86, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0xaf, 0x5f }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x85, 0xad, 0xd4 }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0xaf, 0xaf }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0xaf }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd0, 0xd0, 0xd0 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x62, 0x62, 0x62 }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0x5f, 0x87 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0x87 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xd7, 0x87 }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xad, 0xd4, 0xfb }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xaf, 0xaf }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xd7, 0xd7 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_dark_236.zig b/src/themes/seoul256_dark_236.zig new file mode 100644 index 00000000..0cfec5ab --- /dev/null +++ b/src/themes/seoul256_dark_236.zig @@ -0,0 +1,101 @@ +//! Seoul256 (236): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #007173 -> #006a6c: 1.40:1 on the focused tag #9a7372 +//! - rules between panes #252525 -> #5f5f5f: 1.46:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 236 (dark). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=236, +//! light_bg=253, dark_bg_2=234 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! first (dark) list element (s:style_idx, line 165) and maps any index >255 to +//! 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (237) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_fg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_dark_236", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:dark_bg = 236 -> s:rgb_map[236] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 + .bg = .{ 0x3f, 0x3f, 0x3f }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .sel_bg = .{ 0x00, 0x71, 0x73 }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:dark_bg + 2 = 238 -> s:rgb_map[238] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0x56, 0x56, 0x56 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0xdf, 0xde, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x00, 0x6a, 0x6c }, + // derived: the grip at rest, the accent #007173 faded toward the unfocused tag #565656 as far as 1.6:1 off it (1.00 of the way) + .box_dim = .{ 0x24, 0x85, 0x87 }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 179 = 179 -> s:rgb_map[179] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129 + .column_box = .{ 0xdf, 0xbc, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 109 = 109 -> s:rgb_map[109] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .str = .{ 0x98, 0xbc, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 222 = 222 -> s:rgb_map[222] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .num = .{ 0xff, 0xde, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:dark_bg_2 = 234 -> s:rgb_map[234] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 #252525, adjusted + .border = .{ 0x5f, 0x5f, 0x5f }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 24 = 24 -> s:rgb_map[24] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .search_bg = .{ 0x00, 0x72, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .search_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 174 = 174 -> s:rgb_map[174] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xe0, 0x9b, 0x99 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd6, 0x87, 0x87 }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x86, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0xaf, 0x5f }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x85, 0xad, 0xd4 }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0xaf, 0xaf }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0xaf }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd0, 0xd0, 0xd0 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x62, 0x62, 0x62 }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0x5f, 0x87 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0x87 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xd7, 0x87 }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xad, 0xd4, 0xfb }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xaf, 0xaf }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xd7, 0xd7 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_dark_237.zig b/src/themes/seoul256_dark_237.zig new file mode 100644 index 00000000..8319dec4 --- /dev/null +++ b/src/themes/seoul256_dark_237.zig @@ -0,0 +1,100 @@ +//! Seoul256 (237): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 #9a7372 -> #9d7473: 1.50:1 off the unfocused #616161, pardes needs 1.5:1 on a dark page +//! - focused tag text #dfdebd -> #12120f: 2.96:1 on #9d7473, tag text needs 4.5:1 +//! - focused grip #007173 -> #006c6e: 1.43:1 on the focused tag #9d7473 +//! - rules between panes #333233 -> #6b6b6b: 1.46:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 237 (dark). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=237, +//! light_bg=253, dark_bg_2=235 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! first (dark) list element (s:style_idx, line 165) and maps any index >255 to +//! 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (237) and is +//! reused unchanged for every level. +pub const theme = .{ + .name = "seoul256_dark_237", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:dark_bg = 237 -> s:rgb_map[237] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 + .bg = .{ 0x4b, 0x4b, 0x4b }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .sel_bg = .{ 0x00, 0x71, 0x73 }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:dark_bg + 2 = 239 -> s:rgb_map[239] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0xdf, 0xde, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #9a7372, adjusted + .tag_active_bg = .{ 0x9d, 0x74, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x00, 0x6c, 0x6e }, + // derived: the grip at rest, the accent #007173 faded toward the unfocused tag #616161 as far as 1.6:1 off it (1.00 of the way) + .box_dim = .{ 0x38, 0x90, 0x92 }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 179 = 179 -> s:rgb_map[179] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129 + .column_box = .{ 0xdf, 0xbc, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 109 = 109 -> s:rgb_map[109] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .str = .{ 0x98, 0xbc, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 222 = 222 -> s:rgb_map[222] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .num = .{ 0xff, 0xde, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:dark_bg_2 = 235 -> s:rgb_map[235] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 #333233, adjusted + .border = .{ 0x6b, 0x6b, 0x6b }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 24 = 24 -> s:rgb_map[24] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .search_bg = .{ 0x00, 0x72, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .search_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 174 = 174 -> s:rgb_map[174] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xe0, 0x9b, 0x99 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd6, 0x87, 0x87 }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x86, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0xaf, 0x5f }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x85, 0xad, 0xd4 }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0xaf, 0xaf }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0xaf }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd0, 0xd0, 0xd0 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x62, 0x62, 0x62 }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0x5f, 0x87 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0x87 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xd7, 0x87 }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xad, 0xd4, 0xfb }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xaf, 0xaf }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xd7, 0xd7 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_dark_238.zig b/src/themes/seoul256_dark_238.zig new file mode 100644 index 00000000..2a821144 --- /dev/null +++ b/src/themes/seoul256_dark_238.zig @@ -0,0 +1,102 @@ +//! Seoul256 (238): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 #9a7372 -> #b97877: 1.29:1 off the unfocused #6b6b6b, pardes needs 1.5:1 on a dark page +//! - unfocused tag text #dfdebd -> #eeeddb: 3.89:1 on #6b6b6b, tag text needs 4.5:1 to be read and run +//! - focused tag text #dfdebd -> #1f1f1a: 2.55:1 on #b97877, tag text needs 4.5:1 +//! - rules between panes #3f3f3f -> #767676: 1.43:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 238 (dark). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=238, +//! light_bg=253, dark_bg_2=236 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! first (dark) list element (s:style_idx, line 165) and maps any index >255 to +//! 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (237) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_bg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_dark_238", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:dark_bg = 238 -> s:rgb_map[238] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 + .bg = .{ 0x56, 0x56, 0x56 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .sel_bg = .{ 0x00, 0x71, 0x73 }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:dark_bg + 2 = 240 -> s:rgb_map[240] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0x6b, 0x6b, 0x6b }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse #dfdebd, adjusted + .tag_fg = .{ 0xee, 0xed, 0xdb }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #9a7372, adjusted + .tag_active_bg = .{ 0xb9, 0x78, 0x77 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x1f, 0x1f, 0x1a }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x00, 0x71, 0x73 }, + // derived: the grip at rest, the accent #007173 faded toward the unfocused tag #6b6b6b as far as 1.6:1 off it (1.00 of the way) + .box_dim = .{ 0x4d, 0x9c, 0x9d }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 179 = 179 -> s:rgb_map[179] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129 + .column_box = .{ 0xdf, 0xbc, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 109 = 109 -> s:rgb_map[109] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .str = .{ 0x98, 0xbc, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 222 = 222 -> s:rgb_map[222] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .num = .{ 0xff, 0xde, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:dark_bg_2 = 236 -> s:rgb_map[236] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 #3f3f3f, adjusted + .border = .{ 0x76, 0x76, 0x76 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 24 = 24 -> s:rgb_map[24] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .search_bg = .{ 0x00, 0x72, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .search_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 174 = 174 -> s:rgb_map[174] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xe0, 0x9b, 0x99 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd6, 0x87, 0x87 }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x86, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0xaf, 0x5f }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x85, 0xad, 0xd4 }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0xaf, 0xaf }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0xaf }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd0, 0xd0, 0xd0 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x62, 0x62, 0x62 }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0x5f, 0x87 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0x87 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xd7, 0x87 }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xad, 0xd4, 0xfb }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xaf, 0xaf }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xd7, 0xd7 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_dark_239.zig b/src/themes/seoul256_dark_239.zig new file mode 100644 index 00000000..e63dc91f --- /dev/null +++ b/src/themes/seoul256_dark_239.zig @@ -0,0 +1,102 @@ +//! Seoul256 (239): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 #9a7372 -> #ac8f86: 1.11:1 off the unfocused #757575, pardes needs 1.5:1 on a dark page +//! - unfocused tag text #dfdebd -> #fdfdfb: 3.36:1 on #757575, tag text needs 4.5:1 to be read and run +//! - focused tag text #dfdebd -> #2d2c26: 2.18:1 on #ac8f86, tag text needs 4.5:1 +//! - rules between panes #4b4b4b -> #848484: 1.41:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 239 (dark). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=239, +//! light_bg=253, dark_bg_2=237 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! first (dark) list element (s:style_idx, line 165) and maps any index >255 to +//! 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (237) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_bg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_dark_239", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:dark_bg = 239 -> s:rgb_map[239] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 + .bg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .sel_bg = .{ 0x00, 0x71, 0x73 }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:dark_bg + 2 = 241 -> s:rgb_map[241] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0x75, 0x75, 0x75 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse #dfdebd, adjusted + .tag_fg = .{ 0xfd, 0xfd, 0xfb }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #9a7372, adjusted + .tag_active_bg = .{ 0xac, 0x8f, 0x86 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x2d, 0x2c, 0x26 }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x00, 0x71, 0x73 }, + // derived: the grip at rest, the accent #007173 faded toward the unfocused tag #757575 as far as 1.6:1 off it (1.00 of the way) + .box_dim = .{ 0x61, 0xa7, 0xa8 }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 179 = 179 -> s:rgb_map[179] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129 + .column_box = .{ 0xdf, 0xbc, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 109 = 109 -> s:rgb_map[109] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .str = .{ 0x98, 0xbc, 0xbd }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 222 = 222 -> s:rgb_map[222] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .num = .{ 0xff, 0xde, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:dark_bg_2 = 237 -> s:rgb_map[237] ~/05-genizah/seoul256.vim/colors/seoul256.vim:132 #4b4b4b, adjusted + .border = .{ 0x84, 0x84, 0x84 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 24 = 24 -> s:rgb_map[24] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .search_bg = .{ 0x00, 0x72, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg s:dark_fg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .search_fg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 174 = 174 -> s:rgb_map[174] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xe0, 0x9b, 0x99 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd6, 0x87, 0x87 }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x86, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0xaf, 0x5f }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x85, 0xad, 0xd4 }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0xaf, 0xaf }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0xaf }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd0, 0xd0, 0xd0 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x62, 0x62, 0x62 }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd7, 0x5f, 0x87 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xaf, 0x87 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xd7, 0x87 }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xad, 0xd4, 0xfb }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xff, 0xaf, 0xaf }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0xd7, 0xd7 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_light_252.zig b/src/themes/seoul256_light_252.zig new file mode 100644 index 00000000..bfd43af0 --- /dev/null +++ b/src/themes/seoul256_light_252.zig @@ -0,0 +1,102 @@ +//! Seoul256 Light (252): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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): +//! - unfocused tag text #565656 -> #545454: 4.39:1 on #c8c8c8, tag text needs 4.5:1 to be read and run +//! - focused tag text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372 +//! - rules between panes #bfbfbf -> #acacac: 1.30:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 252 (light). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=237, +//! light_bg=252, dark_bg_2=235 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=253, light_bg_2=254 (lines 176-177, min(..,256)); s:hi uses the +//! second (light) list element (s:style_idx, line 165) and maps any index >255 +//! to 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (253) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_bg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_light_252", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:light_bg = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .bg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:light_fg = 239 -> s:rgb_map[239] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 + .fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 152 = 152 -> s:rgb_map[152] ~/05-genizah/seoul256.vim/colors/seoul256.vim:127 + .sel_bg = .{ 0xbc, 0xde, 0xde }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:light_bg - 2 = 250 -> s:rgb_map[250] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0xc8, 0xc8, 0xc8 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 238 = 238 -> s:rgb_map[238] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse #565656, adjusted + .tag_fg = .{ 0x54, 0x54, 0x54 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 66 = 66 -> s:rgb_map[66] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x4b, 0x64, 0x65 }, + // derived: the grip at rest, the accent #719899 faded toward the unfocused tag #c8c8c8 as far as 1.6:1 off it (0.78 of the way) + .box_dim = .{ 0x84, 0xa3, 0xa3 }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 94 = 94 -> s:rgb_map[94] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .column_box = .{ 0x9a, 0x72, 0x00 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 30 = 30 -> s:rgb_map[30] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .str = .{ 0x00, 0x97, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .num = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:light_bg - 3 = 249 -> s:rgb_map[249] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 #bfbfbf, adjusted + .border = .{ 0xac, 0xac, 0xac }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 74 = 74 -> s:rgb_map[74] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .search_bg = .{ 0x70, 0xbd, 0xdf }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg 255 = 255 -> s:rgb_map[255] ~/05-genizah/seoul256.vim/colors/seoul256.vim:135 + .search_fg = .{ 0xf1, 0xf1, 0xf1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xbe, 0x75, 0x72 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x5f, 0x5f }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x88, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x87, 0x60 }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0xae }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x5f, 0x87 }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0x87 }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x3a, 0x3a, 0x3a }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x01, 0x00 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x5f, 0x00 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0x86, 0x5f }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0xaf }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x02, 0x5f }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0x87 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xee, 0xee, 0xee }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_light_253.zig b/src/themes/seoul256_light_253.zig new file mode 100644 index 00000000..cf7518d4 --- /dev/null +++ b/src/themes/seoul256_light_253.zig @@ -0,0 +1,99 @@ +//! Seoul256 Light (253): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372 +//! - rules between panes #c8c8c8 -> #b3b3b3: 1.28:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 253 (light). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=237, +//! light_bg=253, dark_bg_2=235 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=254, light_bg_2=255 (lines 176-177, min(..,256)); s:hi uses the +//! second (light) list element (s:style_idx, line 165) and maps any index >255 +//! to 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (253) and is +//! reused unchanged for every level. +pub const theme = .{ + .name = "seoul256_light_253", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:light_bg = 253 -> s:rgb_map[253] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .bg = .{ 0xe1, 0xe1, 0xe1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:light_fg = 239 -> s:rgb_map[239] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 + .fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 152 = 152 -> s:rgb_map[152] ~/05-genizah/seoul256.vim/colors/seoul256.vim:127 + .sel_bg = .{ 0xbc, 0xde, 0xde }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:light_bg - 2 = 251 -> s:rgb_map[251] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0xd1, 0xd0, 0xd1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 238 = 238 -> s:rgb_map[238] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0x56, 0x56, 0x56 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 66 = 66 -> s:rgb_map[66] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x4b, 0x64, 0x65 }, + // derived: the grip at rest, the accent #719899 faded toward the unfocused tag #d1d0d1 as far as 1.6:1 off it (0.70 of the way) + .box_dim = .{ 0x8e, 0xa9, 0xaa }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 94 = 94 -> s:rgb_map[94] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .column_box = .{ 0x9a, 0x72, 0x00 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 30 = 30 -> s:rgb_map[30] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .str = .{ 0x00, 0x97, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .num = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:light_bg - 3 = 250 -> s:rgb_map[250] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 #c8c8c8, adjusted + .border = .{ 0xb3, 0xb3, 0xb3 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 74 = 74 -> s:rgb_map[74] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .search_bg = .{ 0x70, 0xbd, 0xdf }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg 255 = 255 -> s:rgb_map[255] ~/05-genizah/seoul256.vim/colors/seoul256.vim:135 + .search_fg = .{ 0xf1, 0xf1, 0xf1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xbe, 0x75, 0x72 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x5f, 0x5f }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x88, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x87, 0x60 }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0xae }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x5f, 0x87 }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0x87 }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x3a, 0x3a, 0x3a }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x01, 0x00 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x5f, 0x00 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0x86, 0x5f }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0xaf }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x02, 0x5f }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0x87 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xee, 0xee, 0xee }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_light_254.zig b/src/themes/seoul256_light_254.zig new file mode 100644 index 00000000..db5ce09c --- /dev/null +++ b/src/themes/seoul256_light_254.zig @@ -0,0 +1,101 @@ +//! Seoul256 Light (254): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372 +//! - rules between panes #d1d0d1 -> #b8b8b8: 1.27:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 254 (light). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=237, +//! light_bg=254, dark_bg_2=235 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=255, light_bg_2=256 (lines 176-177, min(..,256)); s:hi uses the +//! second (light) list element (s:style_idx, line 165) and maps any index >255 +//! to 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (253) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_fg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_light_254", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:light_bg = 254 -> s:rgb_map[254] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 + .bg = .{ 0xe9, 0xe9, 0xe9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:light_fg = 239 -> s:rgb_map[239] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 + .fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 152 = 152 -> s:rgb_map[152] ~/05-genizah/seoul256.vim/colors/seoul256.vim:127 + .sel_bg = .{ 0xbc, 0xde, 0xde }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:light_bg - 2 = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0xd9, 0xd9, 0xd9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 238 = 238 -> s:rgb_map[238] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0x56, 0x56, 0x56 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 66 = 66 -> s:rgb_map[66] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x4b, 0x64, 0x65 }, + // derived: the grip at rest, the accent #719899 faded toward the unfocused tag #d9d9d9 as far as 1.6:1 off it (0.64 of the way) + .box_dim = .{ 0x96, 0xaf, 0xb0 }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 94 = 94 -> s:rgb_map[94] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .column_box = .{ 0x9a, 0x72, 0x00 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 30 = 30 -> s:rgb_map[30] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .str = .{ 0x00, 0x97, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .num = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:light_bg - 3 = 251 -> s:rgb_map[251] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 #d1d0d1, adjusted + .border = .{ 0xb8, 0xb8, 0xb8 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 74 = 74 -> s:rgb_map[74] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .search_bg = .{ 0x70, 0xbd, 0xdf }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg 255 = 255 -> s:rgb_map[255] ~/05-genizah/seoul256.vim/colors/seoul256.vim:135 + .search_fg = .{ 0xf1, 0xf1, 0xf1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xbe, 0x75, 0x72 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x5f, 0x5f }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x88, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x87, 0x60 }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0xae }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x5f, 0x87 }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0x87 }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x3a, 0x3a, 0x3a }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x01, 0x00 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x5f, 0x00 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0x86, 0x5f }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0xaf }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x02, 0x5f }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0x87 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xee, 0xee, 0xee }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_light_255.zig b/src/themes/seoul256_light_255.zig new file mode 100644 index 00000000..db25fd20 --- /dev/null +++ b/src/themes/seoul256_light_255.zig @@ -0,0 +1,101 @@ +//! Seoul256 Light (255): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372 +//! - rules between panes #d9d9d9 -> #bfbfbf: 1.25:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 255 (light). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=237, +//! light_bg=255, dark_bg_2=235 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=256, light_bg_2=256 (lines 176-177, min(..,256)); s:hi uses the +//! second (light) list element (s:style_idx, line 165) and maps any index >255 +//! to 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (253) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_fg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_light_255", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:light_bg = 255 -> s:rgb_map[255] ~/05-genizah/seoul256.vim/colors/seoul256.vim:135 + .bg = .{ 0xf1, 0xf1, 0xf1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:light_fg = 239 -> s:rgb_map[239] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 + .fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 152 = 152 -> s:rgb_map[152] ~/05-genizah/seoul256.vim/colors/seoul256.vim:127 + .sel_bg = .{ 0xbc, 0xde, 0xde }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:light_bg - 2 = 253 -> s:rgb_map[253] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0xe1, 0xe1, 0xe1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 238 = 238 -> s:rgb_map[238] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0x56, 0x56, 0x56 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 66 = 66 -> s:rgb_map[66] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x4b, 0x64, 0x65 }, + // derived: the grip at rest, the accent #719899 faded toward the unfocused tag #e1e1e1 as far as 1.6:1 off it (0.58 of the way) + .box_dim = .{ 0xa0, 0xb7, 0xb7 }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 94 = 94 -> s:rgb_map[94] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .column_box = .{ 0x9a, 0x72, 0x00 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 30 = 30 -> s:rgb_map[30] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .str = .{ 0x00, 0x97, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .num = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:light_bg - 3 = 252 -> s:rgb_map[252] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 #d9d9d9, adjusted + .border = .{ 0xbf, 0xbf, 0xbf }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 74 = 74 -> s:rgb_map[74] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .search_bg = .{ 0x70, 0xbd, 0xdf }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg 255 = 255 -> s:rgb_map[255] ~/05-genizah/seoul256.vim/colors/seoul256.vim:135 + .search_fg = .{ 0xf1, 0xf1, 0xf1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xbe, 0x75, 0x72 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x5f, 0x5f }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x88, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x87, 0x60 }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0xae }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x5f, 0x87 }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0x87 }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x3a, 0x3a, 0x3a }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x01, 0x00 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x5f, 0x00 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0x86, 0x5f }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0xaf }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x02, 0x5f }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0x87 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xee, 0xee, 0xee }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; diff --git a/src/themes/seoul256_light_256.zig b/src/themes/seoul256_light_256.zig new file mode 100644 index 00000000..32dfb211 --- /dev/null +++ b/src/themes/seoul256_light_256.zig @@ -0,0 +1,101 @@ +//! Seoul256 Light (256): Seoul256, 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/junegunn/seoul256.vim; genizah ~/05-genizah/seoul256.vim; commit 0357ff3e44faab66c98bc98dfc89c834e37012da +//! 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 text #dfdebd -> #12120f: 3.02:1 on #9a7372, tag text needs 4.5:1 +//! - focused grip #719899 -> #4b6465: 1.31:1 on the focused tag #9a7372 +//! - rules between panes #e1e1e1 -> #cacaca: 1.31:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) +//! Upstream notes: g:seoul256_background = 256 (light). Resolved exactly as +//! ~/05-genizah/seoul256.vim/colors/seoul256.vim:145-177: dark_bg=237, +//! light_bg=256, dark_bg_2=235 (line 175: dark_bg>233 ? dark_bg-2 : 16), +//! light_bg_1=256, light_bg_2=256 (lines 176-177, min(..,256)); s:hi uses the +//! second (light) list element (s:style_idx, line 165) and maps any index >255 +//! to 231 (lines 184-185). GUI hex from the file's default s:rgb_map +//! (~/05-genizah/seoul256.vim/colors/seoul256.vim:120-135, iTerm2-measured +//! values; NOT the xterm table, which is only used when g:seoul256_srgb=1, +//! lines 37-118). The background knob is a fixed integer set: dark 233..239 +//! (default 237), light 252..256 (default 253) (lines 147-150, 169/173; +//! README.md:52-60); any other value is discarded (line 152) and the style +//! falls back to &background/colors_name; non-integers are not meaningful +//! because the offsets index a Dict by integer. StatusLine/StatusLineNC are +//! gui=bold,reverse so status roles are the rendered (swapped) colours. No +//! Diagnostic* groups (error/warning from ALE signs, info/hint null). ansi: the +//! colorscheme sets no g:terminal_ansi_colors/terminal_color_*; ansi is the +//! repo's own urxvt port, which exists for one background only (253) and is +//! reused unchanged for every level. Index gaps: for this level the roles +//! tabline_fg land on an xterm index missing from the default s:rgb_map, so Vim +//! emits gui*=NONE and they inherit Normal (given as such). +pub const theme = .{ + .name = "seoul256_light_256", + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guibg = s:hi arg s:light_bg = 256 (256>255 -> 231 per ~/05-genizah/seoul256.vim/colors/seoul256.vim:184-185) -> s:rgb_map[231] ~/05-genizah/seoul256.vim/colors/seoul256.vim:131 + .bg = .{ 0xff, 0xff, 0xff }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:206 Normal guifg = s:hi arg s:light_fg = 239 -> s:rgb_map[239] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133 + .fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:209 Visual guibg = s:hi arg 152 = 152 -> s:rgb_map[152] ~/05-genizah/seoul256.vim/colors/seoul256.vim:127 + .sel_bg = .{ 0xbc, 0xde, 0xde }, + // the original keeps text colours over its selection; its text colour + .sel_fg = .{ 0x61, 0x61, 0x61 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guifg = s:hi arg s:light_bg - 2 = 254 -> s:rgb_map[254] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_bg = .{ 0xe9, 0xe9, 0xe9 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:351 StatusLineNC guibg = s:hi arg 238 = 238 -> s:rgb_map[238] ~/05-genizah/seoul256.vim/colors/seoul256.vim:133; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:355 sets gui=bold,reverse + .tag_fg = .{ 0x56, 0x56, 0x56 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124; rendered as the bar background because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse + .tag_active_bg = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:350 StatusLine guibg = s:hi arg 187 = 187 -> s:rgb_map[187] ~/05-genizah/seoul256.vim/colors/seoul256.vim:129; rendered as the bar text because ~/05-genizah/seoul256.vim/colors/seoul256.vim:354 sets gui=bold,reverse #dfdebd, adjusted + .tag_active_fg = .{ 0x12, 0x12, 0x0f }, + // the focused grip: ~/05-genizah/seoul256.vim/colors/seoul256.vim:359 TabLineSel guibg = s:hi arg 66 = 66 -> s:rgb_map[66] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (accent: the selected-tab background, TabLineSel, the file's only coloured focus marker; the airline/lightline seoul256 themes live outside this repo) + .box = .{ 0x4b, 0x64, 0x65 }, + // derived: the grip at rest, the accent #719899 faded toward the unfocused tag #e9e9e9 as far as 1.6:1 off it (0.54 of the way) + .box_dim = .{ 0xa8, 0xbd, 0xbe }, + // an unsaved grip: the original's modified colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:396 GitGutterChange guifg = s:hi arg 68 = 68 -> s:rgb_map[68] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 (modified: vim-gitgutter Changed sign) + .box_dirty = .{ 0x71, 0x9c, 0xdf }, + // derived: the column grip, the original's type colour, ~/05-genizah/seoul256.vim/colors/seoul256.vim:247 Type guifg = s:hi arg 94 = 94 -> s:rgb_map[94] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .column_box = .{ 0x9a, 0x72, 0x00 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:253 Keyword guifg = s:hi arg 168 = 168 -> s:rgb_map[168] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 + .kw = .{ 0xe1, 0x78, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:216 String guifg = s:hi arg 30 = 30 -> s:rgb_map[30] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .str = .{ 0x00, 0x97, 0x99 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:213 Number guifg = s:hi arg 95 = 95 -> s:rgb_map[95] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .num = .{ 0x9a, 0x73, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:212 Comment guifg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .comment = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:208 LineNr guifg = s:hi arg 101 = 101 -> s:rgb_map[101] ~/05-genizah/seoul256.vim/colors/seoul256.vim:125 + .lineno = .{ 0x99, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:276 CursorLineNr guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 + .lineno_active = .{ 0xbe, 0x75, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:306 PmenuSbar guibg = s:hi arg 65 = 65 -> s:rgb_map[65] ~/05-genizah/seoul256.vim/colors/seoul256.vim:123 + .scroll_track = .{ 0x71, 0x98, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:307 PmenuThumb guibg = s:hi arg 23 = 23 -> s:rgb_map[23] ~/05-genizah/seoul256.vim/colors/seoul256.vim:121 + .scroll_thumb = .{ 0x00, 0x71, 0x73 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:287 VertSplit guifg = s:hi arg s:light_bg - 3 = 253 -> s:rgb_map[253] ~/05-genizah/seoul256.vim/colors/seoul256.vim:134 #e1e1e1, adjusted + .border = .{ 0xca, 0xca, 0xca }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guibg = s:hi arg 74 = 74 -> s:rgb_map[74] ~/05-genizah/seoul256.vim/colors/seoul256.vim:124 + .search_bg = .{ 0x70, 0xbd, 0xdf }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:309 Search guifg = s:hi arg 255 = 255 -> s:rgb_map[255] ~/05-genizah/seoul256.vim/colors/seoul256.vim:135 + .search_fg = .{ 0xf1, 0xf1, 0xf1 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:402 ALEErrorSign guifg = s:hi arg 161 = 161 -> s:rgb_map[161] ~/05-genizah/seoul256.vim/colors/seoul256.vim:128 (no Diagnostic* groups; ALE error sign used) + .diagnostic_error = .{ 0xe1, 0x26, 0x72 }, + // ~/05-genizah/seoul256.vim/colors/seoul256.vim:403 ALEWarningSign guifg = s:hi arg 131 = 131 -> s:rgb_map[131] ~/05-genizah/seoul256.vim/colors/seoul256.vim:126 (no Diagnostic* groups; ALE warning sign used) + .diagnostic_warning = .{ 0xbe, 0x75, 0x72 }, + .palette = .{ + .{ 0x4e, 0x4e, 0x4e }, // 0: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:5 URxvt*color0 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x5f, 0x5f }, // 1: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:6 URxvt*color1 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x88, 0x5f }, // 2: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:7 URxvt*color2 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xaf, 0x87, 0x60 }, // 3: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:8 URxvt*color3 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0xae }, // 4: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:9 URxvt*color4 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x5f, 0x87 }, // 5: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:10 URxvt*color5 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x5f, 0x87, 0x87 }, // 6: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:11 URxvt*color6 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xe4, 0xe4, 0xe4 }, // 7: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:12 URxvt*color7 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x3a, 0x3a, 0x3a }, // 8: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:13 URxvt*color8 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x01, 0x00 }, // 9: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:14 URxvt*color9 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x5f, 0x00 }, // 10: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:15 URxvt*color10 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xd8, 0x86, 0x5f }, // 11: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:16 URxvt*color11 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0xaf }, // 12: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:17 URxvt*color12 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x87, 0x02, 0x5f }, // 13: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:18 URxvt*color13 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0x00, 0x87, 0x87 }, // 14: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:19 URxvt*color14 (official urxvt port; the vim colorscheme sets no terminal colours) + .{ 0xee, 0xee, 0xee }, // 15: ~/05-genizah/seoul256.vim/urxvt/seoul256-light:20 URxvt*color15 (official urxvt port; the vim colorscheme sets no terminal colours) + }, +}; |
