I contributed to (mostly) 14 top-rated Neovim color schemes. Here are some observations
Originally posted on Reddit
Some time ago I decided to improve user experience for my mini.nvim plugin by adding its explicit support to popular color schemes. Although out of the box experience should be pretty good (most coloring is done by linking to carefully selected builtin highlight groups), having them tailored to color scheme choices is certainly better.
So I went to rockerBoo/awesome-neovim and selected a handful of color schemes subjectively judging by the number of Github stars, time since latest commit, and language of plugin (Lua preferred). It was not a very scientifically rigorous process which lead to 14 chosen color schemes.
Here is a table of how those contributions went. Now, I want to state right away that this is no way, shape, or form should be used to judge how actively those maintainers watch for their projects. Everyone is different and has limited amount of time in a day. This is only a data about my experience at some point in past.
Color scheme PR | Language | Time to first reaction | Outcome |
---|---|---|---|
bluz71/vim-moonfly-colors | Vimscript | ~ 1 day | Revised and accepted |
bluz71/vim-nightfly-guicolors | Vimscript | ~ 1 day | Revised and accepted |
catppuccin/nvim | Lua | ~ 6 days | Merged |
EdenEast/nightfox.nvim | Lua | ~ 1 day | Merged |
folke/tokyonight.nvim | Lua | > 14 days (no reaction yet) | Open |
marko-cerovac/material.nvim | Lua | ~ 3 days | Merged |
navarasu/onedark.nvim | Lua | ~ 1 day | Merged |
projekt0n/github-nvim-theme | Lua | ~ 1 day | Merged |
rebelot/kanagawa.nvim | Lua | ~ 7 days | Waiting for approval |
sainnhe/edge | Vimscript | ~ 1 day | Merged |
sainnhe/everforest | Vimscript | ~ 1 day | Merged |
sainnhe/gruvbox-material | Vimscript | ~ 1 day | Merged |
sainnhe/sonokai | Vimscript | ~ 1 day | Merged |
shaunsingh/nord.nvim | Lua | ~ 1 day | Merged |
Some personal observations after all this was done:
Having the easily found documentation about how to add plugin support is really useful. Most of contributions were pretty straightforward, but I did end up searching for commits to get a sense of preferred workflow.
Having the ability to link new highlight groups to existing ones makes contributing considerably easier. I understand its possible absence, but nevertheless.
Having explicit support for many plugins really helps with adding new ones. It adds more information about design principles of color scheme.
My two personal favorites from aesthetic point of view are ‘Terafox’ from ‘EdenEast/nightfox.nvim’ and ‘sainnhe/everforest’. This even prompted me to create a new color scheme for ‘mini.nvim’ which I am currently testing.
Hope it was interesting. Also, please consider adding similar ‘mini.nvim’ explicit support for other color schemes (yours or ones you are using). Thanks!