Theodora
Publisher: ckpedersenThemes in package: 5
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 |
|---|---|---|
| #D4D4D4 | — | |
| invalid | #f44747 | — |
| variable | #ffffff | — |
| variable.predefined | #ea9b80 | — |
| variable.parameter | #d4d4d4 | — |
| identifier | #d4d4d4 | — |
| identifier.const | #BD9AC2 | — |
| identifier.const.class | #75AAFF | — |
| identifier.class | #75AAFF | — |
| identifier.const.tag | #75AAFF | — |
| identifier.tag | #75AAFF | — |
| identifier.def | #75AAFF | — |
| identifier.key | #a7c9de | — |
| entity.name.type | #d4d4d4 | — |
| entity.name.function | #d4d4d4 | — |
| storage.type.js.jsx | #ea9b80 | — |
| entity.name.property | #75AAFF | — |
| entity.name.tag | #ff8383 | — |
| storage.type.function | #ea9b80 | — |
| storage.type.class | #ea9b80 | — |
| comment | #4A5568 | — |
| operator | #ea9b80 | — |
| number | #598DA6 | — |
| number.hex | #598DA6 | — |
| numeric.css | #598DA6 | — |
| regexp | #FD9231 | — |
| annotation | #cc6666 | — |
| type | #3DC9B0 | — |
| boolean | #598DA6 | — |
| constant.numeric | #ff8383 | — |
| delimiter | #DCDCDC | — |
| delimiter.html | #808080 | — |
| delimiter.xml | #808080 | — |
| tag | #D9BB72 | — |
| meta.scss | #A79873 | — |
| meta.tag | #93ddfd | — |
| entity.other.attribute-name.js.jsx | #a7c9de | — |
| metatag | #DD6A6F | — |
| metatag.content.html | #9CDCFE | — |
| metatag.html | #569CD6 | — |
| metatag.xml | #569CD6 | — |
| key | #a7c9de | — |
| string.key.json | #9CDCFE | — |
| string.value.json | #CE9178 | — |
| attribute.name | #a7c9de | — |
| attribute.value | #598DA6 | — |
| attribute.value.number.css | #598DA6 | — |
| attribute.value.unit.css | #598DA6 | — |
| attribute.value.hex.css | #598DA6 | — |
| string | #7da4b7 | — |
| string.sql | #B7DE95 | — |
| keyword, storage.type.js | #93ddfd | — |
| keyword.flow | #ea9b80 | — |
| keyword.json | #ea9b80 | — |
| keyword.flow.scss | #ea9b80 | — |
| operator.scss | #909090 | — |
| operator.sql | #778899 | — |
| operator.swift | #909090 | — |
| predefined.sql | #FF00FF | — |
| entity.name.selector.css | #D9BB72 | — |
| support.type.property-name.css | #75AAFF | — |
| meta.object-literal.key | #ffe484 | — |
| support.type.property-name.json, support.function.js.jsx, entity.name.function | #d9a9ff | — |
| punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.section.property-list.begin.bracket.curly.css, text.html.derivative punctuation.terminator.rule.css, constant.other.color.rgb-value.hex.css, meta.function.color.css, punctuation.section.property-list.end.bracket.curly.css, source.json, punctuation.definition.string.begin.js, punctuation.definition.string.end.js, source.vue | #93ddfd | — |
| string.quoted.double.html, string.quoted.double.json, string | #b5f4a5 | — |
| meta.selector.css, meta.tag entity.other.attribute-name.html, support.type.property-name.css, entity.other.attribute-name.js.jsx, entity.name.function | #ffe484 | — |
| constant.language.boolean, keyword, storage.type.js.jsx, storage.type.function | #ff8383 | — |
| text.html.derivative, source.css | #ffffff | — |
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}!`;
}