README.md

April 18, 2026 ยท View on GitHub

Image A modern Neovim colorscheme plugin featuring beautifully crafted pastel themes with rich customization, plugin integrations, and flexible styling.

โœจ Features

  • ๐ŸŽจ Beautiful pastel color schemes
  • ๐ŸŒ— Automatic dark/light background support
  • ๐Ÿงฉ Built-in highlights for many popular plugins
  • โš™๏ธ Fully customizable colors, highlights, and styles
  • ๐Ÿชถ Lightweight and fast
  • ๐Ÿ” Per-filetype configuration support
  • ๐Ÿšซ Fine-grained exclusion system

๐ŸŽจ Palettes

pasteldark
pastelblack
pastelsoft
pastelrose
pastelmint
pastelfrost

Check more vimcolorschemes


๐Ÿ“ฆ Installation

Install using your preferred plugin manager.

  • lazy.nvim
{
  "ankushbhagats/pastel.nvim",
  lazy = false, -- disable lazy loading 
  priority = 1000, -- load immediately at startup
  opts = {}, -- your configuration comes here
  config = true -- call setup function with provided opts
}
  • packer.nvim
use {
  "ankushbhagats/pastel.nvim",
  config = function()
    require("pastel").setup()
  end
}

๐ŸŽจ Usage

  • Apply a colorscheme Applies the selected colorscheme directly (no background-based switching).
vim.cmd.colorscheme("pasteldark")
  • Enable automatic background switching Dynamically selects a colorscheme based on the current 'background' (light or dark).
vim.cmd.colorscheme("pastel")
  • Force set a colorscheme via plugin config
{
  palette = "pastelsoft"
}

โš™๏ธ Default Configuration

require("pastel").setup({
  background = {
    dark = "pasteldark",
    light = "pastelsoft",
  },
  palette = nil, 
  termguicolors = true,
  style = {
    transparent = false,
    inactive = true,
    border = true,
    float = true,
    border = true,
    bold = true,
    italic = false,
    underline = true,
    invert_title = false,
    simple_syntax = false,
    dynamic_statusline = false,
  },
  colors = {
    common = {},
    global = {},
  },
  highlights = {
    global = {},
  },
  exclude = {
    core = {},
    plugins = {},
  },
  filetypes = {},
})

๐ŸŽจ Available Color Schemes

pasteldark pastelblack pastelsoft pastelfrost pastelrose pastelcloud pastelglow pastelshell pastelcool pastelgold pastelsilk pastelcream pastelmint pastelsnow pastelfog pastelpop pastelwarm pastelforest pastelrice pastelwhite


๐Ÿง  Style System

The "style" table controls UI appearance.

Special Behavior

You can use ""*"" to apply a setting globally:

style = {
  bold = "*",       -- enable bold everywhere
  italic = false,   -- disable all italics
  underline = true, -- use default underline behavior
}
  • ""*"" โ†’ apply everywhere
  • "true" โ†’ use default behavior
  • "false" โ†’ disable completely

๐ŸŽฏ Colors Customization

Modify base colors globally or per colorscheme.

Global colors:

colors = {
  global = {
    yellow = "#eedd00",
    cyan = "#aaffff",
  }
}

Per-colorscheme colors

colors = {
  pasteldark = {
    blue = "#11aaee",
    red = "#ffa0a0",
  }
}

๐ŸŽจ Highlights Customization

Highlights accept functions.

Global highlights:

highlights = {
  global = function(hl, c)
      hl.Normal = { bg = "#333a3b", fg = "#808980" }
      hl.Comment.italic = true
      hl.GitSignsChange.fg = c.blue
  end
}

Per-colorscheme highlights

highlights = {
  pasteldark = function(hl, c)
      hl.CursorLine.bg = "#302920"
  end
}

๐Ÿšซ Exclude System

Disable specific highlight group file/plugin.

exclude = {
  core = {
    syntax = true,
  },
  plugins = {
    telescope = true,
  },
}

๐Ÿ“ Filetype-specific Config

Apply custom settings per filetype.

filetypes = {
  lua = {
    colors = {
      purple = "#ffccff",
    },
    style = {
      italic = true,
    },
  },
  markdown = {
    highlights = function(hl, c)
        hl.Title.bold = true
    end,
  },
}

๐Ÿงฉ Supported Plugin Highlights

"pastel.nvim" ships with built-in highlight support for a wide range of popular plugins.

  • Total Count: 45

๐Ÿ“ฆ UI & Navigation

  • aerial
  • bufferline
  • dashboard-nvim
  • neo-tree
  • nvim-tree
  • nvim-window-picker
  • symbols-outline
  • which-key

๐Ÿ” Search & Motion

  • fzf
  • hop
  • flash
  • lightspeed
  • telescope

๐Ÿง  Completion & LSP

  • coc
  • mason
  • blink-cmp
  • nvim-cmp
  • nvim-navic

๐Ÿ› Debugging & Testing

  • neotest
  • nvim-dap
  • nvim-dapui

๐ŸŒฟ Git

  • gitsigns
  • gitgraph
  • neogit

๐ŸŽจ Syntax & Treesitter

  • treesitter
  • treesitter-context
  • nvim-ts-rainbow
  • nvim-ts-rainbow2
  • rainbow-delimiters

๐Ÿ“ Editing Enhancements

  • indent-blankline
  • indentmini
  • vim-illuminate
  • vim-visual-multi
  • vimwiki
  • todo-comments

๐Ÿ”” UI Enhancements

  • noice
  • nvim-notify
  • snacks
  • render-markdown

โš™๏ธ Utility & Misc

  • lazy
  • mini
  • miniicons
  • ministarter
  • avante
  • beacon

๐Ÿ’ก You can disable any plugin highlights using the "exclude.plugins" option:

require("pastel").setup({
  exclude = {
    plugins = {
      telescope = true,
      gitsigns = true,
    },
  },
})


๐Ÿ›  Example Configurations

Minimal setup

require("pastel").setup()
vim.cmd("colorscheme pasteldark")


Transparent background

require("pastel").setup({
  style = {
    transparent = true,
  },
})

Everything bold & italic globally

require("pastel").setup({
  style = {
    bold = "*",
    italic = "*",
  },
})

Override colors + highlights

require("pastel").setup({
  colors = {
    global = {
      green = "#0d0d0d",
    },
  },
  highlights = {
    global = function(hl, c)

        hl.Normal.bg = c.red
        hl.CursorLine.bg = "#1a1a1a"
    end,
  },
})

๐Ÿ“Œ Notes

  • "termguicolors" should be enabled for best experience
  • Works with both dark and light backgrounds
  • Highly customizable without sacrificing performance

โค๏ธ Contributing

Feel free to open issues or submit PRs to improve themes, add integrations, or enhance features.


๐Ÿ“„ License

GNU General Public License v3

๐Ÿ“ Credits

Highlights adapted from AstroTheme. Thanks to the original authors.