Umbra
Publisher: grevenThemes in package: 1
A VS Code dark red theme inspired by Bear App colors and GitHub syntax color scheme.
A VS Code dark red theme inspired by Bear App colors and GitHub syntax color scheme.
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 |
|---|---|---|
| comment, meta.var.expr storage.type, keyword.control.flow, keyword.control.return, tag.decorator.js entity.name.tag.js, tag.decorator.js punctuation.definition.tag.js, storage.modifier, meta.function-call, entity.name.function-call, storage.type.class | — | italic |
| keyword.control.flow.block-scalar.literal, keyword.control.flow.python | — | |
| comment, comment keyword, comment markup.underline.link, comment string, comment punctuation.definition, comment punctuation, comment text, comment storage.type, comment entity.name.type, comment variable, comment variable.other, comment.block.documentation, comment.block.documentation punctuation, punctuation.definition.comment | #5c5757 | — |
| variable.other.constant, punctuation.definition.constant, constant.language, constant.numeric, support.constant, constant.other.caps | #97c4eb | — |
| string, constant.other.symbol, constant.other.key, meta.attribute-selector, string constant.character | #e6dba7 | |
| constant.other.color, constant.other.color.rgb-value.hex punctuation.definition.constant | #a3a3a3 | — |
| invalid, invalid.illegal | #fc618d | — |
| invalid.deprecated | #bb9af7 | — |
| storage.type | #f35e6d | — |
| storage.type.class | #97c4eb | — |
| meta.var.expr storage.type, storage.modifier | #f35e6d | — |
| punctuation.definition.template-expression, punctuation.section.embedded, punctuation.section.tag.twig, support.constant.handlebars, meta.embedded.line.tag.smarty | #a3a3a3 | — |
| keyword.operator.spread, keyword.operator.rest | #f35e6d | bold |
| keyword.operator, keyword.control.as, keyword.operator.bitwise.shift, entity.name.operator | #f35e6d | — |
| punctuation | #a3a3a3 | — |
| keyword.operator.member, keyword.operator.new | #f35e6d | — |
| keyword.control.module.js, keyword.control.import, keyword.control.export, keyword.control.from, keyword.control.default, meta.import keyword.other, keyword.other.directive.using.cs, keyword.other.special-method.elixir | #f35e6d | — |
| keyword, keyword.control, keyword.other.important | #f35e6d | — |
| keyword.other.DML | #f35e6d | — |
| keyword.operator.logical, storage.type.function, keyword.operator.bitwise, keyword.operator.ternary, keyword.operator.comparison, keyword.operator.relational, keyword.operator.or.regexp, keyword.operator.other | #f35e6d | — |
| entity.name.tag | #b493f0 | — |
| entity.name.tag support.class.component, meta.tag.custom entity.name.tag, meta.tag.other.unrecognized.html.derivative entity.name.tag, entity.name.tag.js, meta.tag | #bebebe | — |
| punctuation.definition.tag | #5c5757 | — |
| variable, support.variable, string constant.other.placeholder, variable.parameter.handlebars, variable.other.object, meta.fstring, meta.function-call meta.function-call.arguments | #ebebeb | — |
| support.other.variable | #ebebeb | — |
| meta.array.literal variable | #ebebeb | — |
| meta.object-literal.key, entity.name.type.hcl, string.alias.graphql, string.unquoted.graphql, string.unquoted.alias.graphql, meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js, meta.field.declaration.ts variable.object.property, meta.block entity.name.label | #e6dba7 | — |
| variable.other.property, support.variable.property, support.variable.property.dom, meta.function-call variable.other.object.property | #97c4eb | — |
| variable.other.object.property | #97c4eb | — |
| meta.class-method.js entity.name.function.js, entity.name.method.js, variable.function.constructor, keyword.other.special-method, storage.type.cs | #f35e6d | — |
| entity.name.function, entity.name.function-call, variable.other.enummember, meta.function-call, meta.function-call entity.name.function, variable.function, meta.definition.method entity.name.function, meta.object-literal entity.name.function | #b493f0 | — |
| variable.parameter.function.language.special, variable.parameter, meta.function.parameters punctuation.definition.variable, meta.function.parameter variable, variable.other.readwrite.js, variable.other.readwrite.elixir | #e6e6e6 | — |
| keyword.other.type.php, storage.type.php, constant.character, constant.escape, keyword.other.unit | #b493f0 | — |
| meta.definition.variable variable.other.constant, meta.definition.variable variable.other.readwrite, variable.declaration.hcl variable.other.readwrite.hcl, meta.mapping.key.hcl variable.other.readwrite.hcl, variable.other.declaration | #e6e6e6 | — |
| entity.other.inherited-class | #e6e6e6 | |
| support.class, support.type, support.other.namespace.php, support.type.sys-types, support.variable.dom, support.constant.math, support.type.object.module, support.constant.json, entity.name.namespace, meta.import.qualifier, variable.other.constant.object, support.orther.namespace.use.php, meta.use.php | #97c4eb | — |
| support.type.property-name.json | #bb9af7 | — |
| entity.name | #e6e6e6 | — |
| support.function | #e6dba7 | — |
| variable.language.super | #bb9af7 | — |
| 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, support.type.property-name.css, support.type.vendored.property-name, support.type.map.key | #e6e6e6 | — |
| entity.other.attribute-name.class, meta.at-rule.mixin.scss entity.name.function.scss | #e6dba7 | — |
| support.constant.font-name, meta.definition.variable | #b493f0 | — |
| entity.other.attribute-name.id | #f35e6d | — |
| entity.name.tag.css | #b493f0 | — |
| entity.other.attribute-name.pseudo-class punctuation.definition.entity, entity.other.attribute-name.pseudo-element punctuation.definition.entity, entity.other.attribute-name.class punctuation.definition.entity, entity.name.tag.reference | #e6e6e6 | — |
| meta.property-list | #5c5757 | — |
| support.constant.property-value | #97c4eb | — |
| source.sass keyword.control | #f35e6d | — |
| entity.other.attribute-name.pseudo-class, entity.other.attribute-name.pseudo-element, entity.other.attribute-name.placeholder, meta.property-list meta.property-value | #97c4eb | — |
| meta.property-list meta.at-rule.if, meta.at-rule.return variable.parameter.url, meta.property-list meta.at-rule.else | #e6dba7 | — |
| entity.other.attribute-name.parent-selector-suffix punctuation.definition.entity.css | #97c4eb | — |
| keyword.other.unit | #f35e6d | — |
| meta.property-list meta.property-list | #5c5757 | — |
| meta.at-rule.mixin keyword.control.at-rule.mixin, meta.at-rule.include entity.name.function.scss, meta.at-rule.include keyword.control.at-rule.include | #f35e6d | — |
| keyword.control.at-rule.include punctuation.definition.keyword, keyword.control.at-rule.mixin punctuation.definition.keyword, meta.at-rule.include keyword.control.at-rule.include, keyword.control.at-rule.extend punctuation.definition.keyword, meta.at-rule.extend keyword.control.at-rule.extend, entity.other.attribute-name.placeholder.css punctuation.definition.entity.css, meta.at-rule.media keyword.control.at-rule.media, meta.at-rule.mixin keyword.control.at-rule.mixin, meta.at-rule.function keyword.control.at-rule.function, keyword.control punctuation.definition.keyword | #f35e6d | — |
| meta.property-list meta.at-rule.include | #e6e6e6 | — |
| entity.name.type.module, entity.name.module.js, variable.import.parameter.js, variable.other.class.js | #e6e6e6 | — |
| variable.language | #e6e6e6 | — |
| variable.other punctuation.definition.variable | #8b888f | — |
| source.js constant.other.object.key.js string.unquoted.label.js, variable.language.this punctuation.definition.variable, keyword.other.this | #e6e6e6 | — |
| entity.other.attribute-name, text.html.basic entity.other.attribute-name.html, text.html.basic entity.other.attribute-name | #b493f0 | — |
| text.html constant.character.entity | #f35e6d | — |
| markup.inserted | #97c4eb | — |
| markup.deleted | #f0758a | — |
| markup.changed | #6183bb | — |
| markup.inserted | #97c4eb | — |
| markup.deleted | #f0758a | — |
| markup.changed | #97c4eb | — |
| string.regexp | #f35e6d | — |
| punctuation.definition.group | #f35e6d | — |
| constant.other.character-class.regexp | #b493f0 | — |
| constant.other.character-class.set.regexp, punctuation.definition.character-class.regexp | #97c4eb | — |
| keyword.operator.quantifier.regexp | #b493f0 | — |
| constant.character.escape.backslash | #8b888f | — |
| constant.character.escape | #b493f0 | — |
| tag.decorator.js entity.name.tag.js, tag.decorator.js punctuation.definition.tag.js | #8b888f | — |
| meta.block, meta.brace, punctuation.definition.block, punctuation.definition.use, punctuation.definition.class, punctuation.definition.begin.bracket, punctuation.definition.end.bracket, punctuation.definition.switch-expression.begin.bracket, punctuation.definition.switch-expression.end.bracket, punctuation.definition.section.switch-block.begin.bracket, punctuation.definition.section.switch-block.end.bracket, punctuation.definition.group.shell, punctuation.definition.parameters, punctuation.definition.arguments, punctuation.definition.dictionary, punctuation.definition.array, punctuation.section | #8b888f | — |
| meta.tag JSXNested, meta.jsx.children, text.html, text.log | #e6e6e6 | — |
| meta.embedded.block | #e6e6e6 | — |
| heading.1.markdown entity.name, heading.1.markdown punctuation.definition.heading.markdown | #f35e6d | bold |
| heading.2.markdown entity.name, heading.2.markdown punctuation.definition.heading.markdown | #97c4eb | bold |
| heading.3.markdown entity.name, heading.3.markdown punctuation.definition.heading.markdown | #e6dba7 | bold |
| heading.4.markdown entity.name, heading.4.markdown punctuation.definition.heading.markdown | #f57a86 | bold |
| heading.5.markdown entity.name, heading.5.markdown punctuation.definition.heading.markdown | #ade8ea | bold |
| heading.6.markdown entity.name, heading.6.markdown punctuation.definition.heading.markdown | #efe8c7 | bold |
| markup.italic, markup.italic punctuation | #efe8c7 | italic |
| markup.bold, markup.bold punctuation | #97c4eb | bold |
| markup.underline, markup.underline punctuation | — | underline |
| markup.quote punctuation.definition.blockquote.markdown | #f57a86 | — |
| markup.quote | — | italic |
| string.other.link, markup.underline.link, constant.other.reference.link.markdown, string.other.link.description.title.markdown | #97c4eb | — |
| markup.fenced_code.block.markdown, markup.inline.raw.string.markdown, variable.language.fenced.markdown | #97c4eb | — |
| meta.separator | #8b888f | bold |
| markup.table | #C7AEF4 | — |
| token.info-token | #0db9d7 | — |
| token.warn-token | #ffdb69 | — |
| token.error-token | #db4b4b | — |
| token.debug-token | #b267e6 | — |
| source.env | #97c4eb | — |
TypeScript sample highlighted with this variant's colors and tokenColors.
Loading...
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}!`;
}