├── 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 | logo 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 |

packer.nvim

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 |

lazy.nvim

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 |

vim-plug

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 | --------------------------------------------------------------------------------