1
1
# NEOMODERN.nvim
2
2
3
- A collection of themes (4 dark, 1 light) written in [ Lua] ( https://www.lua.org ) for [ Neovim] ( https://github.com/neovim/neovim ) $\geq$ 0.9.
3
+ A collection of themes written in [ Lua] ( https://www.lua.org ) for [ Neovim] ( https://github.com/neovim/neovim ) >= 0.9.
4
4
Support for [ Treesitter] ( https://github.com/nvim-treesitter/nvim-treesitter ) syntax highlighting and LSP semantic highlighting.
5
- Forked from [ OneDark.nvim] ( https://github.com/navarasu/onedark.nvim ) .
6
5
7
6
Themes have been designed to be unintrusive, simple, and pleasing to the eyes.
8
7
8
+ All themes come with a light and dark variant. To use the light variant, set `variant
9
+ = "light"` in your config or set ` vim.o.background = "light"`.
10
+
11
+ > [ !NOTE]
12
+ > Neomodern is now stable, meaning there will be minimal breaking changes in the future.
13
+ > With the release of ` v1 ` , support was dropped for COFFEECAT and DARKFOREST.
14
+ > See [ Legacy Support] ( #legacy-support ) for details.
15
+
9
16
## Gallery
10
17
11
18
### ICECLIMBER
12
19
13
- A dark theme with colors inspired from Nintendo's Ice Climbers characters
20
+ A theme with colors inspired from Nintendo's Ice Climbers characters
14
21
15
22
<details open >
16
- <summary >Click to toggle previews </summary >
23
+ <summary >Dark Variant </summary >
17
24
18
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/iceclimber.png )
25
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/iceclimber-dark .png )
19
26
20
27
</details >
21
28
22
- ### COFFEECAT
29
+ <details closed >
30
+ <summary >Light Variant</summary >
23
31
24
- A dark, brown pastel theme
32
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/iceclimber-light.png )
33
+
34
+ </details >
35
+
36
+ ### GYOKURO
37
+
38
+ A fresh green tea inspired theme
25
39
26
40
<details open >
27
- <summary >Click to toggle previews</summary >
41
+ <summary >Dark Variant</summary >
42
+
43
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/gyokuro-dark.png )
44
+
45
+ </details >
46
+
47
+ <details closed >
48
+ <summary >Light Variant</summary >
28
49
29
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/coffeecat .png )
50
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/gyokuro-light .png )
30
51
31
52
</details >
32
53
33
- ### DARKFOREST
54
+ ### HOJICHA
34
55
35
- A darker, greener take on the classic [ Everforest ] ( https://github.com/sainnhe/everforest ) theme
56
+ A roasted green tea inspired theme
36
57
37
58
<details open >
38
- <summary >Click to toggle previews </summary >
59
+ <summary >Dark Variant </summary >
39
60
40
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/darkforest.png )
61
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/hojicha-dark.png )
62
+
63
+ </details >
64
+
65
+ <details closed >
66
+ <summary >Light Variant</summary >
67
+
68
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/hojicha-light.png )
41
69
42
70
</details >
43
71
@@ -46,20 +74,16 @@ A darker, greener take on the classic [Everforest](https://github.com/sainnhe/ev
46
74
Inspired by [ ThePrimeagen's] ( https://github.com/ThePrimeagen ) use of the [ Rosé-Pine] ( https://github.com/rose-pine/neovim ) theme with [ tmux] ( https://github.com/tmux/tmux/wiki ) and no color fixing.
47
75
48
76
<details open >
49
- <summary >Click to toggle previews </summary >
77
+ <summary >Dark Variant </summary >
50
78
51
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/roseprime.png )
79
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/roseprime-dark .png )
52
80
53
81
</details >
54
82
55
- ### DAYLIGHT
56
-
57
- A light variant of ICECLIMBER
58
-
59
- <details open >
60
- <summary >Click to toggle previews</summary >
83
+ <details closed >
84
+ <summary >Light Variant</summary >
61
85
62
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/daylight .png )
86
+ ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/roseprime-light .png )
63
87
64
88
</details >
65
89
@@ -82,59 +106,53 @@ Install via your favorite package manager:
82
106
},
83
107
```
84
108
85
- > [ !NOTE]
86
- > ` require("neomodern").load() ` will call ` set colorscheme ` with your chosen theme.
87
- > If you prefer, you can use ` vim.cmd("colorscheme <theme>") ` instead. For
88
- > example, to use darkforest: ` vim.cmd("colorscheme darkforest") ` . Note if you
89
- > use ` vim.cmd("colorscheme neomodern") ` , ` iceclimber ` will be used.
90
-
91
109
## Configuration
92
110
93
- There are 5 themes included (4 dark, 1 light).
94
- The light theme is used when ` { style = "daylight" } ` is passed to ` setup(options) ` or when ` vim.o.background = "light" ` .
111
+ There are 4 themes included, each with a light and dark variant.
112
+ The light theme is used when ` { variant = "light" } ` is passed to ` setup(options) ` or
113
+ when ` vim.o.background = "light" ` .
95
114
96
- Default options are given below
115
+ Default options are given below:
97
116
98
117
``` lua
99
118
require (" neomodern" ).setup ({
100
- -- MAIN OPTIONS --
101
- -- Choose between 'iceclimber', 'coffeecat', 'darkforest', 'roseprime', 'daylight'
119
+ ---- -MAIN OPTIONS-----
120
+ --
121
+ -- Can be one of: 'iceclimber' | 'gyokuro' | 'hojicha' | 'roseprime'
102
122
theme = " iceclimber" ,
103
- -- Keymap (in normal mode) to toggle between themes in theme list
104
- cycle_theme_key = nil ,
105
- cycle_theme_list = { " iceclimber" , " coffeecat" , " darkforest" , " roseprime" , " daylight" },
106
- -- Keymap (in normal mode) to toggle between light and dark mode.
107
- -- Recommended to remove `daylight` from `toggle_theme_list` if you are also using
108
- -- `cycle_theme_key` keymap for a more intuitive cycle behavior
109
- toggle_mode_key = nil ,
110
- -- Don't set background
111
- transparent = false ,
112
- -- If true, enable the terminal
113
- term_colors = true ,
114
- -- If true, docstrings will be highlighted like strings, otherwise they will be highlighted
115
- -- like comments. Note, behavior is depending on the language server.
123
+ -- Can be one of: 'light' | 'dark', or set via vim.o.background
124
+ variant = " dark" ,
125
+ -- Use an alternate, darker bg
126
+ alt_bg = false ,
127
+ -- If true, docstrings will be highlighted like strings, otherwise they will be
128
+ -- highlighted like comments. Note, behavior is dependent on the language server.
116
129
colored_docstrings = true ,
117
- -- If false, brackets will be highlighted similar to the default fg color
118
- colored_brackets = true ,
119
- -- Don't set background of floating windows. Recommended for when using floating windows
120
- -- with borders.
121
- plain_float = false ,
122
- -- Show the end-of-buffer tildes
123
- show_eob = true ,
124
- -- If true, highlights {sign,fold}column the same as cursorline
130
+ -- If true, highlights the {sign,fold} column the same as cursorline
125
131
cursorline_gutter = true ,
126
- -- If true, highlights current line number as an alternate color
127
- alt_culnr_hl = true ,
132
+ -- If true, highlights the gutter darker than the bg
133
+ dark_gutter = false ,
128
134
-- if true favor treesitter highlights over semantic highlights
129
135
favor_treesitter_hl = false ,
136
+ -- Don't set background of floating windows. Recommended for when using floating
137
+ -- windows with borders.
138
+ plain_float = false ,
139
+ -- Show the end-of-buffer character
140
+ show_eob = true ,
141
+ -- If true, enable the vim terminal colors
142
+ term_colors = true ,
143
+ -- Keymap (in normal mode) to toggle between light and dark variants.
144
+ -- Does nothing if `theme="daylight"`.
145
+ toggle_variant_key = nil ,
146
+ -- Don't set background
147
+ transparent = false ,
130
148
149
+ ---- -DIAGNOSTICS and CODE STYLE-----
150
+ --
131
151
diagnostics = {
132
152
darker = true , -- Darker colors for diagnostic
133
153
undercurl = true , -- Use undercurl for diagnostics
134
154
background = true , -- Use background color for virtual text
135
155
},
136
-
137
- -- CODE FORMATTING --
138
156
-- The following table accepts values the same as the `gui` option for normal
139
157
-- highlights. For example, `bold`, `italic`, `underline`, `none`.
140
158
code_style = {
@@ -149,7 +167,8 @@ require("neomodern").setup({
149
167
variables = " none" ,
150
168
},
151
169
152
- -- PLUGINS --
170
+ ---- -PLUGINS-----
171
+ --
153
172
-- The following options allow for more control over some plugin appearances.
154
173
plugin = {
155
174
lualine = {
@@ -159,78 +178,26 @@ require("neomodern").setup({
159
178
-- section/component separators.
160
179
plain = false ,
161
180
},
162
- cmp = {
181
+ cmp = { -- works for nvim.cmp and blink.nvim
163
182
-- Don't highlight lsp-kind items. Only the current selection will be highlighted.
164
183
plain = false ,
165
- -- Reverse lsp-kind items' highlights in cmp menu.
184
+ -- Reverse lsp-kind items' highlights in blink/ cmp menu.
166
185
reverse = false ,
167
186
},
168
- -- Options are 'borderless' or 'bordered'.
169
- telescope = " bordered" ,
170
187
},
171
188
172
189
-- CUSTOM HIGHLIGHTS --
190
+ --
173
191
-- Override default colors
174
192
colors = {},
175
193
-- Override highlight groups
176
194
highlights = {},
177
195
})
178
196
-- Convenience function that simply calls `:colorscheme <theme>` with the theme
179
- -- specified in your config. If not specified, `iceclimber` is used.
197
+ -- specified in your config.
180
198
require (" neomodern" ).load ()
181
199
```
182
200
183
- ### Images for Select Config Opts
184
-
185
- <details close >
186
- <summary >Bordered Telescope</summary >
187
-
188
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/bordered-tscope.png )
189
-
190
- </details >
191
-
192
- <details close >
193
- <summary >Borderless Telescope</summary >
194
-
195
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/borderless-tscope.png )
196
-
197
- </details >
198
-
199
- <details close >
200
- <summary >Normal Lualine</summary >
201
-
202
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/roseprime.png )
203
-
204
- </details >
205
-
206
- <details close >
207
- <summary >Plain Lualine</summary >
208
-
209
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/plain_lualine.png )
210
-
211
- </details >
212
-
213
- Example setup for plain cmp (preview below):
214
-
215
- ``` lua
216
- -- Use these opts in setup and also rounded borders enabled in your lsp config
217
- require (" neomodern" ).setup ({
218
- plain_float = true ,
219
- plugin = {
220
- cmp = {
221
- plain = true ,
222
- },
223
- },
224
- })
225
- ```
226
-
227
- <details close >
228
- <summary >Click to toggle preview for plain cmp</summary >
229
-
230
- ![ image] ( https://github.com/cdmill/neomodern.nvim/blob/assets/plain_cmp.png )
231
-
232
- </details >
233
-
234
201
## Customization
235
202
236
203
Example using custom colors and highlights:
@@ -250,9 +217,7 @@ require("neomodern").setup {
250
217
}
251
218
```
252
219
253
- > [ !NOTE]
254
- > [ Treesitter] ( https://github.com/nvim-treesitter/nvim-treesitter ) keywords have changed for Neovim $\geq$ 0.8.
255
-
220
+ See ` neomodern.palette ` for color names.
256
221
257
222
## Supported Plugins
258
223
@@ -278,13 +243,28 @@ Available [here](https://github.com/cdmill/neomodern.nvim/tree/main/extras)
278
243
- [ Windows Terminal] ( https://github.com/microsoft/terminal )
279
244
- [ Iterm2] ( https://iterm2.com )
280
245
246
+ ## Legacy Support
247
+
248
+ With the release of ` v1 ` , Neomodern dropped support for the legacy themes COFFEECAT,
249
+ DARKFOREST, and DAYLIGHT. If you would still like to use these themes, you can use the
250
+ following commit:
251
+
252
+ ``` lua
253
+ {
254
+ " cdmill/neomodern.nvim" ,
255
+ commit = " 8eecbe1" ,
256
+ opts = {
257
+ -- your settings here
258
+ }
259
+ }
260
+ ```
261
+
281
262
## Contributing
282
263
283
264
Pull requests are welcome.
284
265
285
- If you are wanting to submit a new theme/style, please create a pull request with your new colors in [ this file] ( https://github.com/cdmill/neomodern.nvim/blob/main/lua/neomodern/palette.lua ) .
286
-
287
- If you are wanting support for a plugin, either open an issue or submit a pull request with your highlight additions in [ this file] ( https://github.com/cdmill/neomodern.nvim/blob/main/lua/neomodern/highlights.lua ) .
266
+ If you are wanting support for a plugin, either open an issue or submit a pull request
267
+ with your highlight additions in [ this file] ( https://github.com/cdmill/neomodern.nvim/blob/main/lua/neomodern/highlights/plugin.lua ) .
288
268
289
269
## Inspiration
290
270
0 commit comments