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 | #d4d4d4 | — |
| 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 | #D9BB72 | — |
| storage.type.function | #ea9b80 | — |
| storage.type.class | #ea9b80 | — |
| comment | #5d6e7a | — |
| operator | #ea9b80 | — |
| number | #598DA6 | — |
| number.hex | #598DA6 | — |
| numeric.css | #598DA6 | — |
| regexp | #FD9231 | — |
| annotation | #cc6666 | — |
| type | #3DC9B0 | — |
| boolean | #598DA6 | — |
| constant.numeric | #598DA6 | — |
| constant.language.boolean | #598DA6 | — |
| delimiter | #DCDCDC | — |
| delimiter.html | #808080 | — |
| delimiter.xml | #808080 | — |
| tag | #D9BB72 | — |
| meta.scss | #A79873 | — |
| meta.tag | #d4d4d4 | — |
| 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 | #ea9b80 | — |
| 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 | #a7c9de | — |
| meta.tag keyword.operator.assignment.js.jsx, storage.type.function.arrow.js.jsx, punctuation.separator.key-value.js, variable.parameter, source.js meta.jsx.children.js.jsx | #d4d4d4 | — |
| variable variable.other.property.js, variable.other.property.js variable, variable.other.property.js, support.type.property-name.css, entity.other.attribute-name.html meta.tag, meta.tag entity.other.attribute-name.html, entity.other.attribute-name.js | #a7c9de | — |
| meta.property-value.css, meta.property-value.css keyword, string.quoted.double.html string, string string.quoted.double.html, string.quoted.double.html | #598da6 | — |
| meta.selector.css | #d9bb73 | — |
| punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, source.vue meta.tag, source.js meta.tag, meta.jsx.children.js keyword, meta.tag.js keyword, meta.tag keyword.operator.assignment.js.jsx | #808080 | — |
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}!`;
}