-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy paththemes.go
More file actions
415 lines (401 loc) · 30.3 KB
/
Copy paththemes.go
File metadata and controls
415 lines (401 loc) · 30.3 KB
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
package main
type Theme struct {
Name string
Bg Color
KeyBg Color
KeyBgPressed Color
KeyBorder Color
KeyText Color
HighlightBg Color
HighlightBorder Color
ModifierBg Color
ModifierActiveBg Color
ModifierActiveText Color // pill text color (dark on light bg, white on dark bg)
ModifierText Color
FnKeyBg Color
AccentPopupBg Color
AccentPopupText Color
AccentHighlightBg Color
GlyphColor Color
}
func c(r, g, b uint8) Color { return Color{R: r, G: g, B: b, A: 255} }
var w = c(255, 255, 255) // white pill text
var d = c(20, 20, 20) // dark pill text
var Themes = map[string]Theme{
// --- Core themes ---
"dark": {Name: "dark", Bg: c(30, 30, 35), KeyBg: c(55, 55, 65), KeyBgPressed: c(80, 80, 95),
KeyBorder: c(70, 70, 80), KeyText: c(220, 220, 230), HighlightBg: c(60, 110, 180),
HighlightBorder: c(80, 140, 220), ModifierBg: c(50, 50, 60),
ModifierActiveBg: c(90, 70, 130), ModifierActiveText: w, ModifierText: c(180, 180, 200),
FnKeyBg: c(45, 45, 55), AccentPopupBg: c(50, 50, 60),
AccentPopupText: c(220, 220, 230), AccentHighlightBg: c(60, 110, 180), GlyphColor: c(120, 120, 140)},
"steam_green": {Name: "steam_green", Bg: c(22, 32, 22), KeyBg: c(35, 55, 35), KeyBgPressed: c(50, 80, 50),
KeyBorder: c(45, 70, 45), KeyText: c(200, 220, 200), HighlightBg: c(56, 150, 60),
HighlightBorder: c(76, 185, 80), ModifierBg: c(30, 48, 30),
ModifierActiveBg: c(40, 120, 45), ModifierActiveText: w, ModifierText: c(170, 200, 170),
FnKeyBg: c(28, 44, 28), AccentPopupBg: c(32, 50, 32),
AccentPopupText: c(200, 220, 200), AccentHighlightBg: c(56, 150, 60), GlyphColor: c(100, 160, 100)},
"high_contrast": {Name: "high_contrast", Bg: c(0, 0, 0), KeyBg: c(20, 20, 20), KeyBgPressed: c(60, 60, 60),
KeyBorder: c(200, 200, 200), KeyText: c(255, 255, 255), HighlightBg: c(255, 255, 0),
HighlightBorder: c(255, 255, 255), ModifierBg: c(10, 10, 10),
ModifierActiveBg: c(200, 0, 0), ModifierActiveText: w, ModifierText: c(255, 255, 255),
FnKeyBg: c(15, 15, 15), AccentPopupBg: c(20, 20, 20),
AccentPopupText: c(255, 255, 255), AccentHighlightBg: c(255, 255, 0), GlyphColor: c(180, 180, 0)},
"terminal": {Name: "terminal", Bg: c(0, 0, 0), KeyBg: c(10, 18, 10), KeyBgPressed: c(20, 40, 20),
KeyBorder: c(0, 50, 0), KeyText: c(0, 204, 0), HighlightBg: c(0, 80, 0),
HighlightBorder: c(0, 120, 0), ModifierBg: c(8, 14, 8),
ModifierActiveBg: c(0, 160, 0), ModifierActiveText: d, ModifierText: c(0, 140, 0),
FnKeyBg: c(6, 12, 6), AccentPopupBg: c(10, 18, 10),
AccentPopupText: c(0, 204, 0), AccentHighlightBg: c(0, 80, 0), GlyphColor: c(0, 100, 0)},
// --- Popular editor/terminal themes ---
"nord": {Name: "nord", Bg: c(46, 52, 64), KeyBg: c(59, 66, 82), KeyBgPressed: c(76, 86, 106),
KeyBorder: c(67, 76, 94), KeyText: c(216, 222, 233), HighlightBg: c(94, 129, 172),
HighlightBorder: c(129, 161, 193), ModifierBg: c(59, 66, 82),
ModifierActiveBg: c(136, 192, 208), ModifierActiveText: d, ModifierText: c(180, 190, 210),
FnKeyBg: c(52, 60, 74), AccentPopupBg: c(59, 66, 82),
AccentPopupText: c(216, 222, 233), AccentHighlightBg: c(94, 129, 172), GlyphColor: c(76, 86, 106)},
"dracula": {Name: "dracula", Bg: c(40, 42, 54), KeyBg: c(68, 71, 90), KeyBgPressed: c(98, 114, 164),
KeyBorder: c(80, 83, 105), KeyText: c(248, 248, 242), HighlightBg: c(189, 147, 249),
HighlightBorder: c(255, 121, 198), ModifierBg: c(55, 57, 72),
ModifierActiveBg: c(255, 85, 85), ModifierActiveText: w, ModifierText: c(200, 200, 220),
FnKeyBg: c(50, 52, 66), AccentPopupBg: c(68, 71, 90),
AccentPopupText: c(248, 248, 242), AccentHighlightBg: c(189, 147, 249), GlyphColor: c(98, 114, 164)},
"gruvbox": {Name: "gruvbox", Bg: c(40, 40, 40), KeyBg: c(60, 56, 54), KeyBgPressed: c(80, 73, 69),
KeyBorder: c(80, 73, 69), KeyText: c(235, 219, 178), HighlightBg: c(215, 153, 33),
HighlightBorder: c(250, 189, 47), ModifierBg: c(50, 48, 47),
ModifierActiveBg: c(184, 187, 38), ModifierActiveText: d, ModifierText: c(189, 174, 147),
FnKeyBg: c(50, 48, 47), AccentPopupBg: c(60, 56, 54),
AccentPopupText: c(235, 219, 178), AccentHighlightBg: c(215, 153, 33), GlyphColor: c(124, 111, 100)},
"catppuccin": {Name: "catppuccin", Bg: c(30, 30, 46), KeyBg: c(49, 50, 68), KeyBgPressed: c(69, 71, 90),
KeyBorder: c(58, 59, 78), KeyText: c(205, 214, 244), HighlightBg: c(137, 180, 250),
HighlightBorder: c(180, 190, 254), ModifierBg: c(43, 44, 60),
ModifierActiveBg: c(245, 194, 231), ModifierActiveText: d, ModifierText: c(166, 173, 200),
FnKeyBg: c(36, 37, 52), AccentPopupBg: c(49, 50, 68),
AccentPopupText: c(205, 214, 244), AccentHighlightBg: c(137, 180, 250), GlyphColor: c(88, 91, 112)},
"solarized": {Name: "solarized", Bg: c(0, 43, 54), KeyBg: c(7, 54, 66), KeyBgPressed: c(88, 110, 117),
KeyBorder: c(0, 54, 66), KeyText: c(147, 161, 161), HighlightBg: c(38, 139, 210),
HighlightBorder: c(42, 161, 152), ModifierBg: c(0, 43, 54),
ModifierActiveBg: c(133, 153, 0), ModifierActiveText: d, ModifierText: c(131, 148, 150),
FnKeyBg: c(0, 38, 48), AccentPopupBg: c(7, 54, 66),
AccentPopupText: c(147, 161, 161), AccentHighlightBg: c(38, 139, 210), GlyphColor: c(88, 110, 117)},
"solarized_light": {Name: "solarized_light", Bg: c(253, 246, 227), KeyBg: c(238, 232, 213), KeyBgPressed: c(220, 213, 193),
KeyBorder: c(210, 203, 183), KeyText: c(101, 123, 131), HighlightBg: c(38, 139, 210),
HighlightBorder: c(42, 161, 152), ModifierBg: c(245, 238, 220),
ModifierActiveBg: c(133, 153, 0), ModifierActiveText: w, ModifierText: c(131, 148, 150),
FnKeyBg: c(240, 234, 216), AccentPopupBg: c(238, 232, 213),
AccentPopupText: c(101, 123, 131), AccentHighlightBg: c(38, 139, 210), GlyphColor: c(180, 173, 155)},
"monokai": {Name: "monokai", Bg: c(39, 40, 34), KeyBg: c(55, 56, 48), KeyBgPressed: c(75, 76, 66),
KeyBorder: c(65, 66, 56), KeyText: c(248, 248, 242), HighlightBg: c(166, 226, 46),
HighlightBorder: c(190, 240, 80), ModifierBg: c(45, 46, 38),
ModifierActiveBg: c(249, 38, 114), ModifierActiveText: w, ModifierText: c(200, 200, 190),
FnKeyBg: c(42, 43, 36), AccentPopupBg: c(55, 56, 48),
AccentPopupText: c(248, 248, 242), AccentHighlightBg: c(166, 226, 46), GlyphColor: c(117, 113, 94)},
"onedark": {Name: "onedark", Bg: c(40, 44, 52), KeyBg: c(55, 60, 72), KeyBgPressed: c(75, 82, 99),
KeyBorder: c(63, 68, 82), KeyText: c(171, 178, 191), HighlightBg: c(97, 175, 239),
HighlightBorder: c(130, 195, 250), ModifierBg: c(48, 52, 63),
ModifierActiveBg: c(224, 108, 117), ModifierActiveText: w, ModifierText: c(150, 158, 172),
FnKeyBg: c(44, 48, 58), AccentPopupBg: c(55, 60, 72),
AccentPopupText: c(171, 178, 191), AccentHighlightBg: c(97, 175, 239), GlyphColor: c(92, 99, 112)},
"tokyo_night": {Name: "tokyo_night", Bg: c(26, 27, 38), KeyBg: c(41, 46, 66), KeyBgPressed: c(59, 66, 97),
KeyBorder: c(50, 56, 80), KeyText: c(169, 177, 214), HighlightBg: c(122, 162, 247),
HighlightBorder: c(158, 186, 255), ModifierBg: c(33, 37, 53),
ModifierActiveBg: c(187, 154, 247), ModifierActiveText: d, ModifierText: c(140, 150, 190),
FnKeyBg: c(30, 32, 45), AccentPopupBg: c(41, 46, 66),
AccentPopupText: c(169, 177, 214), AccentHighlightBg: c(122, 162, 247), GlyphColor: c(68, 75, 106)},
"everforest": {Name: "everforest", Bg: c(47, 53, 47), KeyBg: c(63, 72, 60), KeyBgPressed: c(80, 92, 76),
KeyBorder: c(70, 80, 66), KeyText: c(211, 198, 170), HighlightBg: c(143, 191, 115),
HighlightBorder: c(167, 210, 140), ModifierBg: c(53, 61, 52),
ModifierActiveBg: c(219, 188, 127), ModifierActiveText: d, ModifierText: c(180, 170, 150),
FnKeyBg: c(50, 57, 49), AccentPopupBg: c(63, 72, 60),
AccentPopupText: c(211, 198, 170), AccentHighlightBg: c(143, 191, 115), GlyphColor: c(90, 102, 86)},
"kanagawa": {Name: "kanagawa", Bg: c(31, 31, 40), KeyBg: c(43, 43, 56), KeyBgPressed: c(60, 60, 80),
KeyBorder: c(54, 54, 70), KeyText: c(220, 215, 186), HighlightBg: c(127, 180, 202),
HighlightBorder: c(160, 200, 220), ModifierBg: c(36, 36, 48),
ModifierActiveBg: c(195, 64, 67), ModifierActiveText: w, ModifierText: c(180, 176, 156),
FnKeyBg: c(34, 34, 44), AccentPopupBg: c(43, 43, 56),
AccentPopupText: c(220, 215, 186), AccentHighlightBg: c(127, 180, 202), GlyphColor: c(84, 84, 109)},
"gotham": {Name: "gotham", Bg: c(10, 15, 20), KeyBg: c(17, 27, 33), KeyBgPressed: c(30, 45, 55),
KeyBorder: c(20, 35, 42), KeyText: c(152, 209, 206), HighlightBg: c(38, 139, 210),
HighlightBorder: c(50, 160, 230), ModifierBg: c(13, 21, 26),
ModifierActiveBg: c(195, 132, 24), ModifierActiveText: d, ModifierText: c(120, 170, 168),
FnKeyBg: c(12, 18, 23), AccentPopupBg: c(17, 27, 33),
AccentPopupText: c(152, 209, 206), AccentHighlightBg: c(38, 139, 210), GlyphColor: c(40, 62, 72)},
"horizon": {Name: "horizon", Bg: c(28, 30, 38), KeyBg: c(45, 47, 58), KeyBgPressed: c(65, 68, 82),
KeyBorder: c(53, 56, 68), KeyText: c(205, 200, 192), HighlightBg: c(233, 86, 120),
HighlightBorder: c(250, 110, 145), ModifierBg: c(35, 38, 48),
ModifierActiveBg: c(250, 180, 80), ModifierActiveText: d, ModifierText: c(175, 172, 165),
FnKeyBg: c(32, 34, 43), AccentPopupBg: c(45, 47, 58),
AccentPopupText: c(205, 200, 192), AccentHighlightBg: c(233, 86, 120), GlyphColor: c(90, 93, 108)},
// --- Fun/retro themes ---
"candy": {Name: "candy", Bg: c(40, 18, 55), KeyBg: c(70, 35, 90), KeyBgPressed: c(100, 55, 125),
KeyBorder: c(85, 45, 110), KeyText: c(240, 210, 250), HighlightBg: c(210, 80, 140),
HighlightBorder: c(240, 110, 170), ModifierBg: c(60, 28, 78),
ModifierActiveBg: c(180, 60, 120), ModifierActiveText: w, ModifierText: c(220, 190, 230),
FnKeyBg: c(55, 25, 72), AccentPopupBg: c(65, 30, 85),
AccentPopupText: c(240, 210, 250), AccentHighlightBg: c(210, 80, 140), GlyphColor: c(180, 120, 160)},
"ocean": {Name: "ocean", Bg: c(15, 25, 45), KeyBg: c(25, 45, 75), KeyBgPressed: c(35, 65, 105),
KeyBorder: c(35, 55, 90), KeyText: c(190, 215, 240), HighlightBg: c(30, 120, 190),
HighlightBorder: c(50, 150, 220), ModifierBg: c(20, 38, 65),
ModifierActiveBg: c(25, 100, 170), ModifierActiveText: w, ModifierText: c(170, 200, 230),
FnKeyBg: c(20, 35, 60), AccentPopupBg: c(22, 40, 70),
AccentPopupText: c(190, 215, 240), AccentHighlightBg: c(30, 120, 190), GlyphColor: c(100, 150, 200)},
"retro": {Name: "retro", Bg: c(0, 0, 0), KeyBg: c(18, 12, 0), KeyBgPressed: c(40, 28, 0),
KeyBorder: c(50, 35, 0), KeyText: c(255, 176, 0), HighlightBg: c(80, 56, 0),
HighlightBorder: c(120, 84, 0), ModifierBg: c(14, 10, 0),
ModifierActiveBg: c(200, 140, 0), ModifierActiveText: d, ModifierText: c(180, 126, 0),
FnKeyBg: c(12, 8, 0), AccentPopupBg: c(18, 12, 0),
AccentPopupText: c(255, 176, 0), AccentHighlightBg: c(80, 56, 0), GlyphColor: c(100, 70, 0)},
"synthwave": {Name: "synthwave", Bg: c(13, 2, 33), KeyBg: c(30, 10, 60), KeyBgPressed: c(50, 20, 90),
KeyBorder: c(45, 15, 80), KeyText: c(230, 180, 255), HighlightBg: c(255, 0, 110),
HighlightBorder: c(255, 50, 150), ModifierBg: c(22, 6, 48),
ModifierActiveBg: c(0, 255, 255), ModifierActiveText: d, ModifierText: c(180, 140, 220),
FnKeyBg: c(20, 5, 42), AccentPopupBg: c(30, 10, 60),
AccentPopupText: c(230, 180, 255), AccentHighlightBg: c(255, 0, 110), GlyphColor: c(120, 40, 180)},
"neon": {Name: "neon", Bg: c(5, 5, 5), KeyBg: c(15, 15, 15), KeyBgPressed: c(30, 30, 30),
KeyBorder: c(0, 255, 128), KeyText: c(255, 255, 255), HighlightBg: c(255, 0, 255),
HighlightBorder: c(0, 255, 255), ModifierBg: c(10, 10, 10),
ModifierActiveBg: c(0, 255, 0), ModifierActiveText: d, ModifierText: c(200, 200, 200),
FnKeyBg: c(12, 12, 12), AccentPopupBg: c(15, 15, 15),
AccentPopupText: c(255, 255, 255), AccentHighlightBg: c(255, 0, 255), GlyphColor: c(0, 180, 90)},
// --- New batch ---
"rose_pine": {Name: "rose_pine", Bg: c(25, 23, 36), KeyBg: c(38, 35, 53), KeyBgPressed: c(57, 53, 82),
KeyBorder: c(46, 42, 66), KeyText: c(224, 222, 244), HighlightBg: c(196, 167, 231),
HighlightBorder: c(235, 188, 186), ModifierBg: c(30, 28, 44),
ModifierActiveBg: c(235, 111, 146), ModifierActiveText: d, ModifierText: c(190, 186, 220),
FnKeyBg: c(28, 26, 40), AccentPopupBg: c(38, 35, 53),
AccentPopupText: c(224, 222, 244), AccentHighlightBg: c(196, 167, 231), GlyphColor: c(80, 75, 110)},
"ayu_dark": {Name: "ayu_dark", Bg: c(10, 14, 20), KeyBg: c(22, 28, 38), KeyBgPressed: c(38, 46, 60),
KeyBorder: c(30, 37, 50), KeyText: c(203, 204, 198), HighlightBg: c(255, 180, 84),
HighlightBorder: c(255, 200, 120), ModifierBg: c(16, 21, 30),
ModifierActiveBg: c(57, 186, 230), ModifierActiveText: d, ModifierText: c(160, 162, 158),
FnKeyBg: c(13, 17, 25), AccentPopupBg: c(22, 28, 38),
AccentPopupText: c(203, 204, 198), AccentHighlightBg: c(255, 180, 84), GlyphColor: c(60, 70, 90)},
"material": {Name: "material", Bg: c(38, 50, 56), KeyBg: c(55, 71, 79), KeyBgPressed: c(78, 93, 100),
KeyBorder: c(66, 82, 90), KeyText: c(236, 239, 241), HighlightBg: c(0, 150, 136),
HighlightBorder: c(0, 188, 170), ModifierBg: c(45, 60, 67),
ModifierActiveBg: c(255, 82, 82), ModifierActiveText: w, ModifierText: c(200, 210, 215),
FnKeyBg: c(42, 55, 62), AccentPopupBg: c(55, 71, 79),
AccentPopupText: c(236, 239, 241), AccentHighlightBg: c(0, 150, 136), GlyphColor: c(96, 120, 130)},
"cobalt": {Name: "cobalt", Bg: c(0, 25, 60), KeyBg: c(10, 40, 85), KeyBgPressed: c(20, 60, 120),
KeyBorder: c(15, 50, 100), KeyText: c(230, 240, 255), HighlightBg: c(60, 140, 255),
HighlightBorder: c(100, 170, 255), ModifierBg: c(5, 32, 72),
ModifierActiveBg: c(255, 200, 0), ModifierActiveText: d, ModifierText: c(180, 200, 230),
FnKeyBg: c(3, 28, 65), AccentPopupBg: c(10, 40, 85),
AccentPopupText: c(230, 240, 255), AccentHighlightBg: c(60, 140, 255), GlyphColor: c(40, 80, 140)},
"midnight": {Name: "midnight", Bg: c(12, 5, 20), KeyBg: c(25, 12, 40), KeyBgPressed: c(42, 22, 65),
KeyBorder: c(35, 16, 55), KeyText: c(210, 190, 240), HighlightBg: c(120, 60, 200),
HighlightBorder: c(160, 90, 240), ModifierBg: c(18, 8, 30),
ModifierActiveBg: c(100, 50, 180), ModifierActiveText: w, ModifierText: c(170, 150, 200),
FnKeyBg: c(15, 7, 25), AccentPopupBg: c(25, 12, 40),
AccentPopupText: c(210, 190, 240), AccentHighlightBg: c(120, 60, 200), GlyphColor: c(70, 35, 120)},
"ember": {Name: "ember", Bg: c(15, 5, 0), KeyBg: c(35, 12, 5), KeyBgPressed: c(60, 22, 10),
KeyBorder: c(50, 18, 8), KeyText: c(255, 200, 150), HighlightBg: c(200, 60, 10),
HighlightBorder: c(240, 100, 30), ModifierBg: c(25, 8, 2),
ModifierActiveBg: c(255, 120, 0), ModifierActiveText: d, ModifierText: c(200, 150, 100),
FnKeyBg: c(20, 7, 1), AccentPopupBg: c(35, 12, 5),
AccentPopupText: c(255, 200, 150), AccentHighlightBg: c(200, 60, 10), GlyphColor: c(120, 45, 10)},
"ice": {Name: "ice", Bg: c(15, 20, 30), KeyBg: c(30, 40, 55), KeyBgPressed: c(50, 65, 85),
KeyBorder: c(40, 52, 70), KeyText: c(200, 220, 245), HighlightBg: c(100, 180, 255),
HighlightBorder: c(150, 210, 255), ModifierBg: c(22, 30, 42),
ModifierActiveBg: c(170, 220, 255), ModifierActiveText: d, ModifierText: c(160, 185, 215),
FnKeyBg: c(18, 25, 36), AccentPopupBg: c(30, 40, 55),
AccentPopupText: c(200, 220, 245), AccentHighlightBg: c(100, 180, 255), GlyphColor: c(70, 95, 130)},
"forest": {Name: "forest", Bg: c(10, 18, 10), KeyBg: c(20, 35, 18), KeyBgPressed: c(35, 55, 30),
KeyBorder: c(28, 45, 24), KeyText: c(180, 210, 170), HighlightBg: c(50, 120, 40),
HighlightBorder: c(70, 150, 55), ModifierBg: c(15, 26, 14),
ModifierActiveBg: c(80, 160, 60), ModifierActiveText: d, ModifierText: c(140, 175, 130),
FnKeyBg: c(12, 22, 12), AccentPopupBg: c(20, 35, 18),
AccentPopupText: c(180, 210, 170), AccentHighlightBg: c(50, 120, 40), GlyphColor: c(40, 70, 35)},
"slate": {Name: "slate", Bg: c(30, 34, 38), KeyBg: c(48, 53, 58), KeyBgPressed: c(68, 74, 80),
KeyBorder: c(58, 63, 69), KeyText: c(200, 205, 210), HighlightBg: c(90, 100, 115),
HighlightBorder: c(120, 130, 145), ModifierBg: c(38, 42, 47),
ModifierActiveBg: c(130, 140, 155), ModifierActiveText: d, ModifierText: c(170, 175, 180),
FnKeyBg: c(34, 38, 42), AccentPopupBg: c(48, 53, 58),
AccentPopupText: c(200, 205, 210), AccentHighlightBg: c(90, 100, 115), GlyphColor: c(80, 88, 96)},
// --- Popular editor themes ---
"palenight": {Name: "palenight", Bg: c(41, 45, 62), KeyBg: c(56, 61, 82), KeyBgPressed: c(75, 82, 110),
KeyBorder: c(65, 70, 95), KeyText: c(166, 172, 205), HighlightBg: c(130, 170, 255),
HighlightBorder: c(160, 195, 255), ModifierBg: c(48, 52, 72),
ModifierActiveBg: c(199, 146, 234), ModifierActiveText: d, ModifierText: c(140, 146, 175),
FnKeyBg: c(44, 48, 66), AccentPopupBg: c(56, 61, 82),
AccentPopupText: c(166, 172, 205), AccentHighlightBg: c(130, 170, 255), GlyphColor: c(80, 85, 112)},
"nightfox": {Name: "nightfox", Bg: c(18, 21, 31), KeyBg: c(29, 35, 50), KeyBgPressed: c(45, 55, 75),
KeyBorder: c(37, 44, 62), KeyText: c(205, 214, 244), HighlightBg: c(113, 155, 215),
HighlightBorder: c(140, 180, 240), ModifierBg: c(23, 28, 40),
ModifierActiveBg: c(215, 130, 126), ModifierActiveText: d, ModifierText: c(170, 180, 210),
FnKeyBg: c(21, 25, 36), AccentPopupBg: c(29, 35, 50),
AccentPopupText: c(205, 214, 244), AccentHighlightBg: c(113, 155, 215), GlyphColor: c(55, 65, 90)},
"tokyo_storm": {Name: "tokyo_storm", Bg: c(36, 40, 59), KeyBg: c(52, 58, 82), KeyBgPressed: c(70, 78, 108),
KeyBorder: c(60, 67, 94), KeyText: c(169, 177, 214), HighlightBg: c(122, 162, 247),
HighlightBorder: c(158, 186, 255), ModifierBg: c(43, 48, 70),
ModifierActiveBg: c(187, 154, 247), ModifierActiveText: d, ModifierText: c(140, 148, 185),
FnKeyBg: c(39, 44, 64), AccentPopupBg: c(52, 58, 82),
AccentPopupText: c(169, 177, 214), AccentHighlightBg: c(122, 162, 247), GlyphColor: c(75, 82, 115)},
"catppuccin_frappe": {Name: "catppuccin_frappe", Bg: c(48, 52, 70), KeyBg: c(65, 69, 89), KeyBgPressed: c(82, 87, 110),
KeyBorder: c(73, 77, 100), KeyText: c(198, 208, 245), HighlightBg: c(140, 170, 238),
HighlightBorder: c(170, 194, 250), ModifierBg: c(55, 59, 78),
ModifierActiveBg: c(244, 184, 228), ModifierActiveText: d, ModifierText: c(165, 173, 210),
FnKeyBg: c(51, 55, 74), AccentPopupBg: c(65, 69, 89),
AccentPopupText: c(198, 208, 245), AccentHighlightBg: c(140, 170, 238), GlyphColor: c(98, 104, 128)},
"oxocarbon": {Name: "oxocarbon", Bg: c(22, 22, 22), KeyBg: c(38, 38, 38), KeyBgPressed: c(57, 57, 57),
KeyBorder: c(48, 48, 48), KeyText: c(220, 220, 220), HighlightBg: c(51, 183, 255),
HighlightBorder: c(85, 200, 255), ModifierBg: c(30, 30, 30),
ModifierActiveBg: c(190, 149, 255), ModifierActiveText: d, ModifierText: c(180, 180, 180),
FnKeyBg: c(26, 26, 26), AccentPopupBg: c(38, 38, 38),
AccentPopupText: c(220, 220, 220), AccentHighlightBg: c(51, 183, 255), GlyphColor: c(82, 82, 82)},
"mellow": {Name: "mellow", Bg: c(42, 36, 28), KeyBg: c(62, 54, 42), KeyBgPressed: c(82, 72, 56),
KeyBorder: c(72, 62, 48), KeyText: c(220, 205, 175), HighlightBg: c(180, 140, 60),
HighlightBorder: c(210, 170, 85), ModifierBg: c(52, 45, 35),
ModifierActiveBg: c(200, 160, 80), ModifierActiveText: d, ModifierText: c(180, 165, 135),
FnKeyBg: c(46, 40, 32), AccentPopupBg: c(62, 54, 42),
AccentPopupText: c(220, 205, 175), AccentHighlightBg: c(180, 140, 60), GlyphColor: c(110, 95, 72)},
// --- Missing color palettes ---
"paper": {Name: "paper", Bg: c(245, 240, 230), KeyBg: c(232, 226, 214), KeyBgPressed: c(215, 208, 195),
KeyBorder: c(200, 193, 180), KeyText: c(50, 45, 40), HighlightBg: c(100, 140, 190),
HighlightBorder: c(70, 110, 165), ModifierBg: c(238, 232, 220),
ModifierActiveBg: c(80, 120, 170), ModifierActiveText: w, ModifierText: c(120, 110, 100),
FnKeyBg: c(228, 222, 210), AccentPopupBg: c(232, 226, 214),
AccentPopupText: c(50, 45, 40), AccentHighlightBg: c(100, 140, 190), GlyphColor: c(170, 160, 148)},
"navy": {Name: "navy", Bg: c(10, 15, 35), KeyBg: c(18, 28, 58), KeyBgPressed: c(30, 45, 85),
KeyBorder: c(25, 38, 72), KeyText: c(170, 185, 220), HighlightBg: c(40, 70, 140),
HighlightBorder: c(60, 95, 175), ModifierBg: c(14, 22, 46),
ModifierActiveBg: c(55, 90, 170), ModifierActiveText: w, ModifierText: c(130, 148, 190),
FnKeyBg: c(12, 18, 40), AccentPopupBg: c(18, 28, 58),
AccentPopupText: c(170, 185, 220), AccentHighlightBg: c(40, 70, 140), GlyphColor: c(40, 55, 100)},
"wine": {Name: "wine", Bg: c(25, 8, 12), KeyBg: c(50, 15, 22), KeyBgPressed: c(75, 25, 35),
KeyBorder: c(65, 20, 30), KeyText: c(230, 190, 195), HighlightBg: c(140, 30, 50),
HighlightBorder: c(180, 45, 65), ModifierBg: c(38, 12, 18),
ModifierActiveBg: c(180, 50, 70), ModifierActiveText: w, ModifierText: c(190, 150, 158),
FnKeyBg: c(30, 10, 15), AccentPopupBg: c(50, 15, 22),
AccentPopupText: c(230, 190, 195), AccentHighlightBg: c(140, 30, 50), GlyphColor: c(100, 30, 45)},
"copper": {Name: "copper", Bg: c(30, 20, 12), KeyBg: c(55, 38, 22), KeyBgPressed: c(80, 58, 35),
KeyBorder: c(68, 48, 28), KeyText: c(230, 200, 165), HighlightBg: c(180, 110, 50),
HighlightBorder: c(210, 140, 70), ModifierBg: c(42, 28, 16),
ModifierActiveBg: c(200, 130, 60), ModifierActiveText: d, ModifierText: c(190, 160, 125),
FnKeyBg: c(36, 24, 14), AccentPopupBg: c(55, 38, 22),
AccentPopupText: c(230, 200, 165), AccentHighlightBg: c(180, 110, 50), GlyphColor: c(120, 82, 45)},
"lavender": {Name: "lavender", Bg: c(38, 30, 52), KeyBg: c(58, 48, 78), KeyBgPressed: c(80, 68, 105),
KeyBorder: c(68, 56, 90), KeyText: c(220, 210, 240), HighlightBg: c(150, 120, 200),
HighlightBorder: c(180, 150, 230), ModifierBg: c(48, 38, 65),
ModifierActiveBg: c(180, 150, 230), ModifierActiveText: d, ModifierText: c(185, 175, 210),
FnKeyBg: c(42, 34, 58), AccentPopupBg: c(58, 48, 78),
AccentPopupText: c(220, 210, 240), AccentHighlightBg: c(150, 120, 200), GlyphColor: c(95, 80, 125)},
"olive": {Name: "olive", Bg: c(20, 22, 15), KeyBg: c(38, 42, 28), KeyBgPressed: c(55, 62, 40),
KeyBorder: c(48, 52, 35), KeyText: c(195, 200, 175), HighlightBg: c(85, 100, 45),
HighlightBorder: c(110, 128, 60), ModifierBg: c(28, 32, 20),
ModifierActiveBg: c(120, 140, 60), ModifierActiveText: d, ModifierText: c(155, 162, 138),
FnKeyBg: c(24, 27, 17), AccentPopupBg: c(38, 42, 28),
AccentPopupText: c(195, 200, 175), AccentHighlightBg: c(85, 100, 45), GlyphColor: c(62, 70, 42)},
// --- Gaming/pop culture ---
"cyberpunk": {Name: "cyberpunk", Bg: c(10, 8, 15), KeyBg: c(22, 18, 32), KeyBgPressed: c(38, 30, 55),
KeyBorder: c(30, 25, 45), KeyText: c(252, 226, 5), HighlightBg: c(200, 180, 0),
HighlightBorder: c(252, 226, 5), ModifierBg: c(16, 13, 24),
ModifierActiveBg: c(0, 210, 210), ModifierActiveText: d, ModifierText: c(200, 180, 5),
FnKeyBg: c(14, 11, 20), AccentPopupBg: c(22, 18, 32),
AccentPopupText: c(252, 226, 5), AccentHighlightBg: c(200, 180, 0), GlyphColor: c(100, 90, 5)},
"matrix": {Name: "matrix", Bg: c(0, 2, 0), KeyBg: c(0, 15, 0), KeyBgPressed: c(0, 35, 0),
KeyBorder: c(0, 60, 0), KeyText: c(0, 255, 65), HighlightBg: c(0, 100, 20),
HighlightBorder: c(0, 180, 40), ModifierBg: c(0, 10, 0),
ModifierActiveBg: c(0, 200, 50), ModifierActiveText: d, ModifierText: c(0, 180, 45),
FnKeyBg: c(0, 8, 0), AccentPopupBg: c(0, 15, 0),
AccentPopupText: c(0, 255, 65), AccentHighlightBg: c(0, 100, 20), GlyphColor: c(0, 120, 30)},
"vapor": {Name: "vapor", Bg: c(20, 10, 30), KeyBg: c(40, 22, 55), KeyBgPressed: c(60, 35, 80),
KeyBorder: c(50, 28, 68), KeyText: c(255, 180, 220), HighlightBg: c(255, 110, 180),
HighlightBorder: c(100, 255, 218), ModifierBg: c(30, 16, 42),
ModifierActiveBg: c(100, 255, 218), ModifierActiveText: d, ModifierText: c(200, 140, 180),
FnKeyBg: c(25, 13, 36), AccentPopupBg: c(40, 22, 55),
AccentPopupText: c(255, 180, 220), AccentHighlightBg: c(255, 110, 180), GlyphColor: c(120, 60, 100)},
// --- Retro computing ---
"gameboy": {Name: "gameboy", Bg: c(155, 188, 15), KeyBg: c(139, 172, 15), KeyBgPressed: c(107, 140, 15),
KeyBorder: c(120, 155, 15), KeyText: c(15, 56, 15), HighlightBg: c(48, 98, 48),
HighlightBorder: c(15, 56, 15), ModifierBg: c(147, 180, 15),
ModifierActiveBg: c(15, 56, 15), ModifierActiveText: c(155, 188, 15), ModifierText: c(48, 98, 48),
FnKeyBg: c(143, 176, 15), AccentPopupBg: c(139, 172, 15),
AccentPopupText: c(15, 56, 15), AccentHighlightBg: c(48, 98, 48), GlyphColor: c(48, 98, 48)},
"virtualboy": {Name: "virtualboy", Bg: c(0, 0, 0), KeyBg: c(30, 0, 0), KeyBgPressed: c(60, 0, 0),
KeyBorder: c(50, 0, 0), KeyText: c(255, 0, 0), HighlightBg: c(120, 0, 0),
HighlightBorder: c(180, 0, 0), ModifierBg: c(20, 0, 0),
ModifierActiveBg: c(200, 0, 0), ModifierActiveText: w, ModifierText: c(160, 0, 0),
FnKeyBg: c(15, 0, 0), AccentPopupBg: c(30, 0, 0),
AccentPopupText: c(255, 0, 0), AccentHighlightBg: c(120, 0, 0), GlyphColor: c(80, 0, 0)},
"cga": {Name: "cga", Bg: c(0, 0, 0), KeyBg: c(12, 12, 12), KeyBgPressed: c(30, 30, 30),
KeyBorder: c(85, 255, 255), KeyText: c(255, 255, 255), HighlightBg: c(255, 85, 255),
HighlightBorder: c(85, 255, 255), ModifierBg: c(8, 8, 8),
ModifierActiveBg: c(85, 255, 255), ModifierActiveText: d, ModifierText: c(170, 170, 170),
FnKeyBg: c(6, 6, 6), AccentPopupBg: c(12, 12, 12),
AccentPopupText: c(255, 255, 255), AccentHighlightBg: c(255, 85, 255), GlyphColor: c(85, 85, 85)},
"zx_spectrum": {Name: "zx_spectrum", Bg: c(0, 0, 0), KeyBg: c(15, 15, 15), KeyBgPressed: c(35, 35, 35),
KeyBorder: c(0, 0, 205), KeyText: c(255, 255, 255), HighlightBg: c(205, 0, 0),
HighlightBorder: c(205, 205, 0), ModifierBg: c(10, 10, 10),
ModifierActiveBg: c(0, 205, 0), ModifierActiveText: d, ModifierText: c(170, 170, 170),
FnKeyBg: c(8, 8, 8), AccentPopupBg: c(15, 15, 15),
AccentPopupText: c(255, 255, 255), AccentHighlightBg: c(205, 0, 0), GlyphColor: c(0, 0, 150)},
// --- Gaming aesthetics ---
"sakura": {Name: "sakura", Bg: c(255, 228, 235), KeyBg: c(248, 210, 220), KeyBgPressed: c(238, 190, 205),
KeyBorder: c(230, 185, 200), KeyText: c(100, 50, 70), HighlightBg: c(230, 100, 140),
HighlightBorder: c(210, 70, 110), ModifierBg: c(252, 218, 228),
ModifierActiveBg: c(220, 80, 120), ModifierActiveText: w, ModifierText: c(160, 90, 120),
FnKeyBg: c(245, 215, 225), AccentPopupBg: c(248, 210, 220),
AccentPopupText: c(100, 50, 70), AccentHighlightBg: c(230, 100, 140), GlyphColor: c(200, 160, 175)},
"sunset": {Name: "sunset", Bg: c(20, 10, 8), KeyBg: c(45, 22, 12), KeyBgPressed: c(70, 35, 18),
KeyBorder: c(60, 30, 15), KeyText: c(255, 200, 120), HighlightBg: c(255, 140, 0),
HighlightBorder: c(255, 180, 50), ModifierBg: c(32, 16, 10),
ModifierActiveBg: c(255, 180, 50), ModifierActiveText: d, ModifierText: c(220, 160, 80),
FnKeyBg: c(26, 13, 9), AccentPopupBg: c(45, 22, 12),
AccentPopupText: c(255, 200, 120), AccentHighlightBg: c(255, 140, 0), GlyphColor: c(140, 70, 20)},
"gold": {Name: "gold", Bg: c(18, 14, 5), KeyBg: c(32, 26, 12), KeyBgPressed: c(50, 42, 20),
KeyBorder: c(80, 70, 25), KeyText: c(212, 175, 55), HighlightBg: c(160, 130, 30),
HighlightBorder: c(212, 175, 55), ModifierBg: c(24, 20, 8),
ModifierActiveBg: c(212, 175, 55), ModifierActiveText: d, ModifierText: c(170, 140, 45),
FnKeyBg: c(21, 17, 7), AccentPopupBg: c(32, 26, 12),
AccentPopupText: c(212, 175, 55), AccentHighlightBg: c(160, 130, 30), GlyphColor: c(100, 85, 25)},
"coral": {Name: "coral", Bg: c(25, 18, 18), KeyBg: c(50, 30, 30), KeyBgPressed: c(75, 45, 42),
KeyBorder: c(65, 38, 36), KeyText: c(255, 180, 170), HighlightBg: c(255, 111, 97),
HighlightBorder: c(255, 140, 128), ModifierBg: c(38, 24, 24),
ModifierActiveBg: c(46, 196, 182), ModifierActiveText: d, ModifierText: c(210, 145, 138),
FnKeyBg: c(30, 21, 21), AccentPopupBg: c(50, 30, 30),
AccentPopupText: c(255, 180, 170), AccentHighlightBg: c(255, 111, 97), GlyphColor: c(130, 65, 60)},
"teal": {Name: "teal", Bg: c(10, 22, 24), KeyBg: c(18, 40, 44), KeyBgPressed: c(28, 62, 68),
KeyBorder: c(22, 52, 56), KeyText: c(180, 230, 235), HighlightBg: c(0, 173, 181),
HighlightBorder: c(0, 210, 220), ModifierBg: c(14, 30, 34),
ModifierActiveBg: c(0, 210, 220), ModifierActiveText: d, ModifierText: c(140, 195, 200),
FnKeyBg: c(12, 26, 28), AccentPopupBg: c(18, 40, 44),
AccentPopupText: c(180, 230, 235), AccentHighlightBg: c(0, 173, 181), GlyphColor: c(0, 110, 118)},
// --- Mid-range brightness ---
"chalk": {Name: "chalk", Bg: c(100, 95, 90), KeyBg: c(120, 115, 108), KeyBgPressed: c(140, 134, 126),
KeyBorder: c(130, 124, 116), KeyText: c(230, 225, 215), HighlightBg: c(175, 140, 120),
HighlightBorder: c(195, 160, 140), ModifierBg: c(110, 105, 98),
ModifierActiveBg: c(160, 180, 170), ModifierActiveText: d, ModifierText: c(195, 190, 180),
FnKeyBg: c(105, 100, 94), AccentPopupBg: c(115, 110, 104),
AccentPopupText: c(230, 225, 215), AccentHighlightBg: c(175, 140, 120), GlyphColor: c(155, 148, 138)},
"fjord": {Name: "fjord", Bg: c(60, 70, 100), KeyBg: c(78, 88, 120), KeyBgPressed: c(98, 108, 142),
KeyBorder: c(88, 98, 132), KeyText: c(190, 210, 240), HighlightBg: c(220, 150, 60),
HighlightBorder: c(240, 175, 80), ModifierBg: c(68, 78, 110),
ModifierActiveBg: c(200, 130, 50), ModifierActiveText: w, ModifierText: c(160, 180, 215),
FnKeyBg: c(64, 74, 105), AccentPopupBg: c(75, 85, 118),
AccentPopupText: c(190, 210, 240), AccentHighlightBg: c(220, 150, 60), GlyphColor: c(100, 115, 150)},
"sand": {Name: "sand", Bg: c(180, 165, 130), KeyBg: c(195, 180, 148), KeyBgPressed: c(210, 196, 165),
KeyBorder: c(165, 150, 118), KeyText: c(55, 40, 25), HighlightBg: c(185, 95, 60),
HighlightBorder: c(165, 75, 40), ModifierBg: c(188, 172, 138),
ModifierActiveBg: c(170, 80, 45), ModifierActiveText: w, ModifierText: c(90, 72, 50),
FnKeyBg: c(184, 168, 134), AccentPopupBg: c(192, 177, 145),
AccentPopupText: c(55, 40, 25), AccentHighlightBg: c(185, 95, 60), GlyphColor: c(140, 125, 95)},
"plum": {Name: "plum", Bg: c(80, 50, 80), KeyBg: c(100, 68, 100), KeyBgPressed: c(122, 88, 122),
KeyBorder: c(110, 76, 110), KeyText: c(220, 195, 230), HighlightBg: c(210, 110, 160),
HighlightBorder: c(230, 135, 180), ModifierBg: c(90, 58, 90),
ModifierActiveBg: c(200, 100, 150), ModifierActiveText: w, ModifierText: c(190, 165, 200),
FnKeyBg: c(85, 54, 85), AccentPopupBg: c(96, 64, 96),
AccentPopupText: c(220, 195, 230), AccentHighlightBg: c(210, 110, 160), GlyphColor: c(140, 105, 140)},
"moss": {Name: "moss", Bg: c(90, 100, 60), KeyBg: c(108, 118, 78), KeyBgPressed: c(128, 138, 98),
KeyBorder: c(118, 128, 88), KeyText: c(30, 50, 20), HighlightBg: c(170, 195, 70),
HighlightBorder: c(150, 175, 50), ModifierBg: c(98, 108, 68),
ModifierActiveBg: c(155, 180, 55), ModifierActiveText: d, ModifierText: c(50, 70, 30),
FnKeyBg: c(94, 104, 64), AccentPopupBg: c(105, 115, 75),
AccentPopupText: c(30, 50, 20), AccentHighlightBg: c(170, 195, 70), GlyphColor: c(65, 78, 42)},
}
func GetTheme(name string) Theme {
if t, ok := Themes[name]; ok {
return t
}
return Themes["dark"]
}