Dark, please!
Publisher: Nikolay IvanovThemes in package: 1
A pleasant-looking low-contrast dark theme.
A pleasant-looking low-contrast dark theme.
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 |
|---|---|---|
| #5d8955 | — | |
| #4b603e | — | |
| #d7c3aa | — | |
| #cbbeab | — | |
| support.type.property-name | #a37753 | — |
| variable.language.arguments | #cb5b00 | — |
| support.function.misc | #b76753 | — |
| constant.numeric, meta.attribute.minlength.html, meta.attribute.maxlength.html | #6ba29d | — |
| constant.character.escape, entity.name.function.label, keyword.control.directives, labelline entity.name.function.label, markup.underline.link.image.markdown, markup.underline.link.markdown, meta.attribute.src.entity.other.attribute-name.html, meta.tag.object.img.void.html meta.attribute.src.html string.quoted.doublhtml, meta.function.url, string.quoted.double.xml | #6c8ba5 | — |
| keyword.control.anchor.regexp, meta.array-binding-pattern-variable, punctuation.definition.binding-pattern, punctuation.definition.character-class.regexp, punctuation.definition.variable.percent, punctuation.section.scope.begin.ruby, punctuation.section.scope.end.ruby, punctuation.definition.dictionary.begin, punctuation.definition.dictionary.end, source.ignore, variable.other.object.property, meta.class variable.other.property, variable.other.property, meta.selector.pseudo-element | #778aa1 | — |
| entity.name.type, variable.other.readwrite.alias, meta.attribute.href.html entity.other.attribute-name.html, meta.attribute.href.html string.quoted.double.html | #7f8bbd | — |
| meta.path.dirname.search, meta.path.basename.search | #50667c | — |
| punctuation.separator.key-value.html, punctuation.definition.heading.markdown, meta.resultLinePrefix.lineNumber.search | #615c56 | — |
| props.react, variable.language.self, variable.language.special.self, fenced_code.block.language.markdown, constant.language.symbol.hashkey.ruby, punctuation.definition.string.begin.json, punctuation.definition.string.end.json, punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json | #666262 | — |
| entity.other.attribute-name, markup.quote.markdown, meta.arrow, meta.brace.round, meta.class meta.method.declaration meta.definition.method entity.name.function, meta.indexer.declaration meta.brace.square, meta.object-literal.key, meta.property-value, meta.tag.no-content.xml entity.other.attribute-name.localname.xml, meta.tag.xml entity.other.attribute-name.localname.xml, property-list.end.bracket.curly, property.declaration, punctuation.bracket, punctuation.definition.arguments, punctuation.definition.block, punctuation.definition.constant.markdown, punctuation.definition.entity.css, punctuation.definition.logical-expression, punctuation.definition.metadata.markdown, punctuation.definition.parameters.begin, punctuation.definition.parameters.end, punctuation.definition.parameters.ruby, punctuation.section.block.begin, punctuation.section.block.end, punctuation.section.braces.begin.powershell, punctuation.section.braces.end.powershell, punctuation.section.function.begin.bracket.round, punctuation.section.function.definition, punctuation.section.function.end.bracket.round, punctuation.section.function.ruby, punctuation.section.group.begin.powershell, punctuation.section.group.end.powershell, punctuation.section.property-list.begin.bracket.curly, punctuation.section.property-list.end.bracket.curly, punctuation.separator.dictionary.pair.json, source.css.scss meta.property-list.scss entity.name.tag, source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss entity.name.tag, source.css.scss meta.property-list.scss meta.property-list.scss, storage.type.function.arrow, support.type.property-name.css, support.type.property-name.json, support.type.property-name | #878283 | — |
| keyword.control.module, meta.import string.quoted.single, keyword.control.import string.parameter.import, string.parameter.directives keyword.control.directives, meta.require.ruby keyword.other.special-method.ruby | #878283 | italic |
| constant.other.reference.link.markdown, variable.object.property, variable.parameter meta.interface meta.indexer.declaration | #9c9d9d | — |
| #5d8955 | — | |
| className.value.react, meta.attribute.class.html string.quoted.double.html, css.selector.jquery | #4aa075 | — |
| meta.export.default meta.class meta.method.declaration, meta.class meta.method.declaration, class.declaration, entity.name.class, entity.name.type.class, entity.other.attribute-name.class, entity.other.inherited-class, support.class, variable.language.super, meta.property-list.scss meta.property-name.scss support.type.property-name.css, storage.type.property | #5e8d41 | — |
| source.ts storage.type.interface, source.ts storage.type.type, support.function.misc, storage.type.enum, support.class.component, support.function.builtin, meta.scriptblock.powershell | #577716 | — |
| #4b603e | — | |
| storage.modifier.async, string.other.link.title.markdown, meta.method.declaration meta.definition.method | #abb01eda | — |
| meta.array.literal, meta.objectliteral punctuation.definition.block, punctuation.definition.array.begin, punctuation.definition.array.end, punctuation.section.array.begin.ruby, punctuation.section.array.end.ruby, punctuation.definition.binding-pattern.object, markup.inline.raw.string.markdown, markup.fenced_code.block.markdown, punctuation.definition.markdown, markup.fenced_code.block.markdown, entity.name.tag.localname.xml | #839774 | — |
| constant.language, constant.language.boolean.true, constant.language.json, meta.attribute.allowfullscreen.html entity.other.attribute-name.html, meta.attribute.async.html entity.other.attribute-name.html, meta.attribute.autofocus.html entity.other.attribute-name.html, meta.attribute.autoplay.html entity.other.attribute-name.html, meta.attribute.checked.html entity.other.attribute-name.html, meta.attribute.controls.html entity.other.attribute-name.html, meta.attribute.default.html entity.other.attribute-name.html, meta.attribute.defer.html entity.other.attribute-name.html, meta.attribute.disabled.html entity.other.attribute-name.html, meta.attribute.formnovalidate.html entity.other.attribute-name.html, meta.attribute.ismap.html entity.other.attribute-name.html, meta.attribute.itemscope.html entity.other.attribute-name.html, meta.attribute.loop.html entity.other.attribute-name.html, meta.attribute.multiple.html entity.other.attribute-name.html, meta.attribute.muted.html entity.other.attribute-name.html, meta.attribute.nomodule.html entity.other.attribute-name.html, meta.attribute.novalidate.html entity.other.attribute-name.html, meta.attribute.open.html entity.other.attribute-name.html, meta.attribute.playsinline.html entity.other.attribute-name.html, meta.attribute.readonly.html entity.other.attribute-name.html, meta.attribute.required.html entity.other.attribute-name.html, meta.attribute.reversed.html entity.other.attribute-name.html, meta.attribute.selected.html entity.other.attribute-name.html, meta.attribute.truespeed.html entity.other.attribute-name.html, support.constant.property-value | #5f67d1 | — |
| keyword.control.at-rule.font-face, keyword.control.at-rule.import, keyword.control.at-rule.media, keyword.control.at-rule.include, keyword.control.at-rule.mixin, entity.name.tag.custom, meta.template.expression, punctuation.definition.string.template.begin, punctuation.definition.string.template.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end, punctuation.definition.template-expression, string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end | #7b79c7 | — |
| entity.name.type.alias, entity.name.type.enum, entity.name.type.interface, entity.other.attribute-name.pseudo-class, entity.other.attribute-name.pseudo-class, meta.directive.vue, meta.directive.vue, entity.other.attribute-name.pseudo-element | #aa9f6e | — |
| derivative, punctuation.definition.bold.markdown, punctuation.definition.italic.markdown, punctuation.definition.list.begin.markdown, punctuation.definition.strikethrough.markdown, string.other.link.description.markdown, string.parameter.directives, string.parameter.import, string.quoted.double.interpolated.ruby, string.quoted.single.ruby | #cebda5 | — |
| text.html.derivative, meta.paragraph.markdown, punctuation.accessor, punctuation.definition.string.begin, punctuation.definition.string.end, punctuation.separator.array.json, punctuation.separator.comma, punctuation.separator.dictionary.key-value.json, punctuation.separator.key-value, punctuation.support.type.property-name.begin, punctuation.support.type.property-name.end, punctuation.terminator.rule, string.quoted.double, string.unquoted.argument.shell, string.quoted.single, string.template, string.regexp, text.searchResult, string.unquoted.cdata.xml, source.ruby, punctuation.separator.variable.ruby, string.unquoted.plain.out.yaml | #aa9c92 | — |
| comment.block.documentation, comment.line.double-slash, comment.block, comment.line, variable.language.this, punctuation.definition.block.tag.jsdoc, punctuation.definition.comment, storage.type.class.jsdoc, comment.unbuffered.block.pug, text.searchResult meta.resultBlock.search meta.resultLine.search | #666262 | italic |
| #d7c3aa | — | |
| #cbbeab | — | |
| support.constant.property-value.css, entity.name.section, markup.heading, meta.definition.variable, support.constant.media, support.type.property-name.media, variable.language.arguments, variable.other.assignment.shell, variable.other.constant.object, variable.other.object, variable.other.readwrite, variable.other, variable, entity.name.tag.namespace.xml, entity.other.attribute-name.localname.xml | #c49b6d | — |
| constant.other.option, entity.name.tag.yaml, entity.name.tag.pug, meta.attribute, meta.flow-mapping.yaml, meta.property-name, meta.tag.attributes, support.type.primitive, support.type.property-name, meta.tag.inline.span.start.html entity.name.tag.html, meta.tag.inline.span.end.html entity.name.tag.html, meta.tag.inline.a entity.name.tag.html, entity.other.attribute-name.namespace.xml, string.quoted.double.interpolated.ruby meta.embedded.line.ruby source.ruby, punctuation.section.embedded.begin, punctuation.section.embedded.end | #a37753 | — |
| meta.tag.xml, meta.tag.no-content.xml, punctuation.definition.tag.xml, punctuation.definition.string.begin.xml, punctuation.definition.string.end.xml, keyword.operator.assignment, keyword.operator.assignment.augmented.ruby, punctuation.terminator.statement, source.ts meta.namespace.declaration storage.type.namespace, source.ts storage.modifier, meta.return.type, meta.return.type support.type.primitive, meta.type.function.return support.type.primitive | #7a6359 | — |
| entity.name.type.instance.jsdoc, meta.class storage.modifier, keyword.control.as, keyword.control.default, keyword.control.export, storage.type.class, keyword.control.from, keyword.control.import, meta.function.expression storage.type.function, meta.function storage.type.function, meta.var.expr storage.type, keyword.class, support.type.object.module, variable.other.jsdoc, keyword.control.ruby, keyword.control.def.ruby, keyword.control.class.ruby | #7a6359 | italic |
| source entity.name.function, meta.definition.variable variable.other.constant entity.name.function, entity.name.function.powershell, entity.name.function.ruby, entity.name.function.scss, entity.name.function.shell, entity.name.section.markdown, entity.name.tag.reference.scss, functionline entity.name.function, keyword.keys, keyword.operator.arithmetic, keyword.operator.bitwise.shift, keyword.operator.comparison, keyword.operator.decrement, keyword.operator.expression.in, keyword.operator.expression.of, keyword.operator.increment, keyword.operator.logical.powershell, keyword.operator.logical, keyword.operator.new, keyword.operator.or.regexp, keyword.operator.relational, keyword.operator.repository, keyword.operator.rest, keyword.operator.spread, keyword.operator.ternary, keyword.operator.type, keyword.type, meta.array-binding-pattern-variable meta.definition.variable variable.other.constant, meta.attribute.id string.quoted.double, meta.definition.function, meta.field.declaration.tsx meta.definition.property.tsx entity.name.function.tsx, meta.function meta.object.member variable.other.readwrite, meta.image.inline.markdown, meta.resultLinePrefix.matchLinePrefix.search, punctuation.separator.namespace.xml, punctuation.separator.statement.and, source.ts meta.namespace.declaration storage.modifier, source.ts meta.var.expr storage.modifier, support.function function declaration, variable.language.arguments | #cb5b00 | — |
| punctuation.definition.variable.shell variable.other.normal.shell, hotkeyline entity.name.function.label, source.ruby meta.function-call.ruby, meta.function.parameter, meta.function.parameters, meta.parameters, parameter.declaration, entity.other.attribute-name.id, entity.other.attribute-name.id.css punctuation.definition.entity.css, variable.local, entity.other.attribute-name.parent-selector-suffix punctuation.definition.entity.css, meta.tag.structure.p entity.name.tag.html, meta.tag.object.img entity.name.tag.html | #c4855b | — |
| meta.function-call entity.name.function, entity.name.function.member, entity.name.function.pug, entity.name.tag.css, entity.name.tag.html.css, entity.name.tag.html, entity.name.tag.jsx, entity.name.tag.tsx, markup.fenced_code.block.markdown, meta.at-rule.include.scss entity.name.function.scss, meta.function-call entity.name.function, meta.function-call.ruby entity.name.function.ruby, meta.function-call.ruby, meta.group.simple.subexpression.powershell, meta.object.member meta.function-call entity.name.function, meta.scriptblock.powershell, support.function.calc, support.function.gradient, support.function.misc, support.function.timing-function, support.function.url, support.variable.property | #b76753 | — |
| meta.tag.structure.li entity.name.tag.html, meta.tag.structure.ul entity.name.tag.html | #ae7658 | — |
| keyword.other.debugger | #a01717 | — |
| constant.language.boolean.false, inject.promise, constant.language.nan, constant.language.null, constant.language.undefined, entity.name.type.parameter, keyword.control.trycatch, keyword.control.switch, keyword.control, keyword.control.flow, keyword.control.loop, keyword.operator.expression.delete, keyword.operator.expression.instanceof, keyword.operator.expression.typeof, keyword.operator.optional, keyword.operator.type.annotation, keyword.other.unit, keyword.other, meta.type.tuple, punctuation.accessor.optional, punctuation.definition.typeparameters.begin, punctuation.definition.typeparameters.end, support.class.promise, meta.control.flow.pug text.pug, meta.control.flow.pug.each | #aa4a4e | — |
| keyword.control.conditional, punctuation.definition.tag.begin, punctuation.definition.tag.end, meta.tag.preprocessor.xml | #b4787c | — |
| constant.character.escape | #cebd68 | — |
| variable.parameter, variable.parameter.function, variable.parameter.function-call | #c4855b | italic |
| meta.method.declaration meta.definition.method entity.name.function | #878283 | — |
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}!`;
}