├── LICENSE
├── README.md
├── assets
└── logo.png
├── autoload
├── airline
│ └── themes
│ │ └── everblush.vim
└── lightline
│ └── colorscheme
│ └── everblush.vim
├── colors
└── everblush.lua
└── lua
├── everblush.lua
├── everblush
├── palette.lua
├── theme.lua
└── util.lua
├── lightline
└── colorscheme
│ └── everblush.lua
└── lualine
└── themes
└── everblush.lua
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Everblush
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

3 |
4 |
5 | Everblush for Neovim
6 |
7 | A dark, vibrant, and beautiful color scheme for Neovim
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | ## Preview
17 |
18 |
19 |

20 |
21 |
22 |
23 | More screenshots
24 | Bash
25 |
26 |

27 |
28 | Rust
29 |
30 |

31 |
32 | Go
33 |
34 |

35 |
36 | CSS
37 |
38 |

39 |
40 |
41 |
42 | ## Installation
43 |
44 |
45 |
46 | Add the following lines to the `init.lua` file in the `packer` setup function:
47 | ```lua
48 | { 'Everblush/nvim', as = 'everblush' }
49 | ```
50 |
51 |
52 |
53 | Add the following lines to the `init.lua` file in the `lazy` setup function:
54 | ```lua
55 | { 'Everblush/nvim', name = 'everblush' }
56 | ```
57 |
58 |
59 |
60 | Add the line `Plug Everblush/nvim` to your `vimrc` and install using the command `:PlugInstall`.
61 |
62 | ## Usage
63 |
64 | ### Lua
65 |
66 | Add this line to your `init.lua` file:
67 | ```lua
68 | vim.cmd('colorscheme everblush')
69 | ```
70 |
71 | ### Vimscript
72 |
73 | Add this line to your `init.vim` file (for Neovim) or `.vimrc` (for Vim):
74 | ```vim
75 | colorscheme everblush
76 | ```
77 |
78 | ## Configuration
79 |
80 | The default options shown below are automatically set when the colorscheme is applied. Refer to the examples for sample configuration changes, and add them to the `init.lua` file.
81 |
82 | ```lua
83 | require('everblush').setup({
84 |
85 | -- Default options
86 | override = {},
87 | transparent_background = false,
88 | nvim_tree = {
89 | contrast = false,
90 | },
91 |
92 | -- Configuration examples
93 |
94 | -- Override the default highlights using Everblush or other colors
95 | override = {
96 | Normal = { fg = '#ffffff', bg = 'comment' },
97 | },
98 |
99 | -- Set transparent background
100 | transparent_background = true,
101 |
102 | -- Set contrast for nvim-tree highlights
103 | nvim_tree = {
104 | contrast = true,
105 | },
106 | })
107 | ```
108 |
109 | ## Integrations
110 |
111 | ### [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)
112 |
113 | **Lua**
114 | ```lua
115 | require('lualine').setup({
116 | options = { 'theme' = 'everblush' }
117 | })
118 | ```
119 | **VimScript**
120 | ```vim
121 | lua << EOF
122 | require('lualine').setup({
123 | options = { 'theme' = 'everblush' }
124 | })
125 | EOF
126 | ```
127 |
128 | ### [lightline.vim](https://github.com/itchyny/lightline.vim)
129 |
130 | **Lua**
131 | ```lua
132 | vim.g.lightline = {
133 | 'colorscheme' = 'everblush',
134 | }
135 | ```
136 |
137 | **Vimscript**
138 | ```vim
139 | let g:lightline = {'colorscheme': 'everblush'}
140 | ```
141 |
142 | ### [vim-airline](https://github.com/vim-airline/vim-airline)
143 |
144 | **Lua**
145 | ```lua
146 | vim.g.airline_theme = 'everblush'
147 | vim.g.airline_powerline_fonts = 1 -- For powerline symbols in statusline
148 | vim.g['airline#extensions#tabline#enabled'] = 1 -- To enable custom tabline
149 | ```
150 |
151 | **Vimscript**
152 | ```vim
153 | let g:airline_theme = 'everblush'
154 | let g:airline_powerline_fonts = 1 " For powerline symbols in statusline
155 | let g:airline#extensions#tabline#enabled = 1 " To enable custom tabline
156 | ```
157 |
158 | ### Other integrations
159 |
160 | - [bufferline.nvim](https://github.com/akinsho/bufferline.nvim)
161 | - [gitsigns](https://github.com/lewis6991/gitsigns.nvim)
162 | - [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim)
163 | - [lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim)
164 | - [neogit](https://github.com/TimUntersberger/neogit)
165 | - [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
166 | - [nvim-tree.lua](https://github.com/nvim-tree/nvim-tree.lua)
167 | - [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
168 | - [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
169 | - [trouble.nvim](https://github.com/folke/trouble.nvim)
170 | - [vim-gitgutter](https://github.com/airblade/vim-gitgutter)
171 | - [vim-illuminate](https://github.com/RRethy/vim-illuminate)
172 |
173 | ## Credits
174 |
175 | - [AlphaTechnolog](https://github.com/AlphaTechnolog)
176 | - [Mangeshrex](https://github.com/Mangeshrex)
177 | - [Prateek](https://github.com/prateektade)
178 |
--------------------------------------------------------------------------------
/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Everblush/nvim/678f808d81801b983b6fb8296fb17ba1b2785d7c/assets/logo.png
--------------------------------------------------------------------------------
/autoload/airline/themes/everblush.vim:
--------------------------------------------------------------------------------
1 | " ----------------------------------------------------------------
2 | " File: everblush.vim
3 | " Description: A dark, vibrant, and beautiful color scheme for Vim
4 | " Author: Prateek Tade
5 | " Source: https://github.com/Everblush/everblush.vim
6 | " Last Modified: 24 Jan 2023
7 | " ----------------------------------------------------------------
8 | if &background ==# 'dark'
9 | " Normal mode
10 | let s:N1 = ['#141b1e', '#8ccf7e', 234, 114]
11 | let s:N2 = ['#b3b9b8', '#141b1e', 250, 234]
12 | let s:N3 = ['#dadada', '#141b1e', 253, 234]
13 |
14 | " Insert mode
15 | let s:I1 = ['#141b1e', '#96d988', 234, 114]
16 | let s:I2 = ['#67b0e8', '#141b1e', 110, 234]
17 | let s:I3 = ['#dadada', '#141b1e', 253, 234]
18 |
19 | " Visual mode
20 | let s:V1 = ['#141b1e', '#6cbfbf', 234, 73]
21 | let s:V2 = ['#6cbfbf', '#141b1e', 73, 234]
22 | let s:V3 = ['#dadada', '#141b1e', 253, 234]
23 |
24 | " Replace mode
25 | let s:RE = ['#141b1e', '#e57474', 234, 174]
26 |
27 | " Warning section
28 | let s:WR = ['#141b1e', '#e5c76b', 234, 221]
29 |
30 | let g:airline#themes#everblush#palette = {}
31 |
32 | let g:airline#themes#everblush#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
33 |
34 | let g:airline#themes#everblush#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
35 | let g:airline#themes#everblush#palette.insert_replace = { 'airline_a': [ s:RE[0], s:I1[1], s:RE[1], s:I1[3], '' ] }
36 |
37 | let g:airline#themes#everblush#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
38 |
39 | let g:airline#themes#everblush#palette.replace = copy(g:airline#themes#everblush#palette.normal)
40 | let g:airline#themes#everblush#palette.replace.airline_a = [ s:RE[0], s:RE[1], s:RE[2], s:RE[3], '' ]
41 |
42 | let s:IA = [ s:N1[1], s:N3[1], s:N1[3], s:N3[3], '' ]
43 | let g:airline#themes#everblush#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
44 |
45 | let g:airline#themes#everblush#palette.normal.airline_warning = s:WR
46 | let g:airline#themes#everblush#palette.insert.airline_warning = s:WR
47 | let g:airline#themes#everblush#palette.visual.airline_warning = s:WR
48 | endif
49 |
--------------------------------------------------------------------------------
/autoload/lightline/colorscheme/everblush.vim:
--------------------------------------------------------------------------------
1 | let s:palette = v:lua.require('lightline.colorscheme.everblush')
2 | let g:lightline#colorscheme#everblush#palette = lightline#colorscheme#fill(s:palette)
3 |
--------------------------------------------------------------------------------
/colors/everblush.lua:
--------------------------------------------------------------------------------
1 | package.loaded['everblush.palette'] = nil
2 |
3 | require('everblush').colorscheme()
4 |
--------------------------------------------------------------------------------
/lua/everblush.lua:
--------------------------------------------------------------------------------
1 | local util = require('everblush.util')
2 |
3 | local M = {}
4 |
5 | local config = {
6 | override = {},
7 | transparent_background = false,
8 | nvim_tree = {
9 | contrast = false,
10 | },
11 | }
12 |
13 | function M.setup(opts)
14 | opts = opts or {}
15 | config = vim.tbl_deep_extend('force', config, opts)
16 | end
17 |
18 | function M.colorscheme()
19 | if vim.g.colors_name then
20 | vim.cmd('hi clear')
21 | end
22 |
23 | vim.opt.termguicolors = true
24 | vim.g.colors_name = 'everblush'
25 |
26 | local theme = require('everblush.theme').get(config)
27 |
28 | -- Set theme highlights
29 | for group, color in pairs(theme) do
30 | -- Skip highlight group if user overrides
31 | if config.override[group] == nil then
32 | util.highlight(group, color)
33 | end
34 | end
35 |
36 | -- Set user highlights
37 | for group, color in pairs(config.override) do
38 | util.highlight(group, color)
39 | end
40 | end
41 |
42 | return M
43 |
--------------------------------------------------------------------------------
/lua/everblush/palette.lua:
--------------------------------------------------------------------------------
1 | local palette = {
2 | color0 = '#232a2d',
3 | color1 = '#e57474',
4 | color2 = '#8ccf7e',
5 | color3 = '#e5c76b',
6 | color4 = '#67b0e8',
7 | color5 = '#c47fd5',
8 | color6 = '#6cbfbf',
9 | color7 = '#b3b9b8',
10 | color8 = '#2d3437',
11 | color9 = '#ef7e7e',
12 | color10 = '#96d988',
13 | color11 = '#f4d67a',
14 | color12 = '#71baf2',
15 | color13 = '#ce89df',
16 | color14 = '#67cbe7',
17 | color15 = '#bdc3c2',
18 | comment = '#404749',
19 | contrast = '#161d1f',
20 | background = '#141b1e',
21 | foreground = '#dadada',
22 | cursorline = '#2c3333',
23 | none = 'NONE',
24 | }
25 |
26 | return palette
27 |
--------------------------------------------------------------------------------
/lua/everblush/theme.lua:
--------------------------------------------------------------------------------
1 | local M = {}
2 |
3 | function M.get(config)
4 | local p = require('everblush.palette')
5 |
6 | local theme = {}
7 |
8 | local background = (config.transparent_background and p.none) or p.background
9 | local contrast = config.nvim_tree.contrast
10 |
11 | theme = {
12 | -- base highlights
13 | Boolean = { fg = p.color5 },
14 | Character = { fg = p.color12 },
15 | ColorColumn = { bg = p.cursorline },
16 | Comment = { fg = p.comment, italic = true },
17 | Conceal = { fg = p.color4, bg = background },
18 | Conditional = { fg = p.color6 },
19 | Constant = { fg = p.color5 },
20 | Cursor = { fg = p.foreground, bg = p.foreground },
21 | CursorColumn = { bg = background },
22 | CursorIM = { fg = p.foreground, bg = p.foreground },
23 | CursorLine = { bg = p.cursorline },
24 | CursorLineNr = { fg = p.cursorline },
25 | Debug = { fg = p.color1 },
26 | Define = { fg = p.color6 },
27 | Delimiter = { fg = p.foreground },
28 | DiffAdd = { fg = p.color4, bg = background },
29 | DiffChange = { fg = p.color5, bg = background },
30 | DiffDelete = { fg = p.color1, bg = background },
31 | DiffText = { fg = p.color1, bg = background },
32 | Directory = { fg = p.color4 },
33 | EndOfBuffer = { fg = p.background },
34 | Error = { fg = p.color1, bg = background },
35 | ErrorMsg = { fg = p.color1, bg = background },
36 | Exception = { fg = p.color6 },
37 | Float = { fg = p.color5 },
38 | FloatBorder = { fg = p.color2 },
39 | FoldColumn = { fg = p.color4, bg = background },
40 | Folded = { fg = p.color4, bg = background },
41 | Function = { fg = p.color6 },
42 | Identifier = { fg = p.color5 },
43 | Ignore = { fg = p.color7, bg = background },
44 | IncSearch = { fg = p.background, bg = p.color10 },
45 | Include = { fg = p.color6 },
46 | Keyword = { fg = p.color6 },
47 | Label = { fg = p.color4 },
48 | LineNr = { fg = p.color0, bg = background },
49 | Macro = { fg = p.color6 },
50 | MatchParen = { fg = p.color4, bg = background },
51 | ModeMsg = { fg = p.foreground, bg = background },
52 | MoreMsg = { fg = p.color5 },
53 | MsgArea = { fg = p.foreground, bg = background },
54 | MsgSeparator = { fg = p.foreground, bg = background },
55 | NonText = { fg = p.color1 },
56 | Normal = { fg = p.foreground, bg = background },
57 | NormalFloat = { bg = background },
58 | NormalNC = { fg = p.foreground, bg = background },
59 | Number = { fg = p.color3 },
60 | Operator = { fg = p.color6 },
61 | Pmenu = { fg = p.foreground, bg = background },
62 | PmenuSbar = { bg = background },
63 | PmenuSel = { fg = p.background, bg = p.color4 },
64 | PmenuThumb = { bg = p.color2 },
65 | PreCondit = { fg = p.color6 },
66 | PreProc = { fg = p.color6 },
67 | Question = { fg = p.color5 },
68 | QuickFixLine = { bg = p.color2 },
69 | Repeat = { fg = p.color6 },
70 | Search = { fg = p.background, bg = p.color10 },
71 | SignColumn = { fg = p.background, bg = background },
72 | Special = { fg = p.color6 },
73 | SpecialChar = { fg = p.foreground },
74 | SpecialComment = { fg = p.color2 },
75 | SpecialKey = { fg = p.color4 },
76 | SpellBad = { fg = p.color2 },
77 | SpellCap = { fg = p.color6 },
78 | SpellLocal = { fg = p.color4 },
79 | SpellRare = { fg = p.color6 },
80 | Statement = { fg = p.color6 },
81 | StatusLine = { fg = foreground, bg = background },
82 | StatusLineNC = { bg = background, fg = p.background },
83 | Storage = { fg = p.color9 },
84 | StorageClass = { fg = p.color7 },
85 | String = { fg = p.color2 },
86 | Structure = { fg = p.color6 },
87 | Substitute = { fg = p.color3, bg = p.color6 },
88 | TabLine = { fg = p.color2, bg = background },
89 | TabLineFill = { fg = p.foreground, bg = background },
90 | TabLineSel = { fg = p.foreground, bg = background },
91 | Tag = { fg = p.color4 },
92 | TermCursor = { fg = p.foreground, bg = p.foreground },
93 | TermCursorNC = { fg = p.foreground, bg = p.foreground },
94 | Title = { fg = p.color4, bold = true },
95 | Todo = { fg = p.color1, bg = background },
96 | Type = { fg = p.color5 },
97 | Typedef = { fg = p.color6 },
98 | Underlined = { fg = p.color3 },
99 | Variable = { fg = p.color5 },
100 | VertSplit = { fg = p.background, bg = p.color0 },
101 | Visual = { fg = p.foreground, bg = p.color0 },
102 | VisualNOS = { bg = background },
103 | WarningMsg = { fg = p.color3, bg = background },
104 | Whitespace = { fg = p.color1 },
105 | WildMenu = { fg = p.color7, bg = p.color4 },
106 | lCursor = { fg = p.foreground, bg = p.foreground },
107 |
108 | -- bufferline.nvim: https://github.com/akinsho/bufferline.nvim
109 | BufferLineFill = { fg = p.background, bg = background },
110 | BufferLineIndicatorSelected = { fg = p.color2 },
111 |
112 | -- Diagnostic
113 | DiagnosticError = { fg = p.color1 },
114 | DiagnosticHint = { fg = p.color2 },
115 | DiagnosticInfo = { fg = p.color4 },
116 | DiagnosticWarn = { fg = p.color3 },
117 |
118 | -- diff
119 | diffAdded = { fg = p.color4 },
120 | diffChanged = { fg = p.color5 },
121 | diffFile = { fg = p.color7 },
122 | diffIndexLine = { fg = p.color6 },
123 | diffLine = { fg = p.color1 },
124 | diffNewFile = { fg = p.color5 },
125 | diffOldFile = { fg = p.color5 },
126 | diffRemoved = { fg = p.color1 },
127 |
128 | -- gitsigns: https://github.com/lewis6991/gitsigns.nvim
129 | GitSignsAdd = { fg = p.color4 },
130 | GitSignsChange = { fg = p.color5 },
131 | GitSignsDelete = { fg = p.color1 },
132 |
133 | -- indent-blankline.nvim: https://github.com/lukas-reineke/indent-blankline.nvim
134 | IndentBlanklineChar = { fg = p.color0 },
135 |
136 | -- lspsaga.nvim: https://github.com/glepnir/lspsaga.nvim
137 | DefinitionCount = { fg = p.color6 },
138 | DefinitionIcon = { fg = p.color7 },
139 | LspFloatWinBorder = { fg = p.background },
140 | LspFloatWinNormal = { bg = background },
141 | LspSagaBorderTitle = { fg = p.color7 },
142 | LspSagaCodeActionBorder = { fg = p.color7 },
143 | LspSagaCodeActionContent = { fg = p.color6 },
144 | LspSagaCodeActionTitle = { fg = p.color7 },
145 | LspSagaDefPreviewBorder = { fg = p.color4 },
146 | LspSagaFinderSelection = { fg = p.color1 },
147 | LspSagaHoverBorder = { fg = p.color7 },
148 | LspSagaRenameBorder = { fg = p.color4 },
149 | LspSagaSignatureHelpBorder = { fg = p.color1 },
150 | ReferencesCount = { fg = p.color6 },
151 | ReferencesIcon = { fg = p.color7 },
152 | TargetWord = { fg = p.color7 },
153 |
154 | -- Neogit: https://github.com/TimUntersberger/neogit
155 | NeogitBranch = { fg = p.color6 },
156 | NeogitDiffAddHighlight = { fg = p.color4, bg = background },
157 | NeogitDiffContextHighlight = { bg = background, fg = p.foreground },
158 | NeogitDiffDeleteHighlight = { fg = p.color1, bg = background },
159 | NeogitHunkHeader = { bg = background, fg = p.foreground },
160 | NeogitHunkHeaderHighlight = { bg = p.comment, fg = p.color7 },
161 | NeogitRemote = { fg = p.color6 },
162 |
163 | -- Neovim
164 | healthError = { fg = p.color1 },
165 | healthSuccess = { fg = p.color4 },
166 | healthWarning = { fg = p.color5 },
167 |
168 | -- nvim-cmp: https://github.com/hrsh7th/nvim-cmp
169 | CmpDocumentationBorder = { fg = p.foreground, bg = background },
170 | CmpItemAbbr = { fg = p.foreground, bg = background },
171 | CmpItemAbbrDeprecated = { fg = p.color2, bg = background },
172 | CmpItemAbbrMatch = { fg = p.color7, bg = background },
173 | CmpItemAbbrMatchFuzzy = { fg = p.color7, bg = background },
174 | CmpItemKind = { fg = p.color4, bg = background },
175 | CmpItemMenu = { fg = p.color2, bg = background },
176 |
177 | -- nvim-tree.lua: https://github.com/nvim-tree/nvim-tree.lua
178 | NvimTreeEmptyFolderName = { fg = p.color2 },
179 | NvimTreeEndOfBuffer = { fg = (contrast and p.contrast) or p.none, bg = (contrast and p.contrast) or p.none },
180 | NvimTreeEndOfBufferNC = { fg = (contrast and p.contrast) or p.none, bg = (contrast and p.contrast) or p.none },
181 | NvimTreeFolderIcon = { fg = p.color4, bg = background },
182 | NvimTreeFolderName = { fg = p.foreground },
183 | NvimTreeGitDeleted = { fg = p.color1 },
184 | NvimTreeGitDirty = { fg = p.color5 },
185 | NvimTreeGitNew = { fg = p.color4 },
186 | NvimTreeImageFile = { fg = p.foreground },
187 | NvimTreeIndentMarker = { fg = p.color0 },
188 | NvimTreeNormal = { fg = (contrast and p.none) or p.foreground, bg = (contrast and p.contrast) or background },
189 | NvimTreeNormalNC = { fg = (contrast and p.none) or p.foreground, bg = (contrast and p.contrast) or background },
190 | NvimTreeOpenedFolderName = { fg = p.color2 },
191 | NvimTreeRootFolder = { fg = p.color1 },
192 | NvimTreeSpecialFile = { fg = p.color6 },
193 | NvimTreeStatusLineNC = { bg = background, fg = p.background },
194 | NvimTreeSymlink = { fg = p.color7 },
195 | NvimTreeVertSplit = { fg = (contrast and p.background) or p.none, bg = (contrast and p.background) or p.none },
196 |
197 | -- nvim-treesitter: https://github.com/nvim-treesitter/nvim-treesitter
198 | ["@attribute"] = { fg = p.color4 },
199 | ["@boolean"] = { fg = p.color6 },
200 | ["@character"] = { fg = p.color4 },
201 | ["@comment"] = { fg = p.comment, italic = true },
202 | ["@conditional"] = { fg = p.color1 },
203 | ["@constant"] = { fg = p.color6 },
204 | ["@constant.builtin"] = { fg = p.color4 },
205 | ["@constant.macro"] = { fg = p.color3 },
206 | ["@constructor"] = { fg = p.color4 },
207 | ["@exception"] = { fg = p.color8 },
208 | ["@field"] = { fg = p.color1 },
209 | ["@float"] = { fg = p.color8 },
210 | ["@function"] = { fg = p.color1 },
211 | ["@function.builtin"] = { fg = p.color14 },
212 | ["@function.macro"] = { fg = p.color2 },
213 | ["@include"] = { fg = p.color9 },
214 | ["@keyword"] = { fg = p.color5 },
215 | ["@keyword.function"] = { fg = p.color4 },
216 | ["@keyword.operator"] = { fg = p.color12 },
217 | ["@keyword.return"] = { fg = p.color4 },
218 | ["@label"] = { fg = p.color4 },
219 | ["@method"] = { fg = p.color12 },
220 | ["@namespace"] = { fg = p.color9 },
221 | ["@number"] = { fg = p.color3 },
222 | ["@operator"] = { fg = p.color7 },
223 | ["@parameter"] = { fg = p.color1 },
224 | ["@parameter.reference"] = { fg = p.color9 },
225 | ["@property"] = { fg = p.color1 },
226 | ["@punctuation.bracket"] = { fg = p.color7 },
227 | ["@punctuation.delimiter"] = { fg = p.color7 },
228 | ["@punctuation.special"] = { fg = p.color7 },
229 | ["@repeat"] = { fg = p.color11 },
230 | ["@string"] = { fg = p.color2 },
231 | ["@string.escape"] = { fg = p.color4 },
232 | ["@string.regex"] = { fg = p.color2 },
233 | ["@string.special"] = { fg = p.color4 },
234 | ["@symbol"] = { fg = p.color1 },
235 | ["@tag"] = { fg = p.color4 },
236 | ["@tag.attribute"] = { fg = p.color1 },
237 | ["@tag.delimiter"] = { fg = p.color7 },
238 | ["@text"] = { fg = p.color7 },
239 | ["@text.danger"] = { fg = p.color8 },
240 | ["@text.emphasis"] = { fg = p.color7, italic = true },
241 | ["@text.environment.name"] = { fg = p.color3 },
242 | ["@text.environtment"] = { fg = p.color5 },
243 | ["@text.literal"] = { fg = p.color2, italic = true },
244 | ["@text.math"] = { fg = p.color6 },
245 | ["@text.note"] = { fg = p.color8 },
246 | ["@text.reference"] = { fg = p.color6 },
247 | ["@text.strike"] = { fg = p.color7, strikethrough = true },
248 | ["@text.strong"] = { fg = p.color7, bold = true },
249 | ["@text.title"] = { fg = p.color3, bold = true },
250 | ["@text.underline"] = { fg = p.color5, underline = true },
251 | ["@text.uri"] = { fg = p.color3, underline = true },
252 | ["@text.warning"] = { fg = p.color0, bg = p.color1 },
253 | ["@type"] = { fg = p.color3 },
254 | ["@type.builtin"] = { fg = p.color3 },
255 | ["@variable"] = { fg = p.color7 },
256 | ["@variable.builtin"] = { fg = p.color4 },
257 |
258 | -- LSP semantic tokens
259 | ["@lsp.type.comment"] = { link = "@comment" },
260 | ["@lsp.type.enum"] = { link = "@type" },
261 | ["@lsp.type.interface"] = { link = "Identifier" },
262 | ["@lsp.type.keyword"] = { link = "@keyword" },
263 | ["@lsp.type.namespace"] = { link = "@namespace" },
264 | ["@lsp.type.parameter"] = { link = "@parameter" },
265 | ["@lsp.type.property"] = { link = "@property" },
266 | ["@lsp.type.variable"] = {}, -- use treesitter styles for regular variables
267 | ["@lsp.typemod.method.defaultLibrary"] = { link = "@function.builtin" },
268 | ["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" },
269 | ["@lsp.typemod.operator.injected"] = { link = "@operator" },
270 | ["@lsp.typemod.string.injected"] = { link = "@string" },
271 | ["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" },
272 | ["@lsp.typemod.variable.injected"] = { link = "@variable" },
273 |
274 | -- telescope.nvim: https://github.com/nvim-telescope/telescope.nvim
275 | TelescopeBorder = { fg = p.color0, bg = background },
276 | TelescopeNormal = { fg = p.foreground, bg = background },
277 | TelescopeSelection = { fg = p.background, bg = p.color5 },
278 |
279 | -- trouble.nvim: https://github.com/folke/trouble.nvim
280 | LspTroubleCount = { fg = p.color6, bg = p.foreground },
281 | LspTroubleNormal = { fg = p.foreground, bg = background },
282 | LspTroubleText = { fg = p.foreground },
283 |
284 | -- vim-gitgutter: https://github.com/airblade/vim-gitgutter
285 | GitGutterAdd = { fg = p.color4 },
286 | GitGutterChange = { fg = p.color5 },
287 | GitGutterDelete = { fg = p.color1 },
288 |
289 | -- vim-illuminate: https://github.com/RRethy/vim-illuminate
290 | illuminatedCurWord = { bg = p.foreground },
291 | illuminatedWord = { bg = p.foreground },
292 |
293 | -- flash.nvim: https://github.com/folke/flash.nvim
294 | FlashCurrent = { bg = p.color1 },
295 | FlashLabel = { fg = p.background, bg = p.color3 },
296 |
297 | }
298 |
299 | vim.g.terminal_color_0 = p.color0
300 | vim.g.terminal_color_1 = p.color1
301 | vim.g.terminal_color_2 = p.color2
302 | vim.g.terminal_color_3 = p.color3
303 | vim.g.terminal_color_4 = p.color4
304 | vim.g.terminal_color_5 = p.color5
305 | vim.g.terminal_color_6 = p.color6
306 | vim.g.terminal_color_7 = p.color7
307 | vim.g.terminal_color_8 = p.color8
308 | vim.g.terminal_color_9 = p.color9
309 | vim.g.terminal_color_10 = p.color10
310 | vim.g.terminal_color_11 = p.color11
311 | vim.g.terminal_color_12 = p.color12
312 | vim.g.terminal_color_13 = p.color13
313 | vim.g.terminal_color_14 = p.color14
314 | vim.g.terminal_color_15 = p.color15
315 |
316 | return theme
317 | end
318 |
319 | return M
320 |
321 |
--------------------------------------------------------------------------------
/lua/everblush/util.lua:
--------------------------------------------------------------------------------
1 | local util = {}
2 |
3 | local function parse_color(color)
4 | if color == nil then
5 | return print('invalid color')
6 | end
7 |
8 | color = color:lower()
9 |
10 | if not color:find('#') and color ~= 'none' then
11 | color = require('everblush.palette')[color]
12 | or vim.api.nvim_get_color_by_name(color)
13 | end
14 |
15 | return color
16 | end
17 |
18 | util.highlight = function(group, color)
19 | local fg = color.fg and parse_color(color.fg) or 'none'
20 | local bg = color.bg and parse_color(color.bg) or 'none'
21 | local sp = color.sp and parse_color(color.sp) or ''
22 |
23 | color = vim.tbl_extend('force', color, { fg = fg, bg = bg, sp = sp })
24 | vim.api.nvim_set_hl(0, group, color)
25 | end
26 |
27 | return util
28 |
--------------------------------------------------------------------------------
/lua/lightline/colorscheme/everblush.lua:
--------------------------------------------------------------------------------
1 | local p = require('everblush.palette')
2 |
3 | local everblush = {
4 | normal = {
5 | left = { { p.background, p.color6, 'bold' }, { p.foreground, p.background } },
6 | right = { { p.background, p.color6 }, { p.foreground, p.background } },
7 | middle = { { p.foreground, p.background } },
8 | error = { { p.background, p.color5 } },
9 | warning = { { p.background, p.color3 } },
10 | },
11 | inactive = {
12 | right = { { p.background, p.background }, { p.background, p.background } },
13 | left = { { p.background, p.background }, { p.background, p.background } },
14 | middle = { { p.background, p.background } },
15 | },
16 | insert = {
17 | left = { { p.background, p.color2, 'bold' }, { p.foreground, p.background } },
18 | right = { { p.background, p.color2 }, { p.foreground, p.background } },
19 | middle = { { p.foreground, p.background } },
20 | },
21 | replace = {
22 | left = { { p.background, p.color1, 'bold' }, { p.foreground, p.background } },
23 | right = { { p.background, p.color1 }, { p.foreground, p.background } },
24 | middle = { { p.foreground, p.background } },
25 | },
26 | visual = {
27 | left = { { p.background, p.color3, 'bold' }, { p.background, p.background } },
28 | right = { { p.background, p.color3 }, { p.background, p.background } },
29 | middle = { { p.foreground, p.background } },
30 | },
31 | tabline = {
32 | left = { { p.foreground, p.background } },
33 | tabsel = { { p.background, p.foreground } },
34 | middle = { { p.background, p.background } },
35 | right = { { p.background, p.color5 } },
36 | },
37 | }
38 |
39 | return everblush
40 |
--------------------------------------------------------------------------------
/lua/lualine/themes/everblush.lua:
--------------------------------------------------------------------------------
1 | local p = require('everblush.palette')
2 |
3 | return {
4 | normal = {
5 | a = { bg = p.color2, fg = p.background },
6 | b = { bg = p.background, fg = p.color7 },
7 | c = { bg = p.background, fg = p.foreground },
8 | },
9 | insert = {
10 | a = { bg = p.color10, fg = p.background },
11 | b = { bg = p.background, fg = p.color4 },
12 | },
13 | command = {
14 | a = { bg = p.color1, fg = p.background },
15 | b = { bg = p.background, fg = p.color5 },
16 | },
17 | visual = {
18 | a = { bg = p.color6, fg = p.background },
19 | b = { bg = p.background, fg = p.color6 },
20 | },
21 | replace = {
22 | a = { bg = p.color1, fg = p.background },
23 | b = { bg = p.background, fg = p.color11 },
24 | },
25 | inactive = {
26 | a = { bg = p.background, fg = p.color7 },
27 | b = { bg = p.background, fg = p.foreground, gui = 'bold' },
28 | c = { bg = p.background, fg = p.foreground },
29 | },
30 | }
31 |
--------------------------------------------------------------------------------