Skip to main content
VS Code preview Full workbench mockup using this variant's colors and tokenColors.
colors Workbench UI color keys from the theme JSON colors map.
activityBar.background #272727 editor.background #272727 editor.lineHighlightBackground #7878781b editorGroupHeader.tabsBackground #7878781b editorLineNumber.activeForeground #ebdbb2 editorLineNumber.foreground #707070 tokenColors TextMate scopes and font styles (syntax highlighting rules).
scope foreground fontStyle comment, punctuation.definition.comment #A89984 italic variable, string constant.other.placeholder, punctuation.terminator.statement.js, JSXNested, keyword.operator.assignment.jsx, punctuation.separator.array.json, meta.delimiter.comma.js, punctuation.separator.key-value.js, meta.tag.xml, meta.tag.preprocessor.xml, punctuation.terminator.statement.tsx, punctuation.destructuring.tsx, variable.other.readwrite.alias.tsx, variable.other.constant.tsx, variable.parameter.tsx, keyword.operator.assignment.ts, punctuation.separator.key-value.ts, meta.object-literal.key.ts, punctuation.separator.parameter.ts, keyword.operator.assignment.tsx, punctuation.destructuring.ts #ebdbb2 — constant.other.color #ffffff — invalid, invalid.illegal, storage.modifier.async.ts
Shiki preview TypeScript sample highlighted with this variant's colors and tokenColors.
my-gruvbox-theme — Another Gruvbox Theme
sideBar.background #7878781b
statusBar.background #7878781b
tab.activeBackground #272727
tab.inactiveBackground #7878781b
terminal.ansiBlack #1D2021
terminal.ansiBlue #0D6678
terminal.ansiBrightBlack #665C54
terminal.ansiBrightBlue #0D6678
terminal.ansiBrightCyan #8BA59B
terminal.ansiBrightGreen #95C085
terminal.ansiBrightMagenta #8F4673
terminal.ansiBrightRed #d85d5d
terminal.ansiBrightWhite #FDF4C1
terminal.ansiBrightYellow #FAC03B
terminal.ansiCyan #8BA59B
terminal.ansiGreen #b8bb26
terminal.ansiMagenta #b8bb26
terminal.ansiRed #ff8800
terminal.ansiWhite #A89984
terminal.ansiYellow #fabd2f
terminal.background #2a2a2a
terminal.foreground #A89984
terminalCursor.background #ff8800
terminalCursor.foreground #ff8800
titleBar.activeBackground #272727 keyword, storage.type, storage.modifier, variable.language.this.js, punctuation.definition.tag.directive.ts, punctuation.definition.block.sequence.item.yaml #ff8800 —
keyword.control, constant.other.color, punctuation, meta.tag, punctuation.definition.tag, punctuation.separator.inheritance.php, punctuation.definition.tag.html, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, punctuation.section.embedded, keyword.other.template, keyword.other.substitution #d85d5d —
entity.name.tag, meta.tag.sgml, markup.deleted.git_gutter, keyword.control.module.js, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, punctuation.definition.tag.jsx, support.class.component.open.jsx, support.class.component.close.jsx, storage.type.class.js, punctuation.definition.tag.xml, punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.list.begin.markdown, keyword.control.import.tsx, keyword.control.from.tsx, keyword.control.export.tsx, keyword.control.default.tsx, punctuation.definition.tag.end.tsx, punctuation.definition.tag.begin.tsx, support.class.component.tsx, keyword.control.import.ts, keyword.control.from.ts, keyword.control.export.ts, keyword.operator.ternary.ts, keyword.operator.spread.tsx, keyword.operator.type.annotation.ts, keyword.operator.comparison.tsx, variable.other.object.property.ts, punctuation.quasi.element.end.js, keyword.control.default.ts, keyword.operator.spread.js #83a598 —
entity.name.function, meta.function-call, variable.function, support.function, keyword.other.special-method, punctuation.definition.string.begin.js, punctuation.definition.string.end.js, punctuation.definition.string.begin.jsx, punctuation.definition.string.end.jsx, punctuation.definition.string.begin.xml, punctuation.definition.string.end.xml, punctuation.definition.markdown, keyword.control.media.css, punctuation.definition.quasi.begin.js, punctuation.definition.string.begin.tsx, punctuation.definition.string.end.tsx, punctuation.definition.string.begin.ts, punctuation.definition.string.end.ts, punctuation.terminator.statement.ts, punctuation.definition.quasi.end.js, punctuation.definition.string.begin.yaml, punctuation.definition.string.end.yaml #b8bb26 —
meta.block variable.other #f07178 —
support.other.variable, string.other.link #f07178 —
constant.numeric, constant.language, support.constant, constant.character, constant.escape, variable.parameter, keyword.other.unit, keyword.other, constant.length.units.css, keyword.operator.comparison.ts, constant.character.escape.ts, punctuation.accessor.optional.ts, punctuation.definition.group.regexp, keyword.operator.logical.ts #d3869b —
string, constant.other.symbol, constant.other.key, entity.other.inherited-class, markup.heading, markup.inserted.git_gutter, meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js #b8bb26 —
entity.name, support.type, support.class, support.other.namespace.use.php, meta.use.php, support.other.namespace.php, markup.changed.git_gutter, support.type.sys-types, storage.type.function.arrow.js, punctuation.definition.string.template.begin.ts, punctuation.definition.string.template.end.ts #b8bb26 —
support.type, punctuation.separator.comma.tsx, punctuation.accessor.tsx, punctuation.separator.key-value.tsx, variable.other.readwrite.tsx, variable.other.object.tsx, punctuation.accessor.ts, variable.other.readwrite.alias.ts, punctuation.separator.comma.ts, variable.parameter.ts, punctuation.semi-colon.css, punctuation.colon.css, keyword.operator.relationship.css #ebdbb2 —
source.css support.type.property-name, source.sass support.type.property-name, source.scss support.type.property-name, source.less support.type.property-name, source.stylus support.type.property-name, source.postcss support.type.property-name, storage.type.function.js, punctuation.terminator.rule.css, punctuation.separator.key-value.css, punctuation.terminator.rule.scss, punctuation.separator.key-value.scss, punctuation.separator.dictionary.pair.json, punctuation.separator.dictionary.key-value.json, punctuation.separator.delimiter.scss, keyword.operator.type.annotation.tsx, variable.other.constant.ts, string.quoted.double.json, variable.other.readwrite.ts, punctuation.terminator.statement.ts, variable.other.object.ts, variable.other.property.ts, variable.other.constant.object.tsx, variable.other.constant.property.tsx, source.dockerfile, punctuation.separator.key-value.mapping.yaml, source.ignore, keyword.operator.assignment.js, punctuation.separator.list.comma.css, meta.property-value.css #ebdbb2 —
entity.name.module.js, variable.import.parameter.js, variable.other.class.js, support.constant.property-value.css, punctuation.definition.entity.css, entity.other.attribute-name.id.css, punctuation.definition.raw.markdown, punctuation.definition.bold.markdown, punctuation.definition.string.begin.css, punctuation.definition.string.end.css #b8bb26 —
variable.language, markup.underline.link.markdown, variable.scss, support.type.property-name.css, support.constant.property-value.css, keyword.control.at-rule.media.css, punctuation.definition.keyword.css, invalid.deprecated.entity.other.attribute-name.html, punctuation.quasi.element.begin.js, variable.other.property.tsx, variable.other.object.property.tsx, punctuation.definition.typeparameters.begin.ts, punctuation.definition.typeparameters.end.ts, keyword.operator.spread.ts, keyword.operator.arithmetic.ts, variable.other.constant.property.ts, support.variable.property.ts, punctuation.definition.character-class.regexp, keyword.operator.negation.regexp, keyword.other.special-method.dockerfile, keyword.operator.logical.js, keyword.operator.accessor.js, keyword.operator.comparison.js #83a598 —
entity.name.method.js #82AAFF italic
meta.class-method.js entity.name.function.js, variable.function.constructor #82AAFF —
entity.other.attribute-name, support.constant.media.css, punctuation.separator.key-value.html, meta.object-literal.key.tsx, punctuation.accessor.optional.tsx, entity.name.type.interface.ts, punctuation.definition.template-expression.begin.ts, punctuation.definition.template-expression.end.ts, entity.name.type.ts, support.type.primitive.ts, support.type.primitive.tsx, storage.type.function.ts, keyword.control.type.ts, string.unquoted.js, storage.type.function.js, keyword.operator.arithmetic.js #8ec07c —
text.html.basic entity.other.attribute-name.html, text.html.basic entity.other.attribute-name, entity.name.class.js, keyword.control.as.tsx, storage.type.function.arrow.ts, keyword.control.as.ts, storage.type.function.arrow.tsx, meta.jsx.children.tsx, storage.type.function.arrow.js, entity.name.type.instance.js #fabd2f —
entity.other.attribute-name.class, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.begin.scss, punctuation.definition.string.end.scss #b8bb26 —
source.sass keyword.control #b8bb26 —
constant.character.escape #83a598 —
*url*, *link*, *uri* — underline
tag.decorator.js entity.name.tag.js, tag.decorator.js punctuation.definition.tag.js #82AAFF italic
source.js constant.other.object.key.js string.unquoted.label.js, support.type.property-name.json #b8bb26 —
source.json meta.structure.dictionary.json support.type.property-name.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json, punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json, constant.character.escape.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json #b8bb26 —
source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json #b8bb26 —
text.html.markdown, punctuation.definition.list_item.markdown #ebdbb2 —
text.html.markdown markup.inline.raw.markdown #C792EA —
text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown #65737E —
markdown.heading, markup.heading | markup.heading entity.name, markup.heading.markdown punctuation.definition.heading.markdown #ebdbb2 —
markup.italic #b8bb26 italic
markup.bold, markup.bold string #ebdbb2 bold
markup.bold markup.italic, markup.italic markup.bold, markup.quote markup.bold, markup.bold markup.italic string, markup.italic markup.bold string, markup.quote markup.bold string #b8bb26 bold
markup.underline #F78C6C underline
markup.quote punctuation.definition.blockquote.markdown #65737E —
string.other.link.title.markdown #83a598 —
string.other.link.description.title.markdown #C792EA —
constant.other.reference.link.markdown #b8bb26 —
markup.raw.block.fenced.markdown #00000050 —
punctuation.definition.fenced.markdown #00000050 —
markup.raw.block.fenced.markdown, variable.language.fenced.markdown, punctuation.section.class.end #EEFFFF —
variable.language.fenced.markdown #65737E —
meta.separator #65737E bold
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 } !` ;
}
fetchUser.ts
index.ts
README.md
src
components
fetchUser.ts
src
components
fetchUser.ts
fetchUser 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
Problems1
Output
Debug Console
Terminal
Ports
~/my-project $ pnpm dev
▲ Next.js ready on http://localhost:3000
✓ compiled client and server successfully in 412ms
wait - compiling /theme/vscode...
~/my-project
main*
my-gruvbox-theme | Coding Theme
Button.tsx
31
$
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 } !` ;
}