|
| 1 | +# Author: github.com/jhscheer |
| 2 | +# |
| 3 | +# This theme is an adaptation of |
| 4 | +# github.com/EdenEast/nightfox.nvim |
| 5 | + |
| 6 | + |
| 7 | +# INTERFACE |
| 8 | +# These scopes are used for theming the editor interface. |
| 9 | + |
| 10 | +"ui.background" = { bg = "bg1" } # Default background color. |
| 11 | +"ui.window" = { fg = "bg0" } # Window border between splits. |
| 12 | +"ui.gutter" = { fg = "fg3" } # Left gutter for diagnostics and breakpoints. |
| 13 | + |
| 14 | +"ui.text" = { fg = "fg1" } # Default text color. |
| 15 | +"ui.text.focus" = { bg = "sel1", fg = "fg1" } # Selection highlight in buffer-picker or file-picker. |
| 16 | +"ui.text.info" = { fg = "fg2", bg = "sel0" } # Info popup contents (space mode menu). |
| 17 | + |
| 18 | +"ui.cursor" = { bg = "fg3", fg = "bg1" } # Fallback cursor colour, non-primary cursors when there are multiple (shift-c). |
| 19 | +"ui.cursor.primary" = { bg = "fg1", fg = "bg1" } # The primary cursor when there are multiple (shift-c). |
| 20 | +"ui.cursor.match" = { fg = "yellow", modifiers = ["bold"] } # The matching parentheses of that under the cursor. |
| 21 | + |
| 22 | +"ui.selection" = { bg = "bg3" } # All currently selected text. |
| 23 | +"ui.selection.primary" = { bg = "bg4" } # The primary selection when there are multiple. |
| 24 | +"ui.cursorline.primary" = { bg = "bg3" } # The line of the primary cursor (if cursorline is enabled) |
| 25 | +# "ui.cursorline.secondary" = { } # The lines of any other cursors (if cursorline is enabled) |
| 26 | +# "ui.cursorcolumn.primary" = { } # The column of the primary cursor (if cursorcolumn is enabled) |
| 27 | +# "ui.cursorcolumn.secondary" = { } # The columns of any other cursors (if cursorcolumn is enabled) |
| 28 | + |
| 29 | +"ui.linenr" = { fg = "fg3" } # Line numbers. |
| 30 | +"ui.linenr.selected" = { fg = "yellow", modifiers = ["bold"] } # Current line number. |
| 31 | + |
| 32 | +# "ui.virtual" = { } # Namespace for additions to the editing area. |
| 33 | +"ui.virtual.ruler" = { bg = "bg3" } # Vertical rulers (colored columns in editing area). |
| 34 | +"ui.virtual.whitespace" = { fg = "bg3" } # Whitespace markers in editing area. |
| 35 | +"ui.virtual.indent-guide" = { fg = "black" } # Vertical indent width guides |
| 36 | + |
| 37 | +"ui.statusline" = { fg = "fg2", bg = "bg0" } # Status line. |
| 38 | +"ui.statusline.inactive" = { fg = "fg3", bg = "bg0" } # Status line in unfocused windows. |
| 39 | +"ui.statusline.normal" = { bg = "blue", fg = "bg0", modifiers = ["bold"] } # Statusline mode during normal mode (only if editor.color-modes is enabled) |
| 40 | +"ui.statusline.insert" = { bg = "green", fg = "bg0", modifiers = ["bold"] } # Statusline mode during insert mode (only if editor.color-modes is enabled) |
| 41 | +"ui.statusline.select" = { bg = "magenta", fg = "bg0", modifiers = ["bold"] } # Statusline mode during select mode (only if editor.color-modes is enabled) |
| 42 | + |
| 43 | +"ui.help" = { bg = "sel0", fg = "fg1" } # Description box for commands. |
| 44 | + |
| 45 | +"ui.menu" = { bg = "sel0", fg = "fg1" } # Code and command completion menus. |
| 46 | +"ui.menu.selected" = { bg = "fg3" } # Selected autocomplete item. |
| 47 | +"ui.menu.scroll" = { fg = "fg3" } # fg sets thumb color, bg sets track color of scrollbar. |
| 48 | + |
| 49 | +"ui.popup" = { bg = "bg0", fg = "fg1" } # Documentation popups (space-k). |
| 50 | +"ui.popup.info" = { bg = "sel0", fg = "fg1" } # Info popups box (space mode menu). |
| 51 | + |
| 52 | +"markup.raw" = { fg = "magenta" } # Code block in Markdown. |
| 53 | +"markup.raw.inline" = { fg = "orange" } # `Inline code block` in Markdown. |
| 54 | +"markup.heading" = { fg = "yellow", modifiers = ["bold"] } |
| 55 | +"markup.list" = { fg = "magenta", modifiers = ["bold"] } |
| 56 | +"markup.bold" = { fg = "orange", modifiers = ["bold"] } |
| 57 | +"markup.italic" = { fg = "pink" } |
| 58 | +"markup.link" = { fg = "yellow-bright", modifiers = ["bold"] } |
| 59 | +"markup.quote" = { fg = "blue" } |
| 60 | + |
| 61 | + |
| 62 | +# DIAGNOSTICS |
| 63 | +"warning" = { fg ="yellow", bg = "bg1" } # Diagnostics warning (gutter) |
| 64 | +"error" = { fg = "red", bg = "bg1" } # Diagnostics error (gutter) |
| 65 | +"info" = { fg = "blue", bg = "bg1" } # Diagnostics info (gutter) |
| 66 | +"hint" = { fg = "green", bg = "bg1" } # Diagnostics hint (gutter) |
| 67 | +"diagnostic" = { modifiers = ["underlined"] } # Diagnostics fallback style (editing area) |
| 68 | +"diagnostic.error" = { fg = "red" } # Diagnostics error (editing area) |
| 69 | +"diagnostic.warning" = { fg = "yellow" } # Diagnostics warning (editing area) |
| 70 | +"diagnostic.info" = { fg = "blue" } # Diagnostics info (editing area) |
| 71 | +"diagnostic.hint" = { fg = "green" } # Diagnostics hint (editing area) |
| 72 | + |
| 73 | + |
| 74 | +# SYNTAX HIGHLIGHTING |
| 75 | +# These keys match tree-sitter scopes. |
| 76 | + |
| 77 | +"special" = { fg = "fg2" } # Special symbols e.g `?` in Rust, `...` in Hare. |
| 78 | +"attribute" = { fg = "yellow" } # Class attributes, html tag attributes. |
| 79 | + |
| 80 | +"type" = { fg = "yellow" } # Variable type, like integer or string, including program defined classes, structs etc.. |
| 81 | +"type.builtin" = { fg = "cyan-bright" } # Primitive types of the language (string, int, float). |
| 82 | +"type.enum.variant" = { fg = "orange-bright" } |
| 83 | + |
| 84 | +"constructor" = { fg = "magenta" } # Constructor method for a class or struct. |
| 85 | + |
| 86 | +"constant" = { fg = "orange-bright" } # Constant value |
| 87 | +"constant.builtin" = { fg = "orange-bright" } # Special constants like `true`, `false`, `none`, etc. |
| 88 | +"constant.builtin.boolean" = { fg = "orange" } # True or False. |
| 89 | +"constant.character" = { fg = "green" } # Constant of character type. |
| 90 | +"constant.character.escape" = { fg = "yellow-bright", modifiers = ["bold"] } # escape codes like \n. |
| 91 | +"constant.numeric" = { fg = "orange" } # constant integer or float value. |
| 92 | + |
| 93 | +"string" = { fg = "green" } # String literal. |
| 94 | +"string.regexp" = { fg = "yellow-bright" } # Regular expression literal. |
| 95 | +"string.special" = { fg = "yellow-bright", modifiers = ["bold"] } # Strings containing a path, URL, etc. |
| 96 | +"string.special.url" = { fg = "cyan", modifiers = ["bold"] } # String containing a web URL. |
| 97 | + |
| 98 | +"comment" = { fg = "comment" } # This is a comment. |
| 99 | +"comment.block.documentation" = { fg = "comment", modifiers = ["bold"] } # Doc comments, e.g '///' in rust. |
| 100 | + |
| 101 | +"variable" = { fg = "white" } # Variable names. |
| 102 | +"variable.builtin" = { fg = "red" } # Language reserved variables: `this`, `self`, `super`, etc. |
| 103 | +"variable.parameter" = { fg = "cyan-bright" } # Function parameters. |
| 104 | +"variable.other.member" = { fg = "fg2" } # Fields of composite data types (e.g. structs, unions). |
| 105 | + |
| 106 | +"label" = { fg = "magenta-bright" } # lifetimes - Loop labels, among other things. |
| 107 | + |
| 108 | +"punctuation" = { fg = "fg2" } # Any punctuation symbol. |
| 109 | +# "punctuation.delimiter" = { fg = "fg2" } # Commas, colons or other delimiter depending on the language. |
| 110 | +# "punctuation.bracket" = { fg = "fg2" } # Parentheses, angle brackets, etc. |
| 111 | +# "punctuation.special" = { fg = "fg2" } # String interpolation brackets |
| 112 | + |
| 113 | +"keyword" = { fg = "magenta" } # Language reserved keywords. |
| 114 | +"keyword.control" = { fg = "pink" } # Control keywords. |
| 115 | +"keyword.control.conditional" = { fg = "magenta-bright" } # `if`, `else`, `elif`. |
| 116 | +"keyword.control.repeat" = { fg = "magenta-bright" } # `for`, `while`, `loop`. |
| 117 | +"keyword.control.import" = { fg = "pink-bright" } # `import`, `export` `use`. |
| 118 | +"keyword.control.return" = { fg = "magenta" } # `return` in most languages. |
| 119 | +"keyword.control.exception" = { fg = "magenta" } # `try`, `catch`, `raise`/`throw` and related. |
| 120 | +"keyword.operator" = { fg = "fg2", modifiers = ["bold"] } # 'or', 'and', 'in'. |
| 121 | +"keyword.directive" = { fg = "pink-bright" } # Preprocessor directives (#if in C...). |
| 122 | +"keyword.function" = { fg = "red" } # The keyword to define a funtion: 'def', 'fun', 'fn'. |
| 123 | +"keyword.storage" = { fg = "magenta" } # Keywords describing how things are stored |
| 124 | +"keyword.storage.type" = { fg = "magenta" } # The type of something, class, function, var, let, etc. |
| 125 | +"keyword.storage.modifier" = { fg = "yellow" } # Storage modifiers like static, mut, const, ref, etc. |
| 126 | + |
| 127 | +"operator" = { fg = "fg2" } # Logical, mathematical, and other operators. |
| 128 | + |
| 129 | +"function" = { fg = "blue-bright" } |
| 130 | +"function.builtin" = { fg = "red" } |
| 131 | +"function.macro" = { fg = "red" } |
| 132 | +# "function.special" = { fg = "blue-bright" } # Preprocessor function in C. |
| 133 | +# "function.method" = { fg = "blue-bright" } # Class / Struct methods. |
| 134 | + |
| 135 | +"tag" = { fg = "blue-bright" } # As in <body> for html, css tags. |
| 136 | + |
| 137 | +"namespace" = { fg = "cyan-bright" } # Namespace or module identifier. |
| 138 | + |
| 139 | + |
| 140 | +# Diff ============================== |
| 141 | +# Version control changes. |
| 142 | + |
| 143 | +"diff.plus" = "green-dim" # Additions. |
| 144 | +"diff.minus" = "red-dim" # Deletions. |
| 145 | +"diff.delta" = "blue-dim" # Modifications. |
| 146 | +"diff.delta.moved" = "cyan-dim" # Renamed or moved files. |
| 147 | + |
| 148 | +# color palette |
| 149 | +[palette] |
| 150 | +black = "#393b44" |
| 151 | +red = "#c94f6d" |
| 152 | +red-dim = "#2f2837" |
| 153 | +green = "#81b29a" |
| 154 | +green-dim = "#26343c" |
| 155 | +yellow = "#dbc074" |
| 156 | +yellow-bright = "#e0c989" |
| 157 | +blue = "#719cd6" |
| 158 | +blue-bright = "#86abdc" |
| 159 | +blue-dim = "#2f2837" |
| 160 | +magenta = "#9d79d6" |
| 161 | +magenta-bright = "#baa1e2" |
| 162 | +cyan = "#63cdcf" |
| 163 | +cyan-bright = "#7ad4d6" |
| 164 | +cyan-dim = "#253f4a" |
| 165 | +white = "#dfdfe0" |
| 166 | +orange = "#f4a261" |
| 167 | +orange-bright = "#f6b079" |
| 168 | +pink = "#d67ad2" |
| 169 | +pink-bright = "#dc8ed9" |
| 170 | +comment = "#738091" |
| 171 | +# spec |
| 172 | +bg0 = "#131a24" # Dark bg (status line and float) |
| 173 | +bg1 = "#192330" # Default bg |
| 174 | +bg2 = "#212e3f" # Lighter bg (colorcolm folds) |
| 175 | +bg3 = "#29394f" # Lighter bg (cursor line) |
| 176 | +bg4 = "#39506d" # Conceal, border fg |
| 177 | +fg0 = "#d6d6d7" # Lighter fg |
| 178 | +fg1 = "#cdcecf" # Default fg |
| 179 | +fg2 = "#aeafb0" # Darker fg (status line) |
| 180 | +fg3 = "#71839b" # Darker fg (line numbers, fold colums) |
| 181 | +sel0 = "#2b3b51" # Popup bg, visual selection bg |
| 182 | +sel1 = "#3c5372" # Popup sel bg, search bg |
0 commit comments