Skip to content

✨ Looking for a theme that fits your vibe? Whether you're into dark mode, light mode, or something in between, this NekoNight has got you covered. Written in Lua for snappy performance, it's a buffet of color schemes for every taste and mood. 🍭

License

MIT, Apache-2.0 licenses found

Licenses found

MIT
LICENSE
Apache-2.0
LICENSE-1.txt
Notifications You must be signed in to change notification settings

BrunoCiccarino/nekonight

Repository files navigation



🏙 Nekonight

GitHub commit activity

Looking for a theme that fits your vibe? Whether you're into dark mode, light mode, or something in between, this NekoNight has got you covered. Written in Lua for snappy performance, it's a buffet of color schemes for every taste and mood. 🍭 Want to boost your productivity and look good while coding? We've got countless options to keep you inspired and in the zone. 🚀✨ If you love it (and we know you will), hit that ⭐ on our official repo. Your support means the world! 🌍

Note

This theme is a fork of folke/tokyonight.nvim all rights reserved

🎨 Original palette

Palette Hex RGB HSL Color Highlight
Background #262835 38 40 53 232° 16% 18%     
Background Dark #262333 38 35 51 251° 19% 17%     
Background Dark1 #1b1524 27 21 36 264° 26% 11%     
Background Highlight #090028 9 0 40 253° 100% 8%     
Blue #82AAFF 130 170 255 221° 100% 75%     
Blue0 #3d59a1 61 89 161 223° 45% 44%     
Blue1 #2ac3de 42 195 222 189° 73% 52%     
Blue2 #0db9d7 13 185 215 189° 89% 45%     
Blue5 #89ddff 137 221 255 197° 100% 77%     
Blue6 #b4f9f8 180 249 248 179° 85% 84%     
Blue7 #394b70 57 75 112 220° 33% 33%     
Comment #546E7A 84 110 122 199° 18% 40%     
Cyan #7dcfff 125 207 255 202° 100% 75%     
Dark3 #545c7e 84 92 126 229° 20% 41%     
Dark5 #737aa2 115 122 162 231° 20% 54%     
Foreground #c0caf5 192 202 245 229° 73% 86%     
Foreground Gruvbox #f9f5d7 249 245 215 53° 74% 91%     
Foreground Dark #a9b1d6 169 177 214 229° 35% 75%     
Foreground Gutter #3b4261 59 66 97 229° 24% 31%     
Green #C3E88D 195 232 141 84° 66% 73%     
Green1 #FFCB6B 255 203 107 39° 100% 71%     
Green2 #41a6b5 65 166 181 188° 47% 48%     
Magenta #c099ff 192 153 255 263° 100% 80%     
Magenta2 #ff007c 255 0 124 331° 100% 50%     
Orange #dd9046 221 144 70 29° 69% 57%     
Purple #C792EA 199 146 234 276° 68% 75%     
Red #f65866 246 88 102 355° 90% 65%     
Red1 #c53b53 197 59 83 350° 54% 50%     
Teal #4fd6be 79 214 190 169° 62% 57%     
Terminal Black #444a73 68 74 115 232° 26% 36%     
Yellow #efbd5d 239 189 93 39° 82% 65%     

🍭 Themes preview

🎨 neovim

Moon Storm
Night Day
Mars Nord
Shades of purple Shades of purple dark
OneDark Fire Obsidian
Palenight Noctis-Uva
Gruvbox Dracula
Doom One Zenburn
Material theme Arcdark
Moonlight Synthwave
Space Aurora
OneDark Deep Deep Ocean

✨ Features

  • Supports the latest Neovim 0.9.0 features.
  • Terminal colors.
  • Supports all major plugins.
  • Provides NekoNight extras for numerous other applications.
🎨 Supported Plugins
Plugin Source
aerial.nvim aerial
ale ale
alpha-nvim alpha
barbar.nvim barbar
blink.cmp blink
bufferline.nvim bufferline
nvim-cmp cmp
codeium.nvim codeium
copilot.lua copilot
nvim-dap dap
dashboard-nvim dashboard
flash.nvim flash
fugit2 fugit2
fzf-lua fzf
vim-gitgutter gitgutter
gitsigns.nvim gitsigns
glyph-palette.vim glyph-palette
grug-far.nvim grug-far
headlines.nvim headlines
hop.nvim hop
vim-illuminate illuminate
indent-blankline.nvim indent-blankline
indentmini.nvim indentmini
lazy.nvim lazy
leap.nvim leap
lspsaga.nvim lspsaga
mini.animate mini_animate
mini.clue mini_clue
mini.completion mini_completion
mini.cursorword mini_cursorword
mini.deps mini_deps
mini.diff mini_diff
mini.files mini_files
mini.hipatterns mini_hipatterns
mini.icons mini_icons
mini.indentscope mini_indentscope
mini.jump mini_jump
mini.map mini_map
mini.notify mini_notify
mini.operators mini_operators
mini.pick mini_pick
mini.starter mini_starter
mini.statusline mini_statusline
mini.surround mini_surround
mini.tabline mini_tabline
mini.test mini_test
mini.trailspace mini_trailspace
nvim-navic navic
neo-tree.nvim neo-tree
neogit neogit
neotest neotest
noice.nvim noice
nvim-notify notify
nvim-tree.lua nvim-tree
octo.nvim octo
rainbow-delimiters.nvim rainbow
render-markdown.nvim render-markdown
nvim-scrollbar scrollbar
snacks.nvim snacks
vim-sneak sneak
supermaven-nvim supermaven
telescope.nvim telescope
nvim-treesitter-context treesitter-context
trouble.nvim trouble
vimwiki vimwiki
which-key.nvim which-key
yanky.nvim yanky
🍭 Extras
Tool Extra
Aerc extras/aerc
Alacritty extras/alacritty
Delta extras/delta
(Better-)Discord extras/discord
Dunst extras/dunst
Fish extras/fish
Fish Themes extras/fish_themes
Foot extras/foot
Fuzzel extras/fuzzel
Fzf extras/fzf
Ghostty extras/ghostty
GitUI extras/gitui
GNOME Terminal extras/gnome_terminal
Helix extras/helix
iTerm extras/iterm
oh-my-posh extras/ohmyposh
Kitty extras/kitty
Lazygit extras/lazygit
Lua Table for testing extras/lua
Prism extras/prism
process-compose extras/process_compose
Slack extras/slack
Spotify Player extras/spotify_player
Sublime Text extras/sublime
Terminator extras/terminator
Termux extras/termux
Tilix extras/tilix
Tmux extras/tmux
Vim extras/vim
Vscode extras/vscode
Vimium extras/vimium
WezTerm extras/wezterm
Windows Terminal extras/windows_terminal
Xfce Terminal extras/xfceterm
Xresources extras/xresources
Yazi extras/yazi
Zathura extras/zathura
Zellij extras/zellij

⚡️ Requirements

📦 Installation

Install the theme with your preferred package manager, such as folke/lazy.nvim:

{
  "BrunoCiccarino/nekonight",
  lazy = false,
  priority = 1000,
  opts = {},
}

using packer.nvim

return require('packer').startup(function(use)
    -- Other packages can be listed here...

    -- NekoNight Theme
  use 'BrunoCiccarino/nekonight'  
end)

🚀 Usage

vim.cmd[[colorscheme nekonight]]
colorscheme nekonight

" There are also colorschemes for the different styles.
colorscheme nekonight-night
colorscheme nekonight-storm
colorscheme nekonight-day
colorscheme nekonight-moon

Some plugins need extra configuration to work with NekoNight.

Click here for more details
-- Lua
require('barbecue').setup {
  -- ... your barbecue config
  theme = 'nekonight',
  -- ... your barbecue config
}
-- Lua
require('lualine').setup {
  options = {
    -- ... your lualine config
    theme = 'nekonight'
    -- ... your lualine config
  }
}
" Vim Script
let g:lightline = {'colorscheme': 'nekonight'}

⚙️ Configuration

Important

Set the configuration BEFORE loading the color scheme with colorscheme nekonight.

The theme offers four styles: storm, moon, night, and day.

The day style is used when { style = "day" } is passed to setup(options) or when vim.o.background = "light".

nekonight uses the default options, unless setup is explicitly called.

Default Options
---@class nekonight.Config
---@field on_colors fun(colors: ColorScheme)
---@field on_highlights fun(highlights: nekonight.Highlights, colors: ColorScheme)
M.defaults = {
  style = "moon", -- The theme comes in three styles, `storm`, a darker variant `night` and `day`
  light_style = "day", -- The theme is used when the background is set to light
  transparent = false, -- Enable this to disable setting the background color
  terminal_colors = true, -- Configure the colors used when opening a `:terminal` in Neovim
  styles = {
    -- Style to be applied to different syntax groups
    -- Value is any valid attr-list value for `:help nvim_set_hl`
    comments = { italic = true },
    keywords = { italic = true },
    functions = {},
    variables = {},
    -- Background styles. Can be "dark", "transparent" or "normal"
    sidebars = "dark", -- style for sidebars, see below
    floats = "dark", -- style for floating windows
  },
  day_brightness = 0.3, -- Adjusts the brightness of the colors of the **Day** style. Number between 0 and 1, from dull to vibrant colors
  dim_inactive = false, -- dims inactive windows
  lualine_bold = false, -- When `true`, section headers in the lualine theme will be bold

  --- You can override specific color groups to use other groups or a hex color
  --- function will be called with a ColorScheme table
  ---@param colors ColorScheme
  on_colors = function(colors) end,

  --- You can override specific highlights to use other groups or a hex color
  --- function will be called with a Highlights and ColorScheme table
  ---@param highlights nekonight.Highlights
  ---@param colors ColorScheme
  on_highlights = function(highlights, colors) end,

  cache = true, -- When set to true, the theme will be cached for better performance

  ---@type table<string, boolean|{enabled:boolean}>
  plugins = {
    -- enable all plugins when not using lazy.nvim
    -- set to false to manually enable/disable plugins
    all = package.loaded.lazy == nil,
    -- uses your plugin manager to automatically enable needed plugins
    -- currently only lazy.nvim is supported
    auto = true,
    -- add any plugins here that you want to enable
    -- for all possible plugins, see:
    --   * https://github.com/BrunoCiccarino/nekonight/tree/main/lua/nekonight/groups
    -- telescope = true,
  },
}

🪓 Overriding Colors & Highlight Groups

How the highlight groups are calculated:

  1. colors are determined based on your configuration, with the ability to override them using config.on_colors(colors).
  2. These colors are utilized to generate the highlight groups.
  3. config.on_highlights(highlights, colors) can be used to override highlight groups.

For default values of colors and highlights, please consult the storm, moon, night, and day themes.

Settings & Changing Colors
require("nekonight").setup({
  -- use the night style
  style = "night",
  -- disable italic for functions
  styles = {
    functions = {}
  },
  -- Change the "hint" color to the "orange" color, and make the "error" color bright red
  on_colors = function(colors)
    colors.hint = colors.orange
    colors.error = "#ff0000"
  end
})
Borderless Telescope
require("nekonight").setup({
  on_highlights = function(hl, c)
    local prompt = "#2d3149"
    hl.TelescopeNormal = {
      bg = c.bg_dark,
      fg = c.fg_dark,
    }
    hl.TelescopeBorder = {
      bg = c.bg_dark,
      fg = c.bg_dark,
    }
    hl.TelescopePromptNormal = {
      bg = prompt,
    }
    hl.TelescopePromptBorder = {
      bg = prompt,
      fg = prompt,
    }
    hl.TelescopePromptTitle = {
      bg = prompt,
      fg = prompt,
    }
    hl.TelescopePreviewTitle = {
      bg = c.bg_dark,
      fg = c.bg_dark,
    }
    hl.TelescopeResultsTitle = {
      bg = c.bg_dark,
      fg = c.bg_dark,
    }
  end,
})
Fix undercurls in Tmux

To have undercurls show up and in color, add the following to your Tmux configuration file:

# Undercurl
set -g default-terminal "${TERM}"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'  # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'  # underscore colours - needs tmux-3.0

🔥 Contributing

Pull requests are welcome.

That said, there's a bunch of ways you can contribute to this project, like by:

  • ⭐ Giving a star on this repository (this is very important and costs nothing)
  • 🪲 Reporting a bug
  • 📄 Improving this documentation
  • 🚨 Sharing this project and recommending it to your friends
  • 💻 Submitting a pull request to the official repository

For the extras, we use a simple template system that can be used to generate themes for the different styles.

How to add a new extra template:

  1. Create a file like lua/nekonight/extra/cool-app.lua.

  2. Add the name and output file extension to the extras table in lua/nekonight/extra/init.lua.

  3. Run the following command to generate new extra themes from the nekonight plugin directory:

    ./scripts/build
  4. Check the newly created themes in the extra/ directory. Please DO NOT commit them, as they are already automatically built by the CI.

👏 Acknowledgements

About

✨ Looking for a theme that fits your vibe? Whether you're into dark mode, light mode, or something in between, this NekoNight has got you covered. Written in Lua for snappy performance, it's a buffet of color schemes for every taste and mood. 🍭

Topics

Resources

License

MIT, Apache-2.0 licenses found

Licenses found

MIT
LICENSE
Apache-2.0
LICENSE-1.txt

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published