summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/themes.md1
-rw-r--r--src/colors.zig3
-rw-r--r--src/themes/solarized_dark.zig81
-rw-r--r--src/themes/solarized_light.zig82
4 files changed, 167 insertions, 0 deletions
diff --git a/docs/themes.md b/docs/themes.md
index b5896c51..0ef6b4f8 100644
--- a/docs/themes.md
+++ b/docs/themes.md
@@ -105,6 +105,7 @@ are never adjusted.
| Family | Themes | Source |
| --- | --- | --- |
| Visual Studio Code | `dark_plus` | VS Code 1.130.0 `extensions/theme-defaults/themes/dark_plus.json` and `dark_vs.json`; [microsoft/vscode](https://github.com/microsoft/vscode) 1.130.0 |
+| Solarized | `solarized_dark`, `solarized_light` | [altercation/solarized](https://github.com/altercation/solarized); `~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim` |
## Make a theme your own
diff --git a/src/colors.zig b/src/colors.zig
index c16d38da..488da162 100644
--- a/src/colors.zig
+++ b/src/colors.zig
@@ -327,6 +327,8 @@ const curated = struct {
// Faithful ports of well-known themes, a family at a time (src/themes/
// <name>.zig says where each value came from): `theme_groups`.
pub const dark_plus = @import("themes/dark_plus.zig");
+ pub const solarized_dark = @import("themes/solarized_dark.zig");
+ pub const solarized_light = @import("themes/solarized_light.zig");
// The legacy pair last.
pub const helix = @import("themes/helix.zig");
pub const dark = @import("themes/dark.zig");
@@ -390,6 +392,7 @@ pub const ThemeGroup = struct { title: []const u8, first: []const u8 };
const theme_groups = [_]ThemeGroup{
.{ .title = "Pardes themes", .first = "orchard" },
.{ .title = "Visual Studio Code", .first = "dark_plus" },
+ .{ .title = "Solarized", .first = "solarized_dark" },
.{ .title = "Legacy themes", .first = "helix" },
};
diff --git a/src/themes/solarized_dark.zig b/src/themes/solarized_dark.zig
new file mode 100644
index 00000000..c7c43892
--- /dev/null
+++ b/src/themes/solarized_dark.zig
@@ -0,0 +1,81 @@
+//! Solarized Dark: Solarized, 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:
+//! canonical palette and ANSI map; url https://github.com/altercation/solarized; genizah ~/05-genizah/solarized; commit 62f656a02f93c5190a8753159e34b385588d5ff3
+//! the author's vim port for roles; path ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim
+//! 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 #073642 -> #01090b: 2.92:1 on #657b83, tag text needs 4.5:1 to be read and run
+//! - focused grip #268bd2 -> #2483c5: 1.38:1 on the focused tag #93a1a1
+//! Upstream notes: green is the canonical #859900 (README), not
+//! solarized.vim:261's "experimental" #719e07.
+pub const theme = .{
+ .name = "solarized_dark",
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:539 Normal bg_back: base03 = ~/05-genizah/solarized/README.md:354 base03
+ .bg = .{ 0x00, 0x2b, 0x36 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:539 Normal fg: base0 = ~/05-genizah/solarized/README.md:358 base0
+ .fg = .{ 0x83, 0x94, 0x96 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:614 Visual fg_base01 reversed: base01 = ~/05-genizah/solarized/README.md:356 base01
+ .sel_bg = .{ 0x58, 0x6e, 0x75 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:614 Visual bg_base03 reversed: base03 = ~/05-genizah/solarized/README.md:354 base03
+ .sel_fg = .{ 0x00, 0x2b, 0x36 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:613 StatusLineNC fg_base00 reversed: base00 = ~/05-genizah/solarized/README.md:357 base00
+ .tag_bg = .{ 0x65, 0x7b, 0x83 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:613 StatusLineNC bg_base02 reversed: base02 = ~/05-genizah/solarized/README.md:355 base02 #073642, adjusted
+ .tag_fg = .{ 0x01, 0x09, 0x0b },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:612 StatusLine fg_base1 reversed: base1 = ~/05-genizah/solarized/README.md:359 base1
+ .tag_active_bg = .{ 0x93, 0xa1, 0xa1 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:612 StatusLine bg_base02 reversed: base02 = ~/05-genizah/solarized/README.md:355 base02
+ .tag_active_fg = .{ 0x07, 0x36, 0x42 },
+ // the focused grip: no UI accent in solarized.vim; Identifier blue, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:552 Identifier: blue = ~/05-genizah/solarized/README.md:367 blue
+ .box = .{ 0x24, 0x83, 0xc5 },
+ // derived: the grip at rest, the accent #268bd2 faded toward the unfocused tag #657b83 as far as 1.6:1 off it (1.00 of the way)
+ .box_dim = .{ 0x18, 0x59, 0x86 },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:636 DiffChange fg_yellow: yellow = ~/05-genizah/solarized/README.md:362 yellow
+ .box_dirty = .{ 0xb5, 0x89, 0x00 },
+ // derived: the column grip, the original's keyword colour, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:556 Statement fg (Keyword links to Statement): green = ~/05-genizah/solarized/README.md:369 green
+ .column_box = .{ 0x85, 0x99, 0x00 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:556 Statement fg (Keyword links to Statement): green = ~/05-genizah/solarized/README.md:369 green
+ .kw = .{ 0x85, 0x99, 0x00 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:544 Constant fg (String links to Constant): cyan = ~/05-genizah/solarized/README.md:368 cyan
+ .str = .{ 0x2a, 0xa1, 0x98 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:544 Constant fg (Number links to Constant): cyan = ~/05-genizah/solarized/README.md:368 cyan
+ .num = .{ 0x2a, 0xa1, 0x98 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:541 Comment fg: base01 = ~/05-genizah/solarized/README.md:356 base01
+ .comment = .{ 0x58, 0x6e, 0x75 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:621 LineNr fg: base01 = ~/05-genizah/solarized/README.md:356 base01
+ .lineno = .{ 0x58, 0x6e, 0x75 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:665 PmenuSbar fg_base2 reversed: base2 = ~/05-genizah/solarized/README.md:360 base2
+ .scroll_track = .{ 0xee, 0xe8, 0xd5 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:666 PmenuThumb fg_base0 reversed: base0 = ~/05-genizah/solarized/README.md:358 base0
+ .scroll_thumb = .{ 0x83, 0x94, 0x96 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:624 VertSplit fg_base00 bg_base00: base00 = ~/05-genizah/solarized/README.md:357 base00
+ .border = .{ 0x65, 0x7b, 0x83 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:618 Search fg_yellow reversed: yellow = ~/05-genizah/solarized/README.md:362 yellow
+ .search_bg = .{ 0xb5, 0x89, 0x00 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:618 Search bg_none reversed: the page: base03 = ~/05-genizah/solarized/README.md:354 base03
+ .search_fg = .{ 0x00, 0x2b, 0x36 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:592 Error fg: red = ~/05-genizah/solarized/README.md:364 red
+ .diagnostic_error = .{ 0xdc, 0x32, 0x2f },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:630 WarningMsg fg: red = ~/05-genizah/solarized/README.md:364 red
+ .diagnostic_warning = .{ 0xdc, 0x32, 0x2f },
+ .palette = .{
+ .{ 0x07, 0x36, 0x42 }, // 0: ~/05-genizah/solarized/README.md:355 base02 ANSI 0 (README TERMCOL column)
+ .{ 0xdc, 0x32, 0x2f }, // 1: ~/05-genizah/solarized/README.md:364 red ANSI 1 (README TERMCOL column)
+ .{ 0x85, 0x99, 0x00 }, // 2: ~/05-genizah/solarized/README.md:369 green ANSI 2 (README TERMCOL column)
+ .{ 0xb5, 0x89, 0x00 }, // 3: ~/05-genizah/solarized/README.md:362 yellow ANSI 3 (README TERMCOL column)
+ .{ 0x26, 0x8b, 0xd2 }, // 4: ~/05-genizah/solarized/README.md:367 blue ANSI 4 (README TERMCOL column)
+ .{ 0xd3, 0x36, 0x82 }, // 5: ~/05-genizah/solarized/README.md:365 magenta ANSI 5 (README TERMCOL column)
+ .{ 0x2a, 0xa1, 0x98 }, // 6: ~/05-genizah/solarized/README.md:368 cyan ANSI 6 (README TERMCOL column)
+ .{ 0xee, 0xe8, 0xd5 }, // 7: ~/05-genizah/solarized/README.md:360 base2 ANSI 7 (README TERMCOL column)
+ .{ 0x00, 0x2b, 0x36 }, // 8: ~/05-genizah/solarized/README.md:354 base03 ANSI 8 (README TERMCOL column)
+ .{ 0xcb, 0x4b, 0x16 }, // 9: ~/05-genizah/solarized/README.md:363 orange ANSI 9 (README TERMCOL column)
+ .{ 0x58, 0x6e, 0x75 }, // 10: ~/05-genizah/solarized/README.md:356 base01 ANSI 10 (README TERMCOL column)
+ .{ 0x65, 0x7b, 0x83 }, // 11: ~/05-genizah/solarized/README.md:357 base00 ANSI 11 (README TERMCOL column)
+ .{ 0x83, 0x94, 0x96 }, // 12: ~/05-genizah/solarized/README.md:358 base0 ANSI 12 (README TERMCOL column)
+ .{ 0x6c, 0x71, 0xc4 }, // 13: ~/05-genizah/solarized/README.md:366 violet ANSI 13 (README TERMCOL column)
+ .{ 0x93, 0xa1, 0xa1 }, // 14: ~/05-genizah/solarized/README.md:359 base1 ANSI 14 (README TERMCOL column)
+ .{ 0xfd, 0xf6, 0xe3 }, // 15: ~/05-genizah/solarized/README.md:361 base3 ANSI 15 (README TERMCOL column)
+ },
+};
diff --git a/src/themes/solarized_light.zig b/src/themes/solarized_light.zig
new file mode 100644
index 00000000..124d6d59
--- /dev/null
+++ b/src/themes/solarized_light.zig
@@ -0,0 +1,82 @@
+//! Solarized Light: Solarized, 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:
+//! canonical palette and ANSI map; url https://github.com/altercation/solarized; genizah ~/05-genizah/solarized; commit 62f656a02f93c5190a8753159e34b385588d5ff3
+//! the author's vim port for roles; path ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim
+//! 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 #eee8d5 -> #2b2a26: 2.58:1 on #839496, tag text needs 4.5:1 to be read and run
+//! - focused tag text #eee8d5 -> #f0ebda: 4.39:1 on #586e75, tag text needs 4.5:1
+//! - focused grip #268bd2 -> #2f90d4: 1.46:1 on the focused tag #586e75
+//! Upstream notes: green is the canonical #859900 (README), not
+//! solarized.vim:261's "experimental" #719e07.
+pub const theme = .{
+ .name = "solarized_light",
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:539 Normal bg_back: base03 = ~/05-genizah/solarized/README.md:361 base3 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .bg = .{ 0xfd, 0xf6, 0xe3 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:539 Normal fg: base0 = ~/05-genizah/solarized/README.md:357 base00 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .fg = .{ 0x65, 0x7b, 0x83 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:614 Visual fg_base01 reversed: base01 = ~/05-genizah/solarized/README.md:359 base1 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .sel_bg = .{ 0x93, 0xa1, 0xa1 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:614 Visual bg_base03 reversed: base03 = ~/05-genizah/solarized/README.md:361 base3 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .sel_fg = .{ 0xfd, 0xf6, 0xe3 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:613 StatusLineNC fg_base00 reversed: base00 = ~/05-genizah/solarized/README.md:358 base0 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .tag_bg = .{ 0x83, 0x94, 0x96 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:613 StatusLineNC bg_base02 reversed: base02 = ~/05-genizah/solarized/README.md:360 base2 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391) #eee8d5, adjusted
+ .tag_fg = .{ 0x2b, 0x2a, 0x26 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:612 StatusLine fg_base1 reversed: base1 = ~/05-genizah/solarized/README.md:356 base01 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .tag_active_bg = .{ 0x58, 0x6e, 0x75 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:612 StatusLine bg_base02 reversed: base02 = ~/05-genizah/solarized/README.md:360 base2 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391) #eee8d5, adjusted
+ .tag_active_fg = .{ 0xf0, 0xeb, 0xda },
+ // the focused grip: no UI accent in solarized.vim; Identifier blue, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:552 Identifier: blue = ~/05-genizah/solarized/README.md:367 blue
+ .box = .{ 0x2f, 0x90, 0xd4 },
+ // derived: the grip at rest, the accent #268bd2 faded toward the unfocused tag #839496 as far as 1.6:1 off it (1.00 of the way)
+ .box_dim = .{ 0x1f, 0x72, 0xac },
+ // an unsaved grip: the original's modified colour, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:636 DiffChange fg_yellow: yellow = ~/05-genizah/solarized/README.md:362 yellow
+ .box_dirty = .{ 0xb5, 0x89, 0x00 },
+ // derived: the column grip, the original's keyword colour, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:556 Statement fg (Keyword links to Statement): green = ~/05-genizah/solarized/README.md:369 green
+ .column_box = .{ 0x85, 0x99, 0x00 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:556 Statement fg (Keyword links to Statement): green = ~/05-genizah/solarized/README.md:369 green
+ .kw = .{ 0x85, 0x99, 0x00 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:544 Constant fg (String links to Constant): cyan = ~/05-genizah/solarized/README.md:368 cyan
+ .str = .{ 0x2a, 0xa1, 0x98 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:544 Constant fg (Number links to Constant): cyan = ~/05-genizah/solarized/README.md:368 cyan
+ .num = .{ 0x2a, 0xa1, 0x98 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:541 Comment fg: base01 = ~/05-genizah/solarized/README.md:359 base1 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .comment = .{ 0x93, 0xa1, 0xa1 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:621 LineNr fg: base01 = ~/05-genizah/solarized/README.md:359 base1 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .lineno = .{ 0x93, 0xa1, 0xa1 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:665 PmenuSbar fg_base2 reversed: base2 = ~/05-genizah/solarized/README.md:355 base02 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .scroll_track = .{ 0x07, 0x36, 0x42 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:666 PmenuThumb fg_base0 reversed: base0 = ~/05-genizah/solarized/README.md:357 base00 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .scroll_thumb = .{ 0x65, 0x7b, 0x83 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:624 VertSplit fg_base00 bg_base00: base00 = ~/05-genizah/solarized/README.md:358 base0 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .border = .{ 0x83, 0x94, 0x96 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:618 Search fg_yellow reversed: yellow = ~/05-genizah/solarized/README.md:362 yellow
+ .search_bg = .{ 0xb5, 0x89, 0x00 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:618 Search bg_none reversed: the page: base03 = ~/05-genizah/solarized/README.md:361 base3 (swapped for background=light, ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:379-391)
+ .search_fg = .{ 0xfd, 0xf6, 0xe3 },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:592 Error fg: red = ~/05-genizah/solarized/README.md:364 red
+ .diagnostic_error = .{ 0xdc, 0x32, 0x2f },
+ // ~/05-genizah/solarized/vim-colors-solarized/colors/solarized.vim:630 WarningMsg fg: red = ~/05-genizah/solarized/README.md:364 red
+ .diagnostic_warning = .{ 0xdc, 0x32, 0x2f },
+ .palette = .{
+ .{ 0x07, 0x36, 0x42 }, // 0: ~/05-genizah/solarized/README.md:355 base02 ANSI 0 (README TERMCOL column)
+ .{ 0xdc, 0x32, 0x2f }, // 1: ~/05-genizah/solarized/README.md:364 red ANSI 1 (README TERMCOL column)
+ .{ 0x85, 0x99, 0x00 }, // 2: ~/05-genizah/solarized/README.md:369 green ANSI 2 (README TERMCOL column)
+ .{ 0xb5, 0x89, 0x00 }, // 3: ~/05-genizah/solarized/README.md:362 yellow ANSI 3 (README TERMCOL column)
+ .{ 0x26, 0x8b, 0xd2 }, // 4: ~/05-genizah/solarized/README.md:367 blue ANSI 4 (README TERMCOL column)
+ .{ 0xd3, 0x36, 0x82 }, // 5: ~/05-genizah/solarized/README.md:365 magenta ANSI 5 (README TERMCOL column)
+ .{ 0x2a, 0xa1, 0x98 }, // 6: ~/05-genizah/solarized/README.md:368 cyan ANSI 6 (README TERMCOL column)
+ .{ 0xee, 0xe8, 0xd5 }, // 7: ~/05-genizah/solarized/README.md:360 base2 ANSI 7 (README TERMCOL column)
+ .{ 0x00, 0x2b, 0x36 }, // 8: ~/05-genizah/solarized/README.md:354 base03 ANSI 8 (README TERMCOL column)
+ .{ 0xcb, 0x4b, 0x16 }, // 9: ~/05-genizah/solarized/README.md:363 orange ANSI 9 (README TERMCOL column)
+ .{ 0x58, 0x6e, 0x75 }, // 10: ~/05-genizah/solarized/README.md:356 base01 ANSI 10 (README TERMCOL column)
+ .{ 0x65, 0x7b, 0x83 }, // 11: ~/05-genizah/solarized/README.md:357 base00 ANSI 11 (README TERMCOL column)
+ .{ 0x83, 0x94, 0x96 }, // 12: ~/05-genizah/solarized/README.md:358 base0 ANSI 12 (README TERMCOL column)
+ .{ 0x6c, 0x71, 0xc4 }, // 13: ~/05-genizah/solarized/README.md:366 violet ANSI 13 (README TERMCOL column)
+ .{ 0x93, 0xa1, 0xa1 }, // 14: ~/05-genizah/solarized/README.md:359 base1 ANSI 14 (README TERMCOL column)
+ .{ 0xfd, 0xf6, 0xe3 }, // 15: ~/05-genizah/solarized/README.md:361 base3 ANSI 15 (README TERMCOL column)
+ },
+};