Skip to content

About

A port of the much loved Alabaster theme, for Neovim and Ghostty.

Topics

Resources

Stars

16 stars

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

Repository files navigation

alabaster.nvim

A port of the Alabaster theme for Neovim. A light, minimal theme that highlights what matters.

Alabaster light and dark palettes on the same Lua example, split diagonally over a stone-textured background

Philosophy

Alabaster is a minimal color scheme that only highlights:

  • Strings (green)
  • Constants (purple) - numbers, characters, symbols, booleans
  • Comments (muted gray) - de-emphasized so code stays the focus
  • Global definitions (blue) - function names, tags

Keywords like if, else, function, etc. are left unhighlighted as they're self-evident.

Installation

Using lazy.nvim

{
  'mcncl/alabaster.nvim',
  lazy = false,
  priority = 1000,
  config = function()
    vim.cmd.colorscheme('alabaster')
  end,
}
use {
  'mcncl/alabaster.nvim',
  config = function()
    vim.cmd.colorscheme('alabaster')
  end
}

Using vim-plug

Plug 'mcncl/alabaster.nvim'

Using vim.pack (Neovim 0.12+)

vim.pack.add({
  { src = 'https://github.com/mcncl/alabaster.nvim' },
})

Then add to your init.vim or init.lua:

colorscheme alabaster

Usage

For Neovim:

vim.cmd.colorscheme('alabaster')

Or in Vimscript:

colorscheme alabaster

Configuration

You can customize the theme with optional settings:

require('alabaster').setup({
  style = nil,              -- "light", "dark", or nil for automatic selection
  transparent = false,      -- Enable transparent background
  italic_comments = false,  -- Enable italic comments
})

vim.cmd.colorscheme('alabaster')

With no explicit style, Alabaster uses the last style saved by :Alabaster, then falls back to Neovim's background option. An invalid style reports an error without changing the active theme.

Use a true-color terminal and enable vim.opt.termguicolors = true to display the palette accurately.

Dark Mode

require('alabaster').setup({
  style = "dark",
})

vim.cmd.colorscheme('alabaster')

Switch styles with :Alabaster light, :Alabaster dark, or :Alabaster toggle. These commands save the choice to stdpath('cache') .. '/alabaster' for future sessions. If the cache cannot be written, the style still changes for the current session. An explicit setup({ style = ... }) takes precedence at startup.

Features

  • Full Treesitter support
  • LSP diagnostic colors
  • Minimal, distraction-free highlighting
  • Faithful port of the original VS Code theme

Color Palette

  • Background: #F7F7F7
  • Foreground: #000000
  • Comments: #9DA39A (muted gray)
  • Strings: #448C27 (green)
  • Constants: #7A3E9D (purple)
  • Functions/Entities: #325CC0 (blue)
  • Punctuation: #777777 (gray)

Ghostty

Copy the files in extras/ghostty/ to ~/.config/ghostty/themes/, then add this to your Ghostty configuration:

theme = light:alabaster-light,dark:alabaster-dark

The light terminal palette uses darker ANSI shades for readable text on its light background. The dark palette lifts ANSI black to a visible gray. In both palettes, all 16 ANSI colors have at least 3:1 contrast against their opaque theme background. This does not change true-color output from Neovim or other applications. Transparency and application-selected backgrounds can change the resulting contrast.

Credits

Original theme by Nikita Prokopov

License

Licensed under the MIT License.

About

A port of the much loved Alabaster theme, for Neovim and Ghostty.

Topics

Resources

Stars

16 stars

Watchers

0 watching

Forks

Contributors

Languages