Botany Theme
Publisher: Prabin PantaThemes in package: 1
Botany theme for Visual Studio Code
Botany theme for Visual Studio Code
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 |
|---|---|---|
| — | #C5C8C6 | — |
| meta.embedded, source.groovy.embedded, variable.legacy.builtin.python | #C5C8C6 | — |
| comment | #9A9B99 | |
| string | #D1DED3 | |
| string source | #D1DED3 | |
| constant.numeric | #D1DED3 | |
| constant.language | #408080 | |
| constant.character, constant.other | #8080FF | |
| support | #D1DED3 | |
| storage | #9872A2 | |
| entity.name.class, entity.name.type, entity.name.namespace, entity.name.scope-resolution | #D1DED3 | |
| entity.other.inherited-class, punctuation.separator.namespace.ruby | #D1DED3 | |
| entity.name.function | #D1DED3 | |
| variable.parameter | #6089B4 | |
| support.function | #9872A2 | |
| keyword | #676867 | |
| variable.other, variable.js, punctuation.separator.variable | #6089B4 | |
| invalid | #7eb08a | |
| variable.other.php, variable.other.normal | #6089B4 | |
| meta.function-call.object | #9872A2 | |
| variable.other.property | #9872A2 | |
| keyword.control, keyword.operator.new.cpp, keyword.operator.delete.cpp, keyword.other.using, keyword.other.directive.using, keyword.other.operator | #9872A2 | |
| meta.tag | #D0B344 | |
| entity.name.tag | #6089B4 | |
| meta.doctype, meta.tag.sgml-declaration.doctype, meta.tag.sgml.doctype | #9AA83A | |
| meta.tag.inline source, text.html.php.source | #9AA83A | |
| meta.tag.other, entity.name.tag.style, entity.name.tag.script, meta.tag.block.script, source.js.embedded punctuation.definition.tag.html, source.css.embedded punctuation.definition.tag.html | #9872A2 | |
| entity.other.attribute-name, meta.tag punctuation.definition.string | #D0B344 | |
| meta.tag string -source -punctuation, text source text meta.tag string -punctuation | #6089B4 | |
| punctuation.section.embedded -(source string source punctuation.section.embedded), meta.brace.erb.html | #D0B344 | |
| meta.toc-list.id | #9AA83A | — |
| string.quoted.double.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.end.html source, string.quoted.double.html source | #9AA83A | |
| punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end | #6089B4 | |
| meta.selector entity.other.attribute-name.id | #9872A2 | |
| source.css support.type.property-name | #676867 | |
| meta.property-group support.constant.property-value, meta.property-value support.constant.property-value | #CE6700 | |
| variable.language.js | #CE6700 | — |
| punctuation.definition.template-expression, punctuation.section.embedded.coffee | #D08442 | — |
| meta.template.expression | #C5C8C6 | — |
| meta.function-call.object.php | #D0B344 | |
| punctuation.definition.string.end.php, punctuation.definition.string.begin.php | #9AA83A | — |
| source.php.embedded.line.html | #676867 | — |
| punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php | #D08442 | |
| constant.other.symbol.ruby | #9AA83A | |
| variable.language.ruby | #D0B344 | |
| keyword.other.special-method.ruby | #D9B700 | |
| punctuation.section.embedded.begin.ruby, punctuation.section.embedded.end.ruby | #D08442 | — |
| keyword.other.DML.sql | #D0B344 | |
| meta.diff, meta.diff.header | #E0EDDD | italic |
| markup.deleted | #7eb08a | |
| markup.changed | #cb4b16 | |
| markup.inserted | #219186 | — |
| markup.quote | #9872A2 | — |
| markup.list | #9AA83A | — |
| markup.bold, markup.italic | #6089B4 | — |
| markup.inline.raw | #FF0080 | |
| markup.heading | #D0B344 | — |
| markup.heading.setext | #D0B344 | |
| markup.heading.markdown | — | bold |
| markup.quote.markdown | #9AA83A | italic |
| markup.bold.markdown | — | bold |
| string.other.link.title.markdown,string.other.link.description.markdown | #AE81FF | — |
| markup.underline.link.markdown,markup.underline.link.image.markdown | #AE81FF | — |
| markup.italic.markdown | — | italic |
| markup.strikethrough | — | strikethrough |
| markup.list.unnumbered.markdown, markup.list.numbered.markdown | #9AA83A | — |
| punctuation.definition.list.begin.markdown | #9AA83A | — |
| token.info-token | #6796e6 | — |
| token.warn-token | #cd9731 | — |
| token.error-token | #7eb08a | — |
| token.debug-token | #b267e6 | — |
| variable.language | #d2b48c | — |
| keyword.other.import.java, keyword.other.package.java, keyword.other.import.kotlin, keyword.other.package.kotlin, storage.modifier.java, storage.modifier.kotlin, keyword.control.java, keyword.control.kotlin, keyword.operator.instanceof.java, keyword.operator.new.java | #ba8eaf | — |
| storage.type.annotation.java, storage.type.annotation.kotlin, punctuation.definition.annotation.java, punctuation.definition.annotation.kotlin | #d2b48c | — |
| entity.name.type.class.java, entity.name.type.class.kotlin, entity.name.type.interface.java, entity.name.type.interface.kotlin | #7ea4b0 | — |
| keyword.other.kotlin, storage.type.kotlin, keyword.operator.declaration.kotlin | #ba8eaf | italic |
| string.quoted.double.kotlin, punctuation.definition.string.begin.kotlin, punctuation.definition.string.end.kotlin, variable.parameter.kotlin | #9AA83A | — |
| storage.type.generic.java, storage.type.generic.kotlin, storage.type.java, storage.type.kotlin, storage.type.object.array.java | #8A7EB0 | — |
| entity.name.function.java, entity.name.function.kotlin | #D1DED3 | — |
| variable.other.property.kotlin, variable.other.object.property.kotlin | #D1DED3 | — |
| entity.name.type.object.kotlin, variable.language.kotlin | #D1DED3 | italic |
| string.quoted.double.terminal, string.quoted.single.terminal | #A7CCCF | — |
| constant.numeric.terminal | #E1C185 | — |
| keyword.terminal | #C99178 | — |
| comment.terminal | #7C9C97 | italic |
| entity.name.function.terminal | #B5CEA8 | — |
| entity.name.class.terminal | #8FB6CC | — |
| variable.other.terminal | #D4AA9A | — |
| meta.function-call.terminal | #e7e7a9 | — |
| entity.name.tag.terminal | #9CDCFE | — |
| entity.other.attribute-name.terminal | #CE9178 | — |
| variable.parameter.function.terminal | #AAB9C5 | — |
| variable.parameter.function.type.terminal | #C4C1B8 | — |
| variable.parameter.function.name.terminal | #C3CEA3 | — |
| variable.parameter.function.value.terminal | #B88E84 | — |
| meta.function.decorator.python, entity.name.function.decorator.python | #D9B07E | italic |
| entity.name.tag.jsx, entity.name.tag.tsx | #AC9DB1 | — |
| meta.property-value.css, support.constant.property-value.css | #93AD88 | — |
| meta.object-literal.key.js, meta.object-literal.key.ts | #BFA89E | — |
| markup.inline.raw.markdown, markup.inline.raw.string.markdown | #A7DBCE | — |
| entity.name.tag.yaml, support.type.property-name.json | #CBCB92 | — |
| keyword.other.import.java, keyword.other.package.java, keyword.other.import.kotlin, keyword.other.package.kotlin, storage.modifier.java, storage.modifier.kotlin, keyword.control.java, keyword.control.kotlin, keyword.operator.instanceof.java, keyword.operator.new.java | #ba8eaf | — |
| storage.type.primitive.java, storage.type.primitive.kotlin, storage.type.java, storage.type.kotlin, storage.type.generic.java, storage.type.generic.kotlin, storage.type.object.array.java | #8A7EB0 | — |
| support.class.java, support.class.builtin.java, entity.name.type.class.java | #7ea4b0 | — |
| support.function.java, support.class.java, variable.other.object.java, variable.other.object.property.java, meta.method-call.java, meta.method.java | #7eb08a | — |
| keyword.control.flow.python, keyword.control.import.python, keyword.control.loop.python, storage.type.function.python, storage.type.class.python, storage.modifier.declaration.python | #ba8eaf | — |
| support.function.builtin.python, support.type.python, support.variable.magic.python | #7eb08a | italic |
| keyword.control.js, keyword.control.ts, keyword.control.flow.js, keyword.control.flow.ts, storage.type.js, storage.type.ts, storage.type.function.js, storage.type.function.ts, storage.type.class.js, storage.type.class.ts, storage.modifier.js, storage.modifier.ts | #ba8eaf | — |
| support.class.builtin.js, support.class.builtin.ts, support.function.js, support.function.ts, support.variable.dom.js, support.variable.dom.ts, support.constant.js, support.constant.ts | #7eb08a | — |
| keyword.control.c, keyword.control.cpp, storage.type.c, storage.type.cpp, storage.modifier.c, storage.modifier.cpp, keyword.operator.sizeof.c, keyword.operator.sizeof.cpp | #ba8eaf | — |
| storage.type.built-in.primitive.c, storage.type.built-in.primitive.cpp, entity.name.type.c, entity.name.type.cpp | #8A7EB0 | — |
| keyword.control.go, keyword.function.go, keyword.import.go, keyword.package.go, keyword.type.go, keyword.var.go, storage.type.go | #ba8eaf | — |
| support.function.go, support.type.builtin.go | #7eb08a | — |
| keyword.control.php, storage.type.php, storage.modifier.php, keyword.other.namespace.php | #ba8eaf | — |
| support.function.builtin.php, support.class.builtin.php | #7eb08a | — |
| keyword.control.ruby, keyword.control.def.ruby, keyword.control.class.ruby, keyword.control.module.ruby, keyword.control.ruby.start-block, storage.type.class.ruby, storage.type.module.ruby, storage.type.function.ruby | #ba8eaf | — |
| support.function.builtin.ruby, support.class.ruby | #7eb08a | — |
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}!`;
}