-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Neotheme is a semantic, palette-driven colorscheme for Neovim 0.12 and newer. It provides 31 built-in dark and light themes across nine families, one colorscheme entrypoint, complete editor and language highlights, terminal colors, Lualine support, opt-in plugin integrations, and session-only theme exploration.
- New installation: Getting Started
- Browse, preview, switch, inspect, reset, and reload themes: Session Theme Controls
- Choose a built-in family or configured baseline: Themes
- Every setup option and default: Configuration
- Change semantic colors: Palette Customization
- Build a palette from scratch: Custom Themes
- Enable plugin support: Integrations
- Configure the bundled statusline theme: Lualine
- Use the Lua interface: API
- Diagnose a problem: Troubleshooting
- Runtime design and state flow: Architecture
- Owned highlights and terminal mappings: Highlight Groups
- Add a built-in family or variant: Theme Authoring
- Format, test, and contribute: Development
- Neovim 0.12 or newer
- A terminal or GUI with true-color support
Neotheme enables termguicolors when it loads.
require("neotheme").setup()
vim.cmd.colorscheme("neotheme")This selects gruber-dark-muted, the default theme. Every built-in and custom theme uses the
same neotheme colorscheme command.
After Neotheme loads, run :Neotheme to browse families in an isolated code preview. Enter and
Space confirm session-only selections; the configured baseline remains in your setup.
The selected palette supplies colors for:
- Editor surfaces, borders, selections, menus, floats, and sidebars
- Vim syntax groups and Tree-sitter captures
- LSP semantic tokens, references, inlay hints, and diagnostics
- Diff, version-control, markup, search, and navigation states
- All 16 terminal colors plus terminal foreground and background
- Lualine and enabled plugin integrations
This separation lets themes choose a compact set of colors while highlight modules assign those colors by purpose. User customization works at the same semantic level.