swarnim.nvim #
A soft dark Neovim colorscheme built on a lavender and dusty rose palette — muted where it should be, vibrant where it matters.
show off #

Palette #
| Role | Color | Hex |
|---|---|---|
| Background | #141315 |
|
| Foreground | #e5e1e5 |
|
| Keywords | #ffb4ab |
|
| Functions | #b4befe |
|
| Strings | #a6e3a1 |
|
| Types | #89dceb |
|
| Constants | #f5c2e7 |
|
| Numbers | #fab387 |
|
| Parameters | #f9e2af |
|
| Builtins | #cba6f7 |
|
| Operators | #94e2d5 |
|
| Comments | #6c7086 |
|
| Cursor | #b4befe |
|
| Selection | #47464d |
Features #
- Full Treesitter support with semantic highlight groups
- LSP diagnostics, inlay hints, and code lens
- LSP semantic tokens for fine-grained language-aware coloring
- Plugin support for:
- Telescope
- nvim-cmp with kind-specific icons
- nvim-tree
- gitsigns
- indent-blankline
- which-key
- lualine (custom theme included)
- mini.statusline
- Legacy Vim syntax fallback (works without Treesitter)
- Zig-specific legacy syntax groups
Requirements #
- Neovim
0.8+ - Terminal with true color support (
set termguicolors)
Installation #
Manual #
Clone or copy swarnim.lua into your colors directory:
cp swarnim.lua ~/.config/nvim/colors/swarnim.lua
Then add to your init.lua:
vim.cmd("colorscheme swarnim")
Make sure you have true colors enabled:
vim.opt.termguicolors = true
Lualine Theme #
Add this to your lualine setup for a matching statusline:
require("lualine").setup({
options = {
theme = {
normal = { a = { fg = "#141315", bg = "#c7c2eb", gui = "bold" }, b = { fg = "#c7c2eb", bg = "#2f2d4d" }, c = { fg = "#c9c5ce", bg = "#1c1a1e" } },
insert = { a = { fg = "#141315", bg = "#b4befe", gui = "bold" }, b = { fg = "#b4befe", bg = "#2f2d4d" }, c = { fg = "#c9c5ce", bg = "#1c1a1e" } },
visual = { a = { fg = "#141315", bg = "#eab9d2", gui = "bold" }, b = { fg = "#eab9d2", bg = "#2f2d4d" }, c = { fg = "#c9c5ce", bg = "#1c1a1e" } },
replace = { a = { fg = "#141315", bg = "#c8c4d6", gui = "bold" }, b = { fg = "#c8c4d6", bg = "#2f2d4d" }, c = { fg = "#c9c5ce", bg = "#1c1a1e" } },
command = { a = { fg = "#141315", bg = "#928f98", gui = "bold" }, b = { fg = "#928f98", bg = "#2f2d4d" }, c = { fg = "#c9c5ce", bg = "#1c1a1e" } },
inactive = { a = { fg = "#47464d", bg = "#1c1a1e" }, b = { fg = "#47464d", bg = "#1c1a1e" }, c = { fg = "#47464d", bg = "#141315" } },
},
},
sections = {
lualine_x = {
{
"diagnostics",
diagnostics_color = {
error = { fg = "#ffb4ab" },
warn = { fg = "#c8c4d6" },
info = { fg = "#c7c2eb" },
hint = { fg = "#eab9d2" },
},
},
"encoding", "fileformat", "filetype",
},
},
})
Terminal #
The base palette also works as a terminal colorscheme.
Kitty (~/.config/kitty/kitty.conf) #
background #141315
foreground #e5e1e5
cursor #b4befe
cursor_text_color #141315
selection_foreground #c9c5ce
selection_background #47464d
color0 #141315
color1 #ffb4ab
color2 #c7c2eb
color3 #c8c4d6
color4 #eab9d2
color5 #c7c2eb
color6 #c8c4d6
color7 #e5e1e5
color8 #928f98
color9 #ffb4ab
color10 #c7c2eb
color11 #c8c4d6
color12 #eab9d2
color13 #c7c2eb
color14 #c8c4d6
color15 #e5e1e5
Foot (~/.config/foot/foot.ini) #
[colors]
background=141315
foreground=e5e1e5
regular0=141315
regular1=ffb4ab
regular2=c7c2eb
regular3=c8c4d6
regular4=eab9d2
regular5=c7c2eb
regular6=c8c4d6
regular7=e5e1e5
bright0=928f98
bright1=ffb4ab
bright2=c7c2eb
bright3=c8c4d6
bright4=eab9d2
bright5=c7c2eb
bright6=c8c4d6
bright7=e5e1e5
Hyprland #
general {
col.active_border = rgba(c7c2ebff) rgba(b4befecc) 45deg
col.inactive_border = rgba(47464dff)
}
Design Philosophy #
Swarnim is built around a single base palette of lavender and dusty rose tones — colors that are easy on the eyes for long sessions without being muddy or low-contrast. Syntax roles are assigned to clearly distinct hues (green for strings, sky blue for types, peach for numbers) so your eyes can parse code structure at a glance, the way catppuccin does, but with a softer, more personal feel.
License #
MIT