Skip to content

Synchlaire/plain.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

plain.nvim

A minimalist, distraction-free colorscheme for Neovim. Perfect for those who want to focus on the code, not the colors.

plain.nvim is a Lua port and enhancement of vim-colors-plain by andreypopp, with extensive plugin integrations and modern Neovim features.

Philosophy

Plain follows a minimalist approach to syntax highlighting:

  • Minimal color differentiation - Your code doesn't need a rainbow
  • Focus on structure - Uses subtle variations in brightness and weight
  • Distraction-free - Lets you focus on what matters: the code
  • Eye-friendly - Both dark and light variants designed for long coding sessions

Features

  • 🎨 Dark and light variants with auto-detection
  • πŸ”Œ Extensive plugin support - integrations for 15+ popular plugins
  • πŸ’» Terminal colors - properly configured terminal colors
  • βš™οΈ Configurable - customize colors and styles to your preference
  • 🌲 Treesitter support - modern syntax highlighting
  • πŸ” LSP integration - proper diagnostic and reference highlighting
  • πŸ“¦ Zero dependencies - just drop it in and go

Screenshots

TODO: Add screenshots of dark and light variants

Installation

Using lazy.nvim

{
  "Synchlaire/plain.nvim",
  priority = 1000,
  config = function()
    require("plain").setup({
      -- your configuration here (optional)
    })
    vim.cmd("colorscheme plain")
  end,
}
use {
  "Synchlaire/plain.nvim",
  config = function()
    require("plain").setup()
    vim.cmd("colorscheme plain")
  end
}

Using vim-plug

Plug 'Synchlaire/plain.nvim'

Then in your init.lua or init.vim:

require("plain").setup()
vim.cmd("colorscheme plain")

Usage

Basic Usage

-- Auto variant (follows vim.o.background)
vim.cmd("colorscheme plain")

-- Force dark variant
vim.cmd("colorscheme plain-dark")

-- Force light variant
vim.cmd("colorscheme plain-light")

Configuration

require("plain").setup({
  -- Variant: "auto", "dark", or "light"
  variant = "auto",

  -- Enable/disable specific integrations
  integrations = {
    telescope = true,
    nvim_cmp = true,
    nvim_tree = true,
    neo_tree = true,
    gitsigns = true,
    which_key = true,
    lualine = true,
    indent_blankline = true,
    treesitter = true,
    native_lsp = true,
    dashboard = true,
    notify = true,
    aerial = true,
    symbols_outline = true,
    trouble = true,
    lazy = true,
    mason = true,
  },

  -- Style options
  styles = {
    comments = { italic = true },
    keywords = { bold = true },
    functions = {},
    variables = {},
  },

  -- Custom color overrides (optional)
  custom_colors = {
    -- Example: override accent color
    -- accent = "#FF0000",
  },
})

Lualine Integration

plain.nvim provides a custom lualine theme that matches the colorscheme:

require("lualine").setup({
  options = {
    theme = _G.plain_lualine_theme,
  },
})

Make sure to set up lualine after loading the plain colorscheme.

Supported Plugins

plain.nvim includes custom highlight groups for:

And of course:

  • Treesitter
  • Native LSP
  • Built-in terminal

Color Palette

Dark Variant

Color Hex Usage
Background #000000 Main background
Foreground #CCCCCC Main text
Accent #B6D6FD Highlights, strings
Comment #999999 Comments, subtle text
Error #E32791 Errors, deletions
Warning #F3E430 Warnings, changes
Info #4FB8CC Information
Hint #5FD7A7 Hints, additions

Light Variant

Color Hex Usage
Background #F1F1F1 Main background
Foreground #424242 Main text
Accent #008EC4 Highlights, strings
Comment #999999 Comments, subtle text
Error #C30771 Errors, deletions
Warning #A89C14 Warnings, changes
Info #20A5BA Information
Hint #10A778 Hints, additions

Customization Examples

Disable italic comments

require("plain").setup({
  styles = {
    comments = { italic = false },
  },
})

Make keywords not bold

require("plain").setup({
  styles = {
    keywords = {},
  },
})

Override colors

require("plain").setup({
  custom_colors = {
    accent = "#FF6B9D",
    string = "#A6E3A1",
  },
})

Disable specific plugin integrations

require("plain").setup({
  integrations = {
    telescope = false,
    nvim_cmp = false,
  },
})

Credits

License

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest new plugin integrations
  • Submit pull requests
  • Share screenshots

Related Projects

If you like plain.nvim, you might also enjoy:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •