Skip to content

Commit 4fc2a46

Browse files
committed
feat(theme): add "omicron" (placeholder name)
1 parent 900204e commit 4fc2a46

File tree

2 files changed

+225
-0
lines changed

2 files changed

+225
-0
lines changed

runtime/themes/omicron_dark.toml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
error = "err"
2+
warning = "warn"
3+
hint = "diag"
4+
info = "diag"
5+
diagnostic = { underline = { color = "ghost", style = "curl" } }
6+
"diagnostic.error" = { underline = { color = "err", style = "curl" } }
7+
"diagnostic.warning" = { underline = { color = "warn", style = "curl" } }
8+
"diagnostic.deprecated" = { fg = "code_unsafe", modifiers = ["crossed_out"] }
9+
10+
"ui.background" = { bg = "bg" }
11+
"ui.window" = { bg = "bg_ui" }
12+
"ui.gutter" = { bg = "bg_ui" }
13+
"ui.text" = "default"
14+
"ui.text.focus" = { bg = "sel" }
15+
# secondary
16+
"ui.cursor" = { fg = "#111111", bg = "#cccccc" }
17+
# it only uses 1 cell, and it must be skimmable,
18+
# so force max contrast
19+
"ui.cursor.primary" = { fg = "#000000", bg = "#ffffff" }
20+
"ui.cursor.match" = { bg = "#333333" }
21+
"ui.debug" = "default"
22+
# it feels questionable, but it's more consistent and clean than `reversed`;
23+
# some web-browsers do the same
24+
"ui.selection" = { fg = "#222222", bg = "#aaaaaa" }
25+
"ui.cursorline" = { bg = "sel_weak" }
26+
"ui.cursorcolumn" = { bg = "sel_weak" }
27+
"ui.virtual" = "ghost"
28+
"ui.virtual.ruler" = { bg = "sel_weak" }
29+
"ui.virtual.inlay-hint" = "ghost"
30+
# these are ephemeral and user-controllable,
31+
# are not part of the buffer,
32+
# should be skimmable,
33+
# so override FG & BG to guarantee contrast
34+
# while also signaling that they are special text
35+
"ui.virtual.jump-label" = { fg = "#ffffff", bg = "sym" }
36+
"ui.statusline" = { fg = "default", bg = "bg_ui" }
37+
"ui.bufferline" = { fg = "default", bg = "bg_ui" }
38+
"ui.bufferline.active" = { bg = "sel", modifiers = ["bold"] }
39+
"ui.help" = { fg = "doc", bg = "bg_ui" }
40+
"ui.highlight" = { bg = "sel" }
41+
"ui.menu" = { fg = "code", bg = "bg_ui" }
42+
"ui.menu.selected" = { bg = "sel" }
43+
"ui.popup" = { fg = "code", bg = "bg_ui" }
44+
"ui.picker.header" = { modifiers = ["bold", "underlined"] }
45+
46+
47+
# Tree-Sitter scopes (syntax highlight)
48+
49+
# NOTE: builtin HTML ones can be trivially auto-checked,
50+
# but custom ones (contain hyphens) need highlighting.
51+
#"attribute" = {}
52+
#"tag" = {}
53+
"tag.error" = { fg = "err", underline = { style = "line" } }
54+
"constant" = "literal"
55+
# TO-DO: escapes need highlight, but not unsafe
56+
"constant.character.escape" = "literal_unsafe"
57+
# floats are a plague!
58+
# https://riskledger.com/resources/floating-point-numbers
59+
# https://0.30000000000000004.com/
60+
# https://reddit.com/r/ProgrammerHumor/comments/13gt6co/standagainstfloats
61+
"constant.numeric.float" = "literal_unsafe"
62+
"string" = "literal"
63+
"string.regexp" = "literal_unsafe"
64+
"string.special" = "sym"
65+
"comment" = "doc"
66+
# some are mutable and can be misused without triggering warns
67+
#"variable.builtin" = "literal_unsafe"
68+
"punctuation" = "default_weak"
69+
# beware of the Halting Problem!
70+
"keyword.control.repeat" = "code_unsafe"
71+
"markup.heading" = { modifiers = ["bold"] }
72+
"markup.heading.marker" = "sym"
73+
"markup.bold" = { modifiers = ["bold"] }
74+
"markup.italic" = { modifiers = ["italic"] }
75+
"markup.strikethrough" = { modifiers = ["crossed_out"] }
76+
"markup.link" = { fg = "sym", underline = { style = "line" } }
77+
"markup.quote" = "doc"
78+
79+
"markup.normal" = "default"
80+
"markup.normal.raw" = "code"
81+
"markup.heading.raw" = "code"
82+
"markup.raw" = "code"
83+
84+
"diff.plus" = "green" # + add
85+
"diff.minus" = "red" # - delete
86+
"diff.delta" = "yellow" # ± edit
87+
"diff.delta.moved" = "sym" # -> rename
88+
"diff.delta.conflict" = "err" #
89+
90+
[palette]
91+
bg = "#000000"
92+
bg_ui = "#111111"
93+
default = "#cccccc"
94+
default_weak = "#999999"
95+
ghost = "#666666"
96+
code = "#99cc99"
97+
code_unsafe = "#ffcc77"
98+
red = "#bb3333"
99+
green = "#33aa33"
100+
yellow = "#aaaa33"
101+
sel = "#333333"
102+
sel_weak = "#171717"
103+
# I call this "eye-piercing red" because
104+
# it's designed to be jarring like a laser
105+
err = "#ff2200"
106+
warn = "#eedd33"
107+
diag = "#0077ff"
108+
literal = "#ccee00"
109+
literal_unsafe = "#ff7700"
110+
sym = "#11aaff"
111+
# inspired by ⭐ Gleam
112+
doc = "#eeaaee"

runtime/themes/omicron_light.toml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
error = "err"
2+
warning = "warn"
3+
hint = "diag"
4+
info = "diag"
5+
diagnostic = { underline = { color = "ghost", style = "curl" } }
6+
"diagnostic.error" = { underline = { color = "err", style = "curl" } }
7+
"diagnostic.warning" = { underline = { color = "warn", style = "curl" } }
8+
"diagnostic.deprecated" = { fg = "code_unsafe", bg = "code_bg_unsafe", modifiers = [
9+
"crossed_out",
10+
] }
11+
12+
"ui.background" = { bg = "bg" }
13+
"ui.window" = { bg = "bg_ui" }
14+
"ui.gutter" = { bg = "bg_ui" }
15+
"ui.text" = "default"
16+
"ui.text.focus" = { bg = "sel" }
17+
# secondary
18+
"ui.cursor" = { fg = "#eeeeee", bg = "#333333" }
19+
# it only uses 1 cell, and it must be skimmable,
20+
# so force max contrast
21+
"ui.cursor.primary" = { fg = "#ffffff", bg = "#000000" }
22+
"ui.cursor.match" = { bg = "#cccccc" }
23+
"ui.debug" = "default"
24+
# it feels questionable, but it's more consistent and clean than `reversed`;
25+
# some web-browsers do the same
26+
"ui.selection" = { fg = "#dddddd", bg = "#555555" }
27+
"ui.cursorline" = { bg = "sel_weak" }
28+
"ui.cursorcolumn" = { bg = "sel_weak" }
29+
"ui.virtual" = "ghost"
30+
"ui.virtual.ruler" = { bg = "sel_weak" }
31+
"ui.virtual.inlay-hint" = "ghost"
32+
# these are ephemeral and user-controllable,
33+
# are not part of the buffer,
34+
# should be skimmable,
35+
# so override FG & BG to guarantee contrast
36+
# while also signaling that they are special text
37+
"ui.virtual.jump-label" = { fg = "#000000", bg = "sym" }
38+
"ui.statusline" = { fg = "default", bg = "bg_ui" }
39+
"ui.bufferline" = { fg = "default", bg = "bg_ui" }
40+
"ui.bufferline.active" = { bg = "sel", modifiers = ["bold"] }
41+
"ui.help" = { fg = "doc", bg = "bg_ui" }
42+
"ui.highlight" = { bg = "sel" }
43+
"ui.menu" = { fg = "code", bg = "bg_ui" }
44+
"ui.menu.selected" = { bg = "sel" }
45+
"ui.popup" = { fg = "code", bg = "bg_ui" }
46+
"ui.picker.header" = { modifiers = ["bold", "underlined"] }
47+
48+
49+
# Tree-Sitter scopes (syntax highlight)
50+
51+
# NOTE: builtin HTML ones can be trivially auto-checked,
52+
# but custom ones (contain hyphens) need highlighting.
53+
#"attribute" = {}
54+
#"tag" = {}
55+
"tag.error" = { fg = "err", underline = { style = "line" } }
56+
"constant" = "literal"
57+
# TO-DO: escapes need highlight, but not unsafe
58+
"constant.character.escape" = "literal_unsafe"
59+
# floats are a plague!
60+
# https://riskledger.com/resources/floating-point-numbers
61+
# https://0.30000000000000004.com/
62+
# https://reddit.com/r/ProgrammerHumor/comments/13gt6co/standagainstfloats
63+
"constant.numeric.float" = { fg = "literal_unsafe", bg = "literal_bg_unsafe" }
64+
"string" = "literal"
65+
"string.regexp" = { fg = "literal_unsafe", bg = "literal_bg_unsafe" }
66+
"string.special" = "sym"
67+
"comment" = "doc"
68+
# some are mutable and can be misused without triggering warns
69+
#"variable.builtin" = "literal_unsafe"
70+
"punctuation" = "default_weak"
71+
# beware of the Halting Problem!
72+
"keyword.control.repeat" = { fg = "code_unsafe", bg = "code_bg_unsafe" }
73+
"markup.heading" = { modifiers = ["bold"] }
74+
"markup.heading.marker" = "sym"
75+
"markup.bold" = { modifiers = ["bold"] }
76+
"markup.italic" = { modifiers = ["italic"] }
77+
"markup.strikethrough" = { modifiers = ["crossed_out"] }
78+
"markup.link" = { fg = "sym", underline = { style = "line" } }
79+
"markup.quote" = "doc"
80+
81+
"markup.normal" = "default"
82+
"markup.normal.raw" = "code"
83+
"markup.heading.raw" = "code"
84+
"markup.raw" = "code"
85+
86+
"diff.plus" = "green" # + add
87+
"diff.minus" = "red" # - delete
88+
"diff.delta" = "yellow" # ± edit
89+
"diff.delta.moved" = "sym" # -> rename
90+
"diff.delta.conflict" = "err" #
91+
92+
[palette]
93+
bg = "#eeeeee"
94+
bg_ui = "#dddddd"
95+
default = "#333333"
96+
default_weak = "#666666"
97+
ghost = "#999999"
98+
code = "#336633"
99+
code_unsafe = "#330000"
100+
code_bg_unsafe = "#eeccdd"
101+
red = "#880000"
102+
green = "#007700"
103+
yellow = "#777700"
104+
sel = "#cccccc"
105+
sel_weak = "#e7e7e7"
106+
err = "#ff0000"
107+
warn = "#bbaa00"
108+
diag = "#0066aa"
109+
literal = "#779900"
110+
literal_unsafe = "#441100"
111+
literal_bg_unsafe = "#eebb99"
112+
sym = "#00aaff"
113+
doc = "#770077"

0 commit comments

Comments
 (0)