See more details in Features and help file.
⦿ 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 the repository page to learn about common design principles and configuration recipes.
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-hues.mp4
Sample screenshots of 'randomhue' color scheme which uses 'mini.hues' with randomly generated background and foreground of same hue (color will change on every :colorscheme randomhue
call):
-- Choose background and foreground
require('mini.hues').setup({ background = '#351721', foreground = '#cdc4c6' }) -- red
require('mini.hues').setup({ background = '#361a0d', foreground = '#cdc5c1' }) -- orange
require('mini.hues').setup({ background = '#2c2101', foreground = '#c9c6c0' }) -- yellow
require('mini.hues').setup({ background = '#17280e', foreground = '#c4c8c2' }) -- green
require('mini.hues').setup({ background = '#002923', foreground = '#c0c9c7' }) -- cyan
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc' }) -- azure
require('mini.hues').setup({ background = '#19213a', foreground = '#c4c6cd' }) -- blue
require('mini.hues').setup({ background = '#2b1a33', foreground = '#c9c5cb' }) -- purple
-- Different number of non-base hues
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', n_hues = 6 })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', n_hues = 4 })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', n_hues = 2 })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', n_hues = 0 })
-- Different text saturation
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', saturation = 'low' })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', saturation = 'lowmedium' })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', saturation = 'medium' })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', saturation = 'mediumhigh' })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', saturation = 'high' })
-- Choose accent color
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', accent = 'yellow' })
require('mini.hues').setup({ background = '#002734', foreground = '#c0c8cc', accent = 'blue' })
-
Required to set two base colors: background and foreground. Their shades and other non-base colors are computed to be as much perceptually different as reasonably possible.
-
Configurable:
- Number of hues used for non-base colors (from 0 to 8).
- Saturation level ('low', 'lowmedium', 'medium', 'mediumhigh', 'high').
- Accent color used for some selected UI elements.
- Plugin integration (can be selectively enabled for faster startup).
-
Random generator for base colors. Powers
randomhue
color scheme. -
Lua function to compute palette used in color scheme.
Supported highlight groups:
-
All built-in UI and syntax groups.
-
Built-in Neovim LSP and diagnostic.
-
Tree-sitter.
-
LSP semantic tokens.
-
Plugins (either with explicit definition or by verification that default highlighting works appropriately):
- echasnovski/mini.nvim
- akinsho/bufferline.nvim
- anuvyklack/hydra.nvim
- DanilaMihailov/beacon.nvim
- folke/lazy.nvim
- folke/noice.nvim
- folke/todo-comments.nvim
- folke/trouble.nvim
- folke/which-key.nvim
- ggandor/leap.nvim
- glepnir/dashboard-nvim
- glepnir/lspsaga.nvim
- HiPhish/rainbow-delimiters.nvim
- hrsh7th/nvim-cmp
- justinmk/vim-sneak
- kevinhwang91/nvim-bqf
- kevinhwang91/nvim-ufo
- lewis6991/gitsigns.nvim
- lukas-reineke/indent-blankline.nvim
- neoclide/coc.nvim
- NeogitOrg/neogit
- nvim-lualine/lualine.nvim
- nvim-neo-tree/neo-tree.nvim
- nvim-telescope/telescope.nvim
- nvim-tree/nvim-tree.lua
- phaazon/hop.nvim
- rcarriga/nvim-dap-ui
- rcarriga/nvim-notify
- rlane/pounce.nvim
- romgrk/barbar.nvim
- stevearc/aerial.nvim
- williamboman/mason.nvim
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).stable
will be updated only upon releases with code tested during public beta-testing phase inmain
branch.
Here are code snippets for some common installation methods (use only one):
With mini.deps
Github repo | Branch | Code snippet |
---|---|---|
'mini.nvim' library | Main | Follow recommended 'mini.deps' installation |
Stable | ||
Standalone plugin | Main | add('echasnovski/mini.hues') |
Stable | add({ source = 'echasnovski/mini.hues', checkout = 'stable' }) |
With folke/lazy.nvim
Github repo | Branch | Code snippet |
---|---|---|
'mini.nvim' library | Main | { 'echasnovski/mini.nvim', version = false }, |
Stable | { 'echasnovski/mini.nvim', version = '*' }, |
|
Standalone plugin | Main | { 'echasnovski/mini.hues', version = false }, |
Stable | { 'echasnovski/mini.hues', version = '*' }, |
With junegunn/vim-plug
Github repo | Branch | Code snippet |
---|---|---|
'mini.nvim' library | Main | Plug 'echasnovski/mini.nvim' |
Stable | Plug 'echasnovski/mini.nvim', { 'branch': 'stable' } |
|
Standalone plugin | Main | Plug 'echasnovski/mini.hues' |
Stable | Plug 'echasnovski/mini.hues', { 'branch': 'stable' } |
Important: don't forget to call require('mini.hues').setup()
with background
and foreground
fields to enable its functionality.
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.
-- No need to copy this inside `setup()`. Will be used automatically.
{
-- **Required** base colors as '#rrggbb' hex strings
background = nil,
foreground = nil,
-- Number of hues used for non-base colors
n_hues = 8,
-- Saturation. One of 'low', 'lowmedium', 'medium', 'mediumhigh', 'high'.
saturation = 'medium',
-- Accent color. One of: 'bg', 'fg', 'red', 'orange', 'yellow', 'green',
-- 'cyan', 'azure', 'blue', 'purple'
accent = 'bg',
-- Plugin integrations. Use `default = false` to disable all integrations.
-- Also can be set per plugin (see |MiniHues.config|).
plugins = { default = true },
}