vscode-bauhaus-theme 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,613 @@
1
+ import { alpha, mix } from "./color.js";
2
+ import { roles } from "./syntax.js";
3
+
4
+ /** @typedef {import("./palettes.js").Palette} Palette */
5
+ /** @typedef {import("./accents.js").Accent} Accent */
6
+
7
+ /**
8
+ * Workbench colors, grouped as in the theme color reference. Unset keys keep VS
9
+ * Code defaults, derived from the ones set here.
10
+ *
11
+ * @param {Palette} p
12
+ * @param {Accent} a
13
+ * @returns {Record<string, string>}
14
+ */
15
+ export function workbench(p, a) {
16
+ const { bg, fg, ink, fill } = p;
17
+ const dark = p.type === "dark";
18
+ const r = roles(p);
19
+
20
+ // Overlays stay neutral by tinting with the foreground; `dark` scales them to equal perceived weight.
21
+ const shade = (opacity) => alpha(fg.default, dark ? opacity : opacity * 0.8);
22
+ const shadow = alpha("#000000", dark ? 0.5 : 0.16);
23
+ const widget = dark ? bg.chrome : bg.editor;
24
+ const selection = alpha(fill.blue, dark ? 0.6 : 0.2);
25
+ const hover = (color) => mix(color, fg.default, 0.12);
26
+ const status = {
27
+ error: ink.red,
28
+ warning: ink.yellow,
29
+ info: ink.blue,
30
+ hint: ink.cyan,
31
+ success: ink.green,
32
+ };
33
+
34
+ return {
35
+ // Base
36
+ focusBorder: a.focus,
37
+ foreground: fg.default,
38
+ disabledForeground: alpha(fg.muted, 0.6),
39
+ descriptionForeground: fg.muted,
40
+ errorForeground: status.error,
41
+ "icon.foreground": fg.muted,
42
+ "widget.border": bg.line,
43
+ "widget.shadow": shadow,
44
+ "selection.background": selection,
45
+ "sash.hoverBorder": a.focus,
46
+
47
+ // Modern UI
48
+ "surface.background": widget,
49
+ "surface.foreground": fg.default,
50
+ "surface.border": bg.line,
51
+ "editor.border": bg.line,
52
+ "modernPanel.border": bg.line,
53
+ "modernUI.shellBackground": bg.chrome,
54
+ "modernUI.inactiveShellBackground": bg.chrome,
55
+ "modernActivityBar.background": bg.chrome,
56
+ "modernActivityBarItem.activeBackground": a.active.activity.background,
57
+ "modernActivityBarItem.activeForeground": a.active.activity.foreground,
58
+ "modernActivityBarItem.hoverBackground": shade(0.08),
59
+ "modernActivityBarItem.hoverForeground": fg.default,
60
+ "modernTab.activeBackground": a.active.panel.background,
61
+ "modernTab.activeForeground": a.active.panel.foreground,
62
+ "modernTab.hoverBackground": shade(0.08),
63
+ "modernTab.hoverForeground": fg.default,
64
+ "modernEditorTab.activeBackground": bg.editor,
65
+ "modernEditorTab.activeForeground": fg.default,
66
+ "modernEditorTab.inactiveBackground": bg.chrome,
67
+ "modernEditorTab.hoverBackground": shade(0.05),
68
+ "modernEditorTab.hoverForeground": fg.default,
69
+
70
+ // Text
71
+ "textLink.foreground": a.focus,
72
+ "textLink.activeForeground": a.focus,
73
+ "textBlockQuote.background": bg.chrome,
74
+ "textBlockQuote.border": a.focus,
75
+ "textCodeBlock.background": shade(0.06),
76
+ "textPreformat.foreground": r.type,
77
+ "textPreformat.background": shade(0.08),
78
+ "textSeparator.foreground": bg.line,
79
+
80
+ // Actions, toolbar
81
+ "toolbar.hoverBackground": shade(0.1),
82
+ "toolbar.activeBackground": shade(0.16),
83
+ "actionBar.toggledBackground": alpha(a.focus, 0.25),
84
+
85
+ // Button, checkbox, dropdown, input
86
+ "button.background": a.button.background,
87
+ "button.foreground": a.button.foreground,
88
+ "button.hoverBackground": hover(a.button.background),
89
+ "button.secondaryBackground": bg.line,
90
+ "button.secondaryForeground": fg.default,
91
+ "button.secondaryHoverBackground": hover(bg.line),
92
+ "checkbox.background": bg.editor,
93
+ "checkbox.foreground": fg.default,
94
+ "checkbox.border": bg.line,
95
+ "dropdown.background": widget,
96
+ "dropdown.listBackground": widget,
97
+ "dropdown.foreground": fg.default,
98
+ "dropdown.border": bg.line,
99
+ "input.background": bg.editor,
100
+ "input.foreground": fg.default,
101
+ "input.border": bg.line,
102
+ "input.placeholderForeground": fg.muted,
103
+ "inputOption.activeBackground": alpha(a.focus, 0.25),
104
+ "inputOption.activeBorder": a.focus,
105
+ "inputOption.activeForeground": fg.default,
106
+ "inputValidation.errorBackground": widget,
107
+ "inputValidation.errorBorder": status.error,
108
+ "inputValidation.warningBackground": widget,
109
+ "inputValidation.warningBorder": status.warning,
110
+ "inputValidation.infoBackground": widget,
111
+ "inputValidation.infoBorder": status.info,
112
+
113
+ // Scrollbar
114
+ "scrollbar.shadow": shadow,
115
+ "scrollbarSlider.background": shade(0.12),
116
+ "scrollbarSlider.hoverBackground": shade(0.2),
117
+ "scrollbarSlider.activeBackground": shade(0.3),
118
+
119
+ // Badge, progress
120
+ "badge.background": bg.line,
121
+ "badge.foreground": fg.default,
122
+ "progressBar.background": a.focus,
123
+
124
+ // Lists and trees
125
+ "list.activeSelectionBackground": bg.line,
126
+ "list.activeSelectionForeground": fg.default,
127
+ "list.activeSelectionIconForeground": fg.default,
128
+ "list.inactiveSelectionBackground": shade(0.08),
129
+ "list.inactiveSelectionForeground": fg.default,
130
+ "list.hoverBackground": shade(0.05),
131
+ "list.hoverForeground": fg.default,
132
+ "list.focusOutline": a.focus,
133
+ "list.highlightForeground": a.focus,
134
+ "list.focusHighlightForeground": a.focus,
135
+ "list.errorForeground": status.error,
136
+ "list.warningForeground": status.warning,
137
+ "list.invalidItemForeground": status.error,
138
+ "list.deemphasizedForeground": fg.muted,
139
+ "list.dropBackground": alpha(a.focus, 0.15),
140
+ "listFilterWidget.background": widget,
141
+ "listFilterWidget.outline": a.focus,
142
+ "listFilterWidget.noMatchesOutline": status.error,
143
+ "tree.indentGuidesStroke": bg.line,
144
+ "tree.inactiveIndentGuidesStroke": alpha(bg.line, 0.5),
145
+
146
+ // Activity bar
147
+ "activityBar.background": bg.chrome,
148
+ "activityBar.foreground": fg.default,
149
+ "activityBar.inactiveForeground": fg.muted,
150
+ "activityBar.border": bg.line,
151
+ "activityBar.activeBorder": a.active.activity.background,
152
+ "activityBarBadge.background": a.badge.background,
153
+ "activityBarBadge.foreground": a.badge.foreground,
154
+ "activityBarTop.foreground": fg.default,
155
+ "activityBarTop.inactiveForeground": fg.muted,
156
+ "activityBarTop.activeBorder": a.active.activity.background,
157
+ "activityErrorBadge.background": fill.red,
158
+ "activityErrorBadge.foreground": p.onFill.red,
159
+ "activityWarningBadge.background": fill.yellow,
160
+ "activityWarningBadge.foreground": p.onFill.yellow,
161
+ "profileBadge.background": bg.line,
162
+ "profileBadge.foreground": fg.default,
163
+
164
+ // Side bar
165
+ "sideBar.background": bg.chrome,
166
+ "sideBar.foreground": fg.muted,
167
+ "sideBar.border": bg.line,
168
+ "sideBar.dropBackground": alpha(a.focus, 0.15),
169
+ "sideBarTitle.foreground": fg.default,
170
+ "sideBarSectionHeader.background": bg.chrome,
171
+ "sideBarSectionHeader.foreground": fg.default,
172
+ "sideBarSectionHeader.border": bg.line,
173
+ "sideBarActivityBarTop.border": bg.line,
174
+
175
+ // Minimap
176
+ "minimap.background": bg.editor,
177
+ "minimap.selectionHighlight": selection,
178
+ "minimap.findMatchHighlight": ink.yellow,
179
+ "minimap.errorHighlight": status.error,
180
+ "minimap.warningHighlight": status.warning,
181
+ "minimapSlider.background": shade(0.08),
182
+ "minimapSlider.hoverBackground": shade(0.12),
183
+ "minimapSlider.activeBackground": shade(0.16),
184
+ "minimapGutter.addedBackground": ink.green,
185
+ "minimapGutter.modifiedBackground": ink.yellow,
186
+ "minimapGutter.deletedBackground": ink.red,
187
+
188
+ // Editor groups and tabs
189
+ "editorGroup.border": bg.line,
190
+ "editorGroup.dropBackground": alpha(a.focus, 0.12),
191
+ "editorGroupHeader.tabsBackground": bg.chrome,
192
+ "editorGroupHeader.tabsBorder": bg.line,
193
+ "editorGroupHeader.noTabsBackground": bg.editor,
194
+ "tab.activeBackground": bg.editor,
195
+ "tab.activeForeground": fg.default,
196
+ "tab.activeBorderTop": a.active.tab,
197
+ "tab.activeModifiedBorder": a.active.tab,
198
+ "tab.inactiveBackground": bg.chrome,
199
+ "tab.inactiveForeground": fg.muted,
200
+ "tab.inactiveModifiedBorder": alpha(a.active.tab, 0.5),
201
+ "tab.hoverBackground": shade(0.05),
202
+ "tab.border": bg.line,
203
+ "tab.lastPinnedBorder": bg.line,
204
+ "tab.dragAndDropBorder": a.focus,
205
+ "tab.unfocusedActiveBorderTop": alpha(a.active.tab, 0.5),
206
+ "tab.unfocusedActiveForeground": fg.muted,
207
+ "tab.unfocusedInactiveForeground": fg.muted,
208
+ "tab.unfocusedActiveModifiedBorder": alpha(a.active.tab, 0.5),
209
+
210
+ // Editor
211
+ "editor.background": bg.editor,
212
+ "editor.foreground": fg.default,
213
+ "editorLineNumber.foreground": fg.muted,
214
+ "editorLineNumber.activeForeground": fg.default,
215
+ "editorLineNumber.dimmedForeground": alpha(fg.muted, 0.5),
216
+ "editorCursor.foreground": a.focus,
217
+ "editorCursor.background": bg.editor,
218
+ "editor.selectionBackground": selection,
219
+ "editor.inactiveSelectionBackground": alpha(fill.blue, dark ? 0.3 : 0.1),
220
+ "editor.selectionHighlightBackground": alpha(fill.blue, dark ? 0.35 : 0.12),
221
+ "editor.selectionHighlightBorder": alpha(ink.blue, 0.5),
222
+ "editor.wordHighlightBackground": shade(0.08),
223
+ "editor.wordHighlightStrongBackground": shade(0.14),
224
+ "editor.wordHighlightTextBackground": shade(0.06),
225
+ "editor.findMatchBackground": alpha(fill.yellow, 0.4),
226
+ "editor.findMatchBorder": ink.yellow,
227
+ "editor.findMatchHighlightBackground": alpha(fill.yellow, 0.2),
228
+ "editor.findMatchHighlightBorder": alpha(ink.yellow, 0.5),
229
+ "editor.findRangeHighlightBackground": shade(0.05),
230
+ "editor.hoverHighlightBackground": alpha(fill.blue, 0.25),
231
+ "editor.lineHighlightBackground": shade(0.04),
232
+ "editor.lineHighlightBorder": alpha(fg.default, 0),
233
+ "editor.rangeHighlightBackground": shade(0.05),
234
+ "editor.symbolHighlightBackground": alpha(fill.yellow, 0.2),
235
+ "editor.foldBackground": alpha(fill.blue, 0.15),
236
+ "editor.linkedEditingBackground": alpha(fill.blue, 0.2),
237
+ "editor.placeholder.foreground": fg.muted,
238
+ "editorLink.activeForeground": a.focus,
239
+ "editorWhitespace.foreground": alpha(fg.muted, 0.4),
240
+ "editorIndentGuide.background1": bg.line,
241
+ "editorIndentGuide.activeBackground1": fg.muted,
242
+ "editorRuler.foreground": bg.line,
243
+ "editorCodeLens.foreground": fg.muted,
244
+ "editorInlayHint.foreground": fg.muted,
245
+ "editorInlayHint.background": shade(0.06),
246
+ "editorGhostText.foreground": fg.muted,
247
+ "editorBracketMatch.background": alpha(fill.blue, 0.3),
248
+ "editorBracketMatch.border": fg.muted,
249
+ "editorBracketHighlight.foreground1": ink.yellow,
250
+ "editorBracketHighlight.foreground2": ink.violet,
251
+ "editorBracketHighlight.foreground3": ink.blue,
252
+ "editorBracketHighlight.foreground4": ink.orange,
253
+ "editorBracketHighlight.foreground5": ink.cyan,
254
+ "editorBracketHighlight.foreground6": ink.green,
255
+ "editorBracketHighlight.unexpectedBracket.foreground": status.error,
256
+ "editorError.foreground": status.error,
257
+ "editorWarning.foreground": status.warning,
258
+ "editorInfo.foreground": status.info,
259
+ "editorHint.foreground": status.hint,
260
+ "editorLightBulb.foreground": ink.yellow,
261
+ "editorLightBulbAutoFix.foreground": ink.blue,
262
+ "editorUnnecessaryCode.opacity": alpha("#000000", 0.6),
263
+ "editorGutter.background": bg.editor,
264
+ "editorGutter.addedBackground": ink.green,
265
+ "editorGutter.modifiedBackground": ink.yellow,
266
+ "editorGutter.deletedBackground": ink.red,
267
+ "editorGutter.foldingControlForeground": fg.muted,
268
+ "editorOverviewRuler.border": alpha(fg.default, 0),
269
+ "editorOverviewRuler.errorForeground": status.error,
270
+ "editorOverviewRuler.warningForeground": status.warning,
271
+ "editorOverviewRuler.infoForeground": status.info,
272
+ "editorOverviewRuler.addedForeground": alpha(ink.green, 0.6),
273
+ "editorOverviewRuler.modifiedForeground": alpha(ink.yellow, 0.6),
274
+ "editorOverviewRuler.deletedForeground": alpha(ink.red, 0.6),
275
+ "editorOverviewRuler.findMatchForeground": alpha(ink.yellow, 0.6),
276
+ "editorOverviewRuler.selectionHighlightForeground": alpha(ink.blue, 0.5),
277
+ "editorOverviewRuler.bracketMatchForeground": fg.muted,
278
+ "editorStickyScroll.background": bg.editor,
279
+ "editorStickyScroll.shadow": shadow,
280
+ "editorStickyScrollHover.background": shade(0.06),
281
+ "editorMultiCursor.primary.foreground": a.focus,
282
+ "editorMultiCursor.secondary.foreground": alpha(a.focus, 0.6),
283
+
284
+ // Diff editor
285
+ "diffEditor.insertedTextBackground": alpha(fill.green, dark ? 0.35 : 0.2),
286
+ "diffEditor.insertedLineBackground": alpha(fill.green, dark ? 0.2 : 0.1),
287
+ "diffEditor.removedTextBackground": alpha(fill.red, dark ? 0.35 : 0.2),
288
+ "diffEditor.removedLineBackground": alpha(fill.red, dark ? 0.2 : 0.1),
289
+ "diffEditor.diagonalFill": bg.line,
290
+ "diffEditor.border": bg.line,
291
+
292
+ // Chat
293
+ "chat.requestBorder": bg.line,
294
+ "chat.requestBackground": shade(0.04),
295
+ "chat.slashCommandBackground": alpha(a.focus, 0.2),
296
+ "chat.slashCommandForeground": fg.default,
297
+ "chat.avatarBackground": bg.line,
298
+ "chat.avatarForeground": fg.default,
299
+ "chat.editedFileForeground": ink.yellow,
300
+ "chat.linesAddedForeground": ink.green,
301
+ "chat.linesRemovedForeground": ink.red,
302
+ "inlineChat.background": widget,
303
+ "inlineChat.foreground": fg.default,
304
+ "inlineChat.border": bg.line,
305
+ "inlineChatInput.background": bg.editor,
306
+ "inlineChatInput.border": bg.line,
307
+ "inlineChatInput.focusBorder": a.focus,
308
+ "inlineChatInput.placeholderForeground": fg.muted,
309
+ "inlineChatDiff.inserted": alpha(fill.green, 0.2),
310
+ "inlineChatDiff.removed": alpha(fill.red, 0.2),
311
+
312
+ // Editor widgets
313
+ "editorWidget.background": widget,
314
+ "editorWidget.foreground": fg.default,
315
+ "editorWidget.border": bg.line,
316
+ "editorWidget.resizeBorder": a.focus,
317
+ "editorSuggestWidget.background": widget,
318
+ "editorSuggestWidget.foreground": fg.default,
319
+ "editorSuggestWidget.border": bg.line,
320
+ "editorSuggestWidget.highlightForeground": a.focus,
321
+ "editorSuggestWidget.focusHighlightForeground": a.focus,
322
+ "editorSuggestWidget.selectedBackground": bg.line,
323
+ "editorSuggestWidget.selectedForeground": fg.default,
324
+ "editorSuggestWidget.selectedIconForeground": fg.default,
325
+ "editorHoverWidget.background": widget,
326
+ "editorHoverWidget.foreground": fg.default,
327
+ "editorHoverWidget.border": bg.line,
328
+ "editorHoverWidget.highlightForeground": a.focus,
329
+ "editorHoverWidget.statusBarBackground": bg.chrome,
330
+ "editorActionList.background": widget,
331
+ "editorActionList.foreground": fg.default,
332
+ "editorActionList.focusBackground": bg.line,
333
+ "editorActionList.focusForeground": fg.default,
334
+ "debugExceptionWidget.background": widget,
335
+ "debugExceptionWidget.border": status.error,
336
+
337
+ // Peek view
338
+ "peekView.border": a.focus,
339
+ "peekViewEditor.background": bg.chrome,
340
+ "peekViewEditorGutter.background": bg.chrome,
341
+ "peekViewEditor.matchHighlightBackground": alpha(fill.yellow, 0.35),
342
+ "peekViewResult.background": bg.chrome,
343
+ "peekViewResult.fileForeground": fg.default,
344
+ "peekViewResult.lineForeground": fg.muted,
345
+ "peekViewResult.matchHighlightBackground": alpha(fill.yellow, 0.35),
346
+ "peekViewResult.selectionBackground": bg.line,
347
+ "peekViewResult.selectionForeground": fg.default,
348
+ "peekViewTitle.background": bg.chrome,
349
+ "peekViewTitleLabel.foreground": fg.default,
350
+ "peekViewTitleDescription.foreground": fg.muted,
351
+
352
+ // Merge conflicts
353
+ "merge.border": bg.line,
354
+ "merge.currentHeaderBackground": alpha(fill.green, 0.5),
355
+ "merge.currentContentBackground": alpha(fill.green, 0.2),
356
+ "merge.incomingHeaderBackground": alpha(fill.blue, 0.5),
357
+ "merge.incomingContentBackground": alpha(fill.blue, 0.2),
358
+ "merge.commonHeaderBackground": alpha(fg.muted, 0.4),
359
+ "merge.commonContentBackground": alpha(fg.muted, 0.15),
360
+ "editorOverviewRuler.currentContentForeground": alpha(ink.green, 0.6),
361
+ "editorOverviewRuler.incomingContentForeground": alpha(ink.blue, 0.6),
362
+ "editorOverviewRuler.commonContentForeground": alpha(fg.muted, 0.6),
363
+
364
+ // Panel
365
+ "panel.background": bg.chrome,
366
+ "panel.border": bg.line,
367
+ "panelTitle.activeBorder": a.active.panel.background,
368
+ "panelTitle.activeForeground": fg.default,
369
+ "panelTitle.inactiveForeground": fg.muted,
370
+ "panelInput.border": bg.line,
371
+ "panelSection.border": bg.line,
372
+ "panelSectionHeader.background": bg.chrome,
373
+
374
+ // Status bar
375
+ "statusBar.background": a.statusBar.background,
376
+ "statusBar.foreground": a.statusBar.foreground,
377
+ "statusBar.border":
378
+ a.statusBar.background === bg.chrome ? bg.line : a.statusBar.background,
379
+ "statusBar.debuggingBackground": a.debugging.background,
380
+ "statusBar.debuggingForeground": a.debugging.foreground,
381
+ "statusBar.debuggingBorder": a.debugging.background,
382
+ "statusBar.noFolderBackground": a.noFolder.background,
383
+ "statusBar.noFolderForeground": a.noFolder.foreground,
384
+ "statusBarItem.remoteBackground": a.remote.background,
385
+ "statusBarItem.remoteForeground": a.remote.foreground,
386
+ "statusBarItem.remoteHoverBackground": hover(a.remote.background),
387
+ "statusBarItem.hoverBackground": alpha(a.statusBar.foreground, 0.12),
388
+ "statusBarItem.activeBackground": alpha(a.statusBar.foreground, 0.2),
389
+ "statusBarItem.prominentBackground": alpha(a.statusBar.foreground, 0.15),
390
+ "statusBarItem.errorBackground": fill.red,
391
+ "statusBarItem.errorForeground": p.onFill.red,
392
+ "statusBarItem.warningBackground": fill.yellow,
393
+ "statusBarItem.warningForeground": p.onFill.yellow,
394
+
395
+ // Title bar, menu, command center
396
+ "titleBar.activeBackground": bg.chrome,
397
+ "titleBar.activeForeground": fg.default,
398
+ "titleBar.inactiveBackground": bg.chrome,
399
+ "titleBar.inactiveForeground": fg.muted,
400
+ "titleBar.border": bg.line,
401
+ "menu.background": widget,
402
+ "menu.foreground": fg.default,
403
+ "menu.border": bg.line,
404
+ "menu.selectionBackground": bg.line,
405
+ "menu.selectionForeground": fg.default,
406
+ "menu.separatorBackground": bg.line,
407
+ "menubar.selectionBackground": shade(0.1),
408
+ "commandCenter.background": shade(0.05),
409
+ "commandCenter.foreground": fg.muted,
410
+ "commandCenter.activeBackground": shade(0.1),
411
+ "commandCenter.activeForeground": fg.default,
412
+ "commandCenter.border": bg.line,
413
+
414
+ // Notifications, banner
415
+ "notifications.background": widget,
416
+ "notifications.foreground": fg.default,
417
+ "notifications.border": bg.line,
418
+ "notificationCenter.border": bg.line,
419
+ "notificationCenterHeader.background": bg.chrome,
420
+ "notificationToast.border": bg.line,
421
+ "notificationLink.foreground": a.focus,
422
+ "notificationsErrorIcon.foreground": status.error,
423
+ "notificationsWarningIcon.foreground": status.warning,
424
+ "notificationsInfoIcon.foreground": status.info,
425
+ "banner.background": bg.line,
426
+ "banner.foreground": fg.default,
427
+ "banner.iconForeground": a.focus,
428
+
429
+ // Extensions
430
+ "extensionButton.prominentBackground": a.button.background,
431
+ "extensionButton.prominentForeground": a.button.foreground,
432
+ "extensionButton.prominentHoverBackground": hover(a.button.background),
433
+ "extensionBadge.remoteBackground": a.badge.background,
434
+ "extensionBadge.remoteForeground": a.badge.foreground,
435
+ "extensionIcon.starForeground": ink.yellow,
436
+ "extensionIcon.verifiedForeground": ink.blue,
437
+
438
+ // Quick picker, keybindings
439
+ "quickInput.background": widget,
440
+ "quickInput.foreground": fg.default,
441
+ "quickInputTitle.background": bg.chrome,
442
+ "quickInputList.focusBackground": bg.line,
443
+ "quickInputList.focusForeground": fg.default,
444
+ "quickInputList.focusIconForeground": fg.default,
445
+ "pickerGroup.border": bg.line,
446
+ "pickerGroup.foreground": a.focus,
447
+ "keybindingLabel.background": shade(0.08),
448
+ "keybindingLabel.foreground": fg.default,
449
+ "keybindingLabel.border": bg.line,
450
+ "keybindingLabel.bottomBorder": bg.line,
451
+ "keybindingTable.rowsBackground": shade(0.03),
452
+
453
+ // Terminal
454
+ "terminal.background": bg.chrome,
455
+ "terminal.foreground": fg.default,
456
+ "terminal.border": bg.line,
457
+ "terminal.selectionBackground": selection,
458
+ "terminal.findMatchBackground": alpha(fill.yellow, 0.4),
459
+ "terminal.findMatchHighlightBackground": alpha(fill.yellow, 0.2),
460
+ "terminal.tab.activeBorder": a.active.panel.background,
461
+ "terminalCursor.foreground": a.focus,
462
+ "terminalCommandDecoration.defaultBackground": fg.muted,
463
+ "terminalCommandDecoration.successBackground": status.success,
464
+ "terminalCommandDecoration.errorBackground": status.error,
465
+ "terminal.ansiBlack": dark ? bg.line : fg.default,
466
+ "terminal.ansiRed": ink.red,
467
+ "terminal.ansiGreen": ink.green,
468
+ "terminal.ansiYellow": ink.yellow,
469
+ "terminal.ansiBlue": ink.blue,
470
+ "terminal.ansiMagenta": ink.violet,
471
+ "terminal.ansiCyan": ink.cyan,
472
+ "terminal.ansiWhite": dark ? fg.muted : bg.line,
473
+ "terminal.ansiBrightBlack": fg.muted,
474
+ "terminal.ansiBrightRed": p.bright.red,
475
+ "terminal.ansiBrightGreen": p.bright.green,
476
+ "terminal.ansiBrightYellow": p.bright.yellow,
477
+ "terminal.ansiBrightBlue": p.bright.blue,
478
+ "terminal.ansiBrightMagenta": p.bright.violet,
479
+ "terminal.ansiBrightCyan": p.bright.cyan,
480
+ "terminal.ansiBrightWhite": dark ? fg.default : bg.editor,
481
+
482
+ // Debug
483
+ "debugToolBar.background": widget,
484
+ "debugToolBar.border": bg.line,
485
+ "editor.stackFrameHighlightBackground": alpha(fill.yellow, 0.2),
486
+ "editor.focusedStackFrameHighlightBackground": alpha(fill.green, 0.25),
487
+ "debugIcon.breakpointForeground": ink.red,
488
+ "debugIcon.breakpointDisabledForeground": fg.muted,
489
+ "debugIcon.breakpointUnverifiedForeground": fg.muted,
490
+ "debugIcon.breakpointCurrentStackframeForeground": ink.yellow,
491
+ "debugIcon.breakpointStackframeForeground": ink.green,
492
+ "debugIcon.startForeground": ink.green,
493
+ "debugConsole.errorForeground": status.error,
494
+ "debugConsole.warningForeground": status.warning,
495
+ "debugConsole.infoForeground": status.info,
496
+ "debugConsole.sourceForeground": fg.muted,
497
+ "debugTokenExpression.name": r.variable,
498
+ "debugTokenExpression.value": fg.default,
499
+ "debugTokenExpression.string": r.string,
500
+ "debugTokenExpression.number": r.constant,
501
+ "debugTokenExpression.boolean": r.constant,
502
+ "debugTokenExpression.type": r.type,
503
+ "debugTokenExpression.error": status.error,
504
+
505
+ // Testing
506
+ "testing.iconPassed": status.success,
507
+ "testing.iconFailed": status.error,
508
+ "testing.iconErrored": status.error,
509
+ "testing.iconQueued": status.warning,
510
+ "testing.iconSkipped": fg.muted,
511
+ "testing.iconUnset": fg.muted,
512
+ "testing.runAction": status.success,
513
+
514
+ // Git, SCM graph
515
+ "gitDecoration.addedResourceForeground": ink.green,
516
+ "gitDecoration.untrackedResourceForeground": ink.green,
517
+ "gitDecoration.modifiedResourceForeground": ink.yellow,
518
+ "gitDecoration.stageModifiedResourceForeground": ink.yellow,
519
+ "gitDecoration.deletedResourceForeground": ink.red,
520
+ "gitDecoration.stageDeletedResourceForeground": ink.red,
521
+ "gitDecoration.renamedResourceForeground": ink.cyan,
522
+ "gitDecoration.conflictingResourceForeground": ink.violet,
523
+ "gitDecoration.submoduleResourceForeground": ink.blue,
524
+ "gitDecoration.ignoredResourceForeground": alpha(fg.muted, 0.7),
525
+ "scmGraph.foreground1": ink.red,
526
+ "scmGraph.foreground2": ink.yellow,
527
+ "scmGraph.foreground3": ink.blue,
528
+ "scmGraph.foreground4": ink.green,
529
+ "scmGraph.foreground5": ink.violet,
530
+ "scmGraph.historyItemRefColor": ink.blue,
531
+ "scmGraph.historyItemRemoteRefColor": ink.violet,
532
+ "scmGraph.historyItemBaseRefColor": ink.orange,
533
+
534
+ // Settings, breadcrumbs, snippets
535
+ "settings.headerForeground": fg.default,
536
+ "settings.headerBorder": bg.line,
537
+ "settings.modifiedItemIndicator": a.focus,
538
+ "settings.focusedRowBackground": shade(0.04),
539
+ "settings.focusedRowBorder": a.focus,
540
+ "settings.rowHoverBackground": shade(0.03),
541
+ "breadcrumb.background": bg.editor,
542
+ "breadcrumb.foreground": fg.muted,
543
+ "breadcrumb.focusForeground": fg.default,
544
+ "breadcrumb.activeSelectionForeground": fg.default,
545
+ "breadcrumbPicker.background": widget,
546
+ "editor.snippetTabstopHighlightBackground": alpha(fill.blue, 0.3),
547
+ "editor.snippetFinalTabstopHighlightBorder": ink.green,
548
+
549
+ // Symbol icons follow syntax roles
550
+ "symbolIcon.arrayForeground": r.operator,
551
+ "symbolIcon.booleanForeground": r.constant,
552
+ "symbolIcon.classForeground": r.type,
553
+ "symbolIcon.colorForeground": r.text,
554
+ "symbolIcon.constantForeground": r.constant,
555
+ "symbolIcon.constructorForeground": r.function,
556
+ "symbolIcon.enumeratorForeground": r.type,
557
+ "symbolIcon.enumeratorMemberForeground": r.constant,
558
+ "symbolIcon.eventForeground": r.variable,
559
+ "symbolIcon.fieldForeground": r.text,
560
+ "symbolIcon.fileForeground": r.text,
561
+ "symbolIcon.folderForeground": fg.muted,
562
+ "symbolIcon.functionForeground": r.function,
563
+ "symbolIcon.interfaceForeground": r.type,
564
+ "symbolIcon.keyForeground": r.keyword,
565
+ "symbolIcon.keywordForeground": r.keyword,
566
+ "symbolIcon.methodForeground": r.function,
567
+ "symbolIcon.moduleForeground": r.type,
568
+ "symbolIcon.namespaceForeground": r.type,
569
+ "symbolIcon.nullForeground": r.constant,
570
+ "symbolIcon.numberForeground": r.constant,
571
+ "symbolIcon.objectForeground": r.type,
572
+ "symbolIcon.operatorForeground": r.operator,
573
+ "symbolIcon.packageForeground": r.type,
574
+ "symbolIcon.propertyForeground": r.text,
575
+ "symbolIcon.referenceForeground": r.variable,
576
+ "symbolIcon.snippetForeground": fg.muted,
577
+ "symbolIcon.stringForeground": r.string,
578
+ "symbolIcon.structForeground": r.type,
579
+ "symbolIcon.textForeground": fg.muted,
580
+ "symbolIcon.typeParameterForeground": r.type,
581
+ "symbolIcon.unitForeground": r.constant,
582
+ "symbolIcon.variableForeground": r.variable,
583
+
584
+ // Notebook
585
+ "notebook.cellBorderColor": bg.line,
586
+ "notebook.focusedCellBorder": a.focus,
587
+ "notebook.focusedEditorBorder": a.focus,
588
+ "notebook.selectedCellBorder": bg.line,
589
+ "notebook.cellEditorBackground": bg.chrome,
590
+
591
+ // Charts, markdown alerts, misc
592
+ "charts.foreground": fg.default,
593
+ "charts.lines": bg.line,
594
+ "charts.red": ink.red,
595
+ "charts.blue": ink.blue,
596
+ "charts.yellow": ink.yellow,
597
+ "charts.orange": ink.orange,
598
+ "charts.green": ink.green,
599
+ "charts.purple": ink.violet,
600
+ "markdownAlert.note.foreground": ink.blue,
601
+ "markdownAlert.tip.foreground": ink.green,
602
+ "markdownAlert.important.foreground": ink.violet,
603
+ "markdownAlert.warning.foreground": ink.yellow,
604
+ "markdownAlert.caution.foreground": ink.red,
605
+ "problemsErrorIcon.foreground": status.error,
606
+ "problemsWarningIcon.foreground": status.warning,
607
+ "problemsInfoIcon.foreground": status.info,
608
+ "ports.iconRunningProcessForeground": status.success,
609
+ "welcomePage.tileBackground": widget,
610
+ "welcomePage.tileHoverBackground": hover(widget),
611
+ "welcomePage.tileBorder": bg.line,
612
+ };
613
+ }