summaryrefslogtreecommitdiff
path: root/src/themes/ayu_light.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 10:19:01 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:16 -0300
commit64f567fc5184aa421bfdde1ef3f254b9ca8c3efa (patch)
tree25782f6493818924570104d857fc346d161ca077 /src/themes/ayu_light.zig
parent1ffda881ca40b724c3e116e36340a4f88918c5f0 (diff)
downloadpardes-64f567fc5184aa421bfdde1ef3f254b9ca8c3efa.tar.gz
pardes-64f567fc5184aa421bfdde1ef3f254b9ca8c3efa.zip
Ayu, as close to the original as pardes draws: ayu_dark, ayu_mirage, ayu_light
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)
Diffstat (limited to 'src/themes/ayu_light.zig')
-rw-r--r--src/themes/ayu_light.zig104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/themes/ayu_light.zig b/src/themes/ayu_light.zig
new file mode 100644
index 00000000..22436be7
--- /dev/null
+++ b/src/themes/ayu_light.zig
@@ -0,0 +1,104 @@
+//! Ayu Light: Ayu, as close to the original as pardes can draw it.
+//! Every value is the original's own, cited on its line (path:line key); the
+//! chrome pardes needs and the original lacks is derived from its palette.
+//! Sources:
+//! palette (themes/*.yaml, generated src/generated/*.ts); url https://github.com/ayu-theme/ayu-colors; genizah ~/05-genizah/ayu-colors; commit b0fd979a1ddf050101b43311fa598a1a9c5f1bbc
+//! VS Code port (roles, terminal colours); url https://github.com/ayu-theme/vscode-ayu; genizah ~/05-genizah/vscode-ayu; commit d676974ebb245fa5a7ae4444027f72801017f1b6
+//! Tags: the tab (focused = the active tab, unfocused = the inactive one).
+//! Adjusted to meet pardes's floors (chrome only; text, syntax and ANSI are untouched):
+//! - focused tag ground #fcfcfc -> #dcddde: 1.03:1 off the unfocused #f8f9fa, pardes needs 1.25:1 on a light page
+//! - unfocused tag text #828e9f -> #68727f: 3.15:1 on #f8f9fa, tag text needs 4.5:1 to be read and run
+//! - rules between panes #eaedef -> #c5c9cb: 1.15:1 off the page, lifted toward the text to 1.6:1 (as colors.zig separatorOf does)
+//! Upstream notes: Roles from vscode-ayu's generated ayu-light.json (bordered
+//! variant, the one package.json ships as the default); syntax roles are its
+//! tokenColors and each is checked equal to ayu-colors syntax.* in
+//! src/generated/light.ts (that file is ayu-colors' own generator output: `npx
+//! tsx scripts/generate-themes.ts` run in the genizah checkout; it resolves the
+//! OKLCH l1..l5 steps and -L/A modifiers of themes/light.yaml). type =
+//! tokenColors "Entity name" (scope entity.name, covers entity.name.type; there
+//! is no entity.name.type rule). number and constant share syntax.constant.
+//! status_* from VS Code statusBar.* (one status bar: status_nc_* null).
+//! tabline_* from tab.*; tabline_fill = editorGroupHeader.tabsBackground. Alpha
+//! composited over editor.background (selection, line numbers, cursorline,
+//! split, scrollbar thumb). scroll_track null: VS Code has no track key
+//! (transparent over the editor). search_fg, selection_fg null: not set.
+//! info/hint null: neither vscode-ayu nor ayu-colors defines an info/hint
+//! colour (VS Code falls back to its own defaults). accent = focusBorder =
+//! common.accent.tint. ansi is vscode-ayu's terminal.ansi*
+//! (src/template.ts:458-473: normal = syntax.* darken(0.1) except green =
+//! vcs.added, black/white/brightBlack from a fixed table at template.ts:5),
+//! which differs from ayu-colors' own terminal.* section (listed in palette as
+//! terminal.*). palette = every colour of src/generated/light.ts; alpha entries
+//! composited over editor.bg (editor.*) or ui.bg (others); skipped shadows:
+//! ui.panel.shadow, ui.popup.shadow.
+pub const theme = .{
+ .name = "ayu_light",
+ // ~/05-genizah/vscode-ayu/ayu-light.json:106 editor.background; source ~/05-genizah/ayu-colors/src/generated/light.ts:157 editor.bg #fcfcfc
+ .bg = .{ 0xfc, 0xfc, 0xfc },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:107 editor.foreground; source ~/05-genizah/ayu-colors/src/generated/light.ts:140 editor.fg #5c6166
+ .fg = .{ 0x5c, 0x61, 0x66 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:112 editor.selectionBackground #035bd626 composited over editor.background #fcfcfc (~/05-genizah/vscode-ayu/ayu-light.json:106 editor.background)
+ .sel_bg = .{ 0xd7, 0xe4, 0xf6 },
+ // the original keeps text colours over its selection; its text colour
+ .sel_fg = .{ 0x5c, 0x61, 0x66 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:102 tab.inactiveBackground; source ~/05-genizah/ayu-colors/src/generated/light.ts:175 ui.bg #f8f9fa
+ .tag_bg = .{ 0xf8, 0xf9, 0xfa },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:103 tab.inactiveForeground; source ~/05-genizah/ayu-colors/src/generated/light.ts:161 ui.fg #828e9f #828e9f, adjusted
+ .tag_fg = .{ 0x68, 0x72, 0x7f },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:96 tab.activeBackground; source ~/05-genizah/ayu-colors/src/generated/light.ts:157 editor.bg #fcfcfc #fcfcfc, adjusted
+ .tag_active_bg = .{ 0xdc, 0xdd, 0xde },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:97 tab.activeForeground; source ~/05-genizah/ayu-colors/src/generated/light.ts:140 editor.fg #5c6166
+ .tag_active_fg = .{ 0x5c, 0x61, 0x66 },
+ // the focused grip: ~/05-genizah/vscode-ayu/ayu-light.json:4 focusBorder [also tab.activeBorderTop]; source ~/05-genizah/ayu-colors/src/generated/light.ts:179 common.accent.tint #f29718
+ .box = .{ 0xf2, 0x97, 0x18 },
+ // derived: the grip at rest, the accent #f29718 faded toward the unfocused tag #f8f9fa as far as 1.6:1 off it (0.62 of the way)
+ .box_dim = .{ 0xf4, 0xbc, 0x6e },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/vscode-ayu/ayu-light.json:145 editorGutter.modifiedBackground [also gitDecoration.modifiedResourceForeground]; source ~/05-genizah/ayu-colors/src/generated/light.ts:130 vcs.modified #478acc
+ .box_dirty = .{ 0x47, 0x8a, 0xcc },
+ // derived: the column grip, the original's type colour, ~/05-genizah/vscode-ayu/ayu-light.json:622 tokenColors "Entity name" foreground; = syntax.entity (~/05-genizah/ayu-colors/src/generated/light.ts:92 syntax.entity)
+ .column_box = .{ 0x22, 0xa4, 0xe6 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:460 tokenColors "Keyword" foreground; = syntax.keyword (~/05-genizah/ayu-colors/src/generated/light.ts:100 syntax.keyword)
+ .kw = .{ 0xfa, 0x85, 0x32 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:384 tokenColors "String" foreground; = syntax.string (~/05-genizah/ayu-colors/src/generated/light.ts:94 syntax.string)
+ .str = .{ 0x86, 0xb3, 0x00 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:404 tokenColors "Number" foreground; = syntax.constant (~/05-genizah/ayu-colors/src/generated/light.ts:106 syntax.constant)
+ .num = .{ 0xa3, 0x7a, 0xcc },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:374 tokenColors "Comment" foreground; = syntax.comment (~/05-genizah/ayu-colors/src/generated/light.ts:104 syntax.comment)
+ .comment = .{ 0xad, 0xae, 0xb1 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:108 editorLineNumber.foreground #828e9f66 composited over editor.background #fcfcfc (~/05-genizah/vscode-ayu/ayu-light.json:106 editor.background) [gutter has no own bg, so editor bg]
+ .lineno = .{ 0xcb, 0xd0, 0xd7 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:109 editorLineNumber.activeForeground #828e9fcc composited over editor.background #fcfcfc (~/05-genizah/vscode-ayu/ayu-light.json:106 editor.background) [gutter has no own bg, so editor bg]
+ .lineno_active = .{ 0x9a, 0xa4, 0xb2 },
+ // derived: none in the original; the page
+ .scroll_track = .{ 0xfc, 0xfc, 0xfc },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:44 scrollbarSlider.background #828e9f66 composited over editor.background #fcfcfc (~/05-genizah/vscode-ayu/ayu-light.json:106 editor.background)
+ .scroll_thumb = .{ 0xcb, 0xd0, 0xd7 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:92 editorGroup.border #6b7d8f1f composited over editor.background #fcfcfc (~/05-genizah/vscode-ayu/ayu-light.json:106 editor.background); source ~/05-genizah/ayu-colors/src/generated/light.ts:162 ui.line #6b7d8f1f #eaedef, adjusted
+ .border = .{ 0xc5, 0xc9, 0xcb },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:119 editor.findMatchBackground; source ~/05-genizah/ayu-colors/src/generated/light.ts:146 editor.findMatch.active #ffe294
+ .search_bg = .{ 0xff, 0xe2, 0x94 },
+ // derived: the original keeps text colours over a match; the page's text, whichever reads better on it
+ .search_fg = .{ 0x5c, 0x61, 0x66 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:143 editorError.foreground; source ~/05-genizah/ayu-colors/src/generated/light.ts:182 common.error #e65050
+ .diagnostic_error = .{ 0xe6, 0x50, 0x50 },
+ // ~/05-genizah/vscode-ayu/ayu-light.json:144 editorWarning.foreground; source ~/05-genizah/ayu-colors/src/generated/light.ts:179 common.accent.tint #f29718
+ .diagnostic_warning = .{ 0xf2, 0x97, 0x18 },
+ .palette = .{
+ .{ 0x00, 0x00, 0x00 }, // 0: ~/05-genizah/vscode-ayu/ayu-light.json:264 terminal.ansiBlack
+ .{ 0xf0, 0x6b, 0x6c }, // 1: ~/05-genizah/vscode-ayu/ayu-light.json:265 terminal.ansiRed
+ .{ 0x6c, 0xbf, 0x43 }, // 2: ~/05-genizah/vscode-ayu/ayu-light.json:266 terminal.ansiGreen
+ .{ 0xe7, 0xa1, 0x00 }, // 3: ~/05-genizah/vscode-ayu/ayu-light.json:267 terminal.ansiYellow
+ .{ 0x21, 0xa1, 0xe2 }, // 4: ~/05-genizah/vscode-ayu/ayu-light.json:268 terminal.ansiBlue
+ .{ 0xa1, 0x76, 0xcb }, // 5: ~/05-genizah/vscode-ayu/ayu-light.json:269 terminal.ansiMagenta
+ .{ 0x4a, 0xbc, 0x96 }, // 6: ~/05-genizah/vscode-ayu/ayu-light.json:270 terminal.ansiCyan
+ .{ 0xc7, 0xc7, 0xc7 }, // 7: ~/05-genizah/vscode-ayu/ayu-light.json:271 terminal.ansiWhite
+ .{ 0x68, 0x68, 0x68 }, // 8: ~/05-genizah/vscode-ayu/ayu-light.json:272 terminal.ansiBrightBlack
+ .{ 0xf0, 0x71, 0x71 }, // 9: ~/05-genizah/vscode-ayu/ayu-light.json:273 terminal.ansiBrightRed
+ .{ 0x86, 0xb3, 0x00 }, // 10: ~/05-genizah/vscode-ayu/ayu-light.json:274 terminal.ansiBrightGreen
+ .{ 0xeb, 0xa4, 0x00 }, // 11: ~/05-genizah/vscode-ayu/ayu-light.json:275 terminal.ansiBrightYellow
+ .{ 0x22, 0xa4, 0xe6 }, // 12: ~/05-genizah/vscode-ayu/ayu-light.json:276 terminal.ansiBrightBlue
+ .{ 0xa3, 0x7a, 0xcc }, // 13: ~/05-genizah/vscode-ayu/ayu-light.json:277 terminal.ansiBrightMagenta
+ .{ 0x4c, 0xbf, 0x99 }, // 14: ~/05-genizah/vscode-ayu/ayu-light.json:278 terminal.ansiBrightCyan
+ .{ 0xd1, 0xd1, 0xd1 }, // 15: ~/05-genizah/vscode-ayu/ayu-light.json:279 terminal.ansiBrightWhite
+ },
+};