๐ ๐ Starry ๐ ๐
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
Why this repo:
- 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
Credits:
- 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
material.vim
moonlight.nvim
transparent mode
non-transparent mode
Dracula
Color palettes from github.com/dracula/vim
Dracula_blood
Monokai
Color palettes from colors/monokai.vim
Mariana
The sublime 4.0 default color scheme
Color palettes from twolfson/sublime-files
Please check README of starry.nvim project for setups.
Emerald
I heard green can reduce eye strain :-P
Middlenight_blue
Earlysummer
Colorful colorscheme
Dark solar
Nighttime and daytime
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
limestone
The only light colorschem
Ukraine
Yellow text on blue background. Color palette from Ukraine nation flag.
Supported Plugins
All the plugins supported by starry.nvim, e.g. Treesitter, LSP, Telescope, NvimTree...
nvim-cmp
:
install
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}
Example Setup
let starry_bold = v:true "set to false to disable bold globally
let starry_italic = v:true "set to false to disable italic globally
let starry_italic_comments = v:true
let starry_italic_string = v:false
let starry_italic_keywords = v:false
let starry_italic_functions = v:false
let starry_italic_variables = v:false
let starry_contrast = v:true
let starry_borders = v:false
let starry_disable_background = v:false "set to true to disable background and allow transparent background
let starry_style_fix=v:true "disable random loading
let starry_style="moonlight" "load moonlight everytime or
let starry_darker_contrast=v:true "darker background
let starry_deep_black=v:false "OLED deep black
let starry_italic_keywords=v:false
let starry_italic_functions=v:false
let starry_set_hl=v:false " Note: enable for nvim 0.6+, it is faster (loading time down to 4~6s from 7~11s), but it does
" not overwrite old values and may has some side effects
let starry_daylight_switch=false "this allow using brighter color
" other themes: dracula, oceanic, dracula_blood, 'deep ocean', darker, palenight, monokai, mariana, emerald, middlenight_blue
Toggle style
: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')