Kaimandres for VS Code
Publisher: MartelleVThemes in package: 1
The official port of Neovim's Kaimandres theme, made by Martelle.
The official port of Neovim's Kaimandres theme, made by Martelle.
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, punctuation.definition.comment, string.quoted.docstring, comment.block.documentation | #7a7f98 | italic |
| keyword.other.documentation | #78a9ff | italic |
| constant | #5de4c7 | — |
| constant.numeric, constant.numeric.float, constant.other.color, constant.other.date | #d0c9ff | — |
| string, constant.character | #91d7a3 | — |
| constant.language.boolean, constant.language.json, constant.language.true, constant.language.false, constant.language.null, constant.language.undefined | #ffb454 | bold |
| identifier | #e4e4eb | — |
| variable, variable.other.readwrite, meta.block variable.other | #d7d7de | — |
| variable.language, variable.language.this, variable.language.self, variable.language.super | #ea9bba | italic bold |
| variable.parameter | #c5b5e8 | — |
| variable.other.constant | #5de4c7 | — |
| variable.other.property, variable.other.object.property, variable.other.member, variable.other.enummember, meta.object-literal.key, support.type.property-name | #8ab8ff | — |
| entity.name.function, support.function, meta.function-call | #78a9ff | — |
| entity.name.function.member | #6fa8ea | — |
| keyword | #bda6ed | — |
| keyword.control, keyword.control.conditional, keyword.control.repeat, keyword.control.import, keyword.control.from, keyword.control.export | #bda6ed | italic |
| keyword.control.return, keyword.control.flow, keyword.control.jump, keyword.control.throw, keyword.control.switch, keyword.control.java, keyword.control.flow.return.cs, keyword.control.break, keyword.control.continue | #f087bd | bold |
| keyword.control.new.java, keyword.operator.expression.new.cs, keyword.operator.new | #ea9bba | bold |
| keyword.operator, keyword.operator.assignment, keyword.operator.arithmetic, keyword.operator.bitwise, keyword.operator.relational, keyword.operator.comparison | #89ddff | — |
| keyword.operator.expression, keyword.operator.cast, keyword.operator.sizeof, keyword.operator.logical.python, keyword.operator.type | #bda6ed | italic |
| storage | #bda6ed | italic |
| storage.type | #fffac2 | |
| storage.modifier, storage.type.function, storage.type.class, storage.type.enum, storage.type.interface | #bda6ed | italic |
| storage.type.class | #ea9bba | italic |
| storage.type.interface | #ea9bba | italic bold |
| entity.name.type, entity.name.class, entity.name.type.class, support.type, support.class | #fffac2 | — |
| entity.other.inherited-class | #fffac2 | italic |
| entity.name.namespace, entity.name.module, entity.name.type.module, storage.modifier.package, storage.modifier.import | #a89fd9 | — |
| punctuation, meta.brace, meta.delimiter, punctuation.definition.string, punctuation.definition.variable, punctuation.definition.parameters, punctuation.definition.array | #89ddff | — |
| punctuation.definition.string.end.html.vue, punctuation.definition.string.begin.html.vue, punctuation.definition.string.begin.tsx, punctuation.definition.string.end.tsx, punctuation.definition.string.begin.jsx, punctuation.definition.string.end.jsx | #ffb454 | — |
| meta.preprocessor, keyword.control.directive | #ea9bba | — |
| keyword.control.directive.define, meta.preprocessor.macro | #ea9bba | bold |
| entity.name.tag, meta.tag.sgml, markup.deleted.git_gutter | #bda6ed | — |
| entity.other.attribute-name | #add7ff | — |
| meta.selector, meta.selector.css, entity.other.attribute-name.id, entity.other.attribute-name.class, entity.other.attribute-name.pseudo-class, entity.other.attribute-name.pseudo-element | #fffac2 | — |
| support.type.property-name.css | #8ab8ff | — |
| support.constant.property-value.css | #e4e4eb | — |
| keyword.other.unit.css | #ea9bba | — |
| string.regexp | #e7d66d | — |
| constant.character.escape | #e7d66d | bold |
| entity.name.label, entity.name.section.group-title | #5de4c7 | bold |
| invalid | #d0679d | — |
| meta.diff.header.from-file | #e46876 | — |
| meta.diff.header.to-file | #76d4a8 | — |
| markup.inserted.diff, punctuation.definition.inserted.diff | #76d4a8 | — |
| markup.deleted.diff, punctuation.definition.deleted.diff | #e46876 | — |
| markup.changed.diff, punctuation.definition.changed.diff | #e7c77d | — |
| markup.heading, entity.name.section | #78a9ff | bold |
| markup.bold | — | bold |
| markup.italic | — | italic |
| markup.strikethrough | — | strikethrough |
| markup.underline, markup.underline.link | #5de4c7 | underline |
| string.other.link | #8ab8ff | underline |
| markup.quote, punctuation.definition.quote.begin | #7a7f98 | italic |
| markup.raw | #91d7a3 | — |
| markup.list, punctuation.definition.list.begin | #5de4c7 | bold |
| support.function.builtin | #78a9ff | bold |
| variable.language.constructor, meta.class.instance.constructor | #5de4c7 | — |
| support.variable, support.variable.property | #8ab8ff | — |
| support.constant | #e7d66d | — |
| string.interpolated, string.template | #91d7a3 | — |
| punctuation.section.embedded | #5de4c7 | — |
| punctuation.definition.template-expression | #767c9d | — |
| support.type.primitive | #fffac2 | bold |
| punctuation.definition.block.tag.jsdoc, storage.type.class.jsdoc | #bda6ed | italic |
| variable.other.jsdoc | #c5b5e8 | — |
| entity.name.type.instance.jsdoc | #fffac2 | — |
| source.java storage.type, source.java storage.modifier, source.java storage.modifier.access | #bda6ed | italic |
| source.java variable.language.this | #ea9bba | italic bold |
| source.java storage.type.annotation | #e7d66d | — |
| source.java meta.declaration.annotation | #e7d66d | bold |
| source.java storage.type.generic | #fffac2 | — |
| source.java storage.type.primitive | #fffac2 | bold |
| source.python storage.type | #fffac2 | bold |
| source.python keyword.operator.logical.python | #bda6ed | italic |
| source.python support.type.python | #fffac2 | — |
| source.python meta.function.decorator | #e7d66d | bold |
| source.python entity.name.function.decorator | #e7d66d | — |
| source.python variable.language.special.self | #ea9bba | italic bold |
| source.python variable.language.special.cls | #ea9bba | italic bold |
| source.go storage.type, source.go keyword.struct, source.go keyword.interface | #fffac2 | — |
| source.go keyword.package | #f087bd | bold |
| source.go keyword.import | #f087bd | italic |
| source.go keyword.function | #bda6ed | italic |
| source.go keyword.type | #bda6ed | italic |
| source.go keyword.const | #bda6ed | italic |
| source.go keyword.var | #bda6ed | italic |
| source.rust storage.type | #fffac2 | — |
| source.rust entity.name.lifetime | #5de4c7 | italic |
| source.rust storage.type.rust | #fffac2 | — |
| source.rust storage.modifier | #bda6ed | italic |
| source.rust keyword.control.rust | #bda6ed | italic |
| source.rust meta.attribute.rust | #e7d66d | — |
| source.rust entity.name.type.macro | #78a9ff | bold |
| source.rust support.macro.rust | #78a9ff | bold |
| source.c storage.modifier | #bda6ed | italic |
| source.c storage.type | #fffac2 | — |
| source.c keyword.control.directive | #ea9bba | — |
| source.c entity.name.function.preprocessor | #ea9bba | bold |
| source.c keyword.operator.sizeof | #bda6ed | bold |
| source.cpp storage.modifier | #bda6ed | italic |
| source.cpp storage.type | #fffac2 | — |
| source.cpp keyword.operator.new | #ea9bba | bold |
| source.cpp keyword.operator.delete | #ea9bba | bold |
| source.cpp entity.name.type.template | #fffac2 | — |
| source.cs storage.type | #fffac2 | — |
| source.cs storage.modifier | #bda6ed | italic |
| source.cs keyword.other.using | #bda6ed | italic |
| source.cs entity.name.type.namespace | #a89fd9 | — |
| source.cs storage.type.cs | #fffac2 | — |
| source.cs entity.name.type.attribute | #e7d66d | bold |
| source.cs variable.other.readwrite.cs | #d7d7de | — |
| source.cs keyword.other.var | #bda6ed | italic |
| source.php storage.type | #fffac2 | — |
| source.php storage.modifier | #bda6ed | italic |
| source.php keyword.control.php | #bda6ed | italic |
| source.php variable.other.php | #d7d7de | — |
| source.php punctuation.definition.variable.php | #ea9bba | — |
| source.php support.class.php | #fffac2 | — |
| text.html.php.blade keyword.blade | #f087bd | bold |
| text.html.php.blade support.function.construct.blade | #78a9ff | — |
| source.ruby storage.type.ruby | #fffac2 | — |
| source.ruby storage.modifier.ruby | #bda6ed | italic |
| source.ruby keyword.control.ruby | #bda6ed | italic |
| source.ruby variable.language.self.ruby | #ea9bba | italic bold |
| source.ruby constant.language.symbol.ruby | #5de4c7 | — |
| source.ruby punctuation.definition.constant.ruby | #5de4c7 | — |
| source.ruby entity.name.type.class.ruby | #fffac2 | — |
| source.ruby entity.name.type.module.ruby | #a89fd9 | — |
| source.ruby support.class.ruby | #fffac2 | — |
| text.html.erb meta.embedded.line.erb | #e4e4eb | — |
| text.html.erb punctuation.section.embedded.begin.erb | #5de4c7 | — |
| text.html.erb punctuation.section.embedded.end.erb | #5de4c7 | — |
| source.elixir storage.type.elixir | #fffac2 | — |
| source.elixir keyword.control.elixir | #bda6ed | italic |
| source.elixir constant.language.symbol.elixir | #5de4c7 | — |
| source.elixir entity.name.type.module.elixir | #a89fd9 | — |
| source.elixir keyword.operator.other.elixir | #89ddff | — |
| source.swift storage.type.swift | #fffac2 | — |
| source.swift storage.modifier.swift | #bda6ed | italic |
| source.swift keyword.control.swift | #bda6ed | italic |
| source.swift variable.language.swift | #ea9bba | italic bold |
| source.swift meta.attribute.swift | #e7d66d | — |
| source.kotlin storage.type.kotlin | #fffac2 | — |
| source.kotlin storage.modifier.kotlin | #bda6ed | italic |
| source.kotlin keyword.control.kotlin | #bda6ed | italic |
| source.kotlin variable.language.kotlin | #ea9bba | italic bold |
| source.kotlin meta.annotation.kotlin | #e7d66d | bold |
| source.dart storage.type.dart | #fffac2 | — |
| source.dart storage.modifier.dart | #bda6ed | italic |
| source.dart keyword.control.dart | #bda6ed | italic |
| source.dart variable.language.dart | #ea9bba | italic bold |
| source.dart meta.declaration.dart | #e7d66d | — |
| source.zig storage.type.zig | #fffac2 | — |
| source.zig keyword.control.zig | #bda6ed | italic |
| source.zig storage.modifier.zig | #bda6ed | italic |
| source.zig keyword.type.zig | #fffac2 | — |
| source.sql keyword.other.sql | #bda6ed | italic |
| source.sql keyword.other.DML.sql | #f087bd | bold |
| source.sql keyword.other.DDL.sql | #bda6ed | bold |
| source.sql constant.other.database-name.sql | #fffac2 | — |
| source.sql constant.other.table-name.sql | #fffac2 | — |
| source.sql support.type.sql | #fffac2 | — |
| source.sql support.function.aggregate.sql | #78a9ff | bold |
| source.toml entity.other.attribute-name.toml | #8ab8ff | — |
| source.toml entity.other.attribute-name.table.toml | #fffac2 | bold |
| source.toml keyword.key.toml | #8ab8ff | — |
| text.xml entity.name.tag.xml | #bda6ed | — |
| text.xml entity.other.attribute-name.xml | #add7ff | — |
| text.xml string.quoted.double.xml | #91d7a3 | — |
| text.xml entity.name.tag.namespace.xml | #a89fd9 | — |
| text.xml punctuation.definition.tag.xml | #89ddff | — |
| source.makefile entity.name.function.target.makefile | #78a9ff | bold |
| source.makefile variable.other.makefile | #d7d7de | — |
| source.makefile keyword.control.makefile | #bda6ed | italic |
| source.makefile string.interpolated.makefile | #5de4c7 | — |
| source.shell variable.other | #d7d7de | — |
| source.shell punctuation.definition.variable | #ea9bba | — |
| source.shell keyword.control.shell | #bda6ed | italic |
| source.shell support.function.builtin.shell | #78a9ff | bold |
| meta.jsx.children | #e4e4eb | — |
| support.class.component.tsx, support.class.component.jsx | #fffac2 | — |
| entity.name.tag.tsx, entity.name.tag.jsx | #bda6ed | — |
| variable.object.property.ts, variable.object.property.tsx, variable.object.property.js, variable.object.property.jsx, meta.object-literal.key.ts, meta.object-literal.key.tsx | #8ab8ff | — |
| source.vue entity.name.tag.vue | #bda6ed | — |
| source.vue entity.other.attribute-name.vue | #add7ff | — |
| text.html.vue meta.directive.vue | #e7d66d | bold |
| source.svelte entity.name.tag.svelte | #bda6ed | — |
| source.svelte entity.other.attribute-name.svelte | #add7ff | — |
| text.html.svelte meta.directive.svelte | #e7d66d | bold |
| markup.heading.setext.1 | #78a9ff | bold |
| markup.heading.setext.2 | #5de4c7 | bold |
| markup.italic.markdown | #bda6ed | italic |
| punctuation.definition.italic.markdown | #bda6ed | italic |
| markup.bold.markdown | #d0679d | — |
| punctuation.definition.bold.markdown | #d0679d | bold |
| markup.bold.italic.markdown | #ea9bba | bold italic |
| markup.inline.raw.string.markdown | #fffac2 | — |
| string.other.link.href.markdown | #78a9ff | underline |
| markup.underline.link.markdown | #78a9ff | underline |
| punctuation.definition.link.markdown | #5de4c7 | |
| punctuation.definition.metadata.markdown | #767c9d | — |
| punctuation.definition.raw.markdown | #e7c77d | bold |
| markup.list.unnumbered.markdown | #5de4c7 | |
| markup.list.numbered.markdown | #5de4c7 | |
| markup.strikethrough.markdown | #767c9d | strikethrough |
| meta.paragraph.markdown | #e4e4eb | |
| string.other.link.title.markdown | #5de4c7 | |
| string.other.link.description.markdown | #8ab8ff | |
| markup.italic.emphasis.markdown | #e4e4eb | italic |
| markup.hr.markdown | #767c9d | |
| markup.escape.markdown | #e7d66d | bold |
| string.quoted.double.json | #91d7a3 | — |
| support.type.property-name.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json | #8ab8ff | — |
| string.unquoted.plain.out.yaml | #91d7a3 | — |
| entity.name.tag.yaml | #8ab8ff | — |
| entity.name.type.anchor.yaml | #ea9bba | — |
| variable.other.alias.yaml | #ea9bba | — |
| keyword.control.anchor.yaml | #5de4c7 | — |
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}!`;
}