Tweak and save any color scheme. Part of 'mini.nvim' library.
Tweak and save any color scheme
See more details in Features and Documentation.
[!NOTE]
This was previously hosted at a personal echasnovski GitHub account. It was transferred to a dedicated organization to improve long term project stability. See more details here.
โฆฟ This is a part of mini.nvim library. Please use this link if you want to mention this module.
โฆฟ All contributions (issues, pull requests, discussions, etc.) are done inside of 'mini.nvim'.
โฆฟ See whole library documentation to learn about general design principles, disable/configuration recipes, and more.
โฆฟ See MiniMax for a full config example that uses this module.
If you want to help this project grow but don't know where to start, check out contributing guides of 'mini.nvim' or leave a Github star for 'mini.nvim' project and/or any its standalone Git repositories.
Demo
https://user-images.githubusercontent.com/24854248/232283566-9a51fa55-d20a-4650-8205-763b55e21366.mp4
Features
- Create colorscheme object (see
:h MiniColors-colorscheme): either manually (:h MiniColors.ascolorscheme()) or by querying present color schemes (including currently active one; see:h MiniColors.getcolorscheme()).
- Infer data about color scheme and/or modify based on it:
- Modify colors to better fit your taste and/or goals:
- Once color scheme is ready, either apply it to see effects right away or write it into a Lua file as a fully functioning separate color scheme.
- Experiment interactively with a feedback.
- Animate transition between color schemes either with
MiniColors.animate()or with:Colorschemeuser command.
- Convert within supported color spaces (
MiniColors.convert()):
Tweak quick start
- Execute
:lua require('mini.colors').interactive(). - Experiment by writing calls to exposed color scheme methods and applying them with
<M-a>. For more information, see:h MiniColors-colorscheme-methodsand:h MiniColors-recipes. - If you are happy with result, write color scheme with
<M-w>. If not, reset to initial color scheme with<M-r>. - If only some highlight groups can be made better, adjust them manually inside written color scheme file.
Installation
This plugin can be installed as part of 'mini.nvim' library (recommended) or as a standalone Git repository.
There are two branches to install from:
main(default, recommended) will have latest development version of plugin. All changes since last stable release should be perceived as being in beta testing phase (meaning they already passed alpha-testing and are moderately settled).stablewill be updated only upon releases with code tested during public beta-testing phase inmainbranch.
(Recommended) With vim.pack (on Neovim 0.12 and newer)
Full library
Follow 'mini.nvim' installation.
Standalone plugin
Main branch:
vim.pack.add({ 'https://github.com/nvim-mini/mini.colors' })
Stable branch:
vim.pack.add({
{ src = 'https://github.com/nvim-mini/mini.colors', version = 'stable' },
})
With mini.deps (before Neovim 0.12)
Full library
Follow recommended 'mini.deps' installation.
Standalone plugin:
Main branch:
add('nvim-mini/mini.colors')
Stable branch:
add({ source = 'nvim-mini/mini.colors', checkout = 'stable' })
With folke/lazy.nvim
Full library
Follow 'mini.nvim' installation.
Standalone plugin
Main branch:
{ 'nvim-mini/mini.colors', version = false },
Stable branch:
{ 'nvim-mini/mini.colors', version = '*' },
Important: no need to call require('mini.colors').setup(), but it can be done to improve usability.
Note: if you are on Windows, there might be problems with too long file paths (like error: unable to create file <some file name>: Filename too long). Try doing one of the following:
- Enable corresponding git global config value:
git config --system core.longpaths true. Then try to reinstall. - Install plugin in other place with shorter path.
Default config
-- No need to copy this inside setup(). Will be used automatically.
{}