Vela Spectrum
An inclusive, accessible theme for VS Code with support for dark, light, high contrast, and color vision variations (Protanopia, Deuteranopia, Tritanopia). Designed for clarity, beauty, and universal readability.
An inclusive, accessible theme for VS Code with support for dark, light, high contrast, and color vision variations (Protanopia, Deuteranopia, Tritanopia). Designed for clarity, beauty, and universal readability.
Full workbench mockup using this variant's colors and tokenColors.
Loading...
Workbench UI color keys from the theme JSON colors map.
TextMate scopes and font styles (syntax highlighting rules).
| scope | foreground | fontStyle |
|---|---|---|
| source.rust | #f6f8fa | — |
| keyword.other.rust | #da8f00 | — |
| storage.type.function.rust | #009eff | — |
| entity.name.function.rust | #009eff | — |
| entity.name.type.rust, entity.name.enum.rust, entity.name.struct.rust, entity.name.trait.rust | #009eff | — |
| variable.other.constant.rust | #18b7a1 | — |
| keyword.control.match.rust, keyword.control.conditional.rust, keyword.control.loop.rust | #da8f00 | — |
| punctuation.separator.colon.rust, punctuation.separator.arrow.rust, punctuation.separator.double-colon.rust | #798189 | — |
| keyword.operator.macro.rust | #009eff | bold |
| support.type.module.rust | #66a3e2 | — |
| variable.parameter.rust | #00bea2 | — |
| source.go | #f6f8fa | — |
| keyword.other.function.go, keyword.other.method.go | #009eff | — |
| entity.name.function.go | #009eff | — |
| storage.type.struct.go, storage.type.interface.go, storage.type.map.go, storage.type.channel.go | #009eff | — |
| entity.name.type.go | #009eff | — |
| variable.parameter.go | #00bea2 | — |
| keyword.package.go, keyword.import.go, keyword.var.go, keyword.const.go, keyword.type.go | #da8f00 | — |
| keyword.control.go, keyword.control.conditional.go, keyword.control.loop.go | #da8f00 | — |
| keyword.operator.assignment.go | #009eff | — |
| constant.language.blank.go | #18b7a1 | — |
| source.python | #f6f8fa | — |
| keyword.control.flow.python, keyword.control.import.python, keyword.control.def.python | #da8f00 | — |
| entity.name.function.python | #009eff | — |
| support.function.builtin.python | #009eff | — |
| entity.name.class.python | #ce9400 | — |
| variable.parameter.function.language.python | #00bea2 | — |
| variable.parameter.function.language.special.self.python, variable.parameter.function.language.special.cls.python | #00bea2 | italic |
| meta.function.decorator.python | #ce9400 | — |
| meta.function.decorator.python punctuation.definition.decorator.python | #ce9400 | — |
| constant.language.python | #18b7a1 | — |
| variable.language.special.self.python | #18b7a1 | italic |
| string.quoted.docstring.multi.python, string.quoted.docstring.single.python | #79818999 | italic |
| keyword.operator.logical.python, keyword.operator.comparison.python, keyword.operator.arithmetic.python | #009eff | — |
| punctuation.separator.period.python, punctuation.separator.colon.python | #798189 | — |
| source.ts, source.tsx | #f6f8fa | — |
| meta.interface.ts, meta.type.declaration.ts | #009eff | — |
| entity.name.type.interface.ts, entity.name.type.alias.ts | #009eff | — |
| meta.enum.member.ts | #18b7a1 | — |
| keyword.operator.type.annotation.ts, keyword.operator.type.assertion.ts, keyword.operator.optional.ts | #009eff | — |
| keyword.operator.expression.as, keyword.operator.expression.is | #009eff | — |
| support.type.primitive.ts, support.type.builtin.ts | #009eff | — |
| variable.other.readwrite.alias.ts | #18b7a1 | — |
| meta.type.parameters.ts | #009eff | — |
| keyword.operator.keyof, keyword.operator.typeof, keyword.operator.infer | #da8f00 | — |
| meta.element.jsx, meta.element.tsx | #009eff | — |
| entity.name.tag.jsx, entity.name.tag.tsx | #009eff | — |
| entity.other.attribute-name.jsx, entity.other.attribute-name.tsx | #009eff | — |
| support.constant.property-value.jsx, support.constant.property-value.tsx | #18b7a1 | — |
| meta.tag.attributes.jsx, meta.tag.attributes.tsx | #f6f8fa | — |
| punctuation.section.embedded.begin.jsx, punctuation.section.embedded.end.jsx, punctuation.section.embedded.begin.tsx, punctuation.section.embedded.end.tsx | #d09300 | — |
| support.function.component.react, support.function.component.nextjs | #009eff | — |
| variable.other.constant.property.react, variable.other.constant.property.nextjs | #18b7a1 | — |
| support.function.react, support.function.nextjs | #009eff | — |
| variable.other.hook.js, variable.other.hook.ts, variable.other.hook.jsx, variable.other.hook.tsx | #00c0ff | bold |
| text.html.vue | #f6f8fa | — |
| meta.tag.block.any.html | #009eff | — |
| entity.name.tag.block.template.vue | #009eff | — |
| entity.name.tag.script.vue | #009eff | — |
| entity.name.tag.style.vue | #009eff | — |
| variable.other.attribute.vue | #009eff | — |
| support.attribute.vue | #009eff | — |
| keyword.control.directive.vue | #da8f00 | — |
| directive.vue | #da8f00 | — |
| punctuation.definition.directive.vue | #798189 | — |
| string.template.vue | #979fa8 | — |
| punctuation.embedded.template.vue | #d09300 | — |
| variable.other.template.vue | #18b7a1 | — |
| support.slot.vue | #00bea2 | — |
| constant.other.key.vue | #18b7a1 | — |
| meta.tag.svelte | #009eff | — |
| entity.name.tag.svelte | #009eff | — |
| variable.other.svelte | #18b7a1 | — |
| support.function.svelte | #009eff | — |
| directive.svelte | #da8f00 | — |
| punctuation.definition.directive.svelte | #798189 | — |
| string.template.svelte | #979fa8 | — |
| punctuation.embedded.template.svelte | #d09300 | — |
| entity.name.tag.template.angular, entity.name.tag.component.angular | #009eff | — |
| variable.other.property.angular | #009eff | — |
| support.directive.angular | #da8f00 | — |
| support.attribute.angular | #009eff | — |
| support.function.pure.angular, support.function.async.angular | #009eff | — |
| string.template.expression.angular | #d09300 | — |
| support.function.jsx.solid, support.function.hook.solid | #00c0ff | bold |
| variable.other.constant.property.solid | #18b7a1 | — |
| variable.other.signal.solid | #18b7a1 | — |
| support.type.primitive.solid | #009eff | — |
| support.type.property-name.tailwind, support.type.class-name.tailwind | #00c0ff | — |
| support.function.class-name.tailwind | #00c0ff | bold |
| variable.other.attribute-name.class.css | #00c0ff | — |
| support.type.class-name.unocss, support.type.property-name.unocss | #00c0ff | — |
| support.function.class-name.unocss | #00c0ff | bold |
| variable.other.attribute-name.class.unocss | #00c0ff | — |
| source.graphql | #f6f8fa | — |
| variable.graphql | #18b7a1 | — |
| string.graphql | #979fa8 | — |
| support.field.graphql | #009eff | — |
| support.constant.yaml | #18b7a1 | — |
| entity.name.tag.yaml | #009eff | — |
| constant.other.object.key.json | #009eff | — |
| terminal.ansiGreen | #007f67 | — |
| terminal.ansiRed | #723700 | — |
| debugTokenExpression.name | #18b7a1 | — |
| debugTokenExpression.value | #f6f8fa | — |
| editor.suggestWidgetStatusDetailForeground | #9198a199 | — |
| codelens | #9198a1cc | — |
| testing.iconPassed | #00a385 | — |
| testing.iconFailed | #d09300 | — |
| testing.runAction | #00c0ff | — |
| constant.other.eslint | #d14f44 | — |
| constant.other.pylint | #9f7b01 | — |
| variable.other.unused.rust | #9198a180 | italic |
| chat.requestBorder | #3d444d | — |
| chat.requestBackground | — | — |
| chat.slashCommandBackground | — | — |
| chat.slashCommandForeground | #00c0ff | — |
| chat.avatarBackground | — | — |
| chat.avatarForeground | #f6f8fa | — |
| inlineChat.background | — | — |
| inlineChat.foreground | #f6f8fa | — |
| inlineChat.border | — | — |
| inlineChat.acceptedSuggestionBorder | — | — |
| inlineChat.rejectedSuggestionBorder | — | — |
| editorLightBulb.foreground | #84c3ff | — |
| editorLightBulbAutoFix.foreground | #00a38580 | — |
| editorLightBulbAi.foreground | #ff63bd | — |
| comment, punctuation.definition.comment, string.comment | #79818999 | italic |
| constant, entity.name.constant, variable.other.enummember, variable.language, entity | #18b7a1 | — |
| entity.name, meta.export.default, meta.definition.variable | #18b7a1 | — |
| variable.parameter.function, meta.jsx.children, meta.block, meta.tag.attributes, meta.object.member, meta.embedded.expression, meta.js.jsx.children | #f6f8fa | — |
| entity.name.tag, support.class.component | #009eff | — |
| keyword | #da8f00 | — |
| storage | #009eff | — |
| storage.modifier.package, storage.modifier.import, storage.type.java | #c89700 | — |
| string punctuation.section.embedded source | #979fa8 | — |
| support | #00bea299 | — |
| meta.property-name | #009eff | — |
| variable.other | #18b7a1 | — |
| invalid.broken | #d09300 | italic |
| invalid.deprecated | #c89700 | italic |
| invalid.illegal | #d09300 | italic |
| invalid.unimplemented | #c89700 | italic |
| carriage-return | #d09300 | italic underline |
| message.error | #d09300 | — |
| string variable | #18b7a1 | — |
| source.regexp, string.regexp | #009eff | — |
| constant.character.escape | #f6f8fa | — |
| string.regexp.character-class, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition | #009eff | — |
| string.regexp constant.character.escape | #009eff | bold |
| support.constant | #00bea2 | — |
| support.variable | #18b7a1 | — |
| support.type.property-name.json | #009eff | — |
| meta.module-reference | #66a3e2 | — |
| punctuation.definition.list.begin.markdown | #798189 | — |
| punctuation.definition.list.end.markdown | #798189 | — |
| markup.heading, markup.heading entity.name | #009eff | bold |
| markup.quote | #009eff | — |
| markup.italic | #c89700 | italic |
| markup.bold | #c89700 | bold |
| markup.underline | — | underline |
| markup.strikethrough | — | strikethrough |
| markup.inline.raw | #009eff | — |
| markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted | #d09300 | — |
| punctuation.section.embedded | #d09300 | — |
| markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted | #00bea2 | — |
| markup.changed, punctuation.definition.changed | #c89700 | — |
| markup.ignored, markup.untracked | #979fa8 | — |
| meta.diff.range | #00bea2 | bold |
| meta.diff.header | #009eff | — |
| meta.separator | #009eff | bold |
| meta.output | #009eff | — |
| brackethighlighter.tag, brackethighlighter.curly, brackethighlighter.round, brackethighlighter.square, brackethighlighter.angle, brackethighlighter.quote | #3d444d | — |
| brackethighlighter.unmatched | #d09300 | — |
| constant.other.reference.link, string.other.link | #009eff | underline |
| constant.language | #d89000 | |
| support.type.property-name | #009eff | |
| string | #979fa8 | |
| entity.name.function | #009eff | |
| punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php, punctuation.definition.parameters.end | #ff63bd | |
| entity.name.type | #009eff | |
| meta.embedded | #ff63bd | — |
| support.function | #009eff | — |
| storage.type | #009eff | — |
| storage.modifier | #c89700 | — |
| variable | #18b7a1 | — |
| variable.other.readwrite | #18b7a1 | — |
| variable.other.readwrite.js | #ff63bd | — |
| variable.other.object | #18b7a1 | — |
| variable.other.property.static | #009eff | bold |
| entity.name.function.arrow | #009eff | — |
| keyword.operator.expression.ternary | #009eff | — |
| keyword.operator | #009eff | |
| support.class | #ce9400 | |
| punctuation.separator.key-value.html | #ff63bd | |
| punctuation.definition.tag | #ff63bd | |
| punctuation.definition.string.begin.js, punctuation.definition.string.end.js | #ff63bd | |
| punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.template.begin.js, punctuation.definition.string.template.end.js | #46b86f | |
| punctuation.definition.string.begin.sql, punctuation.definition.string.end.sql | #00a385 | |
| keyword.other.DML.sql, source.sql.embedded.php, string.quoted.single.sql.php, string.quoted.single.php | #e9b700 | |
| string.quoted.other.backtick.sql | #e9b700 | |
| variable.other.property.js, entity.name.function.member | #e9b700 | |
| string.quoted.double.html, string.quoted.single.js, string.quoted.double.js, string.template.js | #9198a1 | |
| text.html.php | #9198a1 | |
| meta.embedded.block.html | #f6f8fa | — |
| punctuation.definition.template-expression.begin | #d09300 | — |
| punctuation.definition.template-expression.end | #d09300 | — |
| variable.other.constant, variable.other.constant.object.js, punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.end.js | #84c3ff | |
| punctuation.separator.comma.js | #00a385 | |
| punctuation.definition.string.begin.php, punctuation.definition.string.end.php | #ff63bd | |
| punctuation.accessor.js | #f6f8fa | — |
| variable.css | #46b86f | — |
| variable.argument.css | #84c3ff | — |
| constant.other.color.rgb-value, support.constant.property-value | #e9b700 | — |
| punctuation.separator.list.comma.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css, meta.function.calc.css, keyword.operator.arithmetic.css, punctuation.definition.entity.css | #00a385 | — |
| punctuation.definition.string.begin.css, punctuation.definition.string.end.css | #ff63bd | — |
| string.quoted.single.css | #9198a1 | — |
| keyword.other.unit.px.css, keyword.other.unit.rem.css, keyword.other.unit.em.css, keyword.other.unit.deg.css, keyword.other.unit.ms.css, keyword.other.unit.vw.css, keyword.other.unit.vh.css, keyword.other.unit, keyword.other.unit.s.css | #84c3ff | — |
| constant.numeric.css | #e9b700 | — |
| entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.class.css | #00c0ff | — |
| entity.name.tag.css | #84c3ff | — |
| meta.template.expression | #f6f8fa | — |
| string.template.expression | #18b7a1 | — |
| support.type.property-name.css | #00c0ff | — |
| entity.other.keyframe-offset.css | #00c0ff | — |
| support.constant.vendored.property-value.css, support.constant.font-name.css | #ff63bd | — |
| entity.other.attribute-name.pseudo-element.css | #00c0ff | — |
| support.type.property-name.media.css, support.constant.media.css | #46b86f | — |
| keyword.operator.logical.only.media.css, keyword.operator.logical.and.media.css, string.quoted.double.css | #00a385 | — |
| entity.other.attribute-name.id.css | #00c0ff | — |
| support.function.transform.css | #00c0ff | — |
| entity.other.keyframe-offset.percentage.css | #ff63bd | — |
| token.info-token | #66a3e2 | — |
| token.warn-token | #c89700 | — |
| token.error-token | #d09300 | — |
| variable.other.global.php | #46b86f | — |
| token.debug-token | #46b86f | — |
| constant.numeric | #d89000 | — |
| meta.structure.dictionary.value.json, meta.structure.dictionary.json, source.json | #3d444d | — |
| storage.type.class.jsdoc | #009eff | — |
| code-runner.output | #009eff | — |
Full workbench mockup using this variant's colors and tokenColors.
Loading...
Workbench UI color keys from the theme JSON colors map.
TextMate scopes and font styles (syntax highlighting rules).
| scope | foreground | fontStyle |
|---|---|---|
| source.rust | #000000 | — |
| keyword.other.rust | #da8f00 | — |
| storage.type.function.rust | #00a3ff | — |
| entity.name.function.rust | #00a3ff | — |
| entity.name.type.rust, entity.name.enum.rust, entity.name.struct.rust, entity.name.trait.rust | #00a3ff | — |
| variable.other.constant.rust | #28b79a | — |
| keyword.control.match.rust, keyword.control.conditional.rust, keyword.control.loop.rust | #da8f00 | — |
| punctuation.separator.colon.rust, punctuation.separator.arrow.rust, punctuation.separator.double-colon.rust | #798189 | — |
| keyword.operator.macro.rust | #00a3ff | bold |
| support.type.module.rust | #5ea5e0 | — |
| variable.parameter.rust | #00be98 | — |
| source.go | #000000 | — |
| keyword.other.function.go, keyword.other.method.go | #00a3ff | — |
| entity.name.function.go | #00a3ff | — |
| storage.type.struct.go, storage.type.interface.go, storage.type.map.go, storage.type.channel.go | #00a3ff | — |
| entity.name.type.go | #00a3ff | — |
| variable.parameter.go | #00be98 | — |
| keyword.package.go, keyword.import.go, keyword.var.go, keyword.const.go, keyword.type.go | #da8f00 | — |
| keyword.control.go, keyword.control.conditional.go, keyword.control.loop.go | #da8f00 | — |
| keyword.operator.assignment.go | #00a3ff | — |
| constant.language.blank.go | #28b79a | — |
| source.python | #000000 | — |
| keyword.control.flow.python, keyword.control.import.python, keyword.control.def.python | #da8f00 | — |
| entity.name.function.python | #00a3ff | — |
| support.function.builtin.python | #00a3ff | — |
| entity.name.class.python | #ce9400 | — |
| variable.parameter.function.language.python | #00be98 | — |
| variable.parameter.function.language.special.self.python, variable.parameter.function.language.special.cls.python | #00be98 | italic |
| meta.function.decorator.python | #ce9400 | — |
| meta.function.decorator.python punctuation.definition.decorator.python | #ce9400 | — |
| constant.language.python | #28b79a | — |
| variable.language.special.self.python | #28b79a | italic |
| string.quoted.docstring.multi.python, string.quoted.docstring.single.python | #79818999 | italic |
| keyword.operator.logical.python, keyword.operator.comparison.python, keyword.operator.arithmetic.python | #00a3ff | — |
| punctuation.separator.period.python, punctuation.separator.colon.python | #798189 | — |
| source.ts, source.tsx | #000000 | — |
| meta.interface.ts, meta.type.declaration.ts | #00a3ff | — |
| entity.name.type.interface.ts, entity.name.type.alias.ts | #00a3ff | — |
| meta.enum.member.ts | #28b79a | — |
| keyword.operator.type.annotation.ts, keyword.operator.type.assertion.ts, keyword.operator.optional.ts | #00a3ff | — |
| keyword.operator.expression.as, keyword.operator.expression.is | #00a3ff | — |
| support.type.primitive.ts, support.type.builtin.ts | #00a3ff | — |
| variable.other.readwrite.alias.ts | #28b79a | — |
| meta.type.parameters.ts | #00a3ff | — |
| keyword.operator.keyof, keyword.operator.typeof, keyword.operator.infer | #da8f00 | — |
| meta.element.jsx, meta.element.tsx | #00a3ff | — |
| entity.name.tag.jsx, entity.name.tag.tsx | #00a3ff | — |
| entity.other.attribute-name.jsx, entity.other.attribute-name.tsx | #00a3ff | — |
| support.constant.property-value.jsx, support.constant.property-value.tsx | #28b79a | — |
| meta.tag.attributes.jsx, meta.tag.attributes.tsx | #000000 | — |
| punctuation.section.embedded.begin.jsx, punctuation.section.embedded.end.jsx, punctuation.section.embedded.begin.tsx, punctuation.section.embedded.end.tsx | #d09300 | — |
| support.function.component.react, support.function.component.nextjs | #00a3ff | — |
| variable.other.constant.property.react, variable.other.constant.property.nextjs | #28b79a | — |
| support.function.react, support.function.nextjs | #00a3ff | — |
| variable.other.hook.js, variable.other.hook.ts, variable.other.hook.jsx, variable.other.hook.tsx | #00afff | bold |
| text.html.vue | #000000 | — |
| meta.tag.block.any.html | #00a3ff | — |
| entity.name.tag.block.template.vue | #00a3ff | — |
| entity.name.tag.script.vue | #00a3ff | — |
| entity.name.tag.style.vue | #00a3ff | — |
| variable.other.attribute.vue | #00a3ff | — |
| support.attribute.vue | #00a3ff | — |
| keyword.control.directive.vue | #da8f00 | — |
| directive.vue | #da8f00 | — |
| punctuation.definition.directive.vue | #798189 | — |
| string.template.vue | #52b29b | — |
| punctuation.embedded.template.vue | #d09300 | — |
| variable.other.template.vue | #28b79a | — |
| support.slot.vue | #00be98 | — |
| constant.other.key.vue | #28b79a | — |
| meta.tag.svelte | #00a3ff | — |
| entity.name.tag.svelte | #00a3ff | — |
| variable.other.svelte | #28b79a | — |
| support.function.svelte | #00a3ff | — |
| directive.svelte | #da8f00 | — |
| punctuation.definition.directive.svelte | #798189 | — |
| string.template.svelte | #52b29b | — |
| punctuation.embedded.template.svelte | #d09300 | — |
| entity.name.tag.template.angular, entity.name.tag.component.angular | #00a3ff | — |
| variable.other.property.angular | #00a3ff | — |
| support.directive.angular | #da8f00 | — |
| support.attribute.angular | #00a3ff | — |
| support.function.pure.angular, support.function.async.angular | #00a3ff | — |
| string.template.expression.angular | #d09300 | — |
| support.function.jsx.solid, support.function.hook.solid | #00afff | bold |
| variable.other.constant.property.solid | #28b79a | — |
| variable.other.signal.solid | #28b79a | — |
| support.type.primitive.solid | #00a3ff | — |
| support.type.property-name.tailwind, support.type.class-name.tailwind | #00afff | — |
| support.function.class-name.tailwind | #00afff | bold |
| variable.other.attribute-name.class.css | #00afff | — |
| support.type.class-name.unocss, support.type.property-name.unocss | #00afff | — |
| support.function.class-name.unocss | #00afff | bold |
| variable.other.attribute-name.class.unocss | #00afff | — |
| source.graphql | #000000 | — |
| variable.graphql | #28b79a | — |
| string.graphql | #52b29b | — |
| support.field.graphql | #00a3ff | — |
| support.constant.yaml | #28b79a | — |
| entity.name.tag.yaml | #00a3ff | — |
| constant.other.object.key.json | #00a3ff | — |
| terminal.ansiGreen | #007f5e | — |
| terminal.ansiRed | #723700 | — |
| debugTokenExpression.name | #28b79a | — |
| debugTokenExpression.value | #000000 | — |
| editor.suggestWidgetStatusDetailForeground | #252a3099 | — |
| codelens | #252a30cc | — |
| testing.iconPassed | #00946b | — |
| testing.iconFailed | #d09300 | — |
| testing.runAction | #00afff | — |
| constant.other.eslint | #d14f44 | — |
| constant.other.pylint | #9f7b01 | — |
| variable.other.unused.rust | #252a3080 | italic |
| chat.requestBorder | #d1d9e0 | — |
| chat.requestBackground | — | — |
| chat.slashCommandBackground | — | — |
| chat.slashCommandForeground | #00afff | — |
| chat.avatarBackground | — | — |
| chat.avatarForeground | #000000 | — |
| inlineChat.background | — | — |
| inlineChat.foreground | #000000 | — |
| inlineChat.border | — | — |
| inlineChat.acceptedSuggestionBorder | — | — |
| inlineChat.rejectedSuggestionBorder | — | — |
| editorLightBulb.foreground | #69b1ec | — |
| editorLightBulbAutoFix.foreground | #00946b80 | — |
| editorLightBulbAi.foreground | #ff63bd | — |
| comment, punctuation.definition.comment, string.comment | #79818999 | italic |
| constant, entity.name.constant, variable.other.enummember, variable.language, entity | #28b79a | — |
| entity.name, meta.export.default, meta.definition.variable | #28b79a | — |
| variable.parameter.function, meta.jsx.children, meta.block, meta.tag.attributes, meta.object.member, meta.embedded.expression, meta.js.jsx.children | #000000 | — |
| entity.name.tag, support.class.component | #00a3ff | — |
| keyword | #da8f00 | — |
| storage | #00a3ff | — |
| storage.modifier.package, storage.modifier.import, storage.type.java | #c89700 | — |
| string punctuation.section.embedded source | #52b29b | — |
| support | #00be9899 | — |
| meta.property-name | #00a3ff | — |
| variable.other | #28b79a | — |
| invalid.broken | #d09300 | italic |
| invalid.deprecated | #c89700 | italic |
| invalid.illegal | #d09300 | italic |
| invalid.unimplemented | #c89700 | italic |
| carriage-return | #d09300 | italic underline |
| message.error | #d09300 | — |
| string variable | #28b79a | — |
| source.regexp, string.regexp | #00a3ff | — |
| constant.character.escape | #000000 | — |
| string.regexp.character-class, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition | #00a3ff | — |
| string.regexp constant.character.escape | #00a3ff | bold |
| support.constant | #00be98 | — |
| support.variable | #28b79a | — |
| support.type.property-name.json | #00a3ff | — |
| meta.module-reference | #5ea5e0 | — |
| punctuation.definition.list.begin.markdown | #798189 | — |
| punctuation.definition.list.end.markdown | #798189 | — |
| markup.heading, markup.heading entity.name | #00a3ff | bold |
| markup.quote | #00a3ff | — |
| markup.italic | #c89700 | italic |
| markup.bold | #c89700 | bold |
| markup.underline | — | underline |
| markup.strikethrough | — | strikethrough |
| markup.inline.raw | #00a3ff | — |
| markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted | #d09300 | — |
| punctuation.section.embedded | #d09300 | — |
| markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted | #00be98 | — |
| markup.changed, punctuation.definition.changed | #c89700 | — |
| markup.ignored, markup.untracked | #97a0a8 | — |
| meta.diff.range | #00be98 | bold |
| meta.diff.header | #00a3ff | — |
| meta.separator | #00a3ff | bold |
| meta.output | #00a3ff | — |
| brackethighlighter.tag, brackethighlighter.curly, brackethighlighter.round, brackethighlighter.square, brackethighlighter.angle, brackethighlighter.quote | #3d444d | — |
| brackethighlighter.unmatched | #d09300 | — |
| constant.other.reference.link, string.other.link | #00a3ff | underline |
| constant.language | #d89000 | |
| support.type.property-name | #00a3ff | |
| string | #52b29b | |
| entity.name.function | #00a3ff | |
| punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php, punctuation.definition.parameters.end | #ff63bd | |
| entity.name.type | #00a3ff | |
| meta.embedded | #ff63bd | — |
| support.function | #00a3ff | — |
| storage.type | #00a3ff | — |
| storage.modifier | #c89700 | — |
| variable | #28b79a | — |
| variable.other.readwrite | #28b79a | — |
| variable.other.readwrite.js | #ff63bd | — |
| variable.other.object | #28b79a | — |
| variable.other.property.static | #00a3ff | bold |
| entity.name.function.arrow | #00a3ff | — |
| keyword.operator.expression.ternary | #00a3ff | — |
| keyword.operator | #00a3ff | |
| support.class | #ce9400 | |
| punctuation.separator.key-value.html | #ff63bd | |
| punctuation.definition.tag | #ff63bd | |
| punctuation.definition.string.begin.js, punctuation.definition.string.end.js | #ff63bd | |
| punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.template.begin.js, punctuation.definition.string.template.end.js | #46b86f | |
| punctuation.definition.string.begin.sql, punctuation.definition.string.end.sql | #00946b | |
| keyword.other.DML.sql, source.sql.embedded.php, string.quoted.single.sql.php, string.quoted.single.php | #d4a200 | |
| string.quoted.other.backtick.sql | #d4a200 | |
| variable.other.property.js, entity.name.function.member | #d4a200 | |
| string.quoted.double.html, string.quoted.single.js, string.quoted.double.js, string.template.js | #252a30 | |
| text.html.php | #252a30 | |
| meta.embedded.block.html | #000000 | — |
| punctuation.definition.template-expression.begin | #d09300 | — |
| punctuation.definition.template-expression.end | #d09300 | — |
| variable.other.constant, variable.other.constant.object.js, punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.end.js | #69b1ec | |
| punctuation.separator.comma.js | #00946b | |
| punctuation.definition.string.begin.php, punctuation.definition.string.end.php | #ff63bd | |
| punctuation.accessor.js | #000000 | — |
| variable.css | #46b86f | — |
| variable.argument.css | #69b1ec | — |
| constant.other.color.rgb-value, support.constant.property-value | #d4a200 | — |
| punctuation.separator.list.comma.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css, meta.function.calc.css, keyword.operator.arithmetic.css, punctuation.definition.entity.css | #00946b | — |
| punctuation.definition.string.begin.css, punctuation.definition.string.end.css | #ff63bd | — |
| string.quoted.single.css | #252a30 | — |
| keyword.other.unit.px.css, keyword.other.unit.rem.css, keyword.other.unit.em.css, keyword.other.unit.deg.css, keyword.other.unit.ms.css, keyword.other.unit.vw.css, keyword.other.unit.vh.css, keyword.other.unit, keyword.other.unit.s.css | #69b1ec | — |
| constant.numeric.css | #d4a200 | — |
| entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.class.css | #00afff | — |
| entity.name.tag.css | #69b1ec | — |
| meta.template.expression | #000000 | — |
| string.template.expression | #28b79a | — |
| support.type.property-name.css | #00afff | — |
| entity.other.keyframe-offset.css | #00afff | — |
| support.constant.vendored.property-value.css, support.constant.font-name.css | #ff63bd | — |
| entity.other.attribute-name.pseudo-element.css | #00afff | — |
| support.type.property-name.media.css, support.constant.media.css | #46b86f | — |
| keyword.operator.logical.only.media.css, keyword.operator.logical.and.media.css, string.quoted.double.css | #00946b | — |
| entity.other.attribute-name.id.css | #00afff | — |
| support.function.transform.css | #00afff | — |
| entity.other.keyframe-offset.percentage.css | #ff63bd | — |
| token.info-token | #5ea5e0 | — |
| token.warn-token | #c89700 | — |
| token.error-token | #d09300 | — |
| variable.other.global.php | #46b86f | — |
| token.debug-token | #46b86f | — |
| constant.numeric | #d89000 | — |
| meta.structure.dictionary.value.json, meta.structure.dictionary.json, source.json | #d1d9e0 | — |
| storage.type.class.jsdoc | #00a3ff | — |
| code-runner.output | #00a3ff | — |
Full workbench mockup using this variant's colors and tokenColors.
Loading...
Workbench UI color keys from the theme JSON colors map.
TextMate scopes and font styles (syntax highlighting rules).
| scope | foreground | fontStyle |
|---|---|---|
| source.rust | #f6f8fa | — |
| keyword.other.rust | #bc6aff | — |
| storage.type.function.rust | #7a84ff | — |
| entity.name.function.rust | #7a84ff | — |
| entity.name.type.rust, entity.name.enum.rust, entity.name.struct.rust, entity.name.trait.rust | #7a84ff | — |
| variable.other.constant.rust | #41b68b | — |
| keyword.control.match.rust, keyword.control.conditional.rust, keyword.control.loop.rust | #bc6aff | — |
| punctuation.separator.colon.rust, punctuation.separator.arrow.rust, punctuation.separator.double-colon.rust | #7a818a | — |
| keyword.operator.macro.rust | #7a84ff | bold |
| support.type.module.rust | #4aaad8 | — |
| variable.parameter.rust | #31bb69 | — |
| source.go | #f6f8fa | — |
| keyword.other.function.go, keyword.other.method.go | #7a84ff | — |
| entity.name.function.go | #7a84ff | — |
| storage.type.struct.go, storage.type.interface.go, storage.type.map.go, storage.type.channel.go | #7a84ff | — |
| entity.name.type.go | #7a84ff | — |
| variable.parameter.go | #31bb69 | — |
| keyword.package.go, keyword.import.go, keyword.var.go, keyword.const.go, keyword.type.go | #bc6aff | — |
| keyword.control.go, keyword.control.conditional.go, keyword.control.loop.go | #bc6aff | — |
| keyword.operator.assignment.go | #7a84ff | — |
| constant.language.blank.go | #41b68b | — |
| source.python | #f6f8fa | — |
| keyword.control.flow.python, keyword.control.import.python, keyword.control.def.python | #bc6aff | — |
| entity.name.function.python | #7a84ff | — |
| support.function.builtin.python | #7a84ff | — |
| entity.name.class.python | #f560ab | — |
| variable.parameter.function.language.python | #31bb69 | — |
| variable.parameter.function.language.special.self.python, variable.parameter.function.language.special.cls.python | #31bb69 | italic |
| meta.function.decorator.python | #f560ab | — |
| meta.function.decorator.python punctuation.definition.decorator.python | #f560ab | — |
| constant.language.python | #41b68b | — |
| variable.language.special.self.python | #41b68b | italic |
| string.quoted.docstring.multi.python, string.quoted.docstring.single.python | #7a818a99 | italic |
| keyword.operator.logical.python, keyword.operator.comparison.python, keyword.operator.arithmetic.python | #7a84ff | — |
| punctuation.separator.period.python, punctuation.separator.colon.python | #7a818a | — |
| source.ts, source.tsx | #f6f8fa | — |
| meta.interface.ts, meta.type.declaration.ts | #7a84ff | — |
| entity.name.type.interface.ts, entity.name.type.alias.ts | #7a84ff | — |
| meta.enum.member.ts | #41b68b | — |
| keyword.operator.type.annotation.ts, keyword.operator.type.assertion.ts, keyword.operator.optional.ts | #7a84ff | — |
| keyword.operator.expression.as, keyword.operator.expression.is | #7a84ff | — |
| support.type.primitive.ts, support.type.builtin.ts | #7a84ff | — |
| variable.other.readwrite.alias.ts | #41b68b | — |
| meta.type.parameters.ts | #7a84ff | — |
| keyword.operator.keyof, keyword.operator.typeof, keyword.operator.infer | #bc6aff | — |
| meta.element.jsx, meta.element.tsx | #7a84ff | — |
| entity.name.tag.jsx, entity.name.tag.tsx | #7a84ff | — |
| entity.other.attribute-name.jsx, entity.other.attribute-name.tsx | #7a84ff | — |
| support.constant.property-value.jsx, support.constant.property-value.tsx | #41b68b | — |
| meta.tag.attributes.jsx, meta.tag.attributes.tsx | #f6f8fa | — |
| punctuation.section.embedded.begin.jsx, punctuation.section.embedded.end.jsx, punctuation.section.embedded.begin.tsx, punctuation.section.embedded.end.tsx | #ff6033 | — |
| support.function.component.react, support.function.component.nextjs | #7a84ff | — |
| variable.other.constant.property.react, variable.other.constant.property.nextjs | #41b68b | — |
| support.function.react, support.function.nextjs | #7a84ff | — |
| variable.other.hook.js, variable.other.hook.ts, variable.other.hook.jsx, variable.other.hook.tsx | #96a6ff | bold |
| text.html.vue | #f6f8fa | — |
| meta.tag.block.any.html | #7a84ff | — |
| entity.name.tag.block.template.vue | #7a84ff | — |
| entity.name.tag.script.vue | #7a84ff | — |
| entity.name.tag.style.vue | #7a84ff | — |
| variable.other.attribute.vue | #7a84ff | — |
| support.attribute.vue | #7a84ff | — |
| keyword.control.directive.vue | #bc6aff | — |
| directive.vue | #bc6aff | — |
| punctuation.definition.directive.vue | #7a818a | — |
| string.template.vue | #989fa8 | — |
| punctuation.embedded.template.vue | #ff6033 | — |
| variable.other.template.vue | #41b68b | — |
| support.slot.vue | #31bb69 | — |
| constant.other.key.vue | #41b68b | — |
| meta.tag.svelte | #7a84ff | — |
| entity.name.tag.svelte | #7a84ff | — |
| variable.other.svelte | #41b68b | — |
| support.function.svelte | #7a84ff | — |
| directive.svelte | #bc6aff | — |
| punctuation.definition.directive.svelte | #7a818a | — |
| string.template.svelte | #989fa8 | — |
| punctuation.embedded.template.svelte | #ff6033 | — |
| entity.name.tag.template.angular, entity.name.tag.component.angular | #7a84ff | — |
| variable.other.property.angular | #7a84ff | — |
| support.directive.angular | #bc6aff | — |
| support.attribute.angular | #7a84ff | — |
| support.function.pure.angular, support.function.async.angular | #7a84ff | — |
| string.template.expression.angular | #ff6033 | — |
| support.function.jsx.solid, support.function.hook.solid | #96a6ff | bold |
| variable.other.constant.property.solid | #41b68b | — |
| variable.other.signal.solid | #41b68b | — |
| support.type.primitive.solid | #7a84ff | — |
| support.type.property-name.tailwind, support.type.class-name.tailwind | #96a6ff | — |
| support.function.class-name.tailwind | #96a6ff | bold |
| variable.other.attribute-name.class.css | #96a6ff | — |
| support.type.class-name.unocss, support.type.property-name.unocss | #96a6ff | — |
| support.function.class-name.unocss | #96a6ff | bold |
| variable.other.attribute-name.class.unocss | #96a6ff | — |
| source.graphql | #f6f8fa | — |
| variable.graphql | #41b68b | — |
| string.graphql | #989fa8 | — |
| support.field.graphql | #7a84ff | — |
| support.constant.yaml | #41b68b | — |
| entity.name.tag.yaml | #7a84ff | — |
| constant.other.object.key.json | #7a84ff | — |
| terminal.ansiGreen | #007c2d | — |
| terminal.ansiRed | #990000 | — |
| debugTokenExpression.name | #41b68b | — |
| debugTokenExpression.value | #f6f8fa | — |
| editor.suggestWidgetStatusDetailForeground | #9198a199 | — |
| codelens | #9198a1cc | — |
| testing.iconPassed | #009f3c | — |
| testing.iconFailed | #ff6033 | — |
| testing.runAction | #96a6ff | — |
| constant.other.eslint | #d14f44 | — |
| constant.other.pylint | #9f7b01 | — |
| variable.other.unused.rust | #9198a180 | italic |
| chat.requestBorder | #3d444d | — |
| chat.requestBackground | — | — |
| chat.slashCommandBackground | — | — |
| chat.slashCommandForeground | #96a6ff | — |
| chat.avatarBackground | — | — |
| chat.avatarForeground | #f6f8fa | — |
| inlineChat.background | — | — |
| inlineChat.foreground | #f6f8fa | — |
| inlineChat.border | — | — |
| inlineChat.acceptedSuggestionBorder | — | — |
| inlineChat.rejectedSuggestionBorder | — | — |
| editorLightBulb.foreground | #6ccafa | — |
| editorLightBulbAutoFix.foreground | #009f3c80 | — |
| editorLightBulbAi.foreground | #ff63bd | — |
| comment, punctuation.definition.comment, string.comment | #7a818a99 | italic |
| constant, entity.name.constant, variable.other.enummember, variable.language, entity | #41b68b | — |
| entity.name, meta.export.default, meta.definition.variable | #41b68b | — |
| variable.parameter.function, meta.jsx.children, meta.block, meta.tag.attributes, meta.object.member, meta.embedded.expression, meta.js.jsx.children | #f6f8fa | — |
| entity.name.tag, support.class.component | #7a84ff | — |
| keyword | #bc6aff | — |
| storage | #7a84ff | — |
| storage.modifier.package, storage.modifier.import, storage.type.java | #cb9500 | — |
| string punctuation.section.embedded source | #989fa8 | — |
| support | #31bb6999 | — |
| meta.property-name | #7a84ff | — |
| variable.other | #41b68b | — |
| invalid.broken | #ff6033 | italic |
| invalid.deprecated | #cb9500 | italic |
| invalid.illegal | #ff6033 | italic |
| invalid.unimplemented | #cb9500 | italic |
| carriage-return | #ff6033 | italic underline |
| message.error | #ff6033 | — |
| string variable | #41b68b | — |
| source.regexp, string.regexp | #7a84ff | — |
| constant.character.escape | #f6f8fa | — |
| string.regexp.character-class, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition | #7a84ff | — |
| string.regexp constant.character.escape | #7a84ff | bold |
| support.constant | #31bb69 | — |
| support.variable | #41b68b | — |
| support.type.property-name.json | #7a84ff | — |
| meta.module-reference | #4aaad8 | — |
| punctuation.definition.list.begin.markdown | #7a818a | — |
| punctuation.definition.list.end.markdown | #7a818a | — |
| markup.heading, markup.heading entity.name | #7a84ff | bold |
| markup.quote | #7a84ff | — |
| markup.italic | #cb9500 | italic |
| markup.bold | #cb9500 | bold |
| markup.underline | — | underline |
| markup.strikethrough | — | strikethrough |
| markup.inline.raw | #7a84ff | — |
| markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted | #ff6033 | — |
| punctuation.section.embedded | #ff6033 | — |
| markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted | #31bb69 | — |
| markup.changed, punctuation.definition.changed | #cb9500 | — |
| markup.ignored, markup.untracked | #989fa8 | — |
| meta.diff.range | #31bb69 | bold |
| meta.diff.header | #7a84ff | — |
| meta.separator | #7a84ff | bold |
| meta.output | #7a84ff | — |
| brackethighlighter.tag, brackethighlighter.curly, brackethighlighter.round, brackethighlighter.square, brackethighlighter.angle, brackethighlighter.quote | #3d444d | — |
| brackethighlighter.unmatched | #ff6033 | — |
| constant.other.reference.link, string.other.link | #7a84ff | underline |
| constant.language | #ff463f | |
| support.type.property-name | #7a84ff | |
| string | #989fa8 | |
| entity.name.function | #7a84ff | |
| punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php, punctuation.definition.parameters.end | #ff63bd | |
| entity.name.type | #7a84ff | |
| meta.embedded | #ff63bd | — |
| support.function | #7a84ff | — |
| storage.type | #7a84ff | — |
| storage.modifier | #cb9500 | — |
| variable | #41b68b | — |
| variable.other.readwrite | #41b68b | — |
| variable.other.readwrite.js | #ff63bd | — |
| variable.other.object | #41b68b | — |
| variable.other.property.static | #7a84ff | bold |
| entity.name.function.arrow | #7a84ff | — |
| keyword.operator.expression.ternary | #7a84ff | — |
| keyword.operator | #7a84ff | |
| support.class | #f560ab | |
| punctuation.separator.key-value.html | #ff63bd | |
| punctuation.definition.tag | #ff63bd | |
| punctuation.definition.string.begin.js, punctuation.definition.string.end.js | #ff63bd | |
| punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.template.begin.js, punctuation.definition.string.template.end.js | #46b86f | |
| punctuation.definition.string.begin.sql, punctuation.definition.string.end.sql | #009f3c | |
| keyword.other.DML.sql, source.sql.embedded.php, string.quoted.single.sql.php, string.quoted.single.php | #ecb500 | |
| string.quoted.other.backtick.sql | #ecb500 | |
| variable.other.property.js, entity.name.function.member | #ecb500 | |
| string.quoted.double.html, string.quoted.single.js, string.quoted.double.js, string.template.js | #9198a1 | |
| text.html.php | #9198a1 | |
| meta.embedded.block.html | #f6f8fa | — |
| punctuation.definition.template-expression.begin | #ff6033 | — |
| punctuation.definition.template-expression.end | #ff6033 | — |
| variable.other.constant, variable.other.constant.object.js, punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.end.js | #6ccafa | |
| punctuation.separator.comma.js | #009f3c | |
| punctuation.definition.string.begin.php, punctuation.definition.string.end.php | #ff63bd | |
| punctuation.accessor.js | #f6f8fa | — |
| variable.css | #46b86f | — |
| variable.argument.css | #6ccafa | — |
| constant.other.color.rgb-value, support.constant.property-value | #ecb500 | — |
| punctuation.separator.list.comma.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css, meta.function.calc.css, keyword.operator.arithmetic.css, punctuation.definition.entity.css | #009f3c | — |
| punctuation.definition.string.begin.css, punctuation.definition.string.end.css | #ff63bd | — |
| string.quoted.single.css | #9198a1 | — |
| keyword.other.unit.px.css, keyword.other.unit.rem.css, keyword.other.unit.em.css, keyword.other.unit.deg.css, keyword.other.unit.ms.css, keyword.other.unit.vw.css, keyword.other.unit.vh.css, keyword.other.unit, keyword.other.unit.s.css | #6ccafa | — |
| constant.numeric.css | #ecb500 | — |
| entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.class.css | #96a6ff | — |
| entity.name.tag.css | #6ccafa | — |
| meta.template.expression | #f6f8fa | — |
| string.template.expression | #41b68b | — |
| support.type.property-name.css | #96a6ff | — |
| entity.other.keyframe-offset.css | #96a6ff | — |
| support.constant.vendored.property-value.css, support.constant.font-name.css | #ff63bd | — |
| entity.other.attribute-name.pseudo-element.css | #96a6ff | — |
| support.type.property-name.media.css, support.constant.media.css | #46b86f | — |
| keyword.operator.logical.only.media.css, keyword.operator.logical.and.media.css, string.quoted.double.css | #009f3c | — |
| entity.other.attribute-name.id.css | #96a6ff | — |
| support.function.transform.css | #96a6ff | — |
| entity.other.keyframe-offset.percentage.css | #ff63bd | — |
| token.info-token | #4aaad8 | — |
| token.warn-token | #cb9500 | — |
| token.error-token | #ff6033 | — |
| variable.other.global.php | #46b86f | — |
| token.debug-token | #46b86f | — |
| constant.numeric | #ff463f | — |
| meta.structure.dictionary.value.json, meta.structure.dictionary.json, source.json | #3d444d | — |
| storage.type.class.jsdoc | #7a84ff | — |
| code-runner.output | #7a84ff | — |
Full workbench mockup using this variant's colors and tokenColors.
Loading...
Workbench UI color keys from the theme JSON colors map.
TextMate scopes and font styles (syntax highlighting rules).
| scope | foreground | fontStyle |
|---|---|---|
| source.rust | #f6f8fa | — |
| keyword.other.rust | #b280f8 | — |
| storage.type.function.rust | #8291ff | — |
| entity.name.function.rust | #8291ff | — |
| entity.name.type.rust, entity.name.enum.rust, entity.name.struct.rust, entity.name.trait.rust | #8291ff | — |
| variable.other.constant.rust | #67b091 | — |
| keyword.control.match.rust, keyword.control.conditional.rust, keyword.control.loop.rust | #b280f8 | — |
| punctuation.separator.colon.rust, punctuation.separator.arrow.rust, punctuation.separator.double-colon.rust | #7c8187 | — |
| keyword.operator.macro.rust | #8291ff | bold |
| support.type.module.rust | #6aa7c7 | — |
| variable.parameter.rust | #62b37a | — |
| source.go | #f6f8fa | — |
| keyword.other.function.go, keyword.other.method.go | #8291ff | — |
| entity.name.function.go | #8291ff | — |
| storage.type.struct.go, storage.type.interface.go, storage.type.map.go, storage.type.channel.go | #8291ff | — |
| entity.name.type.go | #8291ff | — |
| variable.parameter.go | #62b37a | — |
| keyword.package.go, keyword.import.go, keyword.var.go, keyword.const.go, keyword.type.go | #b280f8 | — |
| keyword.control.go, keyword.control.conditional.go, keyword.control.loop.go | #b280f8 | — |
| keyword.operator.assignment.go | #8291ff | — |
| constant.language.blank.go | #67b091 | — |
| source.python | #f6f8fa | — |
| keyword.control.flow.python, keyword.control.import.python, keyword.control.def.python | #b280f8 | — |
| entity.name.function.python | #8291ff | — |
| support.function.builtin.python | #8291ff | — |
| entity.name.class.python | #de78a7 | — |
| variable.parameter.function.language.python | #62b37a | — |
| variable.parameter.function.language.special.self.python, variable.parameter.function.language.special.cls.python | #62b37a | italic |
| meta.function.decorator.python | #de78a7 | — |
| meta.function.decorator.python punctuation.definition.decorator.python | #de78a7 | — |
| constant.language.python | #67b091 | — |
| variable.language.special.self.python | #67b091 | italic |
| string.quoted.docstring.multi.python, string.quoted.docstring.single.python | #7c818799 | italic |
| keyword.operator.logical.python, keyword.operator.comparison.python, keyword.operator.arithmetic.python | #8291ff | — |
| punctuation.separator.period.python, punctuation.separator.colon.python | #7c8187 | — |
| source.ts, source.tsx | #f6f8fa | — |
| meta.interface.ts, meta.type.declaration.ts | #8291ff | — |
| entity.name.type.interface.ts, entity.name.type.alias.ts | #8291ff | — |
| meta.enum.member.ts | #67b091 | — |
| keyword.operator.type.annotation.ts, keyword.operator.type.assertion.ts, keyword.operator.optional.ts | #8291ff | — |
| keyword.operator.expression.as, keyword.operator.expression.is | #8291ff | — |
| support.type.primitive.ts, support.type.builtin.ts | #8291ff | — |
| variable.other.readwrite.alias.ts | #67b091 | — |
| meta.type.parameters.ts | #8291ff | — |
| keyword.operator.keyof, keyword.operator.typeof, keyword.operator.infer | #b280f8 | — |
| meta.element.jsx, meta.element.tsx | #8291ff | — |
| entity.name.tag.jsx, entity.name.tag.tsx | #8291ff | — |
| entity.other.attribute-name.jsx, entity.other.attribute-name.tsx | #8291ff | — |
| support.constant.property-value.jsx, support.constant.property-value.tsx | #67b091 | — |
| meta.tag.attributes.jsx, meta.tag.attributes.tsx | #f6f8fa | — |
| punctuation.section.embedded.begin.jsx, punctuation.section.embedded.end.jsx, punctuation.section.embedded.begin.tsx, punctuation.section.embedded.end.tsx | #ea7a5c | — |
| support.function.component.react, support.function.component.nextjs | #8291ff | — |
| variable.other.constant.property.react, variable.other.constant.property.nextjs | #67b091 | — |
| support.function.react, support.function.nextjs | #8291ff | — |
| variable.other.hook.js, variable.other.hook.ts, variable.other.hook.jsx, variable.other.hook.tsx | #94a4ff | bold |
| text.html.vue | #f6f8fa | — |
| meta.tag.block.any.html | #8291ff | — |
| entity.name.tag.block.template.vue | #8291ff | — |
| entity.name.tag.script.vue | #8291ff | — |
| entity.name.tag.style.vue | #8291ff | — |
| variable.other.attribute.vue | #8291ff | — |
| support.attribute.vue | #8291ff | — |
| keyword.control.directive.vue | #b280f8 | — |
| directive.vue | #b280f8 | — |
| punctuation.definition.directive.vue | #7c8187 | — |
| string.template.vue | #9a9fa5 | — |
| punctuation.embedded.template.vue | #ea7a5c | — |
| variable.other.template.vue | #67b091 | — |
| support.slot.vue | #62b37a | — |
| constant.other.key.vue | #67b091 | — |
| meta.tag.svelte | #8291ff | — |
| entity.name.tag.svelte | #8291ff | — |
| variable.other.svelte | #67b091 | — |
| support.function.svelte | #8291ff | — |
| directive.svelte | #b280f8 | — |
| punctuation.definition.directive.svelte | #7c8187 | — |
| string.template.svelte | #9a9fa5 | — |
| punctuation.embedded.template.svelte | #ea7a5c | — |
| entity.name.tag.template.angular, entity.name.tag.component.angular | #8291ff | — |
| variable.other.property.angular | #8291ff | — |
| support.directive.angular | #b280f8 | — |
| support.attribute.angular | #8291ff | — |
| support.function.pure.angular, support.function.async.angular | #8291ff | — |
| string.template.expression.angular | #ea7a5c | — |
| support.function.jsx.solid, support.function.hook.solid | #94a4ff | bold |
| variable.other.constant.property.solid | #67b091 | — |
| variable.other.signal.solid | #67b091 | — |
| support.type.primitive.solid | #8291ff | — |
| support.type.property-name.tailwind, support.type.class-name.tailwind | #94a4ff | — |
| support.function.class-name.tailwind | #94a4ff | bold |
| variable.other.attribute-name.class.css | #94a4ff | — |
| support.type.class-name.unocss, support.type.property-name.unocss | #94a4ff | — |
| support.function.class-name.unocss | #94a4ff | bold |
| variable.other.attribute-name.class.unocss | #94a4ff | — |
| source.graphql | #f6f8fa | — |
| variable.graphql | #67b091 | — |
| string.graphql | #9a9fa5 | — |
| support.field.graphql | #8291ff | — |
| support.constant.yaml | #67b091 | — |
| entity.name.tag.yaml | #8291ff | — |
| constant.other.object.key.json | #8291ff | — |
| terminal.ansiGreen | #1f7541 | — |
| terminal.ansiRed | #841a00 | — |
| debugTokenExpression.name | #67b091 | — |
| debugTokenExpression.value | #f6f8fa | — |
| editor.suggestWidgetStatusDetailForeground | #9198a199 | — |
| codelens | #9198a1cc | — |
| testing.iconPassed | #1c8e4c | — |
| testing.iconFailed | #ea7a5c | — |
| testing.runAction | #94a4ff | — |
| constant.other.eslint | #bc6358 | — |
| constant.other.pylint | #967d40 | — |
| variable.other.unused.rust | #9198a180 | italic |
| chat.requestBorder | #3d444d | — |
| chat.requestBackground | — | — |
| chat.slashCommandBackground | — | — |
| chat.slashCommandForeground | #94a4ff | — |
| chat.avatarBackground | — | — |
| chat.avatarForeground | #f6f8fa | — |
| inlineChat.background | — | — |
| inlineChat.foreground | #f6f8fa | — |
| inlineChat.border | — | — |
| inlineChat.acceptedSuggestionBorder | — | — |
| inlineChat.rejectedSuggestionBorder | — | — |
| editorLightBulb.foreground | #7dbadb | — |
| editorLightBulbAutoFix.foreground | #1c8e4c80 | — |
| editorLightBulbAi.foreground | #f781b8 | — |
| comment, punctuation.definition.comment, string.comment | #7c818799 | italic |
| constant, entity.name.constant, variable.other.enummember, variable.language, entity | #67b091 | — |
| entity.name, meta.export.default, meta.definition.variable | #67b091 | — |
| variable.parameter.function, meta.jsx.children, meta.block, meta.tag.attributes, meta.object.member, meta.embedded.expression, meta.js.jsx.children | #f6f8fa | — |
| entity.name.tag, support.class.component | #8291ff | — |
| keyword | #b280f8 | — |
| storage | #8291ff | — |
| storage.modifier.package, storage.modifier.import, storage.type.java | #be9936 | — |
| string punctuation.section.embedded source | #9a9fa5 | — |
| support | #62b37a99 | — |
| meta.property-name | #8291ff | — |
| variable.other | #67b091 | — |
| invalid.broken | #ea7a5c | italic |
| invalid.deprecated | #be9936 | italic |
| invalid.illegal | #ea7a5c | italic |
| invalid.unimplemented | #be9936 | italic |
| carriage-return | #ea7a5c | italic underline |
| message.error | #ea7a5c | — |
| string variable | #67b091 | — |
| source.regexp, string.regexp | #8291ff | — |
| constant.character.escape | #f6f8fa | — |
| string.regexp.character-class, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition | #8291ff | — |
| string.regexp constant.character.escape | #8291ff | bold |
| support.constant | #62b37a | — |
| support.variable | #67b091 | — |
| support.type.property-name.json | #8291ff | — |
| meta.module-reference | #6aa7c7 | — |
| punctuation.definition.list.begin.markdown | #7c8187 | — |
| punctuation.definition.list.end.markdown | #7c8187 | — |
| markup.heading, markup.heading entity.name | #8291ff | bold |
| markup.quote | #8291ff | — |
| markup.italic | #be9936 | italic |
| markup.bold | #be9936 | bold |
| markup.underline | — | underline |
| markup.strikethrough | — | strikethrough |
| markup.inline.raw | #8291ff | — |
| markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted | #ea7a5c | — |
| punctuation.section.embedded | #ea7a5c | — |
| markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted | #62b37a | — |
| markup.changed, punctuation.definition.changed | #be9936 | — |
| markup.ignored, markup.untracked | #9a9fa5 | — |
| meta.diff.range | #62b37a | bold |
| meta.diff.header | #8291ff | — |
| meta.separator | #8291ff | bold |
| meta.output | #8291ff | — |
| brackethighlighter.tag, brackethighlighter.curly, brackethighlighter.round, brackethighlighter.square, brackethighlighter.angle, brackethighlighter.quote | #3d444d | — |
| brackethighlighter.unmatched | #ea7a5c | — |
| constant.other.reference.link, string.other.link | #8291ff | underline |
| constant.language | #f66e62 | |
| support.type.property-name | #8291ff | |
| string | #9a9fa5 | |
| entity.name.function | #8291ff | |
| punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php, punctuation.definition.parameters.end | #f781b8 | |
| entity.name.type | #8291ff | |
| meta.embedded | #f781b8 | — |
| support.function | #8291ff | — |
| storage.type | #8291ff | — |
| storage.modifier | #be9936 | — |
| variable | #67b091 | — |
| variable.other.readwrite | #67b091 | — |
| variable.other.readwrite.js | #f781b8 | — |
| variable.other.object | #67b091 | — |
| variable.other.property.static | #8291ff | bold |
| entity.name.function.arrow | #8291ff | — |
| keyword.operator.expression.ternary | #8291ff | — |
| keyword.operator | #8291ff | |
| support.class | #de78a7 | |
| punctuation.separator.key-value.html | #f781b8 | |
| punctuation.definition.tag | #f781b8 | |
| punctuation.definition.string.begin.js, punctuation.definition.string.end.js | #f781b8 | |
| punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.template.begin.js, punctuation.definition.string.template.end.js | #69b17e | |
| punctuation.definition.string.begin.sql, punctuation.definition.string.end.sql | #1c8e4c | |
| keyword.other.DML.sql, source.sql.embedded.php, string.quoted.single.sql.php, string.quoted.single.php | #d1ac4b | |
| string.quoted.other.backtick.sql | #d1ac4b | |
| variable.other.property.js, entity.name.function.member | #d1ac4b | |
| string.quoted.double.html, string.quoted.single.js, string.quoted.double.js, string.template.js | #9198a1 | |
| text.html.php | #9198a1 | |
| meta.embedded.block.html | #f6f8fa | — |
| punctuation.definition.template-expression.begin | #ea7a5c | — |
| punctuation.definition.template-expression.end | #ea7a5c | — |
| variable.other.constant, variable.other.constant.object.js, punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.end.js | #7dbadb | |
| punctuation.separator.comma.js | #1c8e4c | |
| punctuation.definition.string.begin.php, punctuation.definition.string.end.php | #f781b8 | |
| punctuation.accessor.js | #f6f8fa | — |
| variable.css | #69b17e | — |
| variable.argument.css | #7dbadb | — |
| constant.other.color.rgb-value, support.constant.property-value | #d1ac4b | — |
| punctuation.separator.list.comma.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css, meta.function.calc.css, keyword.operator.arithmetic.css, punctuation.definition.entity.css | #1c8e4c | — |
| punctuation.definition.string.begin.css, punctuation.definition.string.end.css | #f781b8 | — |
| string.quoted.single.css | #9198a1 | — |
| keyword.other.unit.px.css, keyword.other.unit.rem.css, keyword.other.unit.em.css, keyword.other.unit.deg.css, keyword.other.unit.ms.css, keyword.other.unit.vw.css, keyword.other.unit.vh.css, keyword.other.unit, keyword.other.unit.s.css | #7dbadb | — |
| constant.numeric.css | #d1ac4b | — |
| entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.class.css | #94a4ff | — |
| entity.name.tag.css | #7dbadb | — |
| meta.template.expression | #f6f8fa | — |
| string.template.expression | #67b091 | — |
| support.type.property-name.css | #94a4ff | — |
| entity.other.keyframe-offset.css | #94a4ff | — |
| support.constant.vendored.property-value.css, support.constant.font-name.css | #f781b8 | — |
| entity.other.attribute-name.pseudo-element.css | #94a4ff | — |
| support.type.property-name.media.css, support.constant.media.css | #69b17e | — |
| keyword.operator.logical.only.media.css, keyword.operator.logical.and.media.css, string.quoted.double.css | #1c8e4c | — |
| entity.other.attribute-name.id.css | #94a4ff | — |
| support.function.transform.css | #94a4ff | — |
| entity.other.keyframe-offset.percentage.css | #f781b8 | — |
| token.info-token | #6aa7c7 | — |
| token.warn-token | #be9936 | — |
| token.error-token | #ea7a5c | — |
| variable.other.global.php | #69b17e | — |
| token.debug-token | #69b17e | — |
| constant.numeric | #f66e62 | — |
| meta.structure.dictionary.value.json, meta.structure.dictionary.json, source.json | #3d444d | — |
| storage.type.class.jsdoc | #8291ff | — |
| code-runner.output | #8291ff | — |
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}!`;
}
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}!`;
}
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}!`;
}
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}!`;
}