A Neovim theme inspired on the original Palenight theme, fully written in Lua.
Includes themes for Kitty, Alacritty, iTerm2 and Fish.
This palette is improved from the original 16 colors to a 40 shades of those, ensuring compability with more plugins and a smooth contrast experience.
- Enhances terminal colors.
- Supports all major plugins.
- Supports the latest Neovim 0.9.0 features.
- Provides extra themes for numerous other applications.
- Alacritty (alacritty)
- Delta (delta)
- Dunst (dunst)
- Fish (fish)
- Fish Themes (fish_themes)
- Foot (foot)
- GitUI (gitui)
- iTerm (iterm)
- Kitty (kitty)
- Lua Table for testing (lua)
- Prism (prism)
- Sublime Text (sublime)
- Terminator (terminator)
- Tilix (tilix)
- Tmux (tmux)
- Warp (warp)
- WezTerm (wezterm)
- Windows Terminal (windows_terminal)
- Xfce Terminal (xfceterm)
- Xresources (xresources)
- Zathura (zathura)
First install the theme with your preferred package manager:
{
"pauchiner/pastelnight.nvim",
lazy = false,
priority = 1000,
opts = {},
}
colorscheme pastelnight
" There are also a theme variant with greater contrast
colorscheme pastelnight-high-contrast
vim.api.nvim_command [[colorscheme pastelnight]]
-- There are also a theme variant with greater contrast
vim.api.nvim_command [[colorscheme pastelnight-high-contrast]]
require('barbecue').setup {
theme = 'pastelnight',
}
require('lualine').setup {
options = {
theme = 'pastelnight'
}
}
let g:lightline = {'colorscheme': 'pastelnight'}
Warning
Set the configuration before loading the color scheme with colorscheme pastelnight
.
PastelNight uses the default options, unless setup is explicitly called.
require("pastelnight").setup({
--- The theme comes in two styles, `default` and `highContrast`.
style = "default"
--- Enable this to disable setting the background color.
transparent = false,
--- Configure the colors used when opening a `:terminal`.
terminal_colors = true,
styles = {
--- Style to be applied to different syntax groups.
comments = { italic = true },
keywords = { italic = true },
functions = {},
variables = {},
--- Background styles. Can be 'dark', 'transparent' or 'normal'.
sidebars = "dark",
floats = "dark",
},
--- Set a darker background on sidebar-like windows. ['terminal', 'packer'...].
sidebars = { "qf", "help" },
--- Enabling this option, will hide inactive statuslines and replace them
---with a thin border instead.
hide_inactive_statusline = false,
--- dims inactive windows.
dim_inactive = false,
--- When true, section headers in the lualine theme will be bold.
lualine_bold = false,
--- You can override specific color groups to use other groups or a hex color,
--- function will be called with a ColorScheme table.
---@param colors ColorScheme
on_colors = function(colors) end,
--- You can override specific highlights to use other groups or a hex color,
--- function will be called with a Highlights and ColorScheme table.
---@param highlights Highlights
---@param colors ColorScheme
on_highlights = function(highlights, colors) end,
})
How the highlight groups are calculated:
colors
are determined based on your configuration, with the ability to override them usingconfig.on_colors(colors)
.- These
colors
are utilized to generate the highlight groups. config.on_highlights(highlights, colors)
can be used to override highlight groups.
For default values of colors
and highlights
, please consult the
colors and highlights files.
require("pastelnight").setup({
--- Change the "hint" color to the "orange" color, and make the "error" color bright red
on_colors = function(colors)
colors.hint = colors.orange
colors.error = "#ff0000"
end
})
require("pastelnight").setup({
on_highlights = function(hl, c)
local prompt = "#2d3149"
hl.TelescopeNormal = {
bg = c.bg_dark,
fg = c.fg_dark,
}
hl.TelescopeBorder = {
bg = c.bg_dark,
fg = c.bg_dark,
}
hl.TelescopePromptNormal = {
bg = prompt,
}
hl.TelescopePromptBorder = {
bg = prompt,
fg = prompt,
}
hl.TelescopePromptTitle = {
bg = prompt,
fg = prompt,
}
hl.TelescopePreviewTitle = {
bg = c.bg_dark,
fg = c.bg_dark,
}
hl.TelescopeResultsTitle = {
bg = c.bg_dark,
fg = c.bg_dark,
}
end,
})
To have undercurls show up and in color, add the following to your Tmux configuration file:
set -g default-terminal "${TERM}"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
Also you can enable undescore colors but this needs tmux 3.0
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
All contributions are welcome:
For the extras, we use a simple template system that can be used to generate themes for the different styles.
How to add a new extra template:
Create a file like lua/pastelnight/extra/cool-app.lua
.
Add the name and output file extension to the extras table in lua/pastelnight/extra/init.lua
.
Run the following command to generate new extra themes from the pastelnight plugin directory:
nvim --headless "+lua require('pastelnight.extra').setup()" +qa
Check the newly created themes in the extra/ directory.
Caution
Please DO NOT commit them, as they are already automatically built by the CI.
This theme is highly inspired by the original theme Palenight from Olaolu Olawuyi.
The structure of this plugin is based on the Tokyo Night Theme from Folke Lemaitre, take a look of his work please.
The way of implement and create the color palette is inspired on the new Solarized Osaka Theme from Takuya Matsuyama, see he's profile to know more.