A dark Neovim colorscheme inspired by the iconic color from the Love, Death & Robots episode — Zima Blue.
The exact hex code for Zima Blue is #5BC2E7 (PANTONE 2985 C).
In the episode Zima Blue, the mysterious artist Zima reveals his origin as a small pool-cleaning robot, and the blue tile that defined his existence becomes the symbol of his journey — from simple function to cosmic art, and back again.
This colorscheme captures that atmosphere: a deep, dark void of space punctuated by that unmistakable cyan-blue glow. Not harsh, not clinical — just a calm, focused coding environment with the Zima Blue as its soul.
@keyword, @function, @string, etc.)@lsp.type.*, @lsp.mod.*):help zimablue.nvimon_colors and on_highlights callbacks for complete customizationEach variant is a distinct color palette inspired by a scene from the episode.
Use them directly via :colorscheme — no setup required.
| Colorscheme | Scene | Vibe |
|---|---|---|
zimablue |
Deep space (default) | Dark blue-black void, classic Zima Blue |
zimablue-sunset |
Golden horizon | Warm orange-gold tones against dusk |
zimablue-pool |
The tiled swimming pool | Teal water, pale ceramic reflections |
zimablue-volcano |
Volcanic eruption | Lava reds, molten oranges, black rock |
zimablue-storm |
Abyssal ocean depths | Moody teals, deep grays, foam white |
vim.cmd.colorscheme("zimablue-sunset")
| Color | Hex | Description |
|---|---|---|
#5BC2E7 |
Zima Blue (PANTONE 2985 C) — primary accent | |
#16B8F3 |
Zima Blue Light — special methods, headings | |
#28C5F4 |
Zima Blue Bold — operators, active selection |
| Color | Hex | Description |
|---|---|---|
#0A0F1A |
Deep space blue-black — main editor background | |
#111827 |
Sidebars, panels, float windows | |
#182340 |
Cursor line, hover, selection backgrounds | |
#1E3555 |
Search matches, visual selection | |
#0D1423 |
Line comment background |
| Color | Hex | Description |
|---|---|---|
#D4D6E0 |
Primary text | |
#8B92A8 |
Secondary / dim text | |
#565E78 |
Inactive / placeholder text |
| Color | Hex | Description |
|---|---|---|
#5A6380 |
Muted blue-gray comments |
| Color | Hex | Description |
|---|---|---|
#2E3852 |
Non-text characters, line numbers, folds | |
#1E2740 |
Split borders, float borders |
| Color | Hex | Description |
|---|---|---|
#61AFEF |
Blue — keywords, control flow, types | |
#56B6C2 |
Cyan — support types, special characters | |
#98C379 |
Green — strings, additions, success | |
#E5C07B |
Yellow — numbers, modifications, warnings | |
#D19A66 |
Orange — debug, log levels, danger | |
#E06C75 |
Red — errors, deletions, diffs | |
#C678DD |
Purple — preprocessor, special keywords |
| Color | Hex | Description |
|---|---|---|
#4A90D9 |
Nebula Blue — secondary UI elements | |
#7C5FBF |
Nebula Purple — space keywords | |
#FF8C42 |
Sunset Orange — warm warnings | |
#FF5370 |
Lava Red — bright errors | |
#5FD7A0 |
Aurora Green — success / UI | |
#2E3440 |
Volcanic Gray — UI alternative | |
#ECEFF4 |
Star White — bright foreground emphasis |
{ "tan-wei/zimablue.nvim", lazy = true }
Then add the colorscheme to your theme selector or set it directly:
vim.cmd.colorscheme("zimablue")
require("zimablue").setup({
transparent = false, -- Enable transparent background
terminal_colors = true, -- Enable terminal ANSI colors
dim_inactive = false, -- Dim inactive windows
italic = true, -- Enable italics for comments
bold = true, -- Enable bold for some keywords
})
vim.cmd.colorscheme("zimablue")
You can also set the variant from your config using the variant option:
require("zimablue").setup({
variant = "sunset",
transparent = false,
})
vim.cmd.colorscheme("zimablue")
Fine-tune syntax group styles (italic, bold, underline, etc.):
require("zimablue").setup({
styles = {
comments = { italic = true },
keywords = { italic = true },
functions = { bold = true },
variables = {},
},
})
Fully customize any color or highlight group:
require("zimablue").setup({
on_colors = function(colors)
-- Override any color in the palette
colors.zima_blue = "#16B8F3"
colors.line_nr_above = "#5C89B8"
colors.line_nr_below = "#8A7258"
end,
on_highlights = function(highlights, colors)
-- Set or override any highlight group
highlights.Normal = { fg = colors.fg, bg = colors.bg }
end,
})
zimablue.nvim includes highlight groups for common editor, LSP, completion, Git, testing, Markdown, AI completion, terminal UI, and navigation plugins.
| Category | Plugins |
|---|---|
| Completion | blink.cmp, nvim-cmp, Codeium, Copilot, Supermaven |
| File trees and navigation | Neo-tree, NvimTree, Aerial, Navic, Telescope, FzfLua, Snacks picker, MiniPick |
| Git | Gitsigns, vim-gitgutter, Neogit, Octo, Diffview-style groups |
| Diagnostics and LSP UI | ALE, Trouble, Noice, Notify, Lspsaga, Illuminate |
| Debug and test | nvim-dap, Dap UI, Neotest, Overseer |
| Statusline and buffers | lualine, bufferline.nvim, barbar.nvim, mini.statusline |
| Startup and dashboard | alpha-nvim, dashboard-nvim, snacks.nvim dashboard, mini.starter |
| Motion and search | Flash, Hop, Leap, Sneak, GrugFar |
| Indent and context | indent-blankline.nvim, indentmini.nvim, mini.indentscope, Treesitter Context |
| Markdown and writing | render-markdown.nvim, headlines.nvim, Vimwiki |
| UI helpers | WhichKey, Lazy.nvim, Scrollbar, Rainbow Delimiters, glyph-palette.nvim, Yanky |
| Terminal | ToggleTerm |
| Mini.nvim modules | animate, clue, completion, cursorword, deps, diff, files, hipatterns, icons, jump, jump2d, map, notify, pick, starter, statusline, surround, tabline, test, trailspace |
| Misc | Sidekick, SnipRun |
Generated themes are available under extras/ for each variant: zimablue, zimablue-sunset, zimablue-pool, zimablue-volcano, and zimablue-storm.
| Tool | Path |
|---|---|
| Aerc | extras/aerc/ |
| Aider | extras/aider/ |
| Alacritty | extras/alacritty/ |
| Btop | extras/btop/ |
| Delta | extras/delta/ |
| eza | extras/eza/ |
| Fish | extras/fish/ |
| Fish themes | extras/fish_themes/ |
| Foot | extras/foot/ |
| Fzf | extras/fzf/ |
| Ghostty | extras/ghostty/ |
| GitUI | extras/gitui/ |
| GNOME Terminal | extras/gnome_terminal/ |
| Helix | extras/helix/ |
| iSH | extras/ish/ |
| Kitty | extras/kitty/ |
| Konsole | extras/konsole/ |
| Lazygit | extras/lazygit/ |
| process-compose | extras/process_compose/ |
| QTerminal | extras/qterminal/ |
| st | extras/st/ |
| Spotify Player | extras/spotify_player/ |
| Terminator | extras/terminator/ |
| Termux | extras/termux/ |
| Tilix | extras/tilix/ |
| Tmux | extras/tmux/ |
| Vim | extras/vim/ |
| WezTerm | extras/wezterm/ |
| Windows Terminal | extras/windows_terminal/ |
| Xfce Terminal | extras/xfceterm/ |
| Xresources | extras/xresources/ |
| Yazi | extras/yazi/ |
| Zathura | extras/zathura/ |
| Zellij | extras/zellij/ |
Regenerate extras after changing palette values:
nvim --headless -u NONE -l scripts/generate_extras.lua
Run the spec suite:
nvim --headless -u NONE -l tests/minit.lua
Run the smoke test:
nvim --headless -u NONE -l tests/smoke.lua
Check generated extras:
nvim --headless -u NONE -l scripts/generate_extras.lua --check
Check help docs:
nvim --headless -u NONE --cmd 'set rtp+=.' --cmd 'helptags doc' --cmd 'qa!'
MIT