A Neovim plugin for generating beautiful, randomized themes using Tailwind CSS colors and color theory.
- Direct commands - Jump straight to generation (
:MLTBDarkSoft,:MLTBLightNeon, etc.) - Auto-generated names - Unique, memorable names like
midnight-crystal,forest-ember - Minimal UI - Clean, distraction-free theme browsing
- 7 style presets: truly random, soft, neon, vibrant, monochrome, nature, pastel
- Smart color theory algorithms (complementary, triadic, analogous, monochromatic)
- Session history - navigate back and forward through generated themes
- WCAG-compliant contrast ratios for accessibility (4.5:1 minimum)
Using lazy.nvim
{
'enheit/mltb',
config = function()
require('mltb').setup()
end
}Using packer.nvim
use {
'enheit/mltb',
config = function()
require('mltb').setup()
end
}Jump straight into theme generation with direct commands:
:MLTBDark " Dark theme, truly random
:MLTBDarkSoft " Dark soft/harmonious theme
:MLTBDarkNeon " Dark high-saturation theme
:MLTBDarkVibrant " Dark triadic colors
:MLTBDarkMonochrome " Dark single-hue theme
:MLTBDarkNature " Dark earth tones
:MLTBDarkPastel " Dark muted colors
:MLTBLight " Light theme, truly random
:MLTBLightSoft " Light soft/harmonious theme
:MLTBLightNeon " Light high-saturation theme
:MLTBLightVibrant " Light triadic colors
:MLTBLightMonochrome" Light single-hue theme
:MLTBLightNature " Light earth tones
:MLTBLightPastel " Light muted colorsOr use the classic menu for step-by-step selection:
:MLTBStartThis will:
- Prompt you to choose dark or light theme
- Prompt you to choose a style preset
- Generate and apply the first theme
Once a theme is generated, a minimal UI appears with:
[1/5] midnight-crystal
[N] Next [P] Prev [S] Save [Q] Quit
N- Next (generate new theme or move forward in history)P- Prev (go back to previous theme)S- Save (save theme with auto-generated name)Q- Quit (close without saving)
- truly random - Completely random colors, no rules
- soft - Analogous color scheme, muted saturation, harmonious
- neon - High saturation, vibrant, complementary colors
- vibrant - Triadic scheme with bold, high-contrast colors
- monochrome - Single hue with varying lightness levels
- nature - Earth tones (greens, browns, teals, ambers)
- pastel - Desaturated, soft, gentle colors
require('mltb').setup({
-- Directory where generated themes are saved
themes_dir = vim.fn.stdpath('config') .. '/themes',
})By default, themes are saved to:
~/.config/nvim/themes/
Each theme is a standalone .lua file that can be:
- Used with
:colorscheme <theme-name> - Manually edited
- Shared with others
- Selected with MLTS (My Lovely Theme Selector)
Each theme gets a unique, memorable name like:
midnight-crystalforest-emberazure-silkstorm-shadowlavender-mistcrimson-stoneocean-dream
Names are generated from ~200 carefully curated words in each category, giving you thousands of unique combinations.
Quick workflow:
- Run
:MLTBDarkSoft - See theme name:
[1/1] twilight-amber - Press
Nto try more variations - Press
Pto go back to one you liked - Press
Sto save it - Use
:colorscheme twilight-amberanytime
Or with menu:
- Run
:MLTBStart - Select "dark"
- Select "soft"
- Navigate with
N/P - Save with
S
MLTB uses proper color theory algorithms:
- HSL color space for transformations
- Complementary - 180° opposite on color wheel
- Triadic - 120° apart for vibrant palettes
- Analogous - ±30° for harmonious schemes
- Monochromatic - Single hue, varying lightness
- WCAG AA contrast compliance (4.5:1 minimum)
MIT