mini.hues

mini.hues

Generated from the main branch of ‘mini.nvim’

Generate configurable 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

Bundled color schemes

Four seasons

  • miniwinter: “icy winter” palette with azure background

miniwinter dark miniwinter light

  • minispring: “blooming spring” palette with green background

minispring dark minispring light

  • minisummer: “hot summer” palette with brown/yellow background

minisummer dark minisummer light

  • miniautumn: “cooling autumn” palette with purple background

miniautumn dark miniautumn light

randomhue

randomhue uses randomly generated background and foreground of same hue (color will change on every :colorscheme randomhue call):

Dark purple Light purple

Dark azure Light azure

Dark green Light green

Dark orange Light orange

Example configurations

-- 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' })

Features

  • 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.

  • Bundled color schemes. See bundled-color-schemes.

Supported highlight groups:

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).
  • stable will be updated only upon releases with code tested during public beta-testing phase in main branch.

Here are code snippets for some common installation methods (use only one):

With mini.deps
  • ‘mini.nvim’ library:

    Branch Code snippet
    Main Follow recommended ‘mini.deps’ installation
    Stable Follow recommended ‘mini.deps’ installation
  • Standalone plugin:

    Branch Code snippet
    Main add(‘nvim-mini/mini.hues’)
    Stable add({ source = ‘nvim-mini/mini.hues’, checkout = ‘stable’ })
With folke/lazy.nvim
  • ‘mini.nvim’ library:

    Branch Code snippet
    Main { 'nvim-mini/mini.nvim', version = false },
    Stable { 'nvim-mini/mini.nvim', version = '*' },
  • Standalone plugin:

    Branch Code snippet
    Main { 'nvim-mini/mini.hues', version = false },
    Stable { 'nvim-mini/mini.hues', version = '*' },
With junegunn/vim-plug
  • ‘mini.nvim’ library:

    Branch Code snippet
    Main Plug 'nvim-mini/mini.nvim'
    Stable Plug 'nvim-mini/mini.nvim', { 'branch': 'stable' }
  • Standalone plugin:

    Branch Code snippet
    Main Plug 'nvim-mini/mini.hues'
    Stable Plug 'nvim-mini/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.

Default config

-- 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 },

  -- Whether to auto adjust highlight groups based on certain events
  autoadjust = true,
}

Similar plugins