A VS Code theme for the dark nights out there. Now introducing Light Dark theme for daytime usage. Decisions were based on meaningful contrast for reading comprehension and for optimal razzle dazzle. ✨
Full workbench mockup using this variant's colors and tokenColors.
Loading...
colors
Workbench UI color keys from the theme JSON colors map.
key
HEX
RGB
RGBA
activityBar.background
activityBar.border
activityBar.dropBackground
activityBar.foreground
activityBarBadge.background
activityBarBadge.foreground
badge.background
badge.foreground
breadcrumb.activeSelectionForeground
breadcrumb.focusForeground
breadcrumb.foreground
breadcrumbPicker.background
button.background
button.foreground
button.hoverBackground
contrastBorder
debugExceptionWidget.background
debugExceptionWidget.border
debugToolBar.background
diffEditor.insertedTextBackground
diffEditor.insertedTextBorder
diffEditor.removedTextBackground
diffEditor.removedTextBorder
dropdown.background
dropdown.border
dropdown.foreground
editor.background
editor.findMatchBackground
editor.findMatchHighlightBackground
editor.foreground
editor.hoverHighlightBackground
editor.inactiveSelectionBackground
editor.lineHighlightBackground
editor.rangeHighlightBackground
editor.selectionBackground
editor.selectionHighlightBackground
editor.wordHighlightBackground
editor.wordHighlightStrongBackground
editorBracketMatch.background
editorCodeLens.foreground
editorCursor.foreground
editorError.foreground
editorGroup.border
editorGroup.dropBackground
editorGroup.emptyBackground
editorGroupHeader.noTabsBackground
editorGroupHeader.tabsBackground
editorGroupHeader.tabsBorder
editorGutter.addedBackground
editorGutter.background
editorGutter.deletedBackground
editorGutter.modifiedBackground
editorHoverWidget.background
editorHoverWidget.border
editorIndentGuide.activeBackground
editorIndentGuide.background
editorLineNumber.activeForeground
editorLineNumber.foreground
editorMarkerNavigation.background
editorMarkerNavigationError.background
editorMarkerNavigationWarning.background
editorOverviewRuler.commonContentForeground
editorOverviewRuler.currentContentForeground
editorOverviewRuler.incomingContentForeground
editorRuler.foreground
editorSuggestWidget.background
editorSuggestWidget.border
editorSuggestWidget.foreground
editorSuggestWidget.highlightForeground
editorSuggestWidget.selectedBackground
editorWarning.foreground
editorWidget.background
editorWidget.border
errorForeground
extensionButton.prominentBackground
extensionButton.prominentForeground
extensionButton.prominentHoverBackground
focusBorder
foreground
gitDecoration.conflictingResourceForeground
gitDecoration.deletedResourceForeground
gitDecoration.ignoredResourceForeground
gitDecoration.modifiedResourceForeground
gitDecoration.untrackedResourceForeground
input.background
input.border
input.foreground
input.placeholderForeground
inputOption.activeBorder
inputValidation.errorBackground
inputValidation.errorBorder
inputValidation.infoBackground
inputValidation.infoBorder
inputValidation.warningBackground
inputValidation.warningBorder
list.activeSelectionBackground
list.activeSelectionForeground
list.dropBackground
list.focusBackground
list.focusForeground
list.highlightForeground
list.hoverBackground
list.hoverForeground
list.inactiveSelectionBackground
list.inactiveSelectionForeground
list.invalidItemForeground
merge.currentHeaderBackground
merge.incomingHeaderBackground
meta.objectliteral.js
notificationCenter.border
notificationLink.foreground
notifications.background
notifications.border
notifications.foreground
notificationToast.border
panel.background
panel.border
panelTitle.activeBorder
panelTitle.activeForeground
panelTitle.inactiveForeground
peekView.border
peekViewEditor.background
peekViewEditor.matchHighlightBackground
peekViewResult.background
peekViewResult.fileForeground
peekViewResult.lineForeground
peekViewResult.matchHighlightBackground
peekViewResult.selectionBackground
peekViewResult.selectionForeground
peekViewTitle.background
peekViewTitleDescription.foreground
peekViewTitleLabel.foreground
pickerGroup.border
pickerGroup.foreground
progress.background
punctuation.definition.generic.begin.html
scrollbar.shadow
scrollbarSlider.activeBackground
scrollbarSlider.background
scrollbarSlider.hoverBackground
selection.background
sideBar.background
sideBar.border
sideBar.foreground
sideBarSectionHeader.background
sideBarSectionHeader.foreground
sideBarTitle.foreground
source.elm
statusBar.background
statusBar.border
statusBar.debuggingBackground
statusBar.debuggingBorder
statusBar.foreground
statusBar.noFolderBackground
statusBar.noFolderBorder
statusBarItem.activeBackground
statusBarItem.hoverBackground
statusBarItem.prominentBackground
statusBarItem.prominentHoverBackground
string.quoted.single.js
tab.activeBackground
tab.activeBorder
tab.activeForeground
tab.border
tab.inactiveBackground
tab.inactiveForeground
tab.unfocusedActiveBorder
tab.unfocusedActiveForeground
tab.unfocusedInactiveForeground
terminal.ansiBlack
terminal.ansiBlue
terminal.ansiBrightBlack
terminal.ansiBrightBlue
terminal.ansiBrightCyan
terminal.ansiBrightGreen
terminal.ansiBrightMagenta
terminal.ansiBrightRed
terminal.ansiBrightWhite
terminal.ansiBrightYellow
terminal.ansiCyan
terminal.ansiGreen
terminal.ansiMagenta
terminal.ansiRed
terminal.ansiWhite
terminal.ansiYellow
terminal.selectionBackground
terminalCursor.background
textCodeBlock.background
titleBar.activeBackground
titleBar.activeForeground
titleBar.inactiveBackground
walkThrough.embeddedEditorBackground
welcomePage.buttonBackground
welcomePage.buttonHoverBackground
widget.shadow
tokenColors
Foregrounds this theme assigns to the token scope catalog. A rule with only a font style is skipped, and a longer matching scope wins. Italic and bold rules are not listed — the preview above shows them in the code.
export interface User { id: string; name: string; role: "admin" | "member"; tags: string[];}/** * Fetch user data by ID * @param id * @returns User object or null if ID is invalid */export async function fetchUser(id: string): Promise<User | null> { if (!id) { return null; } const response = await fetch(`/api/users/${id}`, { method: "GET", headers: { Accept: "application/json" }, }); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } return (await response.json()) as User;}function greet(user: User): string { // Simple greeting function that uses the user's name return `Hello, ${user.name}!`;}