summaryrefslogtreecommitdiff
path: root/vendor/themes/monokai.toml
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-07-31 02:21:01 -0300
committerGabriel Schneider <[email protected]>2026-08-01 15:02:08 -0300
commit0bfa4615988c0d1bcaa38453375760c60076c5ea (patch)
treefab4f972c10b07739aabc9d772c43e102bce2c07 /vendor/themes/monokai.toml
parentbe404e0d4f91548af6ed600b2fd2027ad8a041c7 (diff)
downloadpardes-0bfa4615988c0d1bcaa38453375760c60076c5ea.tar.gz
pardes-0bfa4615988c0d1bcaa38453375760c60076c5ea.zip
themes: one file each, generated from helix and zed, picked by stepping a list
Each theme is a .zig file of pure data and nothing enumerates them by hand — fold() walks the container's declarations, so a theme is a file and that is the whole registration. Field by field rather than a wholesale coercion, which makes a missing field a compile error that names it. tools/gen_themes.zig reads helix .toml and zed .json out of vendor/themes and emits one .zig each; build.zig reads that directory, so adding a theme is dropping a file in. Output goes to the build cache rather than the tree, so zig owns the freshness check and a deleted source cannot leave a stale theme behind. Vendored, not read from the genizah: the build stays offline. A source it cannot map is a hard error naming the file and the key, never a silently black-on-black theme. ThemeSel is the clever half. Traits gained an `executes` column, so n/N over that buffer hands the whole line to Exec instead of the leading word to Look — both arms the ordinary builtin, so a stepped row does exactly what the matching mouse button on it would. Stepping the list previews each theme live. The trait is a pane property, not an output-pane branch, so any pane whose lines are commands can opt in. Goldens: leader gains SPC t t; theme's fourth NextColor no longer wraps to helix because the ring is fifteen long. New: themesel.
Diffstat (limited to 'vendor/themes/monokai.toml')
-rw-r--r--vendor/themes/monokai.toml121
1 files changed, 121 insertions, 0 deletions
diff --git a/vendor/themes/monokai.toml b/vendor/themes/monokai.toml
new file mode 100644
index 00000000..dfa7040c
--- /dev/null
+++ b/vendor/themes/monokai.toml
@@ -0,0 +1,121 @@
+# Author: Shafkath Shuhan <[email protected]>
+
+"tag" = { fg = "tag" }
+
+"namespace" = { fg = "type" }
+"module" = { fg = "type" }
+
+"type" = { fg = "type" }
+"type.builtin" = { fg = "#66D9EF" }
+"type.enum.variant" = { fg = "text" }
+"constructor" = { fg = "fn_declaration" }
+"variable.other.member" = { fg = "variable" }
+
+"keyword" = { fg = "keyword" }
+"keyword.directive" = { fg = "keyword" }
+"keyword.control" = { fg = "keyword" }
+"label" = { fg = "keyword" }
+
+"special" = { fg = "keyword" }
+"operator" = { fg = "text" }
+
+"punctuation" = { fg = "text" }
+"punctuation.delimiter" = { fg = "text" }
+
+"variable" = { fg = "variable" }
+"variable.parameter" = { fg = "#fd971f" }
+"variable.builtin" = { fg = "keyword" }
+"constant" = { fg = "variable" }
+"constant.builtin" = { fg = "#ae81ff" }
+
+"function" = { fg = "fn_declaration" }
+"function.builtin" = { fg = "fn_declaration" }
+"function.macro" = { fg = "keyword" }
+"attribute" = { fg = "fn_declaration" }
+
+"comment" = { fg = "#88846F" }
+"ui.virtual.whitespace" = "#88846F"
+"ui.virtual.ruler" = { bg = "#24241e" }
+"ui.virtual.jump-label" = { fg = "special", modifiers = ["bold"] }
+
+"string" = { fg = "#e6db74" }
+"constant.character" = { fg = "#e6db74" }
+"string.regexp" = { fg = "regex" }
+"constant.numeric" = { fg = "#ae81ff" }
+"constant.character.escape" = { fg = "#ae81ff" }
+
+# TODO
+"markup.heading" = "blue"
+"markup.list" = "red"
+"markup.bold" = { fg = "yellow", modifiers = ["bold"] }
+"markup.italic" = { fg = "magenta", modifiers = ["italic"] }
+"markup.strikethrough" = { modifiers = ["crossed_out"] }
+"markup.link.url" = { fg = "yellow", modifiers = ["underlined"] }
+"markup.link.text" = "red"
+"markup.quote" = "cyan"
+"markup.raw" = "green"
+
+"diff.plus" = { fg = "#a6e22e" }
+"diff.delta" = { fg = "#fd971f" }
+"diff.minus" = { fg = "#f92672" }
+
+"ui.background" = { fg = "text", bg = "background" }
+
+"ui.window" = { bg = "widget" }
+"ui.popup" = { fg = "text", bg = "widget" }
+"ui.help" = { fg = "text", bg = "widget" }
+"ui.menu" = { fg = "text", bg = "widget" }
+"ui.menu.selected" = { bg = "#414339" }
+
+"ui.cursor" = { fg = "cursor", modifiers = ["reversed"] }
+"ui.cursor.primary" = { fg = "cursor", modifiers = ["reversed"] }
+"ui.cursor.match" = { fg = "#888888", modifiers = ["reversed"] }
+
+"ui.selection" = { bg = "#878b91" }
+"ui.selection.primary" = { bg = "#575b61" }
+
+"ui.linenr" = { fg = "#90908a" }
+"ui.linenr.selected" = { fg = "#c2c2bf" }
+
+"ui.cursorline" = { bg = "#24241e" }
+"ui.statusline" = { fg = "active_text", bg = "#414339" }
+"ui.statusline.inactive" = { fg = "active_text", bg = "#75715e" }
+
+# Malformed ANSI: grey2, bg3. See 'https://github.com/helix-editor/helix/issues/5709'
+# "ui.bufferline" = { fg = "grey2", bg = "bg3" }
+"ui.bufferline.active" = { fg = "active_text", bg = "selection", modifiers = [
+ "bold",
+] }
+"ui.virtual.inlay-hint" = { fg = "#88846F" }
+
+"ui.text" = { fg = "text" }
+"ui.text.focus" = { fg = "active_text" }
+
+"warning" = { fg = "#cca700" }
+"error" = { fg = "#f48771" }
+"info" = { fg = "#75beff" }
+"hint" = { fg = "#eeeeb3" }
+
+"diagnostic.warning" = { underline = { color = "#cca700", style = "curl" } }
+"diagnostic.error" = { underline = { color = "#f48771", style = "curl" } }
+"diagnostic.info" = { underline = { color = "#75beff", style = "curl" } }
+"diagnostic.hint" = { underline = { color = "#eeeeb3", style = "curl" } }
+"diagnostic.unnecessary" = { modifiers = ["dim"] }
+"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
+
+[palette]
+type = "#A6E22E"
+keyword = "#F92672"
+regex = "#CE9178"
+special = "#C586C0"
+variable = "#F8F8F2"
+fn_declaration = "#A6E22E"
+
+background = "#272822"
+text = "#f8f8f2"
+active_text = "#ffffff"
+cursor = "#a6a6a6"
+inactive_cursor = "#878b91"
+widget = "#1e1f1c"
+selection = "#414339"
+tag = "#F92672"