Dark Nova
Publisher: Dark NovaThemes in package: 1
Dark theme that prioritizes semantic token support
Dark theme that prioritizes semantic token support
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 |
|---|---|---|
| entity.name.tag, keyword.operator.expression, keyword.operator.new, keyword.operator.wordlike, keyword.type.elm, keyword.type.go, keyword, keyword.operator.logical.python, keyword.operator.in, punctuation.definition.heading, storage.type.class, storage.type.enum, storage.type.function.python, storage.type.function.ts, storage.type.function, storage.type.interface.ts, storage.type.js, storage.type.local.java, storage.type.def.groovy, storage.type.namespace, storage.type.property, storage.type.rust, storage.type.struct, storage.type.ts, storage.type.type, variable.language.self, variable.language.special.self, variable.language.this | #f5da9f | bold |
| keyword.operator.math.rust, keyword.operator.namespace.rust, meta.macro.metavariable.rust, meta.macro.rust, meta.use.rust | #5eead4 | bold |
| constant.numeric, keyword.other.unit | #cca8fc | |
| constant.language.json.comments | #cca8fc | — |
| constant.character, punctuation.definition.char, punctuation.definition.string, string | #f0ac98 | |
| variable | #c2c6cb | — |
| variable.other.enummember | #99f6e4 | — |
| constant, entity.name.constant, variable.other.metavariable, support.constant | #c2c6cb | — |
| entity.name.function, entity.name.function-call, meta.function-call.generic.python, support.function, entity.other.attribute-name.table.toml, entity.other.attribute-name.table.array.toml | #60e2f2 | — |
| meta.attribute.rust, entity.name.type, storage.type, support.class, support.type | #7dd3fc | — |
| keyword.type, storage.type.boolean.go, storage.type.built-in, storage.type.byte.go, storage.type.error.go, storage.type.numeric.go, storage.type.primitive, storage.type.rune.go, storage.type.string.go, storage.type.uintptr.go, support.type, variable.other.metavariable.specifier | #cca8fc | — |
| entity.name.field, entity.name.record.field, entity.name.variable.field, meta.attribute.python, punctuation.support.type.property-name, support.type.property-name, support.type.vendored.property-name, variable.other.member, variable.other.object.property, variable.other.property | #fcb369 | — |
| support.type.property-name.table.toml, meta.table.toml | #e2e8f0 | bold |
| entity.name.tag.toml, entity.name.tag.yaml | #fcb369 | |
| string.unquoted.plain.out.yaml | #f0ac98 | — |
| constant.other.caps | #abee8c | bold |
| entity.name.module, entity.name.namespace, entity.name.type.namespace, storage.modifier.import, storage.modifier.package, support.module, entity.name.type.module, variable.other.constant.elixir | #e2e8f0 | — |
| entity.name.function.macro, entity.name.macro, entity.name.other.preprocessor.macro, variable.other.readwrite.module.elixir, punctuation.definition.variable.elixir | #c2c6cb | — |
| storage.modifier.lifetime.rust, entity.name.lifetime.rust, entity.name.type.lifetime, punctuation.definition.lifetime | #adfb9d | |
| constant.character.escape | #5eead4 | — |
| constant.character.format.placeholder, constant.other.placeholder, punctuation.section.embedded, punctuation.definition.template-expression | #5eead4 | — |
| comment, punctuation.definition.comment, keyword.operator.namespace.rust | #999999 | — |
| comment.line.documentation | #b3b3b3 | — |
| comment.line.double-slash | #999999 | — |
| entity.name.function.decorator, punctuation.brackets.attribute, punctuation.definition.annotation, punctuation.definition.attribute, punctuation.definition.decorator, storage.modifier.attribute, storage.type.annotation | #5eead4 | — |
| entity.other.attribute-name.class, entity.other.attribute-name.id | #cbd5e1 | — |
| keyword.other.unsafe | #fd7c68 | italic bold |
| meta.function-call.unsafe | #fd7c68 | — |
| keyword.control.flow.block-scalar.literal.yaml, keyword.operator, storage.modifier.mut, meta.function.definition.rust, punctuation, storage.modifier | #cbd5e1 | |
| keyword.operator.borrow.and.rust, keyword.operator.dereference.rust, storage.modifier.pointer, keyword.operator.logical.rust, storage.type.function.arrow | #c2c6cb | bold |
| markup.italic | — | italic |
| markup.bold | — | bold |
| markup.heading | — | bold |
| punctuation.definition.markdown, punctuation.definition.heading.markdown, punctuation.definition.metadata.markdown, punctuation.definition.raw.markdown, punctuation.definition.constant.markdown, punctuation.definition.constant.begin.markdown, punctuation.definition.constant.end.markdown, punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.list.begin.markdown, punctuation.definition.quote.begin.markdown, punctuation.definition.bold.markdown, punctuation.definition.italic.markdown, punctuation.separator.key-value.markdown, punctuation.separator.key-value.markdown, fenced_code.block.language.markdown, constant.other.reference.link.markdown, meta.link.inline.markdown, meta.link.reference.def.markdown, punctuation.definition.asciidoc, punctuation.separator.asciidoc, support.asciidoc, markup.heading.asciidoc, markup.heading.marker.asciidoc, markup.list.bullet.asciidoc, markup.link.asciidoc, markup.other.url.asciidoc, markup.other.anchor.asciidoc, support.constant.asciidoc, constant.asciidoc, entity.name.function.asciidoc | #cca8fc | — |
| string.other.link.title.markdown, string.other.link.description.markdown, string.unquoted.asciidoc | #cca8fc | — |
| markup.inserted, punctuation.definition.inserted.diff | #85BF86 | — |
| markup.deleted, punctuation.definition.deleted.diff | #a5f3fc | — |
| markup.changed | #fcb369 | — |
| punctuation.definition.range.diff, meta.diff.range | #7dd3fc | — |
| comment.line.number-sign.git-commit, punctuation.definition.comment.git-commit, meta.diff.index, meta.diff.header | #cca8fc | — |
| meta.diff.header.to-file, meta.diff.header.from-file | #f4f4f5 | bold |
| punctuation.definition.from-file.diff, punctuation.definition.to-file.diff | #c4b5fd | — |
| meta.mutable | — | underline |
| magit.header | #cca8fc | bold |
| magit.subheader | — | bold |
| magit.entity | #94a3b8 | — |
| invalid.deprecated.line-too-long.git-commit | #fb923c | — |
| invalid.illegal.line-too-long.git-commit | #fc83a1 | — |
| variable.parameter.label.asm | #60e2f2 | — |
| keyword.control.asm | #6ee7b7 | — |
| constant.language.boolean.ts, constant.language.undefined.ts, constant.language.null.ts, source.ts | #cca8fc | |
| entity.name.type.class.ts, meta.class.ts, variable.language.super.ts, source.ts | #60E2F2 | bold |
| variable.object.property.ts, meta.definition.property.ts, meta.field.declaration.ts, meta.class.ts, source.ts | #FDBA74 | |
| support.type.primitive.ts, source.ts | #78f7d5 | |
| storage.type.ts, meta.method.declaration.ts, meta.class.ts, source.ts | — | — |
| variable.other.constant.property.ts, meta.field.declaration.ts, source.ts | #abf96c | bold |
| variable.language.this, keyword.control.trycatch.ts, meta.block.ts, meta.method.declaration.ts, meta.class.ts, source.ts | #f5da9f | bold |
| keyword.control.flow.ts, meta.block.ts, meta.block.ts, meta.method.declaration.ts, meta.class.ts, source.ts | #f5da9f | |
| variable.language.this.ts, meta.embedded.line.ts, meta.template.expression.ts, meta.block.ts, meta.method.declaration.ts, meta.class.ts, source.ts | #e2e8f0 | bold |
| storage.modifier.ts, meta.class.ts, source.ts | #f5da9f | |
| variable.other.readwrite.ts, meta.object.member.ts, meta.objectliteral.ts, storage.type.class.ts, meta.class.ts, keyword.control.export.ts, source.ts | #F5DA9F | |
| variable.other.object.property.ts, meta.block.ts, meta.method.declaration.ts, meta.class.ts, source.ts | — |
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}!`;
}