-
Notifications
You must be signed in to change notification settings - Fork 182
/
colors.lua
165 lines (146 loc) · 4.72 KB
/
colors.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
---@class PaletteColors
local palette = {
-- Bg Shades
sumiInk0 = "#16161D",
sumiInk1 = "#181820",
sumiInk2 = "#1a1a22",
sumiInk3 = "#1F1F28",
sumiInk4 = "#2A2A37",
sumiInk5 = "#363646",
sumiInk6 = "#54546D", --fg
-- Popup and Floats
waveBlue1 = "#223249",
waveBlue2 = "#2D4F67",
-- Diff and Git
winterGreen = "#2B3328",
winterYellow = "#49443C",
winterRed = "#43242B",
winterBlue = "#252535",
autumnGreen = "#76946A",
autumnRed = "#C34043",
autumnYellow = "#DCA561",
-- Diag
samuraiRed = "#E82424",
roninYellow = "#FF9E3B",
waveAqua1 = "#6A9589",
dragonBlue = "#658594",
-- Fg and Comments
oldWhite = "#C8C093",
fujiWhite = "#DCD7BA",
fujiGray = "#727169",
oniViolet = "#957FB8",
oniViolet2 = "#b8b4d0",
crystalBlue = "#7E9CD8",
springViolet1 = "#938AA9",
springViolet2 = "#9CABCA",
springBlue = "#7FB4CA",
lightBlue = "#A3D4D5", -- unused yet
waveAqua2 = "#7AA89F", -- improve lightness: desaturated greenish Aqua
-- waveAqua2 = "#68AD99",
-- waveAqua4 = "#7AA880",
-- waveAqua5 = "#6CAF95",
-- waveAqua3 = "#68AD99",
springGreen = "#98BB6C",
boatYellow1 = "#938056",
boatYellow2 = "#C0A36E",
carpYellow = "#E6C384",
sakuraPink = "#D27E99",
waveRed = "#E46876",
peachRed = "#FF5D62",
surimiOrange = "#FFA066",
katanaGray = "#717C7C",
dragonBlack0 = "#0d0c0c",
dragonBlack1 = "#12120f",
dragonBlack2 = "#1D1C19",
dragonBlack3 = "#181616",
dragonBlack4 = "#282727",
dragonBlack5 = "#393836",
dragonBlack6 = "#625e5a",
dragonWhite = "#c5c9c5",
dragonGreen = "#87a987",
dragonGreen2 = "#8a9a7b",
dragonPink = "#a292a3",
dragonOrange = "#b6927b",
dragonOrange2 = "#b98d7b",
dragonGray = "#a6a69c",
dragonGray2 = "#9e9b93",
dragonGray3 = "#7a8382",
dragonBlue2 = "#8ba4b0",
dragonViolet= "#8992a7",
dragonRed = "#c4746e",
dragonAqua = "#8ea4a2",
dragonAsh = "#737c73",
dragonTeal = "#949fb5",
dragonYellow = "#c4b28a",--"#a99c8b",
-- "#8a9aa3",
lotusInk1 = "#545464",
lotusInk2 = "#43436c",
lotusGray = "#dcd7ba",
lotusGray2 = "#716e61",
lotusGray3 = "#8a8980",
lotusWhite0 = "#d5cea3",
lotusWhite1 = "#dcd5ac",
lotusWhite2 = "#e5ddb0",
lotusWhite3 = "#f2ecbc",
lotusWhite4 = "#e7dba0",
lotusWhite5 = "#e4d794",
lotusViolet1 = "#a09cac",
lotusViolet2 = "#766b90",
lotusViolet3 = "#c9cbd1",
lotusViolet4 = "#624c83",
lotusBlue1 = "#c7d7e0",
lotusBlue2 = "#b5cbd2",
lotusBlue3 = "#9fb5c9",
lotusBlue4 = "#4d699b",
lotusBlue5 = "#5d57a3",
lotusGreen = "#6f894e",
lotusGreen2 = "#6e915f",
lotusGreen3 = "#b7d0ae",
lotusPink = "#b35b79",
lotusOrange = "#cc6d00",
lotusOrange2 = "#e98a00",
lotusYellow ="#77713f",
lotusYellow2 = "#836f4a",
lotusYellow3 = "#de9800",
lotusYellow4 = "#f9d791",
lotusRed = "#c84053",
lotusRed2 = "#d7474b",
lotusRed3 = "#e82424",
lotusRed4 = "#d9a594",
lotusAqua = "#597b75",
lotusAqua2 = "#5e857a",
lotusTeal1 = "#4e8ca2",
lotusTeal2 = "#6693bf",
lotusTeal3 = "#5a7785",
lotusCyan = "#d7e3d8",
}
local M = {}
--- Generate colors table:
--- * opts:
--- - colors: Table of personalized colors and/or overrides of existing ones.
--- Defaults to KanagawaConfig.colors.
--- - theme: Use selected theme. Defaults to KanagawaConfig.theme
--- according to the value of 'background' option.
---@param opts? { colors?: table, theme?: string }
---@return { theme: ThemeColors, palette: PaletteColors}
function M.setup(opts)
opts = opts or {}
local override_colors = opts.colors or require("kanagawa").config.colors
local theme = opts.theme or require("kanagawa")._CURRENT_THEME -- WARN: this fails if called before kanagawa.load()
if not theme then
error("kanagawa.colors.setup(): Unable to infer `theme`. Either specify a theme or call this function after ':colorscheme kanagawa'")
end
-- Add to and/or override palette_colors
local updated_palette_colors = vim.tbl_extend("force", palette, override_colors.palette or {})
-- Generate the theme according to the updated palette colors
local theme_colors = require("kanagawa.themes")[theme](updated_palette_colors)
-- Add to and/or override theme_colors
local theme_overrides = vim.tbl_deep_extend("force", override_colors.theme["all"] or {}, override_colors.theme[theme] or {} )
local updated_theme_colors = vim.tbl_deep_extend("force", theme_colors, theme_overrides)
-- return palette_colors AND theme_colors
return {
theme = updated_theme_colors,
palette = updated_palette_colors,
}
end
return M