tan-wei/zimablue.nvim

github github
colorscheme
stars 1
issues 0
subscribers 0
forks 0
CREATED

UPDATED


zimablue.nvim

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

Inspiration

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.

Features

  • 5 scene-inspired variants — from deep space to volcanic eruptions
  • Full Treesitter support (@keyword, @function, @string, etc.)
  • LSP semantic token highlighting (@lsp.type.*, @lsp.mod.*)
  • Plugin support: Telescope, WhichKey, Neo-tree/NvimTree, Gitsigns, Lazy, Noice, DAP, Blink/Cmp, and more
  • Terminal ANSI 16-color support (per variant)
  • Generated CUI/TUI/terminal themes for 34 tools
  • Vim help docs via :help zimablue.nvim
  • Configurable transparent background, dim inactive windows, italics, bold, and style overrides
  • on_colors and on_highlights callbacks for complete customization

Variants

Each 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")

Palette

Zima Blue Core

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

Backgrounds

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

Foregrounds

Color Hex Description
#D4D6E0 Primary text
#8B92A8 Secondary / dim text
#565E78 Inactive / placeholder text

Comments

Color Hex Description
#5A6380 Muted blue-gray comments

UI Elements

Color Hex Description
#2E3852 Non-text characters, line numbers, folds
#1E2740 Split borders, float borders

Syntax Colors

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

Scene-Inspired Accents

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

Installation

lazy.nvim

{ "tan-wei/zimablue.nvim", lazy = true }

Then add the colorscheme to your theme selector or set it directly:

vim.cmd.colorscheme("zimablue")

Configuration

Basic

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")

Variant via setup

You can also set the variant from your config using the variant option:

require("zimablue").setup({
  variant = "sunset",
  transparent = false,
})

vim.cmd.colorscheme("zimablue")

Style Overrides

Fine-tune syntax group styles (italic, bold, underline, etc.):

require("zimablue").setup({
  styles = {
    comments  = { italic = true },
    keywords  = { italic = true },
    functions = { bold = true },
    variables = {},
  },
})

Callbacks

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

Supported Plugins

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

Extras

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

Development

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!'

License

MIT

TODO

  • Screenshots — Add side-by-side screenshots of each variant (default, sunset, pool, volcano, storm) showing syntax highlighting in common languages
  • Generated extras — Add palette-driven themes for terminal and CUI/TUI tools
  • Tests and CI — Add specs, smoke tests, generated extras checks, and help docs checks
  • More plugin support — Add highlight groups for community-requested plugins as requests come in

Credits

  • Inspired by the Love, Death & Robots episode Zima Blue
  • Architecture inspired by tokyonight.nvim