summaryrefslogtreecommitdiff
path: root/src/themes
Commit message (Collapse)AuthorAge
* Themes become a short Typst topic: choosing one, the native palettes and ↵Gabriel Schneider27 hours
| | | | | | ports, and a theme file's roles Co-Authored-By: Claude Opus 5.5 <[email protected]>
* lapis_plain: lapis on flat grounds, with its framed and shadowed tags and ↵Gabriel Schneider27 hours
| | | | | | | | its file-name shadow No dot grid under the text and no stripes behind the focused tag; every colour, the gold frames and vermilion shadows of the plaques, the rules, the scroll column's checker and the title shadow stay lapis's. It follows lapis in the ring and the Themes picker. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* acme tints a tag's file name, +Name and Tty word quietly, in its own ↵Gabriel Schneider27 hours
| | | | | | | | | | DMedblue #000099 acme tints nothing in a tag, but the tint is a pardes indicator the user wants in every theme. #000099 is acme's own (draw.h DMedblue, its dirty button): a navy that reads as ink until you look for it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Doom One, as close to the original as pardes draws: doom_one, doom_one_lightGabriel Schneider27 hours
| | | | | | | | | | | | | Every colour is the original's own, cited file:line in each theme file. Sources: repo; https://github.com/doomemacs/themes; ~/05-genizah/doomemacs-themes; a59202912ad55014e53a685eee6cd94130bdd4fd Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): doom_one: focused tag ground #1d2026 -> #40444b: 1.05:1 off the unfocused #21242b, pardes needs 1.5:1 on a dark page doom_one: unfocused tag text #5b6268 -> #868b8f: 2.51:1 on #21242b, tag text needs 4.5:1 to be read and run doom_one: rules between panes #191b20 -> #4a4d55: 1.23:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) doom_one: scroll thumb #3f444a -> #44494f: 1.42:1 on its track #282c34 doom_one_light: focused tag ground #e7e7e7 -> #c8c8c9: 1.06:1 off the unfocused #e1e1e1, pardes needs 1.25:1 on a light page doom_one_light: unfocused tag text #a190a7 -> #6a5f6e: 2.27:1 on #e1e1e1, tag text needs 4.5:1 to be read and run
* Ayu, as close to the original as pardes draws: ayu_dark, ayu_mirage, ayu_lightGabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | Every colour is the original's own, cited file:line in each theme file. Sources: palette (themes/*.yaml, generated src/generated/*.ts); https://github.com/ayu-theme/ayu-colors; ~/05-genizah/ayu-colors; b0fd979a1ddf050101b43311fa598a1a9c5f1bbc VS Code port (roles, terminal colours); https://github.com/ayu-theme/vscode-ayu; ~/05-genizah/vscode-ayu; d676974ebb245fa5a7ae4444027f72801017f1b6 Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): ayu_dark: focused tag ground #10141c -> #33363b: 1.03:1 off the unfocused #0d1017, pardes needs 1.5:1 on a dark page ayu_dark: unfocused tag text #5a6378 -> #747c8e: 3.16:1 on #0d1017, tag text needs 4.5:1 to be read and run ayu_dark: rules between panes #1b1f29 -> #393b42: 1.12:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) ayu_dark: scroll thumb #2e3441 -> #313743: 1.48:1 on its track #10141c ayu_mirage: focused tag ground #242936 -> #3f434c: 1.07:1 off the unfocused #1f2430, pardes needs 1.5:1 on a dark page ayu_mirage: unfocused tag text #707a8c -> #848d9c: 3.58:1 on #1f2430, tag text needs 4.5:1 to be read and run ayu_mirage: rules between panes #171b24 -> #46494d: 1.19:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) ayu_light: focused tag ground #fcfcfc -> #dcddde: 1.03:1 off the unfocused #f8f9fa, pardes needs 1.25:1 on a light page ayu_light: unfocused tag text #828e9f -> #68727f: 3.15:1 on #f8f9fa, tag text needs 4.5:1 to be read and run ayu_light: rules between panes #eaedef -> #c5c9cb: 1.15:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
* Nord, as close to the original as pardes draws: nordGabriel Schneider27 hours
| | | | | | | | | | | | | Every colour is the original's own, cited file:line in each theme file. Sources: palette; https://github.com/nordtheme/nord; ~/05-genizah/nord; 1cef71605416a222e57225b544540ce0fcec18d4 vim port (roles, terminal colours); https://github.com/nordtheme/vim; ~/05-genizah/nord-vim; f13f5dfbb784deddbc1d8195f34dfd9ec73e2295 VS Code port (reference only, see notes); https://github.com/nordtheme/visual-studio-code; ~/05-genizah/nord-visual-studio-code; 8ead09822c02d0d49d0f764104505e5a34d3689f Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): nord: focused tag ground #4c566a -> #525d72: 1.36:1 off the unfocused #3b4252, pardes needs 1.5:1 on a dark page nord: focused tag text #88c0d0 -> #bcdce5: 3.31:1 on #525d72, tag text needs 4.5:1 nord: rules between panes #434c5e -> #4c5566: 1.45:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) nord: scroll thumb #4c566a -> #60697c: 1.17:1 on its track #434c5e
* Zenbones, as close to the original as pardes draws: zenbones_light, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | zenbones_dark, neobones_light, neobones_dark, vimbones, forestbones_light, forestbones_dark, nordbones, rosebones_light, rosebones_dark, tokyobones_light, tokyobones_dark, seoulbones_light, seoulbones_dark, duckbones, zenburned, zenwritten_light, zenwritten_dark, kanagawabones Every colour is the original's own, cited file:line in each theme file. Sources: repo; https://github.com/zenbones-theme/zenbones.nvim; ~/05-genizah/zenbones.nvim; 8304d8df9b823ff11e103afa62f38c39f534abe6 Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): zenbones_light: focused tag ground #d6cdc9 -> #cfc3bf: 1.15:1 off the unfocused #e1dcd9, pardes needs 1.25:1 on a light page zenbones_light: unfocused tag text #596a76 -> #52626d: 4.12:1 on #e1dcd9, tag text needs 4.5:1 to be read and run zenbones_light: focused grip #bbaba3 -> #ac9d96: 1.29:1 on the focused tag #cfc3bf zenbones_dark: focused tag ground #352f2d -> #473f3d: 1.18:1 off the unfocused #272321, pardes needs 1.5:1 on a dark page zenbones_dark: focused grip #59514d -> #635b58: 1.32:1 on the focused tag #473f3d neobones_light: focused tag ground #c2cfc4 -> #bac6bc: 1.16:1 off the unfocused #d0ded2, pardes needs 1.25:1 on a light page neobones_light: focused grip #a3aea4 -> #96a097: 1.30:1 on the focused tag #bac6bc neobones_dark: focused tag ground #20303a -> #2e4350: 1.15:1 off the unfocused #18252d, pardes needs 1.5:1 on a dark page neobones_dark: focused grip #3b5362 -> #4b616f: 1.28:1 on the focused tag #2e4350 vimbones: focused tag ground #d1d1b0 -> #c7c7a8: 1.15:1 off the unfocused #dfdfbc, pardes needs 1.25:1 on a light page vimbones: unfocused tag text #686868 -> #606060: 4.09:1 on #dfdfbc, tag text needs 4.5:1 to be read and run vimbones: focused grip #b0b093 -> #a2a287: 1.28:1 on the focused tag #c7c7a8 forestbones_light: focused tag ground #e3d191 -> #ddca87: 1.18:1 off the unfocused #f3e2aa, pardes needs 1.25:1 on a light page forestbones_light: unfocused tag text #758690 -> #59666d: 2.92:1 on #f3e2aa, tag text needs 4.5:1 to be read and run forestbones_light: focused tag text #4f5b62 -> #4c575e: 4.28:1 on #ddca87, tag text needs 4.5:1 forestbones_light: focused grip #c0b079 -> #b1a26f: 1.32:1 on the focused tag #ddca87 forestbones_dark: focused tag ground #3e4850 -> #505a64: 1.15:1 off the unfocused #353f46, pardes needs 1.5:1 on a dark page forestbones_dark: focused grip #596873 -> #6a7781: 1.22:1 on the focused tag #505a64 nordbones: focused tag ground #414959 -> #515b6e: 1.15:1 off the unfocused #39404e, pardes needs 1.5:1 on a dark page nordbones: focused grip #5e687e -> #6e778b: 1.22:1 on the focused tag #515b6e rosebones_light: focused tag ground #ecd0a9 -> #e9c89a: 1.18:1 off the unfocused #f3e3cf, pardes needs 1.25:1 on a light page rosebones_light: unfocused tag text #ae6966 -> #8f5654: 3.33:1 on #f3e3cf, tag text needs 4.5:1 to be read and run rosebones_light: focused grip #ceaf7e -> #bea174: 1.31:1 on the focused tag #e9c89a rosebones_dark: focused tag ground #312e43 -> #423e59: 1.19:1 off the unfocused #242232, pardes needs 1.5:1 on a dark page rosebones_dark: focused grip #534e6f -> #5d5978: 1.30:1 on the focused tag #423e59 tokyobones_light: focused tag ground #b9bbc3 -> #b1b3bc: 1.16:1 off the unfocused #c8c9cf, pardes needs 1.25:1 on a light page tokyobones_light: unfocused tag text #5f6b9b -> #4a5379: 3.13:1 on #c8c9cf, tag text needs 4.5:1 to be read and run tokyobones_light: focused grip #9b9da9 -> #8f909b: 1.29:1 on the focused tag #b1b3bc tokyobones_dark: focused tag ground #303142 -> #404157: 1.19:1 off the unfocused #242532, pardes needs 1.5:1 on a dark page tokyobones_dark: focused grip #51536d -> #5b5d76: 1.33:1 on the focused tag #404157 seoulbones_light: focused tag ground #c4c4c4 -> #bdbdbd: 1.18:1 off the unfocused #d4d4d4, pardes needs 1.25:1 on a light page seoulbones_light: unfocused tag text #818181 -> #5a5a5a: 2.63:1 on #d4d4d4, tag text needs 4.5:1 to be read and run seoulbones_light: focused tag text #555555 -> #4b4b4b: 3.97:1 on #bdbdbd, tag text needs 4.5:1 seoulbones_light: focused grip #a6a6a6 -> #999999: 1.30:1 on the focused tag #bdbdbd seoulbones_dark: focused tag ground #5e5e5e -> #727272: 1.15:1 off the unfocused #555555, pardes needs 1.5:1 on a dark page seoulbones_dark: focused tag text #dddddd -> #f8f8f8: 3.54:1 on #727272, tag text needs 4.5:1 seoulbones_dark: focused grip #797979 -> #919191: 1.11:1 on the focused tag #727272 seoulbones_dark: scroll thumb #a0a0a0 -> #a1a1a1: 1.49:1 on its track #818181 duckbones: focused tag ground #232738 -> #353b51: 1.13:1 off the unfocused #1a1d2b, pardes needs 1.5:1 on a dark page duckbones: focused grip #444a67 -> #4f5570: 1.28:1 on the focused tag #353b51 zenburned: focused tag ground #555555 -> #646464: 1.21:1 off the unfocused #494949, pardes needs 1.5:1 on a dark page zenburned: focused grip #6f6f6f -> #838383: 1.18:1 on the focused tag #646464 zenwritten_light: focused tag ground #cfcfcf -> #c5c5c5: 1.15:1 off the unfocused #dddddd, pardes needs 1.25:1 on a light page zenwritten_light: unfocused tag text #686868 -> #606060: 4.10:1 on #dddddd, tag text needs 4.5:1 to be read and run zenwritten_light: focused grip #aeaeae -> #a0a0a0: 1.29:1 on the focused tag #c5c5c5 zenwritten_dark: focused tag ground #303030 -> #414141: 1.18:1 off the unfocused #242424, pardes needs 1.5:1 on a dark page zenwritten_dark: focused grip #525252 -> #5c5c5c: 1.31:1 on the focused tag #414141 kanagawabones: focused tag ground #363644 -> #444456: 1.21:1 off the unfocused #292934, pardes needs 1.5:1 on a dark page kanagawabones: focused grip #565668 -> #606071: 1.33:1 on the focused tag #444456
* Seoul256, as close to the original as pardes draws: seoul256_dark_233, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Catppuccin, as close to the original as pardes draws: catppuccin_latte, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | | catppuccin_frappe, catppuccin_macchiato, catppuccin_mocha Every colour is the original's own, cited file:line in each theme file. Sources: palette; https://github.com/catppuccin/palette; ~/05-genizah/catppuccin-palette; 07d02aa110ef9eb7e7427afca5c73ba9cf7f8ebd neovim port (highlight mapping, terminal colours, lualine); https://github.com/catppuccin/nvim; ~/05-genizah/catppuccin-nvim; edefef779ab08ce1a4a404713e3012b0d202bd35 Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): catppuccin_latte: focused tag ground #e6e9ef -> #cdd0da: 1.00:1 off the unfocused #e6e9ef, pardes needs 1.25:1 on a light page catppuccin_latte: unfocused tag text #bcc0cc -> #66686e: 1.49:1 on #e6e9ef, tag text needs 4.5:1 to be read and run catppuccin_latte: rules between panes #dce0e8 -> #bcc0cc: 1.17:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) catppuccin_frappe: focused tag ground #292c3c -> #454a5d: 1.00:1 off the unfocused #292c3c, pardes needs 1.5:1 on a dark page catppuccin_frappe: unfocused tag text #51576d -> #9093a2: 1.93:1 on #292c3c, tag text needs 4.5:1 to be read and run catppuccin_frappe: rules between panes #232634 -> #51566a: 1.22:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) catppuccin_macchiato: focused tag ground #1e2030 -> #3d4053: 1.00:1 off the unfocused #1e2030, pardes needs 1.5:1 on a dark page catppuccin_macchiato: unfocused tag text #494d64 -> #878a99: 1.94:1 on #1e2030, tag text needs 4.5:1 to be read and run catppuccin_macchiato: rules between panes #181926 -> #46495c: 1.18:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) catppuccin_mocha: focused tag ground #181825 -> #393a4a: 1.00:1 off the unfocused #181825, pardes needs 1.5:1 on a dark page catppuccin_mocha: unfocused tag text #45475a -> #81828f: 1.92:1 on #181825, tag text needs 4.5:1 to be read and run catppuccin_mocha: rules between panes #11111b -> #3e404f: 1.14:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
* Rosé Pine, as close to the original as pardes draws: rose_pine, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | rose_pine_moon, rose_pine_dawn Every colour is the original's own, cited file:line in each theme file. Sources: palette; https://github.com/rose-pine/palette; ~/05-genizah/rose-pine-palette; 92af52b465ab6e47437aca223c9b8d3009a2023b neovim port (highlight mapping, terminal colours, lualine); https://github.com/rose-pine/neovim; ~/05-genizah/rose-pine-neovim; ff483051a47e27d84bdef47703538df1ed9f4a47 Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): rose_pine: focused tag ground #1f1d2e -> #3c3a4e: 1.02:1 off the unfocused #1d1b2a, pardes needs 1.5:1 on a dark page rose_pine: unfocused tag text #6e6a86 -> #858299: 3.27:1 on #1d1b2a, tag text needs 4.5:1 to be read and run rose_pine: focused tag text #908caa -> #a8a5bd: 3.42:1 on #3c3a4e, tag text needs 4.5:1 rose_pine_moon: focused tag ground #2a273f -> #45415b: 1.03:1 off the unfocused #27253b, pardes needs 1.5:1 on a dark page rose_pine_moon: unfocused tag text #6e6a86 -> #918ea3: 2.88:1 on #27253b, tag text needs 4.5:1 to be read and run rose_pine_moon: focused tag text #908caa -> #b1afc4: 3.02:1 on #45415b, tag text needs 4.5:1 rose_pine_dawn: focused tag ground #fffaf3 -> #e2ddde: 1.02:1 off the unfocused #fdf8f1, pardes needs 1.25:1 on a light page rose_pine_dawn: unfocused tag text #9893a5 -> #74707d: 2.82:1 on #fdf8f1, tag text needs 4.5:1 to be read and run rose_pine_dawn: focused tag text #797593 -> #615e76: 3.27:1 on #e2ddde, tag text needs 4.5:1
* Tokyo Night, as close to the original as pardes draws: tokyonight_night, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | tokyonight_storm, tokyonight_moon, tokyonight_day Every colour is the original's own, cited file:line in each theme file. Sources: repo; https://github.com/folke/tokyonight.nvim; ~/05-genizah/tokyonight.nvim; cdc07ac78467a233fd62c493de29a17e0cf2b2b6 Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): tokyonight_night: focused tag ground #16161e -> #363846: 1.00:1 off the unfocused #16161e, pardes needs 1.5:1 on a dark page tokyonight_night: unfocused tag text #3b4261 -> #7e8297: 1.83:1 on #16161e, tag text needs 4.5:1 to be read and run tokyonight_night: rules between panes #15161e -> #3b3e4d: 1.05:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) tokyonight_storm: focused tag ground #1f2335 -> #3d4258: 1.00:1 off the unfocused #1f2335, pardes needs 1.5:1 on a dark page tokyonight_storm: unfocused tag text #3b4261 -> #858a9d: 1.58:1 on #1f2335, tag text needs 4.5:1 to be read and run tokyonight_storm: rules between panes #1d202f -> #44495f: 1.11:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) tokyonight_storm: scroll thumb #3b4261 -> #404767: 1.42:1 on its track #272b3f tokyonight_moon: focused tag ground #1e2030 -> #3a3e56: 1.00:1 off the unfocused #1e2030, pardes needs 1.5:1 on a dark page tokyonight_moon: unfocused tag text #3b4261 -> #858a9d: 1.64:1 on #1e2030, tag text needs 4.5:1 to be read and run tokyonight_moon: focused tag text #828bb8 -> #a3a9ca: 3.16:1 on #3a3e56, tag text needs 4.5:1 tokyonight_moon: rules between panes #1b1d2b -> #414557: 1.09:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) tokyonight_moon: scroll thumb #3b4261 -> #3e4564: 1.46:1 on its track #27293a tokyonight_day: focused tag ground #d0d5e3 -> #b5bdd7: 1.00:1 off the unfocused #d0d5e3, pardes needs 1.25:1 on a light page tokyonight_day: unfocused tag text #a8aecb -> #575a6a: 1.49:1 on #d0d5e3, tag text needs 4.5:1 to be read and run tokyonight_day: focused tag text #6172b0 -> #404b74: 2.47:1 on #b5bdd7, tag text needs 4.5:1 tokyonight_day: scroll thumb #a8aecb -> #9fa8ca: 1.41:1 on its track #c8cfe1 keyword is Neovim's tree-sitter @keyword (c.purple, groups/treesitter.lua:36), which is what pardes's tree-sitter keywords are, not vim's regex Keyword (cyan).
* Monokai Pro, as close to the original as pardes draws: monokai_pro, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | monokai_pro_classic, monokai_pro_machine, monokai_pro_octagon, monokai_pro_ristretto, monokai_pro_spectrum, monokai_pro_light, monokai_pro_light_sun Every colour is the original's own, cited file:line in each theme file. Sources: Monokai Pro for VS Code 2.0.15, published by Wimer Hazenberg (Monokai), verified on Open VSX; https://open-vsx.org/api/monokai/theme-monokai-pro-vscode/2.0.15/file/monokai.theme-monokai-pro-vscode-2.0.15.vsix; ~/05-genizah/monokai-pro-vscode/vsix/extension/themes Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): monokai_pro: focused tag ground #2d2a2e -> #4f4637: 1.00:1 off the unfocused #2d2a2e, pardes needs 1.5:1 on a dark page monokai_pro: rules between panes #221f22 -> #4e4b4d: 1.15:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro: scroll thumb #434044 -> #4a484b: 1.39:1 on its track #2d2a2e monokai_pro_classic: focused tag ground #272822 -> #46452f: 1.00:1 off the unfocused #272822, pardes needs 1.5:1 on a dark page monokai_pro_classic: rules between panes #1d1e19 -> #4a4b44: 1.13:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro_classic: scroll thumb #3e3f38 -> #46473f: 1.40:1 on its track #272822 monokai_pro_machine: focused tag ground #273136 -> #4a4f40: 1.00:1 off the unfocused #273136, pardes needs 1.5:1 on a dark page monokai_pro_machine: unfocused tag text #8b9798 -> #8d999a: 4.42:1 on #273136, tag text needs 4.5:1 to be read and run monokai_pro_machine: rules between panes #1d2528 -> #485152: 1.17:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro_machine: scroll thumb #3d474b -> #444e52: 1.39:1 on its track #273136 monokai_pro_octagon: focused tag ground #282a3a -> #4a4642: 1.00:1 off the unfocused #282a3a, pardes needs 1.5:1 on a dark page monokai_pro_octagon: unfocused tag text #888d94 -> #8d9298: 4.24:1 on #282a3a, tag text needs 4.5:1 to be read and run monokai_pro_octagon: rules between panes #1e1f2b -> #4b4d57: 1.15:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro_octagon: scroll thumb #3d3f4e -> #444655: 1.36:1 on its track #282a3a monokai_pro_ristretto: focused tag ground #2c2525 -> #514332: 1.00:1 off the unfocused #2c2525, pardes needs 1.5:1 on a dark page monokai_pro_ristretto: unfocused tag text #948a8b -> #968c8d: 4.48:1 on #2c2525, tag text needs 4.5:1 to be read and run monokai_pro_ristretto: rules between panes #211c1c -> #4d4747: 1.12:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro_ristretto: scroll thumb #433b3b -> #4b4242: 1.38:1 on its track #2c2525 monokai_pro_spectrum: focused tag ground #222222 -> #45412d: 1.00:1 off the unfocused #222222, pardes needs 1.5:1 on a dark page monokai_pro_spectrum: rules between panes #191919 -> #454447: 1.11:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro_spectrum: scroll thumb #39383a -> #413f42: 1.36:1 on its track #222222 monokai_pro_light: focused tag ground #faf4f2 -> #f5d1d9: 1.00:1 off the unfocused #faf4f2, pardes needs 1.25:1 on a light page monokai_pro_light: unfocused tag text #918c8e -> #716d6f: 3.04:1 on #faf4f2, tag text needs 4.5:1 to be read and run monokai_pro_light: focused tag text #e14775 -> #a73557: 2.80:1 on #f5d1d9, tag text needs 4.5:1 monokai_pro_light: rules between panes #ede7e5 -> #c6c0c0: 1.12:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro_light: scroll thumb #e5e0de -> #cec9c8: 1.20:1 on its track #faf4f2 monokai_pro_light_sun: focused tag ground #f8efe7 -> #f0cdcf: 1.00:1 off the unfocused #f8efe7, pardes needs 1.25:1 on a light page monokai_pro_light_sun: unfocused tag text #92898a -> #726b6c: 3.00:1 on #f8efe7, tag text needs 4.5:1 to be read and run monokai_pro_light_sun: focused tag text #ce4770 -> #9d3655: 3.01:1 on #f0cdcf, tag text needs 4.5:1 monokai_pro_light_sun: rules between panes #eee5de -> #c7bebb: 1.09:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does) monokai_pro_light_sun: scroll thumb #e4dbd5 -> #cac1be: 1.20:1 on its track #f8efe7
* Monokai, as close to the original as pardes draws: monokaiGabriel Schneider27 hours
| | | | | | | | | Every colour is the original's own, cited file:line in each theme file. Sources: Sublime Text 2.0.2's Monokai.tmTheme (Wimer Hazenberg), from 'Color Scheme - Default.sublime-package'; https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2; ~/05-genizah/sublime-text-2-color-schemes/Monokai.tmTheme Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): monokai: focused tag ground #49483e -> #59584f: 1.19:1 off the unfocused #3e3d32, pardes needs 1.5:1 on a dark page monokai: rules between panes #3b3a32 -> #4a4941: 1.30:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
* Dracula, as close to the original as pardes draws: dracula, dracula_soft, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | alucard Every colour is the original's own, cited file:line in each theme file. Sources: official palette (Dracula, Alucard); https://github.com/dracula/dracula-theme; ~/05-genizah/dracula-theme; 1e04a4b768302fa2de37d09cc7b8087eabcd3ed8 official VS Code port: roles, UI, ANSI, Soft transform; https://github.com/dracula/visual-studio-code; ~/05-genizah/dracula-visual-studio-code; a08a206f2c8420ba3c05f0e8d01d43b2f933fdf8 Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): dracula: focused tag ground #282a36 -> #41434d: 1.11:1 off the unfocused #21222c, pardes needs 1.5:1 on a dark page dracula: unfocused tag text #6272a4 -> #7b89b3: 3.36:1 on #21222c, tag text needs 4.5:1 to be read and run dracula_soft: focused tag ground #282a36 -> #454751: 1.05:1 off the unfocused #272727, pardes needs 1.5:1 on a dark page dracula_soft: unfocused tag text #7b7f8b -> #8b8e99: 3.74:1 on #272727, tag text needs 4.5:1 to be read and run alucard: unfocused tag text #6c664b -> #5d5841: 3.75:1 on #cfcfde, tag text needs 4.5:1 to be read and run
* Solarized, as close to the original as pardes draws: solarized_dark, ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | solarized_light Every colour is the original's own, cited file:line in each theme file. Sources: canonical palette and ANSI map; https://github.com/altercation/solarized; ~/05-genizah/solarized; 62f656a02f93c5190a8753159e34b385588d5ff3 the author's vim port for roles; ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): solarized_dark: unfocused tag text #073642 -> #01090b: 2.92:1 on #657b83, tag text needs 4.5:1 to be read and run solarized_dark: focused grip #268bd2 -> #2483c5: 1.38:1 on the focused tag #93a1a1 solarized_light: unfocused tag text #eee8d5 -> #2b2a26: 2.58:1 on #839496, tag text needs 4.5:1 to be read and run solarized_light: focused tag text #eee8d5 -> #f0ebda: 4.39:1 on #586e75, tag text needs 4.5:1 solarized_light: focused grip #268bd2 -> #2f90d4: 1.46:1 on the focused tag #586e75
* Visual Studio Code, as close to the original as pardes draws: dark_plusGabriel Schneider27 hours
| | | | | | | | | | Every colour is the original's own, cited file:line in each theme file. Sources: VS Code 1.130.0 built-in theme; /usr/share/code/resources/app/extensions/theme-defaults/themes/dark_plus.json (includes ./dark_vs.json) VS Code source for workbench defaults; https://github.com/microsoft/vscode; ~/05-genizah/vscode; 1b6a188127eeaf9194f945eb6eb89a657e93c54c (tag 1.130.0) Chrome moved to meet pardes's floors (text, syntax, ANSI untouched): dark_plus: unfocused tag ground #2d2d2d -> #3c3c3c: 1.21:1 off the focused one (the page, kept), pardes needs 1.5:1 on a dark page dark_plus: unfocused tag text #969696 -> #a7a7a7: 3.73:1 on #3c3c3c, tag text needs 4.5:1 to be read and run
* G5: lapis, 0x4200.cafe's manuscript, as a theme with its ornamentGabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A native theme `lapis` (src/themes/lapis.zig) from web/theme/lapis.css: a lapis-deep page, lapis tags with gold names, vellum text, vermilion rubrics, gold rules and a vermilion tag rule, gold selection in lapis ink. Its ornament is the theme's new `decor` (colors.Decor), drawn by a pixel shell inside the chrome it already has (decision 1), all of it off every focus indicator: - page_dots: the site's gold dot grid (#e8c46a22, 22 px), drawn by the cell shader on page-coloured cells alone (flag 0x10000000), so it lies under the text and never under a selection, a tag or the cursor; fixed to the window, a page the panes lie on. - rail_checker: the dither frame's gold and lapis checker in the scroll track (a decor kind, flag 0x08000000), anchored to its rail; the thumb stays solid gold. - tag plaques (tag_border, tag_shadow, tag_stripe): every tag a raised plaque inside its own band, the site's trail: a 2px gold frame and a hard 5px vermilion shadow down and right, both within the band's rows and columns (down, what the slack under the text leaves), so no shadow reaches a body, a grip or the next pane. The focused pane's plaque is the code window's title bar, gold and lapis stripes of 2px, its words on plates of the focused ground; unfocused ones are plain; column and workspace tags take the object-label language (1px frame, 2px shadow toward the page). Drawn as decor under the cells (a group's under range), with blank tag cells see-through and the cells blended premultiplied (pipeline_over) on such frames; opaque windows only. - title_shadow: the titles' vermilion offset shadow under a file name's letters, sampled in the cell shader inside the letters' own cells (flag 0x08000000), none on a cursor. Chrome carries the decor (decor_*, name_ink, active_name_ink); a theme file folds a nested decor literal field by field. Left out, with why, in docs/effects.md: the fonts, the ornaments, a decor crossfade, and in the tty anything but the colours (a tag row has no spare cell for a shadow). An empty column is the page. The effect id is masked to 27 bits (ui.vert/ui.frag) for the fifth flag. Tests: the cell flags land only on page ground and file-name cells, never a cursor, nothing without decor; lapis's plaques stay inside their tag's band, clear of every grip, only the focused one striped; its checker is in the track; no other theme draws any; the separator and focus tests cover lapis. Goldens: theme and themesel (the ring gains lapis after acme). Gates as G4. Feel review: .scratch/render/lapis/ (lapis.png, lapis-2x.png, tags-focused-vs-unfocused-2x.png, a PanelSlide at 60 fps and a quarter).
* Rules and chrome scale with the display's density; dark pages get visible ↵Gabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | separators and focus tints Density: dp() in gui.zig draws every size given in pixels in logical pixels (SDL's window display scale, rounded, at least one), as acme scales Border, ButtonBorder and Scrollgap: the rules (rule_px), the tag rule, the grip's ring, its dirty gap and mode bars, the rail's gap to the text and its minimum, the thumb's inset, the rim, a bar cursor's minimum width, underline and strikethrough thickness (the atlas is dropped on a scale change), the rule-grab margin, and the Crt's scanline and mask periods (pardesScale in the post prefix). Cell- and tagline-measured sizes stay: the rail's width, Lift's blur and offsets, every motion; iResolution, fragCoord and iMouse stay in the display's pixels, as ghostty's. PARDES_TEST_SCALE forces a density in a harness (a test window is 1x otherwise, whatever display it lands on) and sizes the test font with it. Colours: a separator that stands off its page by less than 1.5:1 is lifted toward the text to 1.6:1 (helix, atelier, paper; a theme with no page, dark, is judged against #121212), and empty_col follows it. forge's own rule already stands at 3.83:1; what hid it was density: 2 device pixels on a 3x screen, now 6 (dp). A focused tag's tint closer than 1.5:1 to the plain tag on a dark page (1.25:1 on a light one) is pushed further the way it leans, as far as its text keeps its own contrast or 4.5: forge 1.23 -> 1.51 (#2d3440 -> #374253), and likewise dusk, orchard, ink, lagoon, clay, harvest, spectrum, solarium, forge_soft; daybreak, atelier, paper to 1.25. dark and helix gain a tint of their own (dark: #484566 under #c8c8c8, 1.54:1; helix: ramp 237 under 250, 1.65:1). Tag caret: past a full row's end, the G3 glide box sits on the tag's right edge, where the layer's caret and the pixel shell's are. Tests: every native theme's separator >= 1.5 and every dark one has a tint >= 1.25 with readable text; forge keeps its own border; the tag caret glide box at a full row; at 2x the spine, tag rule, ring, rail start and gap, and bar cursor double. Legacy-ThemeFile test strips helix's new pair. Goldens: snapshot goldens change in colour rows only, the tints (orchard #283a2f -> #314738 at boot, forge, helix and dark in theme/themesel). GUI goldens: the harness's single Del of the renamed wide pane is refused since ysqnkyoy (a rename counted as unsaved; fixed on the 9P line in wkzlsqvy), so scenes 09-17 were recorded with that pane open and the file was stale since the merge (08 and 18 also moved with ykvnltvs's full-row tag wrap). The goldens here were recorded with that pane closed (as wkzlsqvy will close it); against the parent's binary under the same conditions they differ only in the tints: 01-13 forge's (#2d3440 -> #374253, and the glyph edges on it), 14 ink's; 15-18 are byte-identical. Until wkzlsqvy is merged, a run here fails 09-17. Each commit reproduces its own recorded goldens on this machine (checked at kvtmqkyn). A test window is 1x unless PARDES_TEST_SCALE says otherwise, whatever display it opens on. Prebuilt shaders refreshed from their sources. Captures: .scratch/render/dark-borders/{before,after,compare,scale2,scale3}.
*-. Merge: 9P round 6 + empty columns + render (acme theme, grips, Lift, Motion)Gabriel Schneider27 hours
|\ \
| | * acme looks like acme; every theme gets acme's button, scroll column and 2px ↵Gabriel Schneider27 hours
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rules acme takes plan9port's own colours (acme.c iconinit, draw.h): selections #eeee9e in the body and #9eeeee in the tag, black ink; exec and look sweeps #aa0000 and #006600, white ink; a #99994c scrollbar under a #ffffea thumb; black rules; a #8888cc tag/body rule and column button. Every theme: the grip is acme's button, its tag row's full height, in one scroll column with the scrollbar (rail_px, 12 at a 17px tagline, scaled, times GripWidth, a percent, default 150; same x0/x1 to the pixel): focused clean = solid box; focused dirty = box_dirty filled to a box ring (acme's modbutton); unfocused clean = a box_border ring round the tag's ground; unfocused dirty = box_dirty a pixel inside that ring. The grid, which has no ring, marks dirty with a bold * on box_dirty in the grip's second cell and fills an unfocused grip halfway to its ring. Regions carry a dirty flag. Column buttons are the same shape, solid. 2px rules between columns and stacked panes (inside the tag band's slack), none at the window edge; a 1px tag/body rule halfway between tag and page. Theme data: tag_sel_bg, sweep_bg/fg, tag_rule, rule_px, rail_px, box_border, box_dirty. Chrome: rule_px, tag_rule, rail_px, grip_border, grip_focus_ring; a comptime guard on Chrome's layout forces a wire bump once v8 ships. Structural rules are exempt from the focus-indicator rule (docs/effects.md). Tests: acme widths; stacked rule in the slack at two tagline sizes; every grip-column pixel is band, button, ring or rule, and the button shares the scrollbar's x0/x1 (4 metrics x top/bottom x focus x dirty); the four grip states distinct in every native theme with a non-colour dirty cue in the grid; wire round-trip of the new fields. Shared files: src/colors.zig, src/surface.zig, src/body_layer.zig, src/tagline.zig, src/detached/wire.zig, docs/themes.md, docs/config.md, docs/effects.md, 21 snapshot goldens (the grip cells only), test/gui-goldens.txt. Motion flavours differ by design, and drive notice drops and pane moves
| * An empty column shows its theme's empty_col: white in the acme theme, as ↵Gabriel Schneider27 hours
|/ | | | | | acme paints it Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Point docs and comments at the files code moved toGabriel Schneider27 hours
| | | | | | | | | | | | | Documentation only, no code change: README's reading order and layout, docs/design.typ's paragraph on where pane kinds and editor parts live, docs/helix-keys.md's code map (normalInput and the executors now in normal.zig and edit.zig, insertTab in edit.zig), docs/open-questions.md (execute and ttyForDir in exec.zig), and the comments that named pardes.zig for fold, Cell, takesCommandLine and runBuiltin (tools/gen_themes.zig, themes/helix.zig, detached/wire.zig, host_io.zig, lsp_zls.zig). docs/design.pdf is a retained fixture and is not regenerated. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Make the macOS shell a first-class hostGabriel Schneider27 hours
| | | | | | | | | | | | | | | | | | | | | Pty children are exec'd with their own TERM/COLORTERM/TERM_PROGRAM instead of inheriting a .app launch's empty environment, and ttyTaken finally answers on darwin — libproc walks the tty's foreground process group — so Escape reaches the child and Exec stops believing every pane sits at its prompt. The occupancy suite runs on both platforms now. The workspace tag row moves into the native menu bar as a Builtins menu. -Dworkspace-tag (default off for -Dplatform=macos, on everywhere else) drives it, and Pardes.topBarHeight replaces the TOPBAR_H constant so the core stops reserving the row. The view pins every variable-font axis to the file's own default (Maple Mono came up Thin otherwise), shapes ligatures, carries per-shape pointer cursors, and draws the look-hover affordance as refracted glass. Tag rows fill edge to edge, with the anchor box painted back on top of that fill and its mode glyph centred on the same square. Theme accents re-saturated across the set. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
* Reorder columns using aligned and distinctly colored tag gripsGabriel Schneider2026-09-15
|
* Match filename tint lightness in every canonical theme and focus stateGabriel Schneider2026-09-15
|
* Distinguish filename hues while preserving tag brightnessGabriel Schneider2026-09-15
|
* Tint pane tag filenames with an optional theme colorGabriel Schneider2026-09-15
|
* trunk: resume before the Reload experimentGabriel Schneider2026-09-15
| | | | Empty marker on the last pre-Reload change. Keep the Reload experiment on reload (3801914), its first change on reload-start (200a1fc), and the unfinished performance investigation on reload-perf-wip.
* theme the selection colorsGabriel Schneider2026-08-10
|
* themes: one file each, generated from helix and zed, picked by stepping a listGabriel Schneider2026-08-01
Each theme is a .zig file of pure data and nothing enumerates them by hand — fold() walks the container's declarations, so a theme is a file and that is the whole registration. Field by field rather than a wholesale coercion, which makes a missing field a compile error that names it. tools/gen_themes.zig reads helix .toml and zed .json out of vendor/themes and emits one .zig each; build.zig reads that directory, so adding a theme is dropping a file in. Output goes to the build cache rather than the tree, so zig owns the freshness check and a deleted source cannot leave a stale theme behind. Vendored, not read from the genizah: the build stays offline. A source it cannot map is a hard error naming the file and the key, never a silently black-on-black theme. ThemeSel is the clever half. Traits gained an `executes` column, so n/N over that buffer hands the whole line to Exec instead of the leading word to Look — both arms the ordinary builtin, so a stepped row does exactly what the matching mouse button on it would. Stepping the list previews each theme live. The trait is a pane property, not an output-pane branch, so any pane whose lines are commands can opt in. Goldens: leader gains SPC t t; theme's fourth NextColor no longer wraps to helix because the ring is fifteen long. New: themesel.