Thma Theme
Publisher: ThmaThemes in package: 1
A Visual Studio Code theme
A Visual Studio Code 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 |
|---|---|---|
| markup.bold.markdown | — | bold |
| markup.italic.markdown | — | italic |
| markup.strikethrough.markdown | — | strikethrough |
| comment., punctuation.definition.comment | #8090A0 | — |
| entity.name.variable., keyword.operator.access.dot.rust, keyword.operator.class.php, keyword.operator.key-value.rust, keyword.operator.namespace.rust, keyword.operator.navigation.groovy, keyword.operator.string.php, keyword.operator.ternary.dart | #B0C0D0 | — |
| keyword.operator.type.annotation.js, keyword.operator.type.annotation.js.jsx, keyword.operator.type.annotation.ts, keyword.operator.type.annotation.tsx, punctuation.accessor.js, punctuation.accessor.js.jsx, punctuation.accessor.ts, punctuation.accessor.tsx | #B0C0D0 | — |
| punctuation.comma.dart, punctuation.comma.rust, punctuation.decorator.js, punctuation.decorator.js.jsx, punctuation.decorator.ts, punctuation.decorator.tsx, punctuation.definition.character-class.regexp, punctuation.definition.constant.hashkey.ruby | #B0C0D0 | — |
| punctuation.definition.constant.ruby, punctuation.definition.tag.directive.js, punctuation.definition.tag.directive.js.jsx, punctuation.definition.tag.directive.ts, punctuation.definition.tag.directive.tsx, punctuation.definition.variable.php, punctuation.definition.variable.ruby, punctuation.dot.dart | #B0C0D0 | — |
| punctuation.section.angle-brackets.begin.template.call.cpp, punctuation.section.angle-brackets.end.template.call.cpp, punctuation.semi.rust, punctuation.separator.comma.js, punctuation.separator.comma.js.jsx, punctuation.separator.comma.ts, punctuation.separator.comma.tsx, punctuation.separator.delimiter.comma.cpp | #B0C0D0 | — |
| punctuation.separator.delimiter.scss, punctuation.separator.dot-access.cpp, punctuation.separator.dot.decimal.rust, punctuation.separator.key-value.css, punctuation.separator.key-value.scss, punctuation.separator.list.comma.css, punctuation.separator.namespace.access.cpp, punctuation.separator.pointer-access.cpp | #B0C0D0 | — |
| punctuation.separator.scope-resolution.function.call.cpp, punctuation.separator.scope-resolution.function.definition.cpp, punctuation.separator.variable.ruby, punctuation.terminator.rule.css, punctuation.terminator.rule.scss, punctuation.terminator.statement.cpp, support.type.custom-property.less, support.type.custom-property.name.less | #B0C0D0 | — |
| text.html.derivative, variable., variable.other., variable.other.php, variable.other.rust | #B0C0D0 | — |
| entity.name.namespace, entity.name.scope-resolution.c3, entity.name.scope-resolution.cpp, entity.name.scope-resolution.namespace.using.cpp, entity.name.tag.namespace, entity.name.type.module.ruby, entity.name.type.namespace, entity.namespace.r | #70C29E | — |
| entity.other.attribute-name.namespace, meta.at-rule.import.less punctuation.definition.string.begin.less, meta.at-rule.import.less punctuation.definition.string.end.less, meta.at-rule.import.less string, meta.import.java variable.language.wildcard.java, storage.modifier.import.groovy, storage.modifier.import.java, storage.modifier.package.groovy, storage.modifier.package.java, support.other.namespace, variable.language.namespace.php | #70C29E | — |
| constant, constant.enum, constant.language.iota.go, constant.language.null.cs, entity.name.decorator, entity.name.function.decorator.python, entity.name.type.option.rust, entity.name.type.result.rust | #788EDD | — |
| entity.other.attribute-name.pseudo-element.css, keyword.constant.bool.zig, keyword.constant.default.zig, keyword.other.important.css, keyword.other.preprocessor.extension.haskell, meta.function.decorator.python, punctuation.definition.annotation, punctuation.definition.constant | #788EDD | — |
| punctuation.definition.decorator.python, punctuation.definition.list.begin.markdown, punctuation.definition.string.begin.cpp meta.encoding.cpp, source.css keyword.other.unit, storage.type.annotation, storage.type.format.python, support.constant, support.constant.vendored.property-value.css | #788EDD | — |
| support.function.attribute.fsharp, variable.other.enummember, variable.other.readwrite.batchfile, variable.other.source.dart | #788EDD | — |
| constant.other.symbol.hashkey.parameter.function.ruby, entity.name.variable.parameter.php, variable.parameter | #9DB234 | — |
| constant.language.symbol.hashkey.ruby, entity.name.variable.field, entity.name.variable.property.cs, entity.other.attribute.lua, meta.field.declaration.js variable.object.property.js, meta.field.declaration.js.jsx variable.object.property.js.jsx, meta.field.declaration.ts variable.object.property.ts, meta.field.declaration.tsx variable.object.property.tsx | #97C0E9 | — |
| meta.member.access.python meta.attribute.python, meta.object.member.js meta.object-literal.key.js, meta.object.member.js.jsx meta.object-literal.key.js.jsx, meta.object.member.ts meta.object-literal.key.ts, meta.object.member.tsx meta.object-literal.key.tsx, support.type.property-name.css, support.type.property-name.less, variable.other.member.c | #97C0E9 | — |
| variable.other.member.objc, variable.other.member.objcpp, variable.other.member.powershell, variable.other.object.property.cpp, variable.other.object.property.cs, variable.other.object.property.java, variable.other.object.property.js, variable.other.object.property.js.jsx | #97C0E9 | — |
| variable.other.object.property.ts, variable.other.object.property.tsx, variable.other.property., variable.other.property.cpp | #97C0E9 | — |
| constant.numeric, constant.other.color.rgb-value.hex.css, keyword.other.unit., punctuation.definition.constant.css, punctuation.definition.constant.less, storage.type.number | #58B68D | — |
| entity.name.import.go, markup.fenced_code.block.markdown, markup.inline.raw.string.markdown, punctuation.definition.char, punctuation.definition.markdown, punctuation.definition.raw.markdown, punctuation.definition.string, string., string.regexp | #EBBB71 | — |
| constant.character.entity.named, constant.character.escape, meta.embedded.expression.dart, punctuation.definition.entity.html, support.other.escape.special.regexp | #3DB8F5 | — |
| constant.other.placeholder, punctuation.definition.variable.less, support.other.variable.less, support.variable.automatic.powershell, variable.argument.css, variable.css, variable.parameter.less, variable.scss | #39ACAC | — |
| entity.name.goto-label.php, entity.name.label | #BEC04F | — |
| entity.name.tag, entity.name.tag.yaml, entity.name.tag.yaml punctuation.definition.string.begin.yaml, entity.name.tag.yaml punctuation.definition.string.end.yaml, keyword., keyword.control., keyword.control.clojure, keyword.control.elixir | #65AEFF | — |
| keyword.control.r, keyword.operator.alignas, keyword.operator.alignof, keyword.operator.at.batchfile, keyword.operator.cast, keyword.operator.expression, keyword.operator.gradient.css, keyword.operator.instanceof | #65AEFF | — |
| keyword.operator.logical.python, keyword.operator.new, keyword.operator.sizeof, keyword.operator.typeid, keyword.operator.wordlike, meta.at-rule.header.css punctuation.definition.keyword.css, punctuation.definition.block.tag.jsdoc, punctuation.definition.group.regexp | #65AEFF | — |
| punctuation.definition.storage.type.objc, punctuation.support.type.property-name, storage., storage.type.class.jsdoc, storage.type.objc, support.type.property-name, support.type.property-name.toml | #65AEFF | — |
| constant.language.access-type.sassdoc, entity.name.function.macro.rust, entity.name.function.operator.member.cpp, entity.name.function.preprocessor, entity.name.function.preprocessor.c, keyword.annotation.c3, keyword.control.at-rule.charset.css, keyword.control.at-rule.charset.less | #C678DD | — |
| keyword.control.at-rule.charset.scss, keyword.control.at-rule.font-face.css, keyword.control.at-rule.font-face.less, keyword.control.at-rule.fontface.scss, keyword.control.at-rule.import.less, keyword.control.at-rule.import.scss, keyword.control.at-rule.include.scss, keyword.control.at-rule.keyframe.less | #C678DD | — |
| keyword.control.at-rule.keyframes.css, keyword.control.at-rule.keyframes.scss, keyword.control.at-rule.media.css, keyword.control.at-rule.media.less, keyword.control.at-rule.media.scss, keyword.control.at-rule.mixin.scss, keyword.control.at-rule.namespace.css, keyword.control.at-rule.namespace.less | #C678DD | — |
| keyword.control.at-rule.namespace.scss, keyword.control.at-rule.page.css, keyword.control.at-rule.page.less, keyword.control.at-rule.page.scss, keyword.control.at-rule.supports.css, keyword.control.at-rule.supports.less, keyword.control.at-rule.supports.scss, keyword.control.at-rule.use.scss | #C678DD | — |
| keyword.control.at-rule.viewport.css, keyword.control.ct.c3, keyword.control.export.js, keyword.control.export.js.jsx, keyword.control.export.ts, keyword.control.export.tsx, keyword.control.from.js, keyword.control.from.js.jsx | #C678DD | — |
| keyword.control.from.ts, keyword.control.from.tsx, keyword.control.goto.cpp, keyword.control.goto.php, keyword.control.import.go, keyword.control.import.include.php, keyword.control.import.js, keyword.control.import.js.jsx | #C678DD | — |
| keyword.control.import.python, keyword.control.import.ts, keyword.control.import.tsx, keyword.control.module.ruby, keyword.declaration.function.arrow.c3, keyword.declaration.import.c3, keyword.declaration.module.c3, keyword.local.lua | #C678DD | — |
| keyword.map.go, keyword.operator., keyword.operator.arithmetic.cpp, keyword.operator.assignment.regexp, keyword.operator.balancing-group.regexp, keyword.operator.bitwise.shift.cpp, keyword.operator.comparison.cpp, keyword.operator.comparison.regexp | #C678DD | — |
| keyword.operator.conditional.negative.regexp, keyword.operator.conditional.regexp, keyword.operator.disjunction.regexp, keyword.operator.expression.await.cs, keyword.operator.lookahead.negative.regexp, keyword.operator.lookahead.regexp, keyword.operator.lookbehind.negative.regexp, keyword.operator.lookbehind.regexp | #C678DD | — |
| keyword.operator.negation.regexp, keyword.operator.or.regexp, keyword.operator.quantifier.regexp, keyword.operator.recursion-level.regexp, keyword.other.ct.c3, keyword.other.directive.using.cs, keyword.other.export.cpp, keyword.other.import.dart | #C678DD | — |
| keyword.other.import.haskell, keyword.other.namespace.php, keyword.other.preprocessor.pragma.haskell, keyword.other.use-as.php, keyword.other.use.php, keyword.other.using.directive.cpp, keyword.symbol.fsharp, markup.quote.markdown | #C678DD | — |
| meta.at-rule.media.header.css punctuation.definition.keyword.css, meta.at-rule.media.scss punctuation.definition.keyword.scss, meta.import.js keyword.control.as.js, meta.import.js.jsx keyword.control.as.js.jsx, meta.import.ts keyword.control.as.ts, meta.import.tsx keyword.control.as.tsx, punctuation.definition.group.assertion.regexp, punctuation.definition.interpolation.begin.bracket.curly.scss | #C678DD | — |
| punctuation.definition.interpolation.end.bracket.curly.scss, punctuation.definition.interpolation.rust, punctuation.definition.keyword.css, punctuation.definition.keyword.less, punctuation.definition.keyword.scss, punctuation.definition.map.elixir, punctuation.definition.quote.begin.markdown, punctuation.definition.table.markdown | #C678DD | — |
| punctuation.eq.toml, punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php, punctuation.section.embedded.rust, punctuation.separator.delimiter.php, punctuation.separator.question-mark.cs, punctuation.separator.statement.and.shell, punctuation.separator.statement.background.shell | #C678DD | — |
| punctuation.separator.statement.or.shell, punctuation.separator.table.markdown, storage.modifier.access-control.groovy, storage.modifier.async.cs, storage.modifier.async.js, storage.modifier.async.js.jsx, storage.modifier.async.ts, storage.modifier.async.tsx | #C678DD | — |
| storage.modifier.file.cs, storage.modifier.internal.cs, storage.modifier.mut.rust, storage.modifier.pointer.cpp, storage.modifier.private.cs, storage.modifier.protected.cs, storage.modifier.public.cs, storage.modifier.reference.cpp | #C678DD | — |
| storage.type.function.async.python, storage.type.modifier.access.control.internal.cpp, storage.type.modifier.access.control.private.cpp, storage.type.modifier.access.control.protected.cpp, storage.type.modifier.access.control.public.cpp, storage.type.modifier.access.public.cpp, support.type.property-name.array.toml, support.type.property-name.table.toml, variable.parameter.url.css | #C678DD | — |
| entity., entity.name., entity.name.section.markdown, entity.name.type.class, entity.name.type.rust, entity.name.type.struct, entity.name.type.struct.rust, entity.name.type.union.rust | #33CCCC | — |
| punctuation.definition.heading.markdown, storage.type.generic.groovy, storage.type.generic.java, storage.type.groovy, storage.type.haskell, storage.type.java, support.class., support.class.component.js | #33CCCC | — |
| support.class.component.js.jsx, support.class.component.tsx, support.class.php, support.class.ruby, support.type.built-in.posix-reserved.cpp, support.type.cocoa.leopard.objc, support.type.posix-reserved.cpp | #33CCCC | — |
| entity.name.type.enum, entity.name.type.enum.rust, entity.other.attribute-name.id.css, entity.other.attribute-name.id.less | #86C691 | — |
| entity.name.type.interface, entity.name.type.trait.php, entity.other.attribute-name.class.css, entity.other.attribute-name.class.less | #ACD194 | — |
| entity.name.command.shell, entity.name.function, entity.name.function.rust, entity.name.function.support.go, meta.function-call.python meta.function-call.generic.python, meta.method.groovy meta.method-call.groovy, support.function.any-method.lua, support.function.builtin.python, variable.function | #AD89F5 | — |
| keyword.control.directive.conditional.c, keyword.control.directive.conditional.defined.cpp, keyword.control.directive.conditional.if.cpp, keyword.control.directive.conditional.ifdef.cpp, keyword.control.directive.conditional.ifndef.cpp, keyword.control.directive.conditional.objc, keyword.control.directive.define.c, keyword.control.directive.define.cpp | #8AB658 | — |
| keyword.control.directive.define.objc, keyword.control.directive.diagnostic.error.c, keyword.control.directive.diagnostic.error.cpp, keyword.control.directive.diagnostic.error.objc, keyword.control.directive.diagnostic.warning.objc, keyword.control.directive.elif.cpp, keyword.control.directive.else.cpp, keyword.control.directive.endif.cpp | #8AB658 | — |
| keyword.control.directive.import.objc, keyword.control.directive.include.c, keyword.control.directive.include.cpp, keyword.control.directive.include.objc, keyword.control.directive.pragma.c, keyword.control.directive.pragma.cpp, keyword.control.directive.pragma.pragma-mark.objc, keyword.control.directive.undef.cpp | #8AB658 | — |
| keyword.preprocessor.endregion.cs, keyword.preprocessor.region.cs, meta.preprocessor.cs keyword.preprocessor, meta.preprocessor.cs punctuation.separator, punctuation.definition.directive.c, punctuation.definition.directive.cpp, punctuation.definition.directive.objc | #8AB658 | — |
| entity.other.attribute-name, entity.other.attribute-name.scss, entity.other.keyframe-offset.css, meta.attribute., punctuation.attribute-shorthand.event.html.vue | #888AF9 | — |
| support.variable.property, variable.other.constant | #9EA0FA | — |
| constant.language.boolean.rust, constant.numeric.inf.toml, constant.numeric.nan.toml, constant.other.time.date.toml, constant.other.time.datetime.local.toml, constant.other.time.datetime.offset.toml, constant.other.time.time.toml, entity.name.type.any.go | #DB70B8 | — |
| entity.name.type.numeric.rust, entity.name.type.primitive.rust, keyword.operator.expression.default.cs, keyword.other.suffix.literal.built-in.floating-point.cpp, keyword.other.suffix.literal.built-in.integer.cpp, keyword.other.unit.suffix.floating-point, keyword.other.unit.suffix.integer, keyword.type.bool.cs | #DB70B8 | — |
| keyword.type.byte.cs, keyword.type.char.cs, keyword.type.decimal.cs, keyword.type.double.cs, keyword.type.dynamic.cs, keyword.type.float.cs, keyword.type.int.cs, keyword.type.integer.zig | #DB70B8 | — |
| keyword.type.long.cs, keyword.type.nint.cs, keyword.type.nuint.cs, keyword.type.object.cs, keyword.type.sbyte.cs, keyword.type.short.cs, keyword.type.string.cs, keyword.type.uint.cs | #DB70B8 | — |
| keyword.type.ulong.cs, keyword.type.ushort.cs, keyword.type.void.cs, keyword.type.zig, storage.modifier.specifier.functional.post-parameters.noexcept.cpp, storage.type.boolean.go, storage.type.built-in.c, storage.type.built-in.cpp | #DB70B8 | — |
| storage.type.built-in.objc, storage.type.built-in.primitive.c, storage.type.built-in.primitive.c3, storage.type.built-in.primitive.cpp, storage.type.built-in.primitive.objc, storage.type.byte.go, storage.type.error.go, storage.type.id.objc | #DB70B8 | — |
| storage.type.numeric.go, storage.type.primitive.array.java, storage.type.primitive.dart, storage.type.primitive.groovy, storage.type.primitive.java, storage.type.rune.go, storage.type.string.go, storage.type.template.argument.bool.cpp | #DB70B8 | — |
| storage.type.template.argument.byte.cpp, storage.type.template.argument.char.cpp, storage.type.template.argument.double.cpp, storage.type.template.argument.float.cpp, storage.type.template.argument.int.cpp, storage.type.template.argument.int16_t.cpp, storage.type.template.argument.int32_t.cpp, storage.type.template.argument.int64_t.cpp | #DB70B8 | — |
| storage.type.template.argument.int8_t.cpp, storage.type.template.argument.short.cpp, storage.type.template.argument.size_t.cpp, storage.type.template.argument.uint.cpp, storage.type.template.argument.uint16_t.cpp, storage.type.template.argument.uint32_t.cpp, storage.type.template.argument.uint64_t.cpp, storage.type.template.argument.uint8_t.cpp | #DB70B8 | — |
| storage.type.template.argument.unsigned.cpp, storage.type.template.argument.ushort.cpp, storage.type.uintptr.go, storage.type.union.c, storage.type.union.cpp, support., support.type.built-in, support.type.builtin | #DB70B8 | — |
| support.type.lua, support.type.primitive.js, support.type.primitive.js.jsx, support.type.primitive.ts, support.type.primitive.tsx | #DB70B8 | — |
| entity.name.function.support.builtin.go, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end, support.function, support.function.any-method.objc, support.function.builtin.shell, support.function.builtin.zig, support.function.js | #C871F4 | — |
| support.function.js.jsx, support.function.magic.python, support.function.ts, support.function.tsx | #C871F4 | — |
| constant.language.symbol.elixir, keyword.other.crate.rust, punctuation.definition.constant.elixir, support.type.object.module.js, support.type.object.module.js.jsx, support.type.object.module.ts, support.type.object.module.tsx, support.type.property-name.less meta.namespace.vendor-prefix.less | #E09452 | — |
| support.type.vendored.property-name.css, variable.language, variable.language.powershell, variable.language.this.php, variable.language.this.php punctuation.definition.variable.php, variable.parameter.function.language.special.self.python | #E09452 | — |
| invalid | #EC4646 | — |
| entity.name.type.lifetime.rust, entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-class.extend.less, entity.other.attribute-name.pseudo-class.less, punctuation.definition.lifetime.rust | #F28E36 | — |
| markup.underline.link.image.markdown, markup.underline.link.markdown, variable.parameter.url.scss | #A688F9 | — |
| punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html | #A0B0C0 | — |
| constant.regexp, punctuation.definition.group.no-capture.regexp | #BA98F6 | — |
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}!`;
}