Skip to content

WTFox/jellybeans.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🟣 Jellybeans.nvim

A port of the jellybeans colorscheme for Neovim, written in Lua. Comes with multiple palettes.

Vibrant Dark (Default) Vibrant Dark

Vibrant Light (jellybeans_light) Vibrant Light

Muted Dark (jellybeans_muted) Muted Dark

Muted Light (jellybeans_muted_light) Muted Light

Mono Dark (jellybeans_mono) Mono Dark

Mono Light (jellybeans_mono_light) Mono Light

✨ Features

πŸ“¦ Installation

Using lazy.nvim:

{
  "wtfox/jellybeans.nvim",
  lazy = false,
  priority = 1000,
  opts = {}, -- Optional
}
-- Default (vibrant dark)
vim.cmd[[colorscheme jellybeans]]

-- Vibrant light
vim.cmd[[colorscheme jellybeans-light]]

-- Muted dark
vim.cmd[[colorscheme jellybeans-muted]]

-- Muted light
vim.cmd[[colorscheme jellybeans-muted-light]]

-- Mono dark
vim.cmd[[colorscheme jellybeans-mono]]

-- Mono light
vim.cmd[[colorscheme jellybeans-mono-light]]

πŸ› οΈ Configuration

Jellybeans ships with the following defaults

{
  transparent = false,
  italics = true,
  flat_ui = true, -- toggles "flat UI" for pickers
  background = {
    dark = "jellybeans", -- default dark palette
    light = "jellybeans_light", -- default light palette
  },
  plugins = {
    all = false,
    auto = true, -- will read lazy.nvim and apply the colors for plugins that are installed
  },
  on_highlights = function(highlights, colors)
  end,
  on_colors = function(colors)
  end,
}

Deprecated: style and palette are no longer used. Instead, use the background table to set the default palette for dark and light backgrounds. This allows for more flexibility for future palettes and for your personal preferences.

Available Palettes

Jellybeans offers two palette variants, each with dark and light modes:

  • Vibrant (default): The classic jellybeans with rich, saturated colors

    • Dark: jellybeans (default)
    • Light: jellybeans_light
  • Muted: A lower saturation, paper-like theme

    • Dark: jellybeans_muted
    • Light: jellybeans_muted_light
  • Mono: A monochrome palette with a dark and light mode

    • Dark: jellybeans_mono
    • Light: jellybeans_mono_light

    The mono palette uses two accent colors to provide visual distinction while maintaining a cohesive monochromatic look:

    • accent_color_1: Used for types and constants (defaults to a muted brown)
    • accent_color_2: Used for functions (defaults to a muted blue)

You can easily override the color palette. For example, here's how to change the background color for OLED:

  opts = {
    on_colors = function(c)
      local light_bg = "#ffffff"
      local dark_bg = "#000000"
      c.background = vim.o.background == "light" and light_bg or dark_bg
    end,
  }

To customize the accent colors for the mono palette:

  opts = {
    on_colors = function(c)
      -- Custom accent colors for mono palette
      c.accent_color_1 = vim.o.background == "dark" and "#876543"  -- Custom color for types and constants
      c.accent_color_2 = vim.o.background == "dark" and  "#345678"  -- Custom color for functions
    end,
  }

If you want more control over highlight groups, that is also possible:

  opts = {
    on_highlights = function(hl, c)
      hl.Constant = { fg = "#00ff00", bold = true }
    end,
  },

Lualine

The theme includes a Lualine theme. To enable it:

require('lualine').setup {
    options = {
        theme = 'jellybeans'
    }
}

πŸ”Œ Extras Support

  • FZF
  • Ghostty
  • Wezterm
  • Windows Terminal
  • Yazi
  • and more...

πŸ’• Inspirations

🌟 Star History

Star History Chart

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 5