Aejkatappaja
sora
Lua

空 A deep colorscheme for Neovim. Ethereal cyan, muted accents, near-black canvas.

Last updated Jul 4, 2026
49
Stars
1
Forks
0
Issues
0
Stars/day
Attention Score
44
Language breakdown
Lua 53.0%
HTML 38.4%
Vim Script 6.5%
Shell 2.1%
Files click to expand
README

Sora

A dark Neovim colorscheme. Ethereal cyan, cool silver, deep OLED blacks.

Install · Configure · Palette · Plugins · Extras

CI


Sora Preview

Philosophy

Sora sits between Tokyo Night's saturation and Lume's muted pastels. The background is near-black with a cool blue undertone, deep enough for OLED. Syntax colors are muted but readable - they don't compete with each other.

The signature ethereal cyan (#80c8e0) for functions is lighter and softer than Tokyo Night's blue, cooler than Lume's lavender. A single warm accent - gold (#d4b878) for constants and numbers - acts like a star against the cool palette. That one warm point in a field of cool tones is what gives Sora its look.

Eight named accents, each with a clear role. No neon, no Christmas tree.

Installation

lazy.nvim

{
  "Aejkatappaja/sora",
  lazy = false,
  priority = 1000,
  opts = {},
  config = function(_, opts)
    require("sora").setup(opts)
    vim.cmd("colorscheme sora")
  end,
}

packer.nvim

use {
  "Aejkatappaja/sora",
  config = function()
    require("sora").setup()
    vim.cmd("colorscheme sora")
  end,
}

mini.deps

MiniDeps.add("Aejkatappaja/sora")
require("sora").setup()
vim.cmd("colorscheme sora")

Configuration

Defaults - pass only what you want to change:

require("sora").setup({
  transparent = false,      -- transparent background (also strips float/statusline bg)
  italic = true,            -- italics globally
  italic_comments = true,   -- italics for comments (ignored if italic = false)

on_colors = function(colors) end, -- override palette before highlights build on_highlights = function(hl, colors) end, -- override highlight groups after they build })

Recipes

Transparent background

require("sora").setup({ transparent = true })

No italics

require("sora").setup({ italic = false })
-- or keep italics everywhere but comments:
require("sora").setup({ italic_comments = false })

Pure black OLED background

require("sora").setup({
  on_colors = function(colors)
    colors.bg = "#000000"
    colors.bg_float = "#000000"
    colors.bg_statusline = "#000000"
  end,
})

Tweak a syntax color

oncolors runs before highlights build, so changing a palette key repaints every group that uses it. Keys live in lua/sora/palette.lua.

require("sora").setup({
  on_colors = function(colors)
    colors.func = "#a0d8f0"  -- brighter functions
    colors.string = colors.sage
  end,
})

Override highlight groups

on_highlights runs last and wins over everything. Use it for per-group control.

require("sora").setup({
  on_highlights = function(hl, colors)
    hl.Comment = { fg = colors.fg_comment, italic = true }
    hl.LineNr = { fg = colors.fg_gutter }
    hl.CursorLineNr = { fg = colors.cyan, bold = true }
    hl.FloatBorder = { fg = colors.border, bg = colors.bg_float }
  end,
})

Palette

| Role | Color | Hex | | :--------- | :-------------------------------------------: | :-------- | | Background | | #0e1018 | | Foreground | | #c8d0e0 | | Cyan | | #80c8e0 | | Purple | | #b0a0d8 | | Sage | | #90c8a0 | | Peach | | #d0a888 | | Gold | | #d4b878 | | Rose | | #d0909c | | Teal | | #78b8b0 | | Steel | | #8898b8 |

Supported Plugins

Sora includes highlight groups for:

Full Treesitter and LSP semantic token support.

Lualine

require("lualine").setup({
  options = { theme = "sora" },
})

Extras

Sora everywhere:

| App | File | Install | |:----|:-----|:--------| | Zed | sora-theme | Extensions > search "Sora", or view in directory | | Ghostty | extras/ghostty/sora | cp to ~/.config/ghostty/themes/ | | Kitty | extras/kitty/sora.conf | include in kitty.conf | | Alacritty | extras/alacritty/sora.toml | import in alacritty.toml | | WezTerm | extras/wezterm/sora.toml | cp to ~/.config/wezterm/colors/ | | Foot | extras/foot/sora.ini | include in foot.ini | | Vim | extras/vim/sora.vim | cp to ~/.vim/colors/ | | Lazygit | extras/lazygit/sora.yml | merge into config.yml | | bat | extras/bat/sora.tmTheme | cp to $(bat --config-dir)/themes/ + bat cache --build | | Delta | extras/delta/sora.gitconfig | include in .gitconfig (install bat theme first) | | OpenCode | extras/opencode/sora.json | cp to ~/.config/opencode/themes/ | | fzf | extras/fzf/sora.sh | source in shell rc | | Starship | extras/starship/sora.toml | cp to ~/.config/starship.toml, or merge the [palettes.sora] block | | Yazi | extras/yazi/sora.toml | cp to ~/.config/yazi/theme.toml | | btop | extras/btop/sora.theme | cp to ~/.config/btop/themes/ | | tmux | extras/tmux/sora.tmux.conf | source-file in tmux.conf | | tokyo-night-tmux | extras/tmux/tokyo-night-tmux-sora.sh | see tmux below | | Slack | extras/slack/sora.txt | paste in Slack sidebar theme | | Firefox | extras/firefox/manifest.json | zip and load via about:debugging | | Firefox Start Page | extras/firefox-start/index.html | set as homepage file://... (edit USER const first) | | macOS Terminal | extras/macos-terminal/sora.terminal | double-click to import | | iTerm2 | extras/macos-terminal/sora.itermcolors | import in Preferences > Profiles > Colors | | Obsidian | sora-obsidian | Settings > Appearance > Themes > Manage > search "Sora", or view in directory |

tmux

For a basic tmux setup, add to your tmux.conf:

source-file /path/to/sora.nvim/extras/tmux/sora.tmux.conf

If you use tokyo-night-tmux, paste the contents of extras/tmux/tokyo-night-tmux-sora.sh into the plugin's src/themes.sh (before the default *) case), then add to your tmux.conf:

set -g @tokyo-night-tmux_theme "sora"

License

MIT

🔗 More in this category

© 2026 GitRepoTrend · Aejkatappaja/sora · Updated daily from GitHub