Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🪼 jellyfish.nvim

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.


✨ Features


📦 Installation

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

Add the following to your plugin list:

use {
  "pawelborkar/jellyfish.nvim",
  config = function()
    vim.cmd("colorscheme jellyfish")
  end
}

Add the plugin to your init.vim or init.lua:

Vimscript:

Plug 'pawelborkar/jellyfish.nvim'

" After plug#end()
colorscheme jellyfish

Lua:

vim.cmd [[ Plug 'pawelborkar/jellyfish.nvim' ]]

-- After plug#end()
vim.cmd("colorscheme jellyfish")

🚀 Integration with Neovim IDEs

Here is how you can set up jellyfish.nvim on popular Neovim distributions and IDE configurations.

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

  1. Register the plugin by creating/updating lua/plugins/init.lua:
return {
  {
    "pawelborkar/jellyfish.nvim",
    lazy = false,
    priority = 1000,
  },
}
  1. Force the colorscheme load inside lua/chadrc.lua or lua/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,
})

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

🎨 Customization

jellyfish.nvim makes it easy to modify specific palette colors before loading the colorscheme, or customize highlight groups dynamically.

1. Overriding the Palette

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

Default Palette Reference:

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

2. Transparent Background

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

3. Custom Highlights (Auto-cmd pattern)

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

📄 License

Apache-2.0

Releases

Contributors

Languages