Skip to content

Commit 0c98620

Browse files
committed
feat(theme): add "omicron" (placeholder name)
1 parent 24f4574 commit 0c98620

File tree

2 files changed

+225
-0
lines changed

2 files changed

+225
-0
lines changed

runtime/themes/omicron_dark.toml

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

runtime/themes/omicron_light.toml

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

0 commit comments

Comments
 (0)