Aejkatappaja/sora

website github github
colorscheme
stars 51
issues 0
subscribers 1
forks 1
CREATED

UPDATED



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

{
  "Aejkatappaja/sora",
  lazy = false,
  priority = 1000,
  opts = {},
  config = function(_, opts)
    require("sora").setup(opts)
    vim.cmd("colorscheme sora")
  end,
}
use {
  "Aejkatappaja/sora",
  config = function()
    require("sora").setup()
    vim.cmd("colorscheme sora")
  end,
}
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

require("sora").setup({ transparent = true })
require("sora").setup({ italic = false })
-- or keep italics everywhere but comments:
require("sora").setup({ italic_comments = false })
require("sora").setup({
  on_colors = function(colors)
    colors.bg = "#000000"
    colors.bg_float = "#000000"
    colors.bg_statusline = "#000000"
  end,
})

on_colors 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,
})

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/
Helix extras/helix/sora.toml cp to ~/.config/helix/themes/, then set theme = "sora"
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)
Hunk extras/hunk/sora.toml cp to ~/.config/hunk/config.toml, or merge the [custom_theme] block
OpenCode extras/opencode/sora.json cp to ~/.config/opencode/themes/
fzf extras/fzf/sora.sh source in shell rc
eza extras/eza/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
Herdr extras/herdr/sora.toml cp to ~/.config/herdr/config.toml, or merge the [theme.custom] block
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