Astrotheme
The default colorscheme used by AstroNvim
The default colorscheme used by AstroNvim an aesthetically pleasing and feature-rich neovim config that is extensible and easy to use with a great set of plugins The project is written primarily in Lua, distributed under the GNU General Public License v3.0 license, first published in 2023. Key topics include: astrodark, astrolight, astromars, astronvim, astrotheme.
Latest release: v4.12.0
June 16, 2026View Changelog →
<p align="center">
<img src="https://astronvim.com/logo/astronvim.svg" width=100/>
</p>
<h1 align="center"> AstroTheme </h1>
<p align="center">The default colorscheme used by <a href="https://github.com/AstroNvim/AstroNvim">AstroNvim</a> an aesthetically pleasing and feature-rich neovim config that is extensible and easy to use with a great set of plugins </p>
✨ Features
- Automatic plugin detection and highlight setting (Packer and lazy.nvim supported)
- Override or modify EVERYTHING.
- Global & Theme specific overrides
- Vim terminal colors
- Heirline highlights
- Lualine support
🎨 Palettes
<p align="center"> <img src="https://astronvim.com/themes/overview.png"/> </p> <details> <summary>AstroDark (default)</summary><p align="center"> <img src="https://astronvim.com/themes/astrodark.png"/> </p> </details> <details> <summary>AstroLight</summary>vimcolorscheme astrodark " Dark theme (default)
<p align="center"> <img src="https://astronvim.com/themes/astrolight.png"/> </p> </details> <details> <summary>AstroMars</summary>vimcolorscheme astrolight " Light theme
<p align="center"> <img src="https://astronvim.com/themes/astromars.png"/> </p> </details>vimcolorscheme astromars " Red theme
🛠 Options
luarequire("astrotheme").setup({ palette = "astrodark", -- String of the default palette to use when calling `:colorscheme astrotheme` background = { -- :h background, palettes to use when using the core vim background colors light = "astrolight", dark = "astrodark", }, style = { transparent = false, -- Bool value, toggles transparency. inactive = true, -- Bool value, toggles inactive window color. float = true, -- Bool value, toggles floating windows background colors. neotree = true, -- Bool value, toggles neo-trees background color. border = true, -- Bool value, toggles borders. title_invert = true, -- Bool value, swaps text and background colors. italic_comments = true, -- Bool value, toggles italic comments. simple_syntax_colors = true, -- Bool value, simplifies the amounts of colors used for syntax highlighting. }, termguicolors = true, -- Bool value, toggles if termguicolors are set by AstroTheme. terminal_colors = true, -- Bool value, toggles if terminal_colors are set by AstroTheme. plugin_default = "auto", -- Sets how all plugins will be loaded -- "auto": Uses lazy / packer enabled plugins to load highlights. -- true: Enables all plugins highlights. -- false: Disables all plugins. plugins = { -- Allows for individual plugin overrides using plugin name and value from above. ["bufferline.nvim"] = false, }, palettes = { global = { -- Globally accessible palettes, theme palettes take priority. my_grey = "#ebebeb", my_color = "#ffffff" }, astrodark = { -- Extend or modify astrodarks palette colors ui = { red = "#800010", -- Overrides astrodarks red UI color accent = "#CC83E3" -- Changes the accent color of astrodark. }, syntax = { cyan = "#800010", -- Overrides astrodarks cyan syntax color comments = "#CC83E3" -- Overrides astrodarks comment color. }, my_color = "#000000" -- Overrides global.my_color }, }, highlights = { global = { -- Add or modify hl groups globally, theme specific hl groups take priority. modify_hl_groups = function(hl, c) hl.PluginColor4 = {fg = c.my_grey, bg = c.none } end, ["@String"] = {fg = "#ff00ff", bg = "NONE"}, }, astrodark = { -- first parameter is the highlight table and the second parameter is the color palette table modify_hl_groups = function(hl, c) -- modify_hl_groups function allows you to modify hl groups, hl.Comment.fg = c.my_color hl.Comment.italic = true end, ["@String"] = {fg = "#ff00ff", bg = "NONE"}, }, }, })
📃 Palette Properties
<details> <summary>modifiable palette names</summary></details>lua-------------------------------- --- Syntax -------------------------------- -- only syntax colors. syntax.red syntax.blue syntax.green syntax.yellow syntax.purple syntax.cyan syntax.orange syntax.text syntax.comment syntax.mute -------------------------------- --- UI -------------------------------- -- everything UI and none-text related. ui.red ui.blue ui.green ui.yellow ui.purple ui.cyan ui.orange ui.accent ui.tabline ui.winbar ui.tool ui.base ui.inactive_base ui.statusline ui.split ui.float ui.title ui.border ui.current_line ui.scrollbar ui.selection ui.menu_selection ui.highlight ui.none_text ui.text ui.text_active ui.text_inactive ui.text_match ui.prompt -------------------------------- --- terminal -------------------------------- -- terminal colors. term.black term.bright_black term.red term.bright_red term.green term.bright_green term.yellow term.bright_yellow term.blue term.bright_blue term.purple term.bright_purple term.cyan term.bright_cyan term.white term.bright_white term.background term.foreground
⚡ Requirements
- Neovim >= 0.8
🔌 Supported Plugins
| Plugin | Key |
|---|---|
| aerial.nvim | aerial |
| avante.nvim | avante |
| beacon.nvim | beacon |
| blink.cmp | blink-cmp |
| bufferline.nvim | bufferline |
| dashboard-nvim | dashboard-nvim |
| flash.nvim | flash |
| fzf-lua | fzf |
| gitsigns.nvim | gitsigns |
| hop.nvim | hop |
| indent_blankline.nvim | indent-blankline |
| lazy.nvim | lazy |
| lightspeed.nvim | lightspeed |
| lualine.nvim | lualine |
| mason.nvim | mason |
| mini.nvim | mini |
| mini.icons | miniicons |
| mini.starter | ministarter |
| neo-tree.nvim | neo-tree |
| neogit | neogit |
| neotest | neotest |
| noice.nvim | noice |
| nvcheatsheet.nvim | nvcheatsheet |
| nvim-cmp | nvim-cmp |
| nvim-dap-ui | nvim-dap-ui |
| nvim-notify | nvim-notify |
| nvim-tree.lua | nvim-tree |
| nvim-ts-rainbow | nvim-ts-rainbow |
| nvim-ts-rainbow2 | nvim-ts-rainbow2 |
| nvim-web-devicons | nvim-web-devicons |
| nvim-window-picker | nvim-window-picker |
| rainbow-delimiters.nvim | rainbow-delimiters |
| snacks.nvim | snacks |
| telescope.nvim | telescope |
| todo-comments.nvim | todo-comments |
| vimwiki | vimwiki |
| vim-illuminate | vim-illuminate |
| which-key.nvim | which-key |
📦 Installation
Lazy:
lua{ "AstroNvim/astrotheme" }
Packer:
luause "AstroNvim/astrotheme"
🚀 Contributing
If you plan to contribute, please check the contribution guidelines first.
When contributing to the extras, we use a templating system for automatically generating extra files for all of the different color palettes. Here are some steps to get started:
- Create a file like
lua/astrotheme/extras/cool-app.lua - Add the name and output file extension to the
extrastable inlua/astrotheme/extra/init.lua - Generate the new extra theme files by running the following command in the root of the repository:
sh
make extras - Verify the new templates are working by checking the generated files in the
extras/directory. Please DO NOT commit them, as they get automatically built by the CI.
Contributors
Showing top 12 contributors by commit count.
This article is auto-generated from AstroNvim/astrotheme via the GitHub API.Last fetched: 6/26/2026
