soft, dark neovim colorscheme ijadux2.tngl.sh/swarnim.nvim
HTML 56%
Lua 44%

README.md

swarnim.nvim #

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

License Neovim


show off #

Neovim x x x

Palette #

Role Color Hex
Background #141315 Dark #141315
Foreground #e5e1e5 White #e5e1e5
Keywords #ffb4ab Red #ffb4ab
Functions #b4befe Bright Lavender #b4befe
Strings #a6e3a1 Green #a6e3a1
Types #89dceb Sky Blue #89dceb
Constants #f5c2e7 Flamingo Pink #f5c2e7
Numbers #fab387 Peach #fab387
Parameters #f9e2af Yellow #f9e2af
Builtins #cba6f7 Mauve #cba6f7
Operators #94e2d5 Teal #94e2d5
Comments #6c7086 Subtext #6c7086
Cursor #b4befe Lavender #b4befe
Selection #47464d Grey #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