Skip to content

Official Bearded VS Code theme port for Neovim. 60+ flavors, UI/syntax/LSP coverage, plugin highlights, and quick flavor switching.

License

Notifications You must be signed in to change notification settings

Ferouk/bearded-nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bearded Theme for Neovim

GitHub stars GitHub issues GitHub contributors

Official port of the Bearded VS Code theme by BeardedBear, with 60+ flavors and plugin highlights.

Features

  • 🎨 60+ flavors (dark, light, high contrast) matching the official Bearded VS Code palettes
  • 🧭 Core UI coverage: statusline/tabline, splits, floats, diagnostics, diff, cursorline, terminal colors
  • 🌲 Syntax/Tree-sitter support plus LSP highlights and inlay hints
  • πŸ”Œ Plugin highlights: Telescope, GitSigns, WhichKey, nvim-cmp, Neo-tree, treesitter-context, Noice, notify
  • πŸ“Š Statusline helpers: lualine theme/default config and heirline palette helper
  • ⚑ Commands for quick switching: :BeardedReload <slug> or :colorscheme bearded-<slug>

πŸ–ΌοΈ Preview

🎨 Arc Arc preview
🫐 Arc Blueberry Arc Blueberry preview
🌞 Classics Light Classics Light preview
⚑ HC Flurry HC Flurry preview
πŸ“ Milkshake Raspberry Milkshake Raspberry preview
πŸͺ Monokai Terra Monokai Terra preview
🌊 Oceanic Oceanic preview
🌀️ Solarized Light Solarized Light preview

πŸ“¦ Install

Lazy.nvim:

{
  "Ferouk/bearded-nvim",
  name = "bearded",
  priority = 1000,
  build = function()
    -- Generate helptags so :h bearded-theme works
    local doc = vim.fs.joinpath(vim.fn.stdpath("data"), "lazy", "bearded", "doc")
    pcall(vim.cmd, "helptags " .. doc)
  end,
  config = function()
    require("bearded").setup({
      flavor = "arc", -- any flavor slug
    })
    vim.cmd.colorscheme("bearded")
  end,
}

Packer:

use({
  "Ferouk/bearded-nvim",
  run = ":helptags ALL", -- make :h bearded-theme available
  config = function()
    require("bearded").setup({ flavor = "arc" })
    vim.cmd.colorscheme("bearded")
  end,
})

πŸ§‘β€πŸ’» Usage

require("bearded").setup({
  flavor = "arc",          -- see flavor list below
  transparent = false,
  bold = true,
  italic = true,
  dim_inactive = false,
  terminal_colors = true,
  on_highlights = function(set, palette, opts)
    -- optional override
    set("Normal", { fg = palette.ui.default })
  end,
})
vim.cmd.colorscheme("bearded")

Switch flavors on the fly:

  • :BeardedReload <slug> (no generated files required)
  • :colorscheme bearded-<slug> (uses prebuilt colorscheme stubs)

🌈 Flavors (slug)

Family Slugs
Arc
  • arc
  • arc-blueberry
  • arc-eggplant
  • arc-eolstorm
  • arc-reversed
Aquarelle
  • aquarelle-cymbidium
  • aquarelle-hydrangea
  • aquarelle-lilac
Exotic
  • altica
  • earth
  • coffee
  • coffee-cream
  • coffee-reversed
  • void
Black
  • black-&-amethyst(-soft)
  • black-&-diamond(-soft)
  • black-&-emerald(-soft)
  • black-&-gold(-soft)
  • black-&-ruby(-soft)
Classics
  • classics-anthracite
  • classics-light
Feat
  • feat-will
  • feat-webdevcody
  • feat-gold-d-raynh(-light)
  • feat-mellejulie(-light)
High Contrast
  • hc-ebony
  • hc-midnightvoid
  • hc-flurry
  • hc-wonderland-wood
  • hc-brewing-storm
  • hc-minuit
  • hc-chocolate-espresso
Milkshake
  • milkshake-vanilla
  • milkshake-mint
  • milkshake-raspberry
  • milkshake-mango
  • milkshake-blueberry
Monokai
  • monokai-terra
  • monokai-metallian
  • monokai-stone
  • monokai-black
  • monokai-reversed
Solarized/Ocean
  • oceanic
  • oceanic-reversed
  • solarized-dark
  • solarized-light
  • solarized-reversed
Stained
  • stained-blue
  • stained-purple
Surprising
  • surprising-eggplant
  • surprising-blueberry
  • surprising-watermelon
Other
  • themanopia
  • vivid-purple
  • vivid-black
  • vivid-light

πŸ”Œ Plugin highlights

  • Telescope, GitSigns, WhichKey, nvim-cmp
  • Neo-tree, treesitter-context
  • Noice, notify
  • Lualine helpers (theme + default config) and heirline palette helper

πŸ“Š Statusline examples

Lualine:

local bearded = require("bearded")
bearded.setup({ flavor = "arc" })

require("lualine").setup({
  options = {
    theme = require("bearded.plugins.lualine").theme(bearded.palette()),
  },
})

Default lualine config:

local bearded = require("bearded")
bearded.setup({ flavor = "arc" })
require("bearded.plugins.lualine_default").setup(bearded.palette())

Heirline palette helper:

local bearded = require("bearded")
local colors = require("bearded.plugins.heirline").colors(bearded.palette())
-- use colors.bg/fg/accent in your components

❓ Help

  • :h bearded-theme
  • Commands: :BeardedReload <slug>, :colorscheme bearded, :colorscheme bearded-<slug>

πŸ™ Credits

  • Theme design & official VS Code extension by BeardedBear

🀝 Contributing

See CONTRIBUTING.md for regeneration steps, formatting, and checks. CI runs stylua + smoke on push/PR.

πŸ“ License

GPL-3.0-only. See LICENSE.

About

Official Bearded VS Code theme port for Neovim. 60+ flavors, UI/syntax/LSP coverage, plugin highlights, and quick flavor switching.

Topics

Resources

License

Contributing

Stars

Watchers

Forks