rebelot/kanagawa.nvim

github github
tree-sitter-supported-colorscheme
star 1,583
alert-circle 14
users 8
git-branch 60
CREATED

2021-12-20

UPDATED

13 days ago


Installation

Download with your favorite package manager.

use "rebelot/kanagawa.nvim"

Requirements

  • neovim >= 0.6
  • truecolor terminal support
  • undercurl terminal support (optional)

Usage

As simple as writing (pasting)

colorscheme kanagawa
vim.cmd("colorscheme kanagawa")

Plugin Support

And many others should "just work"!

Configuration

There is no need to call setup if you are ok with the defaults.

-- Default options:
require('kanagawa').setup({
    undercurl = true,           -- enable undercurls
    commentStyle = { italic = true },
    functionStyle = {},
    keywordStyle = { italic = true},
    statementStyle = { bold = true },
    typeStyle = {},
    variablebuiltinStyle = { italic = true},
    specialReturn = true,       -- special highlight for the return keyword
    specialException = true,    -- special highlight for exception handling keywords
    transparent = false,        -- do not set background color
    dimInactive = false,        -- dim inactive window `:h hl-NormalNC`
    globalStatus = false,       -- adjust window separators highlight for laststatus=3
    terminalColors = true,      -- define vim.g.terminal_color_{0,17}
    colors = {},
    overrides = {},
    theme = "default"           -- Load "default" theme or the experimental "light" theme
})

-- setup must be called before loading
vim.cmd("colorscheme kanagawa")

Light and default themes may also be changed by setting the background option. Note that if the option is set, its value will override and change the theme field the configuration. To set a theme other than default or light you must disable this setting.

:set background=dark " default theme
:set background=light " light theme
" disable the setting
:set background=

Customize highlight groups and colors

You can change the colors of existing hl-groups as well as creating new ones. Supported keywords are the same for :h nvim_set_hl {val} parameter.

You can define your own colors or use the theme colors (see example below). All the palette colors can be found here.

Example:

local default_colors = require("kanagawa.colors").setup()

-- this will affect all the hl-groups where the redefined colors are used
local my_colors = {
    -- use the palette color name...
    sumiInk1 = "black",
    fujiWhite = "#FFFFFF",
    -- ...or the theme name
    bg = "#272727",
    -- you can also define new colors if you want
    -- this will be accessible from require("kanagawa.colors").setup()
    -- AFTER calling require("kanagawa").setup(config)
    new_color = "teal"
}

local overrides = {
    -- create a new hl-group using default palette colors and/or new ones
    MyHlGroup1 = { fg = default_colors.waveRed, bg = "#AAAAAA", underline = true, bold = true, guisp="blue" },

    -- override existing hl-groups, the new keywords are merged with existing ones
    VertSplit  = { fg = default_colors.bg_dark, bg = "NONE" },
    TSError    = { link = "Error" },
    TSKeywordOperator = { bold = true},
    StatusLine = { fg = my_colors.new_color }
}

require'kanagawa'.setup({ overrides = overrides, colors = my_colors })
vim.cmd("colorscheme kanagawa")

Example for Global Statusline. Note: it works really nice with dimInactive = true option.

vim.opt.laststatus = 3
vim.opt.fillchars:append({
    horiz = '━',
    horizup = '┻',
    horizdown = '┳',
    vert = '┃',
    vertleft = '┨',
    vertright = '┣',
    verthoriz = '╋',
})
require'kanagawa'.setup({ globalStatus = true, ... })
vim.cmd("colorscheme kanagawa")

Color palette

Name Hex Usage
fujiWhite #DCD7BA Default foreground
oldWhite #C8C093 Dark foreground (statuslines)
sumiInk0 #16161D Dark background (statuslines and floating windows)
sumiInk1 #1F1F28 Default background
sumiInk2 #2A2A37 Lighter background (colorcolumn, folds)
sumiInk3 #363646 Lighter background (cursorline)
sumiInk4 #54546D Darker foreground (line numbers, fold column, non-text characters), float borders
waveBlue1 #223249 Popup background, visual selection background
waveBlue2 #2D4F67 Popup selection background, search background
winterGreen #2B3328 Diff Add (background)
winterYellow #49443C Diff Change (background)
winterRed #43242B Diff Deleted (background)
winterBlue #252535 Diff Line (background)
autumnGreen #76946A Git Add
autumnRed #C34043 Git Delete
autumnYellow #DCA561 Git Change
samuraiRed #E82424 Diagnostic Error
roninYellow #FF9E3B Diagnostic Warning
waveAqua1 #6A9589 Diagnostic Info
dragonBlue #658594 Diagnostic Hint
fujiGray #727169 Comments
springViolet1 #938AA9 Light foreground
oniViolet #957FB8 Statements and Keywords
crystalBlue #7E9CD8 Functions and Titles
springViolet2 #9CABCA Brackets and punctuation
springBlue #7FB4CA Specials and builtin functions
lightBlue #A3D4D5 Not used
waveAqua2 #7AA89F Types
springGreen #98BB6C Strings
boatYellow1 #938056 Not used
boatYellow2 #C0A36E Operators, RegEx
carpYellow #E6C384 Identifiers
sakuraPink #D27E99 Numbers
waveRed #E46876 Standout specials 1 (builtin variables)
peachRed #FF5D62 Standout specials 2 (exception handling, return)
surimiOrange #FFA066 Constants, imports, booleans
katanaGray #717C7C Deprecated

Extras

Acknowledgements

  • kanagawa.vim - unaffiliated vimscript port of kanagawa.nvim

Buy me coffee and support my work ;)

Donate