A collection of elegant, cohesive themes for Neovim by Black Atom Industries
This repository is a Neovim adapter for the Black Atom theme ecosystem. In the Black Atom architecture:
- The core repository is the single source of truth for all theme definitions
- Each adapter implements these themes for a specific platform (Neovim, VS Code, Alacritty, etc.)
- The adapter uses templates to transform core theme definitions into platform-specific files
This modular approach ensures consistent colors and styling across all supported platforms while allowing for platform-specific optimizations.
Black Atom includes multiple theme collections, each with dark and light variants:
| Collection | Description |
|---|---|
| Default | Core Black Atom themes |
| JPN | Japanese-inspired themes |
| MNML | Minimalist accent themes |
| Stations | Space station-inspired themes |
| Terra | Earth season-inspired themes |
Install the plugin with your preferred package manager:
{
"black-atom-industries/nvim",
name = "black-atom",
priority = 1000, -- Load before other start plugins
opts = {
-- Configuration options
theme = "black-atom-jpn-koyo-yoru", -- Default theme
transparent = false, -- Enable transparent background
contrast = false, -- Enable high contrast mode
},
}Plug 'black-atom-industries/nvim'
" In your init.vim or .vimrc
lua << EOF
require('black-atom').setup({
theme = "black-atom-jpn-koyo-yoru",
transparent = false,
contrast = false,
})
EOFrequire('black-atom').setup({
-- Default theme (will be used when Neovim starts)
theme = "black-atom-jpn-koyo-yoru",
-- Enable transparent background
transparent = false,
-- Enable high contrast mode
contrast = false,
-- Override specific highlight groups
overrides = {
-- Add your highlight overrides here
-- Example: Normal = { bg = "#000000" }
},
})Black Atom defines the native LspKind{Function, Class, Variable, ...} highlight
groups (one per LSP CompletionItemKind) in lsp.lua.
blink.cmp/nvim-cmpconsume the shared kind-color mapping directly — no wiring required.mini.completionneeds a smallprocess_itemscallback to route the theme'sLspKind*groups to the popup. See the recipe: docs/recipes.md#color-minicompletion-kind-labels.
Click to expand supported plugins list
This theme supports the following plugins:
- arrow.nvim
- 4 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- blink.cmp
- 8 Highlight(s)
- Last updated: 2025-02-16
- Last commit: revert: rename
synvariables tosyntax
- codediff.nvim
- 31 Highlight(s)
- Last updated: 2026-03-31
- Last commit: feat(highlights/plugins): add codediff.nvim support
- diffview.nvim
- 24 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- edgy.nvim
- 5 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- flash.nvim
- 6 Highlight(s)
- Last updated: 2025-02-16
- Last commit: revert(themes): restore full parameter names
- flux.nvim
- 13 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- fyler.nvim
- 30 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- fzf-lua
- 7 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- gitsigns.nvim
- 9 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- glance.nvim
- 28 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- indent-blankline.nvim
- 2 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- mini.nvim
- 178 Highlight(s)
- Last updated: 2026-06-06
- Last commit: feat(highlights/plugins): add MiniCmdline highlight groups
- neo-tree.nvim
- 13 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- nvim-cmp
- 12 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- nvim-navbuddy
- 8 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- nvim-tree.lua
- 4 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- nvim-treesitter-context
- 2 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- obsidian.nvim
- 11 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- render-markdown.nvim
- 69 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- plugin-name
- 27 Highlight(s)
- Last updated: 2026-05-18
- Last commit: fix(highlights/plugins): override snack picker git status colors
- telescope.nvim
- 6 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- which-key.nvim
- 5 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- yazi.nvim
- 1 Highlight(s)
- Last updated: 2026-06-05
- Last commit: style(terra/mnml): refine summer and orange-light palette colors
- Minimize default highlight assignments
- The default assignment and links should be used as far as possible
- Make API stable
- Dediated Black Atom Colorscheme Picker
Clone the repository:
git clone https://github.com/black-atom-industries/nvim.git
cd nvimDev tooling is managed with mise:
mise install # lua, lua-language-server, stylua
mise run setup # luacheck (via luarocks)luacheck has no prebuilt binary, so it can't be a mise [tools] entry. Installing
lua through mise also provides luarocks (added to PATH), and the setup task
runs luarocks install luacheck into that Lua install. Note this lives under the
shared lua@5.1 install rather than the repo — re-run mise run setup if you bump
the pinned Lua version. Building luacheck's dependencies needs a C compiler
(Xcode Command Line Tools on macOS).
Run all checks (luacheck, lua-language-server, stylua):
mise run checkIndividual tasks are also available: mise run lint, mise run typecheck,
mise run fmt-check, and mise run fmt (formats in place). CI runs the same
mise run check, so a green local run matches CI.
Compiled highlights are cached to disk so theme switches are near-instant. The
cache auto-invalidates when any source file that affects highlights changes
(highlight modules under lua/black-atom/highlights/ and theme definitions
under lua/black-atom/themes/, both hashed by mtime), so regeneration via the
core CLI's deno task dev is picked up automatically on the next colorscheme
switch. To force a full rebuild, run :BlackAtomClearCache (or delete the
cache directory at stdpath('data')/black-atom/cache/).
Theme files are generated from templates using Black Atom Core. You need Deno installed.
- Edit the template files in
lua/black-atom/themes/{collection}/ - Generate theme files:
deno task generate
- Or use watch mode for live regeneration:
deno task dev
MIT - See LICENSE for details
- Black Atom Core - Core theme definitions
- Black Atom for Ghostty - Ghostty terminal adapter
- Black Atom for Zed - Zed editor adapter
- Black Atom for Obsidian - Obsidian adapter