Giter Club home page Giter Club logo

kanagawa.nvim's Introduction

๐ŸŒŠ KANAGAWA.nvim ๐ŸŒŠ

NeoVim dark colorscheme inspired by the colors of the famous painting by Katsushika Hokusai.

Screenshot

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
    colors = {},
    overrides = {},
})

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

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

Related projects

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

Donate

Buy me coffee and support my work ;)

Donate

kanagawa.nvim's People

Contributors

3719e04 avatar 9seconds avatar ackerr avatar akriese avatar jasonrhansen avatar kdarkhan avatar kencx avatar ludopinelli avatar mrfiregem avatar nrademacher avatar p1scescom avatar rebelot avatar sanka047 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.