Kunai Dark
Publisher: Manav SharmaThemes in package: 1
Functional & Aesthetic
Functional & Aesthetic
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, comment keyword, comment markup.underline.link, comment string, comment punctuation.definition, comment punctuation, comment text | #4F566D | italic |
| comment storage.type | #4F566D | — |
| comment entity.name.type | #4F566D | italic |
| comment variable, comment variable.other | #4F566D | italic |
| comment keyword.codetag.notation | #4F566D | — |
| comment.git-status.header.remote | #DE6180 | — |
| comment.git-status.header.local | #68B3DE | — |
| comment.other.git-status.head | #4F566D | — |
| string.quoted.docstring, string.quoted.docstring punctuation.definition | #9DA7BE | — |
| constant | #9DA7BE | — |
| constant.other | #9DA7BE | — |
| constant.other.caps | #7981CF | — |
| constant.other.placeholder.c | #EDB264 | — |
| constant.other.property | #7981CF | — |
| constant.other.citation.latex | #7981CF | — |
| constant.other.color | #7981CF | — |
| constant.other.character-class.escape | #7981CF | — |
| constant.other.key | #7981CF | — |
| constant.other.symbol | #EDB264 | — |
| constant.other.elm | #68B3DE | — |
| constant.numeric | #9DA7BE | — |
| constant.language | #7981CF | — |
| constant.character.escape | #7981CF | — |
| constant.numeric.line-number.find-in-files | #9DA7BE | — |
| constant.numeric.line-number.match.find-in-files | #EDB264 | — |
| entity.name.section | #EDB264 | — |
| entity.name.function, entity.name.function.templated | #41C899 | — |
| entity.name.function.member.static | #9DA7BE | — |
| entity.name.type.class.templated, entity.name.type.class.generic, entity.name.type.namespace | #68B3DE | — |
| entity.name.label | #7981CF | — |
| entity.name.function.preprocessor | #68B3DE | — |
| entity.name | #41C899 | — |
| entity.name.class | #68B3DE | — |
| entity.name.constant | #7981CF | — |
| entity.name.namespace | #9DA7BE | — |
| entity.other.inherited-class | #68B3DE | italic |
| entity.name.function | #639AE1 | — |
| entity.name.tag, entity.name.tag.js.jsx support.class.component.js.jsx, entity.name.tag support.class.component, source.vue support.class.component | #DE6767 | — |
| entity.name.function.operator | #DE6180 | — |
| entity.name.type, entity.name.type.class.reference, entity.name.type.class.value | #68B3DE | — |
| entity.other.attribute-name | #7981CF | italic |
| entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector-suffix.css, entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css, entity.other.attribute-name.css, entity.other.animation-name.css | #DE6767 | — |
| entity.other.attribute-name.id.css | #DE6767 | — |
| entity.other.attribute-name.pseudo-class.css, entity.other.pseudo-class.css, entity.other.pseudo-element.css | #68B3DE | italic |
| entity.name.function, support.function | #7981CF | — |
| entity.other.git-status.hex | #7981CF | — |
| entity.other.jinja2.delimiter | #9DA7BE | — |
| entity.name.operator.custom-literal | #9DA7BE | — |
| entity.name.operator.custom-literal.string | #EDB264 | — |
| entity.name.operator.custom-literal.number | #7981CF | — |
| entity.name.type.rust | #68B3DE | — |
| entity.name.lifetime.rust | #DE6180 | — |
| invalid | — | italic |
| keyword | #DE6180 | — |
| keyword.control | #DE6767 | — |
| keyword.control.directive | #DE6180 | — |
| keyword.operator, keyword.operator.member, keyword.operator.new | #DE6180 | — |
| keyword.other.substitution | #9DA7BE | — |
| keyword.other.template.begin, keyword.other.template.end | #DE6180 | — |
| keyword.operator.heading.restructuredtext, keyword.operator.table.row.restructuredtext keyword.operator.table.data.restructuredtext | #9DA7BE | — |
| keyword.other.parenthesis.elm | #9DA7BE | — |
| keyword.other.fn.rust, keyword.other.rust, keyword.other.unsafe.rust, keyword.other.where.rust | #68B3DE | — |
| keyword.control.rust, keyword.operator.misc.rust | #DE6180 | — |
| keyword.declaration.class.ruby, keyword.declaration.function.ruby, keyword.declaration.namespace.ruby | #DE6180 | — |
| markup.italic | — | italic |
| markup.bold | — | bold |
| markup.heading | #EDB264 | — |
| markup.raw | #DE6767 | — |
| markup.underline | — | underline |
| markup.underline.link | #41C899 | — |
| markup.inserted, markup.inserted punctuation.definition.inserted | #41C899 | — |
| markup.deleted, markup.deleted punctuation.definition.deleted | #DE6180 | — |
| markup.changed, markup.changed punctuation.definition.changed | #EDB264 | — |
| markup.ignored, markup.ignored punctuation.definition.ignored | #9DA7BE | — |
| markup.untracked | #9DA7BE | — |
| markup.quote | — | italic |
| meta.brace.round, meta.brace.square, meta.brace.curly, meta.delimiter.comma.js, meta.function-call.without-arguments.js, meta.function-call.method.without-arguments.js | #9DA7BE | — |
| meta.function-call.generic.python, support.function.builtin.python | #639AE1 | — |
| meta.function-call.python meta.function-call.arguments.python | #9DA7BE | — |
| meta.instance.constructor | #84CF7D | — |
| meta.attribute-with-value.class string, meta.attribute.class.html string | #68B3DE | — |
| meta.attribute-with-value.id string, meta.attribute.id.html string | #EDB264 | — |
| source.json meta.mapping.key string | #9DA7BE | — |
| meta.object.member | #9DA7BE | — |
| meta.property-list.css variable.other | #DE6767 | — |
| entity.name.constant.preprocessor, meta.preprocessor | #7981CF | — |
| meta.diff.git-diff.header | #EDB264 | — |
| meta.type_params.rust | #9DA7BE | — |
| meta.attribute.rust, meta.annotation.rust, variable.language.rust, variable.annotation.rust, meta.annotation.rust string, meta.annotation.rust keyword, meta.annotation.rust keyword.operator, meta.attribute.rust string | #9DA7BE | — |
| punctuation | #6B7388 | — |
| punctuation.definition.tag, punctuation.definition.tag source, punctuation.definition.group.begin.ruby, punctuation.definition.group.end.ruby, punctuation.definition.group.begin.css, punctuation.definition.group.end.css, punctuation.definition.string.end.html source.css | #9DA7BE | italic |
| punctuation.definition.group | #9DA7BE | — |
| punctuation.definition.comment | #4F566D | italic |
| punctuation.definition.variable, punctuation.definition.keyword.scss, punctuation.definition.entity.css | #969696 | — |
| punctuation.section.embedded, punctuation.section.embedded entity.name.tag, punctuation.section.embedded constant.other, punctuation.section.embedded source, punctuation.section.embedded.begin | #DE6767 | — |
| punctuation.template-string.element.begin, punctuation.template-string.element.end, punctuation.definition.string.template.begin, punctuation.definition.string.template.end, string.quoted.template punctuation.definition.string.begin, string.quoted.template punctuation.definition.string.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end | #DE6180 | — |
| meta.paragraph.markdown meta.dummy.line-break, meta.paragraph.markdown meta.hard-line-break.markdown | — | — |
| region.redish | #DE6180 | — |
| region.orangish | #DE6767 | — |
| region.yellowish | #EDB264 | — |
| region.greenish | #41C899 | — |
| region.bluish | #68B3DE | — |
| region.purplish | #7981CF | — |
| region.pinkish | #DE6180 | — |
| region.whitish | #9DA7BE | — |
| source | #9DA7BE | — |
| source.scss, source.sass | #9DA7BE | — |
| source.sass variable.other, source.sass variable.sass, source.scss variable.other, source.scss variable.scss, source.scss variable.sass, source.css variable.other, source.css variable.scss, source.less variable.other, source.less variable.other.less, source.less variable.declaration.less | #DE6767 | italic |
| source.git-show.commit.sha | #7981CF | — |
| source.git-show.author, source.git-show.date, source.git-diff.command, source.git-diff.command meta.diff.git-diff.header.from-file, source.git-diff.command meta.diff.git-diff.header.to-file | #9DA7BE | — |
| source.git-show meta.diff.git-diff.header.extended.index.from-sha, source.git-show meta.diff.git-diff.header.extended.index.to-sha | #7981CF | — |
| source.git-show meta.diff.range.unified | #DE6767 | — |
| source.git-show meta.diff.header.from-file, source.git-show meta.diff.header.to-file | #9DA7BE | — |
| storage | #DE6180 | — |
| storage.type | #EDB264 | — |
| storage.type.extends | #DE6180 | — |
| storage.type.function.arrow | #DE6180 | — |
| storage.modifier, storage.type.modifier | #DE6180 | italic |
| storage.class.restructuredtext.ref | #7981CF | — |
| storage.modifier.visibility.rust, storage.modifier.lifetime.rust | #DE6180 | — |
| storage.modifier.const.rust, storage.modifier.dyn.rust, storage.modifier.mut.rust, storage.modifier.static.rust, storage.type.rust, storage.type.core.rust, storage.class.std.rust | #68B3DE | — |
| storage.type.rust, storage.modifier.const.rust, storage.modifier.dyn.rust, storage.modifier.mut.rust, storage.modifier.static.rust, keyword.other.rust, keyword.other.where.rust | #DE6180 | — |
| string | #73ad6e | — |
| string.unquoted.label | #9DA7BE | — |
| string source | #9DA7BE | — |
| string source punctuation.section.embedded, string punctuation.definition.string source | #9DA7BE | — |
| string.other.link.title, string.other.link.description | #639AE1 | — |
| string.other.link.description.title | #639AE1 | — |
| string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end | #DE6180 | — |
| string.other.ref, string.other.restructuredtext.ref | #73AD6E | — |
| string.other.git-status.help.key | #9DA7BE | — |
| string.other.git-status.remote | #DE6180 | — |
| support.constant | #639AE1 | — |
| support.constant.handlebars | #9DA7BE | — |
| support.type.vendor-prefix.css | #9DA7BE | — |
| support.function | #73AD6E | — |
| support.function.delimiter.elm | #9DA7BE | — |
| source.css support.type.property-name, source.sass support.type.property-name, source.scss support.type.property-name, source.less support.type.property-name, source.stylus support.type.property-name, source.postcss support.type.property-name | #DE6767 | — |
| support.type, entity.name.type.object.console | #68B3DE | — |
| support.variable | #68B3DE | — |
| support.type.property-name | #639AE1 | — |
| support.class | #68B3DE | — |
| support.constant.core.rust | #7981CF | — |
| text | #9DA7BE | — |
| text.find-in-files | #9DA7BE | — |
| variable, variable.other | #68B3DE | — |
| variable.parameter, parameters variable.function | #DE6767 | italic |
| variable.language, variable.parameter.function.language.special.self.python, variable.parameter.function.language.special.cls.python | #9DA7BE | italic |
| variable.language.arguments | #7981CF | — |
| variable.other.class | #DE6767 | — |
| variable.other.constant | #7981CF | — |
| variable.other.readwrite | #9DA7BE | — |
| variable.other.member | #9DA7BE | — |
| variable.other.enummember | #7981CF | — |
| variable.other.property, variable.other.property.static, variable.other.event | #9DA7BE | — |
| variable.function | #EDB264 | — |
| variable.other.substitution | #EDB264 | — |
| source.ruby variable.other.readwrite.instance.ruby, source.ruby variable.other.readwrite.class.ruby | #7981CF | — |
| source.jinja2 variable.other.jinja2.block | #41C899 | — |
| source.jinja2 variable.other.jinja2 | #DE6767 | — |
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}!`;
}