1
0
mirror of https://github.com/helix-editor/helix synced 2026-03-07 08:41:40 +01:00
helix/runtime/themes/omicron_light.toml
2026-02-03 08:40:16 +09:00

114 lines
3.6 KiB
INI

# Author: Ricardo Fernández Serrata <rudxain@gmail.com>
error = "err"
warning = "warn"
hint = "diag"
info = "diag"
diagnostic = { underline = { color = "ghost", style = "curl" } }
"diagnostic.error" = { underline = { color = "err", style = "curl" } }
"diagnostic.warning" = { underline = { color = "warn", style = "curl" } }
"diagnostic.deprecated" = { fg = "code_unsafe", bg = "code_bg_unsafe", modifiers = [
"crossed_out",
] }
"ui.background" = { bg = "bg" }
"ui.window" = { bg = "bg_ui" }
"ui.gutter" = { bg = "bg_ui" }
"ui.text" = "default"
"ui.text.focus" = { bg = "sel" }
# secondary
"ui.cursor" = { fg = "#eee", bg = "#333" }
# it only uses 1 cell, and it must be skimmable,
# so force max contrast
"ui.cursor.primary" = { fg = "#fff", bg = "#000" }
"ui.cursor.match" = { bg = "#ccc" }
"ui.debug" = "default"
# it feels questionable, but it's more consistent and clean than `reversed`;
# some web-browsers do the same
"ui.selection" = { fg = "#ddd", bg = "#555" }
"ui.cursorline" = { bg = "sel_weak" }
"ui.cursorcolumn" = { bg = "sel_weak" }
"ui.virtual" = "ghost"
"ui.virtual.ruler" = { bg = "sel_weak" }
"ui.virtual.inlay-hint" = "ghost"
# these are ephemeral and user-controllable,
# are not part of the buffer,
# should be skimmable,
# so override FG & BG to guarantee contrast
# while also signaling that they are special text
"ui.virtual.jump-label" = { fg = "#000", bg = "sym" }
"ui.statusline" = { fg = "default", bg = "bg_ui" }
"ui.bufferline" = { fg = "default", bg = "bg_ui" }
"ui.bufferline.active" = { bg = "sel", modifiers = ["bold"] }
"ui.help" = { fg = "doc", bg = "bg_ui" }
"ui.highlight" = { bg = "sel" }
"ui.menu" = { fg = "code", bg = "bg_ui" }
"ui.menu.selected" = { bg = "sel" }
"ui.popup" = { fg = "#000", bg = "#ccc" }
"ui.picker.header" = { modifiers = ["bold", "underlined"] }
# Tree-Sitter scopes (syntax highlight)
# NOTE: builtin HTML ones can be trivially auto-checked,
# but custom ones (contain hyphens) need highlighting.
#"attribute" = {}
#"tag" = {}
"tag.error" = { fg = "err", underline = { style = "line" } }
"constant" = "literal"
# TO-DO: escapes need highlight, but not unsafe
"constant.character.escape" = "literal_unsafe"
# floats are a plague!
# https://github.com/you-dont-need/You-Dont-Need/issues/13
"constant.numeric.float" = { fg = "literal_unsafe", bg = "literal_bg_unsafe" }
"string" = "literal"
"string.regexp" = { fg = "literal_unsafe", bg = "literal_bg_unsafe" }
"string.special" = "sym"
"comment" = "doc"
# some are mutable and can be misused without triggering warns
#"variable.builtin" = "literal_unsafe"
"punctuation" = "default_weak"
# beware of the Halting Problem!
"keyword.control.repeat" = { fg = "code_unsafe", bg = "code_bg_unsafe" }
"markup.heading" = { modifiers = ["bold"] }
"markup.heading.marker" = "sym"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.strikethrough" = { modifiers = ["crossed_out"] }
"markup.link" = { fg = "sym", underline = { style = "line" } }
"markup.quote" = "doc"
"markup.normal" = "default"
"markup.normal.raw" = "code"
"markup.heading.raw" = "code"
"markup.raw" = "code"
"diff.plus" = "green" # + add
"diff.minus" = "red" # - delete
"diff.delta" = "yellow" # ± edit
"diff.delta.moved" = "sym" # -> rename
"diff.delta.conflict" = "err" # ❌
[palette]
bg = "#eee"
bg_ui = "#ddd"
default = "#333"
default_weak = "#666"
ghost = "#999"
code = "#363"
code_unsafe = "#300"
code_bg_unsafe = "#ede"
red = "#800"
green = "#070"
yellow = "#770"
sel = "#ccc"
sel_weak = "#e7e7e7"
err = "#f00"
warn = "#ba0"
diag = "#06a"
literal = "#093"
literal_unsafe = "#410"
literal_bg_unsafe = "#eca"
sym = "#0af"
doc = "#707"