- High contrast color theme with a low saturation and smooth colors
- Many plugins supported(write if no support is available)
- Italic font style option
- Transparent supported
- Mainly designed for use with lazyvim
- Customization colors
Warning
The color scheme is under deep development. But it will be very useful to get feedback.
- β
Transparent supported (with enhanced terminal compatibility) - β
Customization colors
- neovim >= 0.9
- blink.cmp
- bufferline.nvim
- dashboard-nvim
- diffview.nvim
- fzf-lua
- gitsigns.nvim
- mason.nvim
- neo-tree.nvim
- neogit
- noice.nvim
- render-markdown.nvim
- snacks.nvim
- telescope.nvim
- which-key
{
"romanaverin/charleston.nvim",
name = "charleston",
priority = 1000,
}Tip
Special information on versioning. You can use the main branch, where the main development with preliminary testing is carried out. However, major changes and established features are fixed in the form of tags. To use a specific version:
{
"romanaverin/charleston.nvim",
name = "charleston",
version = "2.0.1", -- or use "*" for the latest in the main branch
priority = 1000,
}:Rocks install charleston.nvimOr add to your rocks.toml:
[plugins]
"charleston.nvim" = "2.0.1"use { "romanaverin/charleston.nvim" }Plug 'romanaverin/charleston.nvim'| Plugin Manager | Source | Installation Command |
|---|---|---|
| lazy.nvim | GitHub | { "romanaverin/charleston.nvim" } |
| rocks.nvim | LuaRocks | :Rocks install charleston.nvim |
| packer.nvim | GitHub | use "romanaverin/charleston.nvim" |
| vim-plug | GitHub | Plug 'romanaverin/charleston.nvim' |
Lazy:
{
"LazyVim/LazyVim",
opts = {
colorscheme = "charleston",
},
},Or:
vim.cmd.colorscheme "charleston"
A cache is used for compilation and fast loading. The average user does not need to know about it. But if you have made any changes, you can see them without restarting neovim.
Force compile cache
: CharlestonCompile
To configure options, add opts to the plugin declaration:
opts = {
terminal_colors = true, -- sets terminal colors
italic = true, -- use italic font style
darker_background = false, -- use more darker background
transparent = false, -- enable transparent background
palette_overrides = {}, -- override palette colors
}Charleston supports customization of the color palette through palette_overrides.
You can override any color from the palette or add custom colors:
{
"romanaverin/charleston.nvim",
name = "charleston",
priority = 1000,
opts = {
palette_overrides = {
-- Override existing colors
red = "#ff0000",
bg = "#000000",
bg_dimmed = "#0a0a0a",
-- Add custom colors for use with other plugins(example below)
my_custom_color = "#abcdef",
}
}
}All overrides are fully cached for maximum performance.
You can use get_palette() to access the customized palette in other plugins:
{
"romanaverin/charleston.nvim",
name = "charleston",
priority = 1000,
opts = {
palette_overrides = {
statusline_bg = "#2a2a2a",
}
}
}
-- In your lualine config
local colors = require("charleston").get_palette()
require("lualine").setup({
options = {
theme = {
normal = {
a = { bg = colors.blue, fg = colors.bg },
b = { bg = colors.statusline_bg, fg = colors.text },
}
}
}
})Click to see the full color palette
| Color Name | Hex Value | Preview |
|---|---|---|
bg |
#1D2024 |
|
bg_dimmed |
#262B31 |
|
text |
#C5C8D3 |
|
strong_text |
#80838f |
|
faded_text |
#686d75 |
|
strong_faded_text |
#464b50 |
|
medium_background |
#51545C |
| Color Name | Hex Value | Preview |
|---|---|---|
diff_add_bg |
#3a413b |
|
diff_delete_bg |
#443c3f |
| Color Name | Hex Value | Preview |
|---|---|---|
brightBlack |
#636363 |
|
brightRed |
#a04041 |
|
brightGreen |
#8b9440 |
|
brightYellow |
#ec9c62 |
|
brightBlue |
#5d7f9a |
|
brightMagenta |
#b689bC |
|
brightCyan |
#5e8d87 |
|
brightWhite |
#6d757d |
See lua/charleston/colors.lua for the complete reference.
For the lualine add this
require('lualine').setup {
options = {
theme = "charleston"
-- ... the rest of your lualine config
}
}Charleston provides native support for bufferline.nvim with a dedicated integration module.
Important
Bufferline needs to be loaded after setting up Charleston or it will highlight incorrectly
return {
"akinsho/bufferline.nvim",
after = "charleston", -- Mandatory option, otherwise incorrect
opts = {
highlights = function()
return require("charleston.bufferline").get_theme()
end,
options = {
separator_style = "slant",
always_show_bufferline = false,
show_tab_indicators = true,
},
},
}You can customize the bufferline theme with styles and custom colors:
local palette = require("charleston").get_palette()
require("bufferline").setup {
highlights = require("charleston.bufferline").get_theme {
styles = { "italic", "bold" },
custom = {
all = {
fill = { bg = "#000000" },
},
},
},
}Available options:
styles: Table with style options ("italic","bold")custom.all: Custom highlight overrides that apply to all highlights
Themes for other app. In the extras folder.
- Ghostty
- Zed