A minimalist dark colorscheme for Neovim with faded, washed-out colors designed for long coding sessions.
- Neovim >= 0.11.0
- True color support (
set termguicolors)
{
"PrajwalChigod/phantom.nvim",
priority = 1000,
config = function()
require("phantom").setup()
vim.cmd("colorscheme phantom")
end,
}use {
"PrajwalChigod/phantom.nvim",
config = function()
require("phantom").setup()
vim.cmd("colorscheme phantom")
end
}Plug 'PrajwalChigod/phantom.nvim'Then in your init.vim or init.lua:
require("phantom").setup()
vim.cmd("colorscheme phantom")-- Lua
require("phantom").setup()
vim.cmd("colorscheme phantom")" Vimscript
lua require("phantom").setup()
colorscheme phantomPhantom includes a custom Lualine theme that matches the colorscheme:
require("lualine").setup {
options = {
theme = require("phantom").lualine()
}
}You can access the color palette for custom configurations:
local palette = require("phantom").palette()
-- Use palette colors in your custom configurations
-- palette.blue, palette.red, palette.fg, etc.Phantom includes native support for:
- lualine.nvim - Statusline
- bufferline.nvim - Buffer/tab line
- gitsigns.nvim - Git decorations
- toggleterm.nvim - Terminal management
- fzf-lua - Fuzzy finder
More integrations coming soon!
- Background:
hsl(30, 5, 10)- Warm dark background - Surface:
hsl(0, 0, 15)- Elevated surfaces
- Primary:
hsl(0, 0, 60)- Main text - Dimmed:
hsl(0, 0, 50)- Secondary text - Dark:
hsl(0, 0, 40)- Comments, line numbers
- Blue
hsl(220, 25, 55)- Functions, keywords - Marsala
hsl(10, 40, 35)- Types, structures - Orange
hsl(40, 30, 50)- Numbers, literals
- Red
hsl(0, 38, 50)- Errors - Yellow
hsl(45, 35, 55)- Warnings - Green
hsl(140, 22, 52)- Success, hints
Phantom supports various configuration options for customization and performance optimization.
require("phantom").setup({
-- Enable/disable plugin integrations
integrations = {
bufferline = true,
gitsigns = true,
toggleterm = true,
fzf_lua = true,
lualine_highlights = true,
},
-- Cache compiled theme for faster subsequent loads (recommended)
cache = true,
})If you don't use certain plugins, you can disable their integrations to reduce load time:
require("phantom").setup({
integrations = {
bufferline = false, -- Disable if you don't use bufferline
gitsigns = true,
toggleterm = false, -- Disable if you don't use toggleterm
fzf_lua = true,
lualine_highlights = true,
},
})For even faster startup times, you can use Phantom's lazy loading feature:
-- In your plugin manager config
{
"PrajwalChigod/phantom.nvim",
lazy = true, -- Don't load immediately
init = function()
-- Setup lazy loading trigger
require("phantom").lazy_load()
end,
}
-- Later, when you want to activate the colorscheme
vim.cmd("colorscheme phantom")Disable caching if you're actively developing the colorscheme:
require("phantom").setup({
cache = false, -- Disable for debugging/development
})To clear the theme cache (useful when updating the colorscheme):
vim.g.phantom_theme_loaded = nilContributions are welcome! Please feel free to submit issues or pull requests.
When reporting issues, please include:
- Neovim version (
:version) - Steps to reproduce
- Screenshots if applicable
To modify the colorscheme:
- Edit
lua/phantom/palette.luafor color definitions (hex values) - Edit
lua/phantom/theme.luafor base highlight groups - Edit
lua/phantom/integrations/*.luafor plugin-specific highlights - Reload with
:luafileor restart Neovim
- palette.lua: Color definitions as hex values
- theme.lua: Base highlight groups using
vim.api.nvim_set_hl() - integrations/: Plugin-specific highlight groups
- init.lua: Setup and configuration management
- Inspired by minimalist colorscheme design principles
- Zero dependencies achieved through native Neovim API usage