Synesthesia
Publisher: Dr F WordThemes in package: 1
Dark theme with meaningful colours!
Dark theme with meaningful colours!
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 | #666 | italic |
| string.quoted.docstring.multi.python | #666 | italic |
| string.quoted.docstring.multi.python | #666 | — |
| punctuation.definition.comment | #666 | — |
| log.date | #5eb34d | — |
| markup.inline.raw.string | #b2b34d | — |
| markup.underline.link | #4d77b3 | — |
| fenced_code.block.language | #b36f4d | — |
| constant.numeric.json | #b3804d | — |
| constant.numeric.decimal | #b3804d | — |
| punctuation.separator.dot.decimal | #b3804d | — |
| constant.numeric.css | #b3804d | — |
| constant.numeric.float | #b3884d | — |
| constant.character.format | #b3914d | — |
| constant.other.caps | #5d4db3 | — |
| constant.other.option | #4db377 | — |
| constant.language | #b3994d | — |
| string.quoted.single | #b3aa4d | — |
| string.quoted.double | #b2b34d | — |
| string.template | #b3914d | — |
| string.unquoted.argument.shell | #90b34d | — |
| string.other.link | #b34d77 | — |
| entity.name | — | bold |
| entity.name.decorator | #4d4db3 | — |
| entity.name.section | #b3aa4d | — |
| entity.name.function | #4db355 | none |
| entity.name.function.decorator | #4db355 | — |
| entity.other.inherited-class | #4d7fb3 | bold |
| entity.other.keyframe-offset | #b34d99 | — |
| entity.name.tag | #4d66b3 | bold |
| entity.name.type | #4d4db3 | — |
| entity.name.variable | #4daab3 | none |
| entity.name.namespace | #994db3 | — |
| entity.other.attribute-name | #4d90b3 | — |
| keyword.key.toml | #4d90b3 | — |
| entity.other.attribute-name.class | #6f4db3 | — |
| invalid | #FF00FF | — |
| keyword.control | #b3774d | — |
| keyword.control.as | #b34da1 | — |
| keyword.control.default | #b35e4d | — |
| keyword.control.import | #b3554d | — |
| keyword.control.at-rule | #b35e4d | — |
| keyword.control.export | #b3a24d | — |
| keyword.control.trycatch | #AA444d | — |
| keyword.control.continue | #b3774d | — |
| keyword.control.flow | #b3774d | — |
| keyword.control.conditional | #b36f4d | — |
| keyword.control.if | #b36f4d | — |
| keyword.control.for | #b3664d | — |
| keyword.control.loop | #b3664d | — |
| keyword.other.rust | #b34d80 | — |
| keyword.other.fn.rust | #b3774d | — |
| keyword.operator | #b34d6e | — |
| keyword.operator.comparison | #b34d55 | — |
| keyword.operator.borrow | #b34d80 | — |
| keyword.operator.expression | #b34d80 | — |
| keyword.operator.question | #b34d80 | — |
| keyword.operator.new | #b34d90 | — |
| keyword.operator.relational | #b34d5e | — |
| keyword.operator.logical | #b34d66 | — |
| keyword.operator.math | #b34d6e | — |
| keyword.operator.arithmetic | #b34d6e | — |
| keyword.operator.assignment | #b34d77 | — |
| keyword.operator.key-value | #FFFFFF | — |
| keyword.operator.namespace | #FFFFFF | — |
| meta | #666 | — |
| meta.paragraph | #4db391 | — |
| meta.fstring | #b3914d | — |
| meta.interpolation | #b3914d | — |
| meta.import | #b3554d | — |
| meta.use | #b3554d | — |
| meta.at-rule.media | #4d99b3 | — |
| meta.jsx.children | #a1b34d | — |
| meta.tag | #666 | — |
| meta.attribute | #4d4db3 | — |
| meta.function-call | #4db355 | — |
| meta.function.call | #4DAAB3 | — |
| meta.property-list | #4daab3 | — |
| meta.function.calc | #4daab3 | — |
| meta.function.parameters | #4d4db3 | — |
| meta.block | #4d99b3 | — |
| meta.bracket.square.access | #4d99b3 | — |
| meta.parens | #4d99b3 | — |
| meta.item-access | #4d77b3 | — |
| meta.object-literal | #4d66b3 | — |
| meta.property-value | #b2b34d | — |
| variable.argument | #4d99b3 | — |
| variable.parameter | #4d99b3 | — |
| variable.object.property | #4d90b3 | — |
| variable.object.property | #4d90b3 | — |
| variable.language | #4db399 | — |
| variable.language.self | #4db399 | — |
| variable.language.this | #4db391 | — |
| variable.other | #4d6eb3 | — |
| variable.other.object | #4d6eb3 | — |
| variable.other.object.property | #4d6eb3 | — |
| variable.other.assignment | #4d6eb3 | — |
| variable.other.property | #4d6eb3 | — |
| variable.other.constant | #4d6eb3 | — |
| variable.other.read | #4db3a2 | — |
| variable.other.readwrite | #4db3aa | — |
| variable.other.write | #4db2b3 | — |
| variable.other.rust | #4daab3 | — |
| support.constant.property-value | #b2b34d | — |
| support.constant.font-name | #b3aa4d | — |
| support.function | #4db355 | bold |
| support.class.component | #4d7fb3 | bold |
| support.type | #4d7fb3 | — |
| support.type.primitive | #4d66b3 | bold |
| support.type.property-name | #4D90B3 | — |
| support.type.vendored.property-name | #4da1b3 | — |
| support.variable.property | #4da1b3 | — |
| storage.modifier | #914db3 | — |
| storage.type | #884db3 | — |
| storage.type.function | #b3774d | — |
| storage.type.class | #6f4db3 | — |
| storage.type.interface | #7f4db3 | — |
| storage.type.enum | #774db3 | — |
| punctuation.definition.string | #aab34d | — |
| punctuation.definition.tag | #664db3 | — |
| punctuation.definition.decorator | #b34d88 | — |
| punctuation.comma | #FFFFFF | — |
| punctuation.separator | #FFFFFF | — |
| punctuation.separator.dictionary | #FFFFFF | — |
| punctuation.separator.arguments | #ffffff | — |
| punctuation.separator.key-value | #ffffff | — |
| punctuation.separator.comma | #ffffff | — |
| punctuation.separator.parameter | #ffffff | — |
| punctuation.separator.parameters | #ffffff | — |
| punctuation.separator.period | #ffffff | — |
| punctuation.accessor | #ffffff | — |
| punctuation.terminator.statement | #ffffff | — |
| punctuation.definition | #b34d4d | — |
| punctuation.brackets.angle | #664DB3 | — |
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}!`;
}