A vibrant, deep dark colorscheme for Neovim (0.8+) inspired by the VS Code JellyFish theme. It features rich contrast, neon highlights, and out-of-the-box support for modern Neovim plugins, LSP diagnostics, and Tree-sitter.
- Rich Contrast: Deep blue-purple backgrounds with vivid neon highlights.
- Tree-sitter Support: Fully integrated highlighting for modern syntax trees.
- Diagnostics: Distinct and clear warning/error/info/hint styles.
- Plugin Integrations: Native styles for:
Choose your preferred package manager to install jellyfish.nvim.
1. lazy.nvim (Recommended)
Add the following to your plugin specification:
{
"pawelborkar/jellyfish.nvim",
lazy = false,
priority = 1000, -- Load this before other plugins
config = function()
vim.cmd([[colorscheme jellyfish]])
end,
}2. packer.nvim
Add the following to your plugin list:
use {
"pawelborkar/jellyfish.nvim",
config = function()
vim.cmd("colorscheme jellyfish")
end
}3. vim-plug
Add the plugin to your init.vim or init.lua:
Vimscript:
Plug 'pawelborkar/jellyfish.nvim'
" After plug#end()
colorscheme jellyfishLua:
vim.cmd [[ Plug 'pawelborkar/jellyfish.nvim' ]]
-- After plug#end()
vim.cmd("colorscheme jellyfish")Here is how you can set up jellyfish.nvim on popular Neovim distributions and IDE configurations.
1. LazyVim
To add the theme to LazyVim, create or edit lua/plugins/colorscheme.lua:
return {
-- Add the colorscheme plugin
{
"pawelborkar/jellyfish.nvim",
lazy = false,
priority = 1000,
},
-- Configure LazyVim to load it
{
"LazyVim/LazyVim",
opts = {
colorscheme = "jellyfish",
},
}
}2. NvChad (v2.5+)
- Register the plugin by creating/updating
lua/plugins/init.lua:
return {
{
"pawelborkar/jellyfish.nvim",
lazy = false,
priority = 1000,
},
}- Force the colorscheme load inside
lua/chadrc.luaorlua/custom/init.lua:
-- Since NvChad defaults to its own theme manager, you can override it:
vim.api.nvim_create_autocmd("User", {
pattern = "NvChadInit",
callback = function()
vim.cmd("colorscheme jellyfish")
end,
})3. LunarVim
Add the colorscheme plugin to lvim.plugins and set lvim.colorscheme in your config.lua:
-- lvim config.lua
-- 1. Register the plugin
lvim.plugins = {
{
"pawelborkar/jellyfish.nvim",
lazy = false,
priority = 1000,
},
}
-- 2. Set the default colorscheme
lvim.colorscheme = "jellyfish"4. AstroNvim (v4+)
Create a new file lua/plugins/jellyfish.lua:
return {
{
"pawelborkar/jellyfish.nvim",
lazy = false,
priority = 1000,
},
{
"AstroNvim/astronvim",
opts = {
colorscheme = "jellyfish",
},
}
}jellyfish.nvim makes it easy to modify specific palette colors before loading the colorscheme, or customize highlight groups dynamically.
You can modify the default palette by requiring the module, changing specific colors, and then loading the colorscheme:
local jellyfish = require("jellyfish")
-- Override colors in the default palette
jellyfish.palette.bg_deep = "#020220" -- Custom deeper background
jellyfish.palette.cyan = "#00eedd" -- Slightly warmer cyan
jellyfish.palette.pink = "#ff0066" -- Custom pink highlight
-- Load the colorscheme with the updated palette
vim.cmd("colorscheme jellyfish")| Key | Hex | Purpose |
|---|---|---|
bg_deep |
#00002c |
Main editor background |
bg_darker |
#0a0025 |
Sidebar & NvimTree background |
bg_dark |
#0f0021 |
Active line / StatusLine background |
bg_widget |
#28002b |
Float and popup widget background |
fg |
#ffffff |
Primary text color |
cyan |
#00ffff |
Functions and interface accents |
pink |
#ff0080 |
Keywords and tag attributes |
yellow |
#ffd900 |
Strings and alerts |
orange |
#ff7e34 |
Numbers and warning diagnostics |
green |
#00ff55 |
Git additions |
red |
#ff0000 |
Git deletions / critical highlights |
purple |
#C792EA |
Types and structural elements |
comment |
#838383 |
Comments |
To enable transparency, override the background keys to "NONE" before loading the colorscheme:
local jellyfish = require("jellyfish")
jellyfish.palette.bg_deep = "NONE"
jellyfish.palette.bg_darker = "NONE"
jellyfish.palette.bg_dark = "NONE"
vim.cmd("colorscheme jellyfish")If you want to customize specific highlight groups after the colorscheme loads:
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "jellyfish",
callback = function()
-- Set custom highlight overrides here
vim.api.nvim_set_hl(0, "LineNr", { fg = "#555555", bg = "NONE" })
end,
})
vim.cmd("colorscheme jellyfish")