Blockmage Color Theme
Publisher: BlockmageThemes in package: 1
A dark (near-black) color theme with electric blue/cyan accents
A dark (near-black) color theme with electric blue/cyan accents
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, markup.ignored, markup.untracked, punctuation.definition.comment, token.infotoken | #516a88 | — |
| invalid.deprecated, punctuation.accessor, punctuation.definition, punctuation.definition.annotation, punctuation.definition.heading, punctuation.definition.listitem, punctuation.definition.thematicbreak, punctuation.section, punctuation.separator, punctuation.support.type.propertyname.begin, punctuation.support.type.propertyname.end, punctuation.terminator | #8892a0 | — |
| constant.language.importexportall, constant.numeric.linenumber.match, entity.name, entity.name.function, entity.name.function.directive.graphql, entity.name.label, entity.name.section.markdown, entity.name.tag, entity.name.type, entity.name.type.alias, entity.name.type.class, entity.name.type.enum, entity.name.type.interface, entity.name.type.module, entity.other.attributename.id.css, entity.other.pseudoclass, entity.other.pseudoelement, keyword.control.java, keyword.control.loop, keyword.operator.assignment, keyword.operator.ternary, keyword.operator.ternary.js, keyword.operator.ternary.js.jsx, keyword.operator.ternary.ts, keyword.operator.ternary.tsx, keyword.other.unit, markup.heading, markup.quote, markup.raw, markup.raw.inline, markup.warning, meta.arguments.graphql, meta.definition.method, meta.definition.property, meta.enum.graphql, meta.field.declaration, meta.group.braces.curly, meta.interface, meta.method.declaration, meta.object.type, meta.selectionset.graphql, meta.separator.thematicbreak, meta.structure.dictionary.json, meta.structure.dictionary.value.json, meta.table.header.markdown, meta.table.headerseparator.markdown, meta.table.markdown, meta.tag, meta.tag.attributes, meta.type.declaration, meta.type.interface.graphql, meta.type.list.graphql, meta.type.object.graphql, meta.type.parameters, meta.var.expr, meta.variables.graphql, punctuation.decorator, punctuation.definition.blockquote, punctuation.definition.entity, punctuation.definition.string.template.begin, punctuation.definition.string.template.end, punctuation.definition.templateexpression.begin, punctuation.definition.templateexpression.end, source.json, storage.modifier.async, storage.modifier.import, storage.type.generic, string.json, string.template, support.class.component, support.function, support.type.enum.graphql, support.type.graphql, support.type.propertyname.json, support.type.vendorprefix, variable.annotation, variable.function, variable.graphql | #d6f1ff | — |
| constant.language, constant.numeric, keyword.operator.ternary, markup.inline.raw.string, meta.brace.curly.graphql, meta.brace.round, meta.brace.square, punctuation.colon.graphql, punctuation.definition, punctuation.operation.graphql, storage.type.primitive, string, string.other.link.description | #6ee2ff | — |
| constant.character, constant.other, entity.name.filename.findinfiles, keyword.control.flow, markup.list.numbered.bullet, support.constant | #4cbbff | — |
| entity.other.attributename.class.css, entity.other.inheritedclass, markup.error, message.error, storage.type.java, storage.type.object.array.java, token.debugtoken, variable.language, variable.member, variable.parameter | #95cc5e | — |
| entity.name.tag, keyword, keyword.operator.word, markup.changed, markup.info, markup.inserted, markup.underline.link, meta.class.identifier, meta.selectionset.graphql, meta.structure.dictionary.json, meta.tag.custom, source.json, storage.modifier, storage.type, storage.type.function.arrow, storage.type.type, string.json, string.other.link, support.class, support.class.component, support.macro, support.type, support.type.builtin, support.type.builtin.graphql, support.type.customproperty.name, support.type.primitive, support.type.propertyname.json, variable.graphql | #267fb5 | — |
| constant.language.importexportall, keyword.control.as, keyword.control.conditional, keyword.control.default, keyword.control.export, keyword.control.from, keyword.control.import, keyword.control.loop, keyword.control.new, keyword.control.trycatch, keyword.operator, keyword.other.import, storage, variable.language.wildcard | #748aa6 | — |
| constant.character.enum.graphql, constant.numeric.linenumber.findinfiles, entity.name.type, entity.other.attributename, keyword.operator.type.annotation, keyword.other.important, match, meta.arguments.graphql, meta.enum.graphql, meta.field.declaration, meta.interface, meta.method.declaration, meta.object.type, meta.objectliteral.key, meta.return.type, meta.selectionset.graphql, meta.structure.array.json, meta.structure.dictionary.json, meta.structure.dictionary.value.json, meta.type.annotation, meta.type.declaration, meta.type.interface.graphql, meta.type.object.graphql, meta.variables.graphql, punctuation.accessor, punctuation.separator.period, source.json, string.json, support.type.propertyname, support.type.propertyname.json, support.variable, token.warntoken, variable.graphql, variable.other.object.property, variable.parameter.graphql | #7a9bc2 | — |
| meta.template.expression, support.variable.property.dom | #d6f1ff | — |
| invalid, markup.deleted, token.errortoken | #ff75b5 | — |
| markup.bold | — | bold |
| assignment.coffee, comment, constant.language, entity.name.tag.custom, entity.name.tag.doctype, entity.other.attributename, entity.other.attributename.html, entity.other.attributename.js, ext.html.basic, italic, keyword.control, keyword.control.as, keyword.control.default, keyword.control.export, keyword.control.flow, keyword.control.flow.js, keyword.control.from, keyword.control.import, keyword.control.shell, keyword.control.switch, keyword.operator.expression, keyword.operator.type.annotation, keyword.other.import, markup.italic, markup.italic.markdown, markup.quote.markdown, meta.class.identifier, meta.tag.sgml.doctype, meta.tag.sgml.doctype.html, modifier, punctuation.definition.comment, quote, source.js, source.js.jsx, source.shell, storage.modifier, storage.modifier.async, storage.type, storage.type.class, storage.type.type, support.constant, support.function.basicfunctions, support.macro, support.type.property.css, this, type, type.function, variable.assignment.coffee, variable.language, variable.language.this.php | — | italic |
| markup.bold, markup.italic | — | bold italic |
| entity.other.attributename.class, entity.other.attributename.id, keyword.control.anchor.regexp, keyword.operator, keyword.operator.assignment.go, keyword.operator.class.php, keyword.operator.flowtype.other.js, keyword.operator.flowtype.other.js.jsx, keyword.operator.logical, keyword.operator.other.elixir, keyword.operator.ternary.js, keyword.operator.ternary.js.jsx, keyword.operator.ternary.ts, keyword.operator.ternary.tsx, keyword.operator.type, keyword.operator.type.annotation, keyword.other.substitution, meta.enum.graphql, meta.function.parameter.typehinted.php, meta.group.braces.curly.js, meta.group.braces.curly.js.jsx, meta.group.regexp, meta.interface.ts, meta.interface.tsx, meta.type.declaration.ts, meta.type.declaration.tsx, meta.type.interface.graphql, meta.type.list.graphql, meta.type.object.graphql, meta.variables.graphql, punctuation.definition.entity, punctuation.definition.templateexpression.begin, punctuation.definition.templateexpression.end, source.js, source.js.jsx, source.php, source.shell, source.ts, source.tsx, storage.modifier.import.java, storage.type.cs, storage.type.generic.java, storage.type.java, storage.type.object.array.java, storage.type.object.java, storage.type.php, storage.type.primitive.java, storage.type.type.cs, string.regexp.js, string.regexp.js.jsx, string.regexp.ts, string.regexp.tsx, support.class.component, support.function.basicfunctions.php, support.type.builtin, support.type.enum.graphql, support.type.graphql, support.variable.property.dom, variable.object.property, variable.object.property.ts, variable.object.property.tsx | #d6f1ff | |
| punctuation.definition.string, punctuation.definition.string.end.python, string.quoted.docstring.multi.python | #679cfe | |
| constant.other.caps | #2c98f0 | |
| entity.name.function.decorator, support.function.builtin | #0ecfff | |
| variable.parameter.function.language | #83f3d7 | |
| variable.parameter.class.python | #83c2f3 | |
| keyword.operator.pipe.shell, meta.class.inheritance.python | #0cbeff | |
| storage.type.function, support.type.python, variable.parameter.function-call | #30b8f7 | |
| entity.name.type.class.python | #84cdfd | |
| meta.function-call.generic.python, meta.indexed-name | #84cdfd | |
| string.quoted.single | #a2d3ff | |
| meta.function-call.arguments | #aec6db | |
| meta.function-call, storage.type.class | #4bc9f7 | |
| meta.attribute | #d0e3f4 | |
| support.type.exception.python, variable.language.special.cls.python, variable.language.special.self, variable.parameter.function.language.special.self | #2df0fe | italic |
| meta.fstring.python | #83f3d7 | |
| constant.numeric | #0ecfff | — |
| keyword | #2df0fe | — |
| storage.type | #2df0fe | |
| entity.name.function, variable.other.normal.shell, variable.parameter | #b5e0f4 | |
| entity.name.tag | #2df0fe | |
| constant.character, constant.language, constant.other, keyword.other, meta.structure.dictionary.json string.quoted.double.json, storage | #869bf9 | |
| support.class, support.constant, support.function, support.type | #a3aeff | |
| support.other.variable | — | |
| invalid | #fd4472 | |
| invalid.deprecated | #fd4472 | — |
| meta.structure.dictionary.json, string.json, string.jsonc, string.quoted.double.json | #cccce6 | — |
| markup.deleted | #fd4472 | — |
| invalid.illegal.annotation.python, keyword.operator.assignment.python, keyword.operator.comparison.python, punctuation.separator.annotation.result, punctuation.separator.annotation.result.python | #35bad1 | — |
| constant.other.color, meta.property-value, support.constant.property-value | #8395db | — |
| meta.structure.dictionary.value.json string.quoted.double.json | #83c1db | — |
| meta.property-name support.type.property-name | — | |
| meta.property-value punctuation.separator.key-value | #b9f2ff | — |
| keyword.other.function.use, keyword.other.namespace, keyword.other.new, keyword.other.special-method, keyword.other.unit, keyword.other.use, keyword.other.use-as | #0c8eff | — |
| meta.other.inherited-class support.class.builtin, meta.use support.class.builtin | #2df0fe | |
| variable.other | #d6f1ff | |
| punctuation.definition.heading.markdown | #2df0fe | — |
| markup.raw.inline.markdown | #d6f1ff | — |
| punctuation.definition.bold.markdown, punctuation.definition.italic.markdown | #2df0fe | — |
| punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown | #2df0fe | — |
| punctuation.definition.metadata.markdown | #2df0fe | — |
| markup.underline.link.image.markdown, markup.underline.link.markdown, meta.image.inline.markdown | #2df0fe | |
| markup.bold.markdown, markup.italic.markdown | #2df0fe | — |
| markup.italic.markdown | — | italic |
| markup.bold.markdown | — | bold |
| markup.deleted.git_gutter | #fd4472 | — |
| meta.template.expression | #d6f1ff | — |
| storage.type.string.python | #67b8ff | |
| token.info-token | #9be9fc | — |
| token.warn-token | #dd9e6a | — |
| token.error-token | #fd4472 | — |
| token.debug-token | #e6677e | — |
| storage.modifier.local.shell | #ffdf80 | — |
| entity.name.command.shell | #ffbd80 | — |
| punctuation.definition.string, punctuation.definition.string.end.python, string.quoted.docstring.multi.python | #679cfe | |
| constant.other.caps | #2c98f0 | |
| entity.name.function.decorator, support.function.builtin | #0ecfff | |
| variable.parameter.function.language | #83f3d7 | |
| variable.parameter.class.python | #83c2f3 | |
| keyword.operator.pipe.shell, meta.class.inheritance.python | #0cbeff | |
| storage.type.function, support.type.python, variable.parameter.function-call | #30b8f7 | |
| entity.name.type.class.python | #84cdfd | |
| meta.function-call.generic.python, meta.indexed-name | #84cdfd | |
| string.quoted.single | #a2d3ff | |
| meta.function-call.arguments | #aec6db | |
| meta.function-call, storage.type.class | #4bc9f7 | |
| meta.attribute | #d0e3f4 | |
| support.type.exception.python, variable.language.special.cls.python, variable.language.special.self, variable.parameter.function.language.special.self | #2df0fe | italic |
| meta.fstring.python | #83f3d7 | |
| constant.numeric | #0ecfff | — |
| keyword | #2df0fe | — |
| storage.type | #2df0fe | |
| entity.name.function, variable.other.normal.shell, variable.parameter | #b5e0f4 | |
| entity.name.tag | #2df0fe | |
| constant.character, constant.language, constant.other, keyword.other, meta.structure.dictionary.json string.quoted.double.json, storage | #869bf9 | |
| support.class, support.constant, support.function, support.type | #a3aeff | |
| support.other.variable | — | |
| invalid | #fd4472 | |
| invalid.deprecated | #fd4472 | — |
| meta.structure.dictionary.json, string.json, string.jsonc, string.quoted.double.json | #cccce6 | — |
| markup.deleted | #fd4472 | — |
| invalid.illegal.annotation.python, keyword.operator.assignment.python, keyword.operator.comparison.python, punctuation.separator.annotation.result, punctuation.separator.annotation.result.python | #35bad1 | — |
| constant.other.color, meta.property-value, support.constant.property-value | #8395db | — |
| meta.structure.dictionary.value.json string.quoted.double.json | #83c1db | — |
| meta.property-name support.type.property-name | — | |
| meta.property-value punctuation.separator.key-value | #b9f2ff | — |
| keyword.other.function.use, keyword.other.namespace, keyword.other.new, keyword.other.special-method, keyword.other.unit, keyword.other.use, keyword.other.use-as | #0c8eff | — |
| meta.other.inherited-class support.class.builtin, meta.use support.class.builtin | #2df0fe | |
| variable.other | #d6f1ff | |
| punctuation.definition.heading.markdown | #2df0fe | — |
| markup.raw.inline.markdown | #d6f1ff | — |
| punctuation.definition.bold.markdown, punctuation.definition.italic.markdown | #2df0fe | — |
| punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown | #2df0fe | — |
| punctuation.definition.metadata.markdown | #2df0fe | — |
| markup.underline.link.image.markdown, markup.underline.link.markdown, meta.image.inline.markdown | #2df0fe | |
| markup.bold.markdown, markup.italic.markdown | #2df0fe | — |
| markup.italic.markdown | — | italic |
| markup.bold.markdown | — | bold |
| markup.deleted.git_gutter | #fd4472 | — |
| meta.template.expression | #d6f1ff | — |
| token.info-token | #9be9fc | — |
| token.warn-token | #dd9e6a | — |
| token.error-token | #fd4472 | — |
| token.debug-token | #e6677e | — |
| storage.modifier.local.shell | #ffdf80 | — |
| entity.name.command.shell | #ffbd80 | — |
| comment | — | |
| entity.name.type.type.python | #30B8F7 | |
| storage.type.type.python | #267FB5 | italic |
| keyword.operator.logical.python | #30B8F7 | italic |
| meta.item-access.arguments.python | #A2D3FF | — |
| entity.name.tag.yaml | #BFDCF5 | — |
| support.type.property-name | #BFDCF5 | — |
| string.quoted.double.go | #a4c9e9 | — |
| string.unquoted.plain.out.yaml, constant.language | #30B8F7 | — |
| string.quoted.double | #6fdbfee1 | — |
| punctuation.definition.comment | — | |
| meta.shebang.shell | — | italic |
| variable.language | #6fffd9ef | italic |
| meta.indexed-name, storage.modifier | #29bff2ef | |
| variable.other.go | #6fd9ffef | |
| entity.name.type | #79d4f8 | |
| entity.name.type.class | #6ffdffef | bold |
| support.type.primitive | #6fffd9ef | |
| entity.name.tag, storage.type.class | #bbeafd | |
| storage.type.class | #6fdbffef | italic |
| variable.object.property | #cdeffaef | |
| support.function | #999cf4 |
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}!`;
}