🧬 Retro Synth Dark 🧬
Publisher: Bucked UnicornThemes in package: 6
⚡ Dark Retro Theme Suite - 5 Scientifically-Designed Synthwave Variants! 🎮
⚡ Dark Retro Theme Suite - 5 Scientifically-Designed Synthwave Variants! 🎮
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 |
|---|---|---|
| — | #e0e6ff | — |
| comment, punctuation.definition.comment | #8892b0 | italic |
| string, string.quoted.single, string.quoted.double, string.quoted.triple, string.quoted.docstring | #00ff88 | — |
| constant.character, constant.character.escape, constant.character.escape.backslash | #ff6b35 | bold |
| string.template, string.template.js, string.template.ts, string.template.jsx, string.template.tsx | #ccff00 | — |
| meta.template.expression, meta.embedded.expression, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end | #ff0080 | bold |
| constant.numeric, constant.numeric.integer, constant.numeric.float, constant.numeric.hex, constant.numeric.octal, constant.numeric.binary | #d580ff | — |
| constant.language, constant.language.boolean, constant.language.null, constant.language.undefined, constant.language.nan | #40e0ff | bold |
| constant.other, variable.other.constant | #d580ff | italic |
| variable, variable.other.readwrite, variable.other.object | #e0e6ff | — |
| variable.parameter, variable.parameter.function | #ffd700 | italic |
| keyword, keyword.control, keyword.control.flow, keyword.control.conditional, keyword.control.loop, keyword.control.return, keyword.control.import, keyword.control.export, keyword.control.from, keyword.control.as | #ff0080 | bold |
| keyword.operator, keyword.operator.logical, keyword.operator.comparison, keyword.operator.assignment, keyword.operator.arithmetic, keyword.operator.bitwise, keyword.operator.ternary | #ff6b35 | bold |
| storage, storage.type, storage.type.class, storage.type.function, storage.type.var, storage.type.let, storage.type.const, storage.modifier, storage.modifier.async, storage.modifier.static | #ff0080 | bold |
| storage.modifier.public, storage.modifier.private, storage.modifier.protected | #ff0080 | italic |
| entity.name.type, entity.name.type.class, entity.name.type.interface, entity.name.type.enum, entity.name.type.struct, support.type, support.type.builtin, support.type.primitive | #d580ff | italic |
| entity.name.class, entity.name.type.class, support.class | #00ffff | bold |
| entity.other.inherited-class | #ff0099 | italic |
| entity.name.function, entity.name.function.method | #f222ff | — |
| meta.function-call.generic, variable.function | #f222ff | — |
| support.function, support.function.builtin, support.function.magic | #ff0099 | italic |
| entity.name.tag, entity.name.tag.html, entity.name.tag.xml | #ff0080 | bold |
| entity.other.attribute-name, entity.other.attribute-name.html, entity.other.attribute-name.xml | #ff0080 | — |
| support.constant | #d580ff | italic |
| invalid, invalid.illegal | #ff073a | bold |
| invalid.deprecated | #ff6b35 | strikethrough |
| punctuation.separator.comma, punctuation.terminator.statement, punctuation.section.brackets, punctuation.section.braces, punctuation.section.parens, punctuation.accessor | #8892b0 | — |
| meta.preprocessor, keyword.control.directive, keyword.control.directive.include, keyword.control.directive.define, keyword.control.directive.pragma | #ff0080 | bold |
| entity.name.function.decorator, punctuation.definition.decorator, storage.type.annotation, meta.annotation | #ffd700 | italic |
| entity.name.namespace, entity.name.module, support.module | #d580ff | italic |
| entity.name.label | #ffd700 | bold |
| string.regexp, constant.character.escape.regex, string.regexp.group, string.regexp.character-class | #ff0080 | — |
| string.other.link, markup.underline.link | #ff0080 | underline |
| keyword.control.import.python, keyword.control.flow.python, keyword.operator.logical.python, keyword.control.exception.python | #ff0080 | bold |
| support.function.magic.python, variable.language.special.self.python, variable.language.special.cls.python | #ff0080 | italic |
| support.function.builtin.python, support.type.python | #ff0099 | — |
| keyword.control.export.js, keyword.control.export.ts, keyword.control.import.js, keyword.control.import.ts, keyword.control.from.js, keyword.control.from.ts, keyword.control.as.js, keyword.control.as.ts, keyword.control.default.js, keyword.control.default.ts | #ff0080 | bold |
| support.type.primitive.ts, entity.name.type.ts, entity.name.type.interface.ts, entity.name.type.enum.ts, keyword.operator.type.ts, entity.name.type.type-alias.ts, support.type.builtin.ts | #f222ff | bold |
| entity.name.tag.jsx, entity.name.tag.tsx, support.class.component.jsx, support.class.component.tsx | #ff0080 | bold |
| entity.other.attribute-name.jsx, entity.other.attribute-name.tsx | #ff0080 | — |
| meta.object-literal.key, meta.object-literal.key.js, meta.object-literal.key.ts, support.type.property-name.json, support.type.property-name | #ffd318 | — |
| meta.template.expression, meta.template.expression.js, meta.template.expression.ts, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end | #00ffff | bold |
| meta.object.binding-pattern-variable, meta.array.binding-pattern-variable, variable.other.destructuring | #f222ff | — |
| support.function.hook.react, entity.name.function.hook, variable.other.react.hook | #ff0080 | bold |
| support.class.component.react, entity.name.type.component.react, variable.other.component.react | #00ffff | bold |
| entity.other.attribute-name.vue, entity.other.attribute-name.directive.vue, punctuation.separator.key-value.vue | #00ff88 | italic |
| entity.name.tag.vue, support.class.component.vue | #00ffff | bold |
| entity.other.attribute-name.svelte, keyword.control.svelte, punctuation.definition.block.svelte | #ff0080 | bold |
| keyword.package.go, keyword.import.go, keyword.function.go, keyword.var.go, keyword.const.go, keyword.type.go, keyword.struct.go, keyword.interface.go, keyword.map.go, keyword.chan.go, keyword.go.go, keyword.defer.go, keyword.select.go | #ff0080 | bold |
| entity.name.type.go, support.type.builtin.go, storage.type.go | #ff0080 | — |
| keyword.control.rust, storage.type.rust, storage.modifier.rust, keyword.other.rust | #ff0080 | bold |
| entity.name.function.macro.rust, meta.macro.rust | #ffd700 | bold |
| storage.modifier.lifetime.rust, entity.name.type.lifetime.rust | #d580ff | italic |
| keyword.control.directive.include.c, keyword.control.directive.include.cpp, keyword.control.directive.define.c, keyword.control.directive.define.cpp, keyword.control.directive.pragma.c, keyword.control.directive.pragma.cpp | #ff0080 | bold |
| storage.type.c, storage.type.cpp, storage.modifier.c, storage.modifier.cpp | #ff0080 | — |
| keyword.control.java, storage.modifier.java, storage.type.java | #ff0080 | bold |
| storage.type.annotation.java, punctuation.definition.annotation.java | #ffd700 | italic |
| keyword.control.cs, storage.modifier.cs, storage.type.cs | #ff0080 | bold |
| storage.type.attribute.cs, punctuation.definition.attribute.cs | #ffd700 | italic |
| keyword.control.php, storage.modifier.php, storage.type.php | #ff0080 | bold |
| variable.other.php, punctuation.definition.variable.php | #d580ff | — |
| keyword.control.ruby, storage.modifier.ruby, storage.type.ruby | #ff0080 | bold |
| constant.other.symbol.ruby, punctuation.definition.symbol.ruby | #d580ff | — |
| keyword.control.shell, support.function.builtin.shell, string.quoted.single.shell, string.quoted.double.shell | #00ff88 | — |
| keyword.other.sql, keyword.other.DDL.create.II.sql, keyword.other.DML.sql, keyword.other.alias.sql | #00ffff | bold |
| keyword.other.sql, keyword.control.sql, storage.type.sql, storage.modifier.sql, keyword.other.DDL.sql, keyword.other.DML.sql | #00ffff | bold |
| support.function.sql, support.function.builtin.sql, storage.type.sql, entity.name.function.sql | #f222ff | — |
| string.quoted.single.sql, string.quoted.double.sql, constant.numeric.sql | #00ff88 | — |
| keyword.other.psql, support.function.postgresql, storage.type.postgresql, entity.name.type.postgresql | #ff0080 | bold |
| keyword.other.mysql, support.function.mysql, storage.type.mysql, entity.name.type.mysql | #ff0080 | bold |
| entity.name.tag.css, entity.other.attribute-name.class.css, entity.other.attribute-name.id.css, entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-element.css | #ff0080 | — |
| support.type.property-name.css, support.type.vendored.property-name.css | #ff0080 | — |
| support.constant.property-value.css, constant.numeric.css, keyword.other.unit.css | #00ff88 | — |
| support.function.css | #f222ff | — |
| support.type.custom-property.css, variable.other.custom-property.css, punctuation.definition.custom-property.css | #d580ff | italic |
| support.type.property-name.grid.css, support.type.property-name.flex.css, support.constant.property-value.grid.css, support.constant.property-value.flex.css | #00ffff | bold |
| entity.name.tag.html, entity.name.tag.structure.any.html, entity.name.tag.inline.any.html | #ff0080 | bold |
| entity.other.attribute-name.html | #ff0080 | — |
| string.quoted.double.html, string.quoted.single.html | #00ff88 | — |
| support.type.property-name.json, string.quoted.double.json support.type.property-name.json | #ff0080 | — |
| meta.structure.dictionary.json, string.quoted.double.json | #00ff88 | — |
| entity.name.tag.yaml | #ff0080 | — |
| string.unquoted.yaml, string.quoted.single.yaml, string.quoted.double.yaml | #00ff88 | — |
| heading.1.markdown | #ff0080 | bold |
| heading.2.markdown | #ff0080 | bold |
| heading.3.markdown | #f222ff | bold |
| heading.4.markdown, heading.5.markdown, heading.6.markdown | #d580ff | bold |
| markup.bold.markdown | #ff0080 | bold |
| markup.italic.markdown | #ff0080 | italic |
| markup.inline.raw.string.markdown | #ccff00 | — |
| markup.fenced_code.block.markdown | #e0e6ff | — |
| meta.link.inline.markdown, markup.underline.link.markdown | #ff0080 | underline |
| string.other.link.title.markdown | #00ff88 | — |
| markup.quote.markdown | #8892b0 | italic |
| punctuation.definition.list.begin.markdown | #ff6b35 | — |
| markup.strikethrough.markdown | #7788aa | strikethrough |
| punctuation.definition.heading.markdown, punctuation.definition.fenced.markdown, punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.quote.begin.markdown, meta.separator.markdown | #666699 | — |
| meta.diff, meta.diff.header | #d580ff | — |
| markup.deleted | #ff073a | — |
| markup.inserted | #00ff88 | — |
| markup.changed | #ffd700 | — |
| support.type.python, support.type.typing.python, support.type.generic.python, support.type.builtin.python, storage.type.builtin.python, meta.function-call.generic.python, meta.generic.python, meta.import.python meta.generic.python, meta.import.python variable.other.python | #f222ff | — |
| meta.type.parameters.ts, meta.type.parameters.tsx | #743ad5 | — |
| entity.name.type.go, storage.type.go, support.type.builtin.go, keyword.type.go | #f222ff | bold |
| entity.name.import.go, entity.name.package.go | #b67df9 | — |
| entity.name.type.rust, storage.type.rust, support.type.primitive.rust, entity.name.type.enum.rust, entity.name.type.struct.rust, entity.name.type.trait.rust | #f222ff | bold |
| storage.type.built-in.c, storage.type.built-in.cpp, entity.name.type.c, entity.name.type.cpp | #f222ff | — |
| storage.type.java, storage.type.primitive.java, entity.name.type.class.java, entity.name.type.interface.java | #f222ff | bold |
| storage.type.cs, entity.name.type.class.cs, entity.name.type.interface.cs, keyword.type.cs | #f222ff | bold |
| storage.type.php, keyword.type.php, support.type.builtin.php | #f222ff | — |
| entity.name.type.class.ruby, entity.name.type.module.ruby, support.class.builtin.ruby | #f222ff | bold |
| support.type.swift, entity.name.type.swift, storage.type.swift | #f222ff | bold |
| storage.type.kotlin, entity.name.type.kotlin | #f222ff | bold |
| storage.type.dart, entity.name.type.dart, keyword.control.dart, storage.modifier.dart | #f222ff | — |
| keyword.control.dart, keyword.other.dart | #00ffff | bold |
| keyword.operator.optional.swift, keyword.operator.force-unwrap.swift | #ff6b35 | bold |
| variable.parameter.function.js, variable.parameter.function.ts, variable.parameter.function.python, variable.parameter.function.go | #ffd318 | italic |
| entity.name.class.python, entity.name.class.js, entity.name.class.ts, entity.name.class.go, entity.name.class.rust, entity.name.class.java, entity.name.class.cs | #00ffff | bold |
| entity.name.namespace, entity.name.module, entity.name.package | #b67df9 | bold |
| variable.other.enummember, constant.other.enum | #ffd318 | bold |
| variable.other.constant.python, variable.other.constant.js, variable.other.constant.ts, variable.other.constant.go | #ffd318 | bold |
| keyword.operator.arithmetic, keyword.operator.assignment, keyword.operator.comparison, keyword.operator.logical | #00ffff | — |
| keyword.control.conditional, keyword.control.loop, keyword.control.flow, keyword.control.exception | #00ffff | bold |
| variable.language.this, variable.language.self, variable.language.super | #b67df9 | italic |
| support.function.magic.python, variable.function.magic.python | #b67df9 | bold |
| storage.type.annotation.java, storage.type.annotation.cs, meta.annotation.java, meta.annotation.cs | #ffd318 | — |
| meta.generic.java, meta.generic.cs, meta.template.cpp | #b67df9 | — |
| keyword.control.import.python, keyword.control.import.java, keyword.control.import.cs, keyword.control.import.js, keyword.control.import.ts, keyword.control.include.cpp | #00ffff | bold |
| variable.other.property, variable.other.member, entity.name.variable.field | #FFFFFF | — |
| support.function.builtin.python, support.function.builtin.js, support.function.builtin.go, support.function.builtin.rust | #f222ff | italic |
| keyword.control.zig, storage.type.zig, entity.name.type.zig, support.function.builtin.zig | #00ffff | bold |
| storage.type.zig, entity.name.type.zig | #f222ff | — |
| keyword.control.nim, storage.type.nim, entity.name.type.nim | #00ffff | bold |
| storage.type.nim, entity.name.type.nim | #d580ff | — |
| keyword.control.v, storage.type.v, entity.name.type.v | #00ffff | bold |
| storage.type.v, entity.name.type.v | #f222ff | — |
| keyword.control.carbon, storage.type.carbon, entity.name.type.carbon | #00ffff | bold |
| storage.type.carbon, entity.name.type.carbon | #f222ff | — |
| storage.type.glsl, storage.type.hlsl, entity.name.type.glsl, entity.name.type.hlsl, support.function.builtin.glsl, support.function.builtin.hlsl | #f222ff | bold |
| keyword.control.glsl, keyword.control.hlsl, storage.modifier.glsl, storage.modifier.hlsl | #00ffff | bold |
| keyword.control.wast, keyword.control.wat, entity.name.function.wast, entity.name.function.wat, storage.type.wast, storage.type.wat | #ff0080 | bold |
| storage.type.wast, storage.type.wat, entity.name.type.wast, entity.name.type.wat | #d580ff | — |
| entity.name.tag.toml, keyword.key.toml, string.quoted.single.toml, string.quoted.double.toml, support.type.property-name.toml, entity.name.section.toml, punctuation.definition.table.toml, punctuation.definition.array.toml | #00ffff | bold |
| string.quoted.single.toml, string.quoted.double.toml, constant.numeric.toml, constant.language.boolean.toml, string.unquoted.toml | #00ff88 | — |
| constant.numeric.toml, constant.numeric.integer.toml, constant.numeric.float.toml, constant.language.boolean.toml | #d580ff | — |
| entity.name.section.toml, punctuation.definition.table.toml, punctuation.definition.array.toml, punctuation.separator.toml | #f222ff | bold |
| comment.line.number-sign.toml, punctuation.definition.comment.toml | #8892b0 | italic |
| meta.tag.table.toml, meta.tag.table.array.toml, variable.key.toml, meta.table.toml, meta.array-of-tables.toml | #00ffff | bold |
| constant.other.date.toml, constant.other.time.toml, constant.other.datetime.toml | #ff0080 | — |
| source.toml, text.toml, punctuation.definition.string.begin.toml, punctuation.definition.string.end.toml, punctuation.separator.key-value.toml, punctuation.separator.array.toml | #b67df9 | — |
| entity.name.section.group-title.ini, keyword.other.definition.ini, string.quoted.single.ini, string.quoted.double.ini | #00ffff | bold |
| keyword.other.definition.ini, variable.other.ini, string.unquoted.ini | #ff0080 | — |
| comment.line.semicolon.ini, comment.line.number-sign.ini, punctuation.definition.comment.ini | #8892b0 | italic |
| keyword.control.dockerfile, keyword.operator.dockerfile, entity.name.function.dockerfile | #00ffff | bold |
| keyword.other.special-method.dockerfile, support.function.dockerfile | #ff0080 | bold |
| string.quoted.double.dockerfile, string.unquoted.dockerfile | #00ff88 | — |
| variable.other.dockerfile, punctuation.definition.variable.dockerfile | #d580ff | — |
| entity.name.tag.yaml.dockercompose, string.quoted.single.yaml.dockercompose, string.quoted.double.yaml.dockercompose | #ff0080 | — |
| keyword.control.graphql, keyword.operation.graphql, storage.type.graphql | #00ffff | bold |
| entity.name.type.graphql, entity.name.field.graphql, variable.parameter.graphql | #f222ff | — |
| string.quoted.double.graphql, constant.numeric.graphql, constant.language.boolean.graphql | #00ff88 | — |
| keyword.control.sparql, keyword.operator.sparql, storage.type.sparql | #00ffff | bold |
| string.quoted.double.sparql, string.other.link.sparql, constant.other.uri.sparql | #ff0080 | underline |
| keyword.control.assembly, keyword.mnemonic.assembly, keyword.operator.assembly, storage.type.assembly | #00ffff | bold |
| variable.language.register.assembly, storage.register.assembly, entity.name.register.assembly | #ff0080 | bold |
| constant.numeric.assembly, constant.numeric.hex.assembly, constant.other.address.assembly | #d580ff | — |
| entity.name.label.assembly, entity.name.function.assembly, variable.other.assembly | #ffd318 | — |
| comment.line.semicolon.assembly, comment.block.assembly | #8892b0 | italic |
| keyword.mnemonic.x86, variable.language.register.x86 | #f222ff | bold |
| keyword.mnemonic.arm, variable.language.register.arm | #ff6b35 | bold |
| keyword.control.zig, storage.type.zig, entity.name.type.zig, support.function.builtin.zig, keyword.other.zig, storage.modifier.zig | #00ffff | bold |
| storage.type.zig, entity.name.type.zig, support.type.zig, storage.type.primitive.zig | #f222ff | — |
| support.function.builtin.zig, keyword.other.comptime.zig, variable.language.zig | #ff0080 | italic |
| keyword.control.nim, storage.type.nim, entity.name.type.nim, keyword.other.nim, storage.modifier.nim | #00ffff | bold |
| storage.type.nim, entity.name.type.nim, entity.name.function.nim, keyword.other.nim | #d580ff | — |
| meta.pragma.nim, keyword.other.directive.nim | #ffd318 | italic |
| constant.other.symbol.elixir, constant.other.keywords.elixir, entity.name.type.module.elixir, variable.other.constant.elixir | #d580ff | bold |
| entity.name.function.elixir, keyword.operator.pipe.elixir, keyword.operator.other.elixir | #f222ff | — |
| entity.name.function.vcl, keyword.control.vcl, storage.type.vcl | #00ffff | bold |
| variable.other.vcl, variable.language.vcl, string.quoted.vcl | #ffd318 | — |
| entity.name.type.terraform, storage.type.function.terraform, keyword.other.function.terraform | #d580ff | bold |
| variable.other.terraform, punctuation.section.interpolation.terraform, string.interpolated.terraform | #f222ff | — |
| entity.name.tag.yaml, keyword.other.ansible, storage.type.ansible | #00ffff | bold |
| variable.other.jinja2, punctuation.definition.template.jinja2, string.quoted.jinja2 | #ffd318 | — |
| keyword.operation.graphql, entity.name.operation.graphql, storage.type.graphql | #00ffff | bold |
| entity.name.type.graphql, variable.other.field.graphql, entity.name.function.graphql | #f222ff | — |
| entity.name.directive.graphql, variable.parameter.graphql, punctuation.definition.directive.graphql | #ffd318 | — |
| keyword.sparql, keyword.control.sparql, storage.type.sparql | #00ffff | bold |
| variable.other.sparql, string.quoted.uri.sparql, constant.other.uri.sparql | #d580ff | — |
| keyword.instruction.wasm, entity.name.instruction.wasm, storage.type.wasm | #00ffff | bold |
| entity.name.type.wasm, entity.name.module.wasm, storage.modifier.wasm | #d580ff | — |
| entity.name.function.wasm, variable.other.wasm, variable.parameter.wasm | #f222ff | — |
| storage.type.glsl, storage.modifier.glsl, keyword.other.glsl | #d580ff | bold |
| variable.language.glsl, entity.name.function.glsl, support.function.glsl | #f222ff | — |
| keyword.control.directive.glsl, entity.name.tag.glsl, storage.type.attribute.glsl | #ffd318 | italic |
| keyword.other.apache, entity.name.tag.apache, storage.type.apache | #00ffff | bold |
| variable.other.apache, string.quoted.apache, constant.other.apache | #ffd318 | — |
| keyword.other.nginx, entity.name.tag.nginx, storage.type.nginx | #00ffff | bold |
| variable.other.nginx, string.quoted.nginx, entity.name.section.nginx | #f222ff | — |
| entity.name.tag.yaml.kubernetes, storage.type.kubernetes, keyword.other.kubernetes | #d580ff | bold |
| variable.other.kubernetes, entity.name.function.kubernetes, string.quoted.kubernetes | #f222ff | — |
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}!`;
}