on master help sign in
Add modus operandi themes (#8728)
commit090ed97e0045bfad1e5bff8b96c61707b996b85a authorAlexis Mousset <alexis.mousset@rudder.io> dateWed 22 Nov 2023, 19:04 (3 years ago) parentff095eb
4 files changed+358
runtime/themes/modus_operandi.toml+194 runtime/themes/modus_operandi_deuteranopia.toml+46 runtime/themes/modus_operandi_tinted.toml+45 runtime/themes/modus_operandi_tritanopia.toml+73
runtime/themes/modus_operandi.tomlnew file+194
@@ -0,0 +1,194 @@
1+# Author: Alexis Mousset <contact@amousset.me>
2+# Adapted from https://protesilaos.com/emacs/modus-themes, by Protesilaos Stavrou
3+# Version 4.3.0
4+#
5+
6+# Syntax highlighting
7+# -------------------
8+"type" = "cyan-cooler"
9+"constructor" = "cyan-cooler"
10+
11+"constant" = "blue-cooler"
12+"constant.character.escape" = "magenta"
13+
14+"string" = "blue-warmer"
15+"string.regexp" = "magenta-faint"
16+"string.special" = "blue-faint" # used for colors in CSS
17+
18+"comment" = "fg-dim"
19+
20+"variable.parameter" = "cyan"
21+"variable.builtin" = "magenta-cooler"
22+"label" = "fg-dim" # used for language in markdown code blocks
23+"keyword" = "magenta-cooler"
24+"keyword.directive" = "red-cooler"
25+"function" = "magenta"
26+"function.macro" = "magenta-warmer"
27+
28+punctuation = "fg-dim"
29+"tag" = "magenta"
30+"attribute" = "cyan-cooler"
31+"namespace" = "blue-cooler"
32+"special" = "red-cooler"
33+
34+"markup.heading.marker" = "fg-dim"
35+"markup.heading.1" = { fg = "fg-main", modifiers = ["bold"] }
36+"markup.heading.2" = { fg = "yellow-faint", modifiers = ["bold"] }
37+"markup.heading.3" = { fg = "fg-alt", modifiers = ["bold"] }
38+"markup.heading.4" = { fg = "magenta", modifiers = ["bold"] }
39+"markup.heading.5" = { fg = "green-faint", modifiers = ["bold"] }
40+"markup.heading.6" = { fg = "red-faint", modifiers = ["bold"] }
41+"markup.list" = "fg-dim"
42+"markup.list.checked" = { fg = "yellow-warmer" }
43+"markup.list.unchecked" = { fg = "yellow-warmer" }
44+"markup.bold" = { modifiers = ["bold"] }
45+"markup.italic" = { modifiers = ["italic"] }
46+"markup.strikethrough" = { modifiers = ["crossed_out"] }
47+"markup.link.url" = { fg = "cyan" }
48+"markup.link.text" = { fg = "blue-warmer", modifiers = ["underlined"] }
49+"markup.raw.block" = { bg = "bg-dim" }
50+"markup.raw.inline" = { fg = "green-cooler" }
51+
52+"diff.plus" = { fg = "fg-added", bg = "bg-added" }
53+"diff.plus.gutter" = "green-intense"
54+"diff.minus" = { fg = "fg-removed", bg = "bg-removed" }
55+"diff.minus.gutter" = "red-intense"
56+"diff.delta" = { fg = "fg-changed", bg = "bg-changed" }
57+"diff.delta.gutter" = "yellow-intense"
58+
59+# User Interface
60+# --------------
61+
62+"ui.background" = { bg = "bg-main" }
63+
64+"ui.linenr" = { fg = "fg-dim", bg = "bg-dim" }
65+"ui.linenr.selected" = { fg = "fg-main", bg = "bg-active" }
66+
67+"ui.statusline" = { fg = "fg-mode-line-active", bg = "bg-mode-line-active" }
68+"ui.statusline.inactive" = { fg = "fg-mode-line-inactive", bg = "bg-mode-line-inactive" }
69+"ui.statusline.normal" = { fg = "blue-warmer" }
70+"ui.statusline.insert" = { fg = "green-warmer" }
71+"ui.statusline.select" = { fg = "magenta-warmer" }
72+
73+"ui.popup" = { fg = "fg-main", bg = "bg-dim" }
74+"ui.window" = { fg = "fg-dim" }
75+"ui.help" = { fg = "fg-main", bg = "bg-dim" }
76+"ui.gutter" = { bg = "bg-dim" }
77+"ui.text" = "fg-main"
78+"ui.text.focus" = { fg = "fg-main", bg = "bg-completion", modifiers = ["bold"] }
79+"ui.text.inactive" = { fg = "fg-dim" }
80+"ui.virtual" = "bg-active"
81+"ui.virtual.ruler" = { bg = "bg-dim" }
82+"ui.virtual.inlay-hint" = { fg = "fg-dim", modifiers = ["italic"] }
83+
84+"ui.selection" = { fg = "fg-main", bg = "bg-inactive" }
85+"ui.selection.primary" = { fg = "fg-main", bg = "bg-active" }
86+
87+"ui.cursor" = { fg = "bg-main", bg = "fg-main" }
88+"ui.cursor.primary" = { fg = "bg-main", bg = "fg-dim" }
89+"ui.cursor.match" = { bg = "bg-paren-match" }
90+"ui.cursorline.primary" = { bg = "bg-hl-line" }
91+
92+"ui.highlight" = { bg = "bg-hl-line" }
93+
94+"ui.menu" = { fg = "fg-main", bg = "bg-dim" }
95+"ui.menu.selected" = { fg = "fg-main", bg = "bg-completion", modifiers = ["bold"] }
96+"ui.menu.scroll" = { fg = "fg-dim", bg = "bg-cyan-intense" }
97+
98+"diagnostic.error" = { underline = { color = "red-intense", style = "curl" } }
99+"diagnostic.warning" = { underline = { color = "yellow-intense", style = "curl" } }
100+"diagnostic.info" = { underline = { color = "cyan-intense", style = "curl" } }
101+"diagnostic.hint" = { underline = { color = "blue-intense", style = "curl" } }
102+
103+error = "red"
104+warning = "yellow-warmer"
105+info = "cyan-cooler"
106+hint = "blue-cooler"
107+
108+[palette]
109+# Basic values
110+bg-main = "#ffffff"
111+bg-dim = "#f2f2f2"
112+fg-main = "#000000"
113+fg-dim = "#595959"
114+fg-alt = "#193668"
115+bg-active = "#c4c4c4"
116+bg-inactive = "#e0e0e0"
117+
118+# Common accent foregrounds
119+red = "#a60000"
120+red-warmer = "#972500"
121+red-cooler = "#a0132f"
122+red-faint = "#7f0000"
123+red-intense = "#d00000"
124+green = "#006800"
125+green-warmer = "#316500"
126+green-cooler = "#00663f"
127+green-faint = "#2a5045"
128+green-intense = "#008900"
129+yellow = "#6f5500"
130+yellow-warmer = "#884900"
131+yellow-cooler = "#7a4f2f"
132+yellow-faint = "#624416"
133+yellow-intense = "#808000"
134+blue = "#0031a9"
135+blue-warmer = "#354fcf"
136+blue-cooler = "#0000b0"
137+blue-faint = "#003497"
138+blue-intense = "#0000ff"
139+magenta = "#721045"
140+magenta-warmer = "#8f0075"
141+magenta-cooler = "#531ab6"
142+magenta-faint = "#7c318f"
143+magenta-intense = "#dd22dd"
144+cyan = "#005e8b"
145+cyan-warmer = "#3f578f"
146+cyan-cooler = "#005f5f"
147+cyan-faint = "#005077"
148+cyan-intense = "#008899"
149+
150+# Common accent backgrounds
151+bg-red-intense = "#ff8f88"
152+bg-green-intense = "#8adf80"
153+bg-yellow-intense = "#f3d000"
154+bg-blue-intense = "#bfc9ff"
155+bg-magenta-intense = "#dfa0f0"
156+bg-cyan-intense = "#a4d5f9"
157+
158+bg-red-subtle = "#ffcfbf"
159+bg-green-subtle = "#b3fabf"
160+bg-yellow-subtle = "#fff576"
161+bg-blue-subtle = "#ccdfff"
162+bg-magenta-subtle = "#ffddff"
163+bg-cyan-subtle = "#bfefff"
164+
165+bg-red-nuanced = "#fff1f0"
166+bg-green-nuanced = "#ecf7ed"
167+bg-yellow-nuanced = "#fff3da"
168+bg-blue-nuanced = "#f3f3ff"
169+bg-magenta-nuanced = "#fdf0ff"
170+bg-cyan-nuanced = "#ebf6fa"
171+
172+# Special purpose
173+bg-completion = "#c0deff"
174+bg-hl-line = "#dae5ec"
175+
176+bg-mode-line-active = "#c8c8c8"
177+fg-mode-line-active = "#000000"
178+bg-mode-line-inactive = "#e6e6e6"
179+fg-mode-line-inactive = "#585858"
180+
181+modeline-err = "#7f0000"
182+modeline-warning = "#5f0070"
183+modeline-info = "#002580"
184+
185+# Diffs
186+bg-added = "#c1f2d1"
187+fg-added = "#005000"
188+bg-changed = "#ffdfa9"
189+fg-changed = "#553d00"
190+bg-removed = "#ffd8d5"
191+fg-removed = "#8f1313"
192+
193+# Paren match
194+bg-paren-match = "#5fcfff"
runtime/themes/modus_operandi_deuteranopia.tomlnew file+46
@@ -0,0 +1,46 @@
1+# Author: Alexis Mousset <contact@amousset.me>
2+# modus_operandi.toml variant
3+#
4+# This variant is optimized for users with red-green color deficiency (deuteranopia)
5+
6+inherits = "modus_operandi"
7+
8+"constant.character.escape" = "magenta"
9+"comment" = "yellow-cooler"
10+"function" = "magenta"
11+"tag" = "magenta"
12+
13+"ui.cursor" = { fg = "bg-main", bg = "blue-intense" }
14+"ui.cursor.primary.normal" = { fg = "bg-main", bg = "blue-intense" }
15+
16+"diagnostic.error" = { underline = { color = "yellow-intense", style = "curl" } }
17+"diagnostic.warning" = { underline = { color = "magenta-faint", style = "curl" } }
18+"diagnostic.info" = { underline = { color = "cyan", style = "curl" } }
19+"diagnostic.hint" = { underline = { color = "blue", style = "curl" } }
20+
21+error = "yellow-intense"
22+warning = "magenta-faint"
23+info = "cyan"
24+hint = "blue"
25+
26+[palette]
27+
28+yellow = "#695500"
29+yellow-warmer = "#973300"
30+yellow-cooler = "#77492f"
31+
32+bg-mode-line-active = "#d0d6ff"
33+fg-mode-line-active = "#0f0f0f"
34+border-mode-line-active = "#4f4f74"
35+
36+modeline-err = "#603a00"
37+modeline-warning = "#454500"
38+modeline-info = "#023d92"
39+
40+# Diffs
41+bg-added = "#d5d7ff"
42+fg-added = "#303099"
43+bg-changed = "#eecfdf"
44+fg-changed = "#6f1343"
45+bg-removed = "#f4f099"
46+fg-removed = "#553d00"
runtime/themes/modus_operandi_tinted.tomlnew file+45
@@ -0,0 +1,45 @@
1+# Author: Alexis Mousset <contact@amousset.me>
2+# modus_operandi.toml variant
3+
4+inherits = "modus_operandi"
5+
6+"comment" = "red-faint"
7+
8+"ui.cursor.primary" = { fg = "bg-main", bg = "red" }
9+
10+[palette]
11+# Basic values
12+bg-main = "#fbf7f0"
13+bg-dim = "#efe9dd"
14+bg-active = "#c9b9b0"
15+bg-inactive = "#dfd5cf"
16+border = "#9f9690"
17+
18+# Common accent backgrounds
19+bg-red-nuanced = "#ffe8f0"
20+bg-green-nuanced = "#e0f5e0"
21+bg-yellow-nuanced = "#f9ead0"
22+bg-blue-nuanced = "#ebebff"
23+bg-magenta-nuanced = "#f6e7ff"
24+bg-cyan-nuanced = "#e1f3fc"
25+
26+# Special purpose
27+bg-completion = "#f0c1cf"
28+bg-hl-line = "#f1d5d0"
29+bg-region = "#c2bcb5"
30+
31+bg-mode-line-active = "#cab9b2"
32+border-mode-line-active = "#545454"
33+bg-mode-line-inactive = "#dfd9cf"
34+border-mode-line-inactive = "#a59a94"
35+
36+bg-tab-bar = "#e0d4ce"
37+bg-tab-current = "#fbf7f0"
38+bg-tab-other = "#c8b8b2"
39+
40+# Diffs
41+bg-added = "#c3ebc1"
42+bg-removed = "#f4d0cf"
43+
44+# Paren match
45+bg-paren-match = "#7fdfcf"
runtime/themes/modus_operandi_tritanopia.tomlnew file+73
@@ -0,0 +1,73 @@
1+# Author: Alexis Mousset <contact@amousset.me>
2+# modus_operandi.toml variant
3+#
4+# This variant is optimized for users with blue-yellow color deficiency (tritanopia)
5+
6+inherits = "modus_operandi"
7+
8+"type" = "blue-warmer"
9+"constructor" = "blue-warmer"
10+"constant" = "green-cooler"
11+"constant.character.escape" = "red-cooler"
12+"string" = "cyan"
13+"comment" = "red-faint"
14+"variable.parameter" = "cyan-cooler"
15+"keyword" = "red-cooler"
16+"keyword.directive" = "red-warmer"
17+"function" = "cyan-warmer"
18+"function.macro" = "magenta"
19+"tag" = "red-cooler"
20+
21+"markup.heading.2" = { fg = "red-faint", modifiers = ["bold"] }
22+"markup.heading.3" = { fg = "cyan-faint", modifiers = ["bold"] }
23+"markup.heading.6" = { fg = "magenta-faint", modifiers = ["bold"] }
24+"markup.link.url" = { fg = "cyan-cooler" }
25+"markup.link.text" = { fg = "cyan", modifiers = ["underlined"] }
26+
27+"ui.cursor" = { fg = "bg-main", bg = "red-intense" }
28+"ui.cursor.primary.normal" = { fg = "bg-main", bg = "red-intense" }
29+
30+"diagnostic.error" = { underline = { color = "red-warmer", style = "curl" } }
31+"diagnostic.warning" = { underline = { color = "magenta", style = "curl" } }
32+"diagnostic.info" = { underline = { color = "cyan", style = "curl" } }
33+"diagnostic.hint" = { underline = { color = "blue", style = "curl" } }
34+
35+error = "red-warmer"
36+warning = "magenta"
37+info = "cyan"
38+hint = "blue"
39+
40+[palette]
41+
42+# Common accent foregrounds
43+red-warmer = "#b21100"
44+red-faint = "#702000"
45+yellow = "#695500"
46+yellow-warmer = "#973300"
47+yellow-cooler = "#77492f"
48+magenta-intense = "#cd22bd"
49+cyan-faint = "#004f5f"
50+
51+# Special purpose
52+bg-completion = "#afdfef"
53+bg-hover = "#ffafbc"
54+bg-hover-secondary = "#9fdfff"
55+bg-hl-line = "#dfeaec"
56+
57+bg-char-0 = "#ff908f"
58+bg-char-1 = "#bfbfff"
59+bg-char-2 = "#5fcfdf"
60+
61+bg-mode-line-active = "#afe0f2"
62+fg-mode-line-active = "#0f0f0f"
63+border-mode-line-active = "#2f4f44"
64+
65+modeline-err = "#8f0000"
66+modeline-warning = "#6f306f"
67+modeline-info = "#00445f"
68+
69+# Diffs
70+bg-added = "#b5e7ff"
71+fg-added = "#005079"
72+bg-changed = "#eecfdf"
73+fg-changed = "#6f1343"