A collection of colorschemes for neovim (Neovim 8.0+ required), written in lua. This first version of starry plugin was built based on
Following colorschemes were added later on:
- Moonlight (Low contrast bluish clean and elegant color theme)
- Dracula & Dracula_blood theme
- Monokai (Based on Sublime Build 3)
- Mariana (The latest Sublime (Build 4) builtin color scheme) and Mariana_lighter
- Emerald (Low contrast green color scheme)
- Middlenight_blue (The theme to use in middle night)
- Earlysummer (more vivid colors) and Earlysummer_lighter
- Darksolar (dark solarized)
- Ukraine yellow text on blue background
- All-In-One
- Better color contrast and easy for eyes tuning for material.nvim and moonlight.nvim
- Colorscheme color random loading (loading from Deep ocean, Oceanic, Palenight, Lighter, Darker, moonlight, dracula, monokai, mariana, emerald, middlenight_blue, earlysummer randomly )
- Built with latest neovim API
- Tracking latest neovim/lsp/treesitter highlight updates. e.g.
NormalFloat
,FloatShadow
,LspReferenceRead/Write
- Random loading
- Daylight mode, tune the color for daytime
- Transparent background ready
- marko-cerovac For the material color palettes. The lua color scheme framework
- shaunsingh for his work of schemes based on material
The basic color palettes of material is from material.vim
Color palettes from github.com/dracula/vim
Color palettes from colors/monokai.vim
The sublime 4.0 default color scheme
Color palettes from twolfson/sublime-files
Please check README of starry.nvim project for setups.
I heard green can reduce eye strain :-P
Colorful colorscheme
Some of the scheme allow choose nighttime and day time mode, you can set starry_daylight_switch to true to turn on this feature. Here is an example for nighttime and daytime for earlysummer color scheme
The only light colorschem
Yellow text on blue background. Color palette from Ukraine nation flag.
All the plugins supported by starry.nvim, e.g. Treesitter, LSP, Telescope, NvimTree...
nvim-cmp
:
Plug
Plug 'ray-x/starry.nvim'
packer:
use {'ray-x/starry.nvim', setup = function()
-- see example setup below
vim.g.starry_italic_comments = true
...
end}
Note: vim way of setting up global variable is deprecated, please use lua way to setup color scheme
local config = {
border = false, -- Split window borders
hide_eob = true, -- Hide end of buffer
italics = {
comments = false, -- Italic comments
strings = false, -- Italic strings
keywords = false, -- Italic keywords
functions = false, -- Italic functions
variables = false -- Italic variables
},
contrast = { -- Select which windows get the contrast background
enable = true, -- Enable contrast
terminal = true, -- Darker terminal
filetypes = {}, -- Which filetypes get darker? e.g. *.vim, *.cpp, etc.
},
text_contrast = {
lighter = false, -- Higher contrast text for lighter style
darker = false -- Higher contrast text for darker style
},
disable = {
background = false, -- true: transparent background
term_colors = false, -- Disable setting the terminal colors
eob_lines = false -- Make end-of-buffer lines invisible
},
style = {
name = 'moonlight', -- Theme style name (moonlight, earliestsummer, etc.)
-- " other themes: dracula, oceanic, dracula_blood, 'deep ocean', darker, palenight, monokai, mariana, emerald, middlenight_blue
disable = {}, -- a list of styles to disable, e.g. {'bold', 'underline'}
fix = true,
darker_contrast = false, -- More contrast for darker style
daylight_swith = false, -- Enable day and night style switching
deep_black = false, -- Enable a deeper black background
},
custom_colors = {
variable = '#f797d7',
},
custom_highlights = {
LineNr = { fg = '#777777' },
Idnetifier = { fg = '#ff4797' },
}
}
require('starry').setup(config)
Toggle style
```vim
:colorscheme starry " this allow pickup a colorscheme randomly
:colorscheme mariana " this allow switch to mariana
or
:lua require('starry.functions').toggle_style()
or
:Starry
Change to specific style
:Starry dracula_blood
lua require('starry.functions').change_style("dracula_blood")
override default color group, please also check material.nvim Configuration Example:
local starry = require 'starry'
local colors = require 'starry.colors'
starry.setup{
custom_highlights = {
LineNr = { bg = '#9F809E' }
CursorLine = { fg = colors.editor.constrast , underline = true },
-- This is a list of possible values
-- override @string of treesitter
@string = {
fg = "#339922", -- foreground color
bg = "NONE", -- background color
sp = "#779988", -- special color (for colored underlines, undercurls...)
bold = false, -- make group bold
italic = false, -- make group italic
underline = false, -- make group underlined
undercurl = false, -- make group undercurled
underdot = false, -- make group underdotted
underdash = false -- make group underslashed
striketrough = false, -- make group striked trough
reverse = false, -- reverse the fg and bg colors
link = "Comment" -- link to some other highlight group
}
},
-- Custom colors must be a function that takes in the default colors table as
-- a paramter, and then modifies them.
-- To se the available colors, see lua/material/colors/init.lua
custom_colors = function(colors)
colors.editor.bg = "#SOME_COLOR"
colors.main.purple = "#SOME_COLOR"
colors.lsp.error = "#SOME_COLOR"
end
}
vim.cmd('colorscheme oceanic')