Rain City Theme
Publisher: DaniSyamThemes in package: 2
An elegant Rain City theme for Visual Studio Code
An elegant Rain City 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 |
|---|---|---|
| meta.tag.sgml.doctype.html | #95A5A6 | italic |
| entity.name.tag.html | #3498DB | bold |
| entity.other.attribute-name.html | #E67E22 | italic |
| string.quoted.double.html, string.quoted.single.html | #2ECC71 | — |
| entity.name.tag.script.html | #E74C3C | bold |
| entity.name.tag.style.html | #9B59B6 | bold |
| punctuation.definition.tag.html | #95A5A6 | — |
| constant.character.entity.html | #9B59B6 | — |
| entity.other.attribute-name.id.html | #F39C12 | bold |
| entity.other.attribute-name.class.html | #F1C40F | — |
| comment.block.html | #7F8C8D | italic |
| constant.character.entity.named.html | #1ABC9C | — |
| meta.embedded.block.html | #E74C3C | — |
| meta.tag.inline.a.html | #3498DB | underline |
| meta.tag.inline.img.html | #16A085 | — |
| entity.name.tag.form.html | #9B59B6 | bold |
| entity.name.tag.input.html | #E67E22 | — |
| entity.name.tag.button.html | #2ECC71 | bold |
| entity.name.tag.heading.html | #ECF0F1 | bold |
| entity.name.tag.p.html | #BDC3C7 | — |
| entity.other.attribute-name.class.css, entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-element.css, entity.name.tag.css | #F39C12 | bold |
| entity.other.attribute-name.id.css | #E67E22 | bold |
| support.type.property-name.css | #3498DB | italic |
| support.constant.property-value.css, constant.numeric.css | #2ECC71 | — |
| keyword.other.important.css | #E74C3C | bold italic |
| keyword.other.unit.css | #9B59B6 | italic |
| support.function.misc.css, support.function.transform.css, support.function.timing-function.css, support.function.url.css | #5DADE2 | italic |
| constant.other.color.rgb-value.css, constant.other.rgb-value.css, constant.other.color.rgb-value.hex.css | #1ABC9C | — |
| support.constant.media.css, support.type.property-name.media.css | #9B59B6 | italic |
| keyword.control.at-rule.css, keyword.control.at-rule.keyframes.css, keyword.control.at-rule.media.css, keyword.control.at-rule.font-face.css | #F39C12 | bold |
| punctuation.terminator.rule.css, punctuation.separator.key-value.css | #95A5A6 | — |
| string.quoted.single.css, string.quoted.double.css | #2ECC71 | — |
| keyword.operator.css | #E74C3C | — |
| variable.css | #9B59B6 | italic |
| meta.attribute-selector.css | #F39C12 | — |
| meta.property-name.css support.type.vendor-prefix.css | #3498DB | italic |
| entity.name.tag.wildcard.css | #E74C3C | bold |
| entity.other.attribute-name.parent-selector.css | #F39C12 | bold |
| keyword.operator.combinator.css | #9B59B6 | bold |
| comment.block.css | #7F8C8D | italic |
| punctuation.definition.heading.markdown | #64B5F6 | bold |
| entity.name.section.markdown | #90CAF9 | bold |
| heading.1.markdown | #FF8A65 | bold |
| heading.2.markdown | #FFAB91 | bold |
| heading.3.markdown | #FFD54F | bold |
| heading.4.markdown, heading.5.markdown, heading.6.markdown | #81C784 | bold |
| markup.fenced_code.block.markdown | #4DB6AC | — |
| fenced_code.block.language.markdown | #CE93D8 | italic |
| markup.inline.raw.string.markdown | #4DB6AC | italic |
| string.other.link.title.markdown | #90CAF9 | underline |
| markup.underline.link.markdown | #81C784 | underline |
| constant.other.reference.link.markdown | #CE93D8 | — |
| punctuation.definition.list.begin.markdown | #FFAB91 | bold |
| markup.bold.markdown | #FF8A65 | bold |
| markup.italic.markdown | #90CAF9 | italic |
| markup.strikethrough.markdown | #B0BEC5 | strikethrough |
| meta.separator.markdown | #CFD8DC | — |
| markup.quote.markdown | #81C784 | italic |
| markup.table.markdown | #90CAF9 | — |
| punctuation.definition.task.markdown | #FFD54F | bold |
| support.type.property-name.json | #64B5F6 | bold |
| string.quoted.double.json, string.quoted.single.json | #81C784 | — |
| constant.numeric.json | #FFB74D | — |
| constant.language.json | #BA68C8 | bold |
| constant.language.null.json | #B0BEC5 | italic |
| punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json | #90A4AE | bold |
| punctuation.definition.array.begin.json, punctuation.definition.array.end.json | #4DB6AC | bold |
| punctuation.separator.dictionary.pair.json, punctuation.separator.array.json | #B0BEC5 | — |
| punctuation.separator.dictionary.key-value.json | #FF8A65 | bold |
| invalid.illegal.expected-dictionary-separator.json | #EF5350 | underline |
| variable, variable.other, variable.parameter, variable.language, variable.function, variable.argument, variable.other.readwrite, variable.other.object, variable.other.property, variable.other.member, variable.other.constant, variable.other.global, variable.other.local, variable.other.class, variable.other.instance | #64B5F6 | — |
| constant, constant.other, constant.character, constant.language, constant.numeric, constant.other.placeholder, constant.other.color, constant.other.symbol, constant.other.enum, constant.other.key, constant.character.escape, constant.language.boolean, constant.language.null, constant.language.undefined | #CE93D8 | bold |
| entity.name.function, support.function, meta.function-call, meta.function, meta.method-call, meta.method, entity.name.function.method, entity.name.function.member, support.function.builtin, support.function.kernel, support.function.magic, variable.function, variable.annotation | #4FC3F7 | italic |
| entity.name.class, entity.name.type.class, support.class, entity.other.inherited-class, meta.class, storage.type.class, entity.name.type.instance, entity.other.attribute-name.class | #80CBC4 | bold |
| entity.name.type.interface, meta.interface, storage.type.interface | #A5D6A7 | italic |
| entity.name.type.enum, meta.enum, storage.type.enum | #FFAB91 | bold |
| entity.name.type, support.type, storage.type, meta.type, entity.other.attribute-name.type, storage.type.builtin, storage.type.primitive, storage.type.generic, storage.type.modifier, storage.type.user-defined, support.type.builtin, support.type.primitive | #81C784 | — |
| keyword, storage.modifier, storage.type.class, storage.type.function, keyword.control, keyword.operator.new, keyword.operator.expression, keyword.operator.cast, keyword.operator.sizeof, keyword.operator.instanceof, keyword.operator.logical, keyword.operator.wordlike, keyword.other, storage.type.function.arrow | #EF9A9A | bold |
| keyword.operator, keyword.operator.arithmetic, keyword.operator.logical, keyword.operator.assignment, keyword.operator.comparison, keyword.operator.increment, keyword.operator.decrement, keyword.operator.relational, keyword.operator.expression, keyword.operator.spread, keyword.operator.pipe, keyword.operator.bitwise | #FFAB91 | — |
| string, string.quoted, string.template, string.interpolated, string.regexp, string.other, string.unquoted, string.quoted.single, string.quoted.double, string.quoted.triple, punctuation.definition.string.begin, punctuation.definition.string.end | #A5D6A7 | — |
| constant.numeric, constant.numeric.integer, constant.numeric.float, constant.numeric.hex, constant.numeric.octal, constant.numeric.binary, constant.numeric.complex, constant.numeric.imaginary, constant.numeric.decimal | #FFB74D | — |
| constant.language.boolean, constant.language.bool, constant.language.true, constant.language.false | #CE93D8 | bold |
| constant.language.null, constant.language.undefined, constant.language.nan | #B0BEC5 | italic |
| comment, comment.line, comment.block, comment.line.double-slash, comment.line.double-dash, comment.line.number-sign, comment.block.documentation, punctuation.definition.comment | #90A4AE | italic |
| punctuation.definition.block, punctuation.definition.parameters, punctuation.section, meta.brace.round, meta.brace.square, meta.brace.curly, punctuation.definition.arguments, punctuation.definition.array, punctuation.definition.begin.bracket, punctuation.definition.end.bracket | #B0BEC5 | — |
| keyword.control.import, keyword.control.export, keyword.control.from, keyword.control.as, keyword.control.default, storage.type.import, storage.type.module, meta.import, meta.export | #CE93D8 | bold |
| meta.decorator, punctuation.decorator, entity.name.function.decorator, meta.decorator.identifier, meta.decorator.general, meta.decorator.annotation, meta.annotation, punctuation.definition.annotation | #FFAB91 | italic |
| string.regexp, constant.regexp, string.regexp.character-class, string.regexp.arbitrary-repetition, punctuation.definition.character-class.regexp | #80CBC4 | — |
| constant.character.escape, constant.character.escape.backslash, constant.character.escape.double-quote, constant.character.escape.single-quote, constant.character.escape.backtick | #FFB74D | bold |
| punctuation.definition.template-expression, meta.template.expression, punctuation.section.embedded, meta.embedded | #EF9A9A | — |
| variable.language.this, variable.language.self, variable.language.super, variable.language.special | #EF9A9A | italic |
| variable.other.property, variable.other.object.property, meta.object-literal.key, entity.name.variable.property, support.variable.property, support.type.property-name | #64B5F6 | — |
| meta.method.declaration, meta.method-call, meta.method.body, entity.name.function.method, support.function.method | #4FC3F7 | italic |
| entity.name.namespace, meta.namespace, storage.modifier.namespace | #80CBC4 | bold |
| entity.name.module, support.module, meta.module | #A5D6A7 | bold |
| entity.name.exception, support.type.exception, keyword.control.catch, keyword.control.try, keyword.control.throw, keyword.control.finally | #EF9A9A | bold |
| entity.name.label, constant.other.label | #CE93D8 | — |
| entity.name.function.operator, keyword.operator.overload, storage.type.operator | #FFAB91 | bold italic |
| keyword.control.flow, keyword.control.conditional, keyword.control.loop, keyword.control.return, keyword.control.switch, keyword.control.case, keyword.control.default | #EF9A9A | bold |
| storage.modifier.pointer, keyword.operator.address, keyword.operator.dereference | #CE93D8 | — |
| storage.modifier.lifetime, entity.name.lifetime, punctuation.definition.lifetime | #FFAB91 | italic |
| meta.preprocessor, keyword.control.directive, punctuation.definition.directive | #B0BEC5 | — |
| entity.name.function.macro, meta.preprocessor.macro, storage.type.macro | #CE93D8 | bold italic |
| entity.name.type.parameter, variable.parameter.type, storage.type.parameter | #FFB74D | italic |
| storage.type.struct, entity.name.type.struct, keyword.other.struct | #80CBC4 | bold |
| storage.type.union, entity.name.type.union, keyword.other.union | #A5D6A7 | bold |
| storage.type.trait, entity.name.type.trait, keyword.other.trait | #CE93D8 | bold italic |
| keyword.control.flow.async, keyword.control.flow.await, entity.name.type.delegate, storage.modifier.async | #64B5F6 | bold italic |
| keyword.operator.bitwise.shift, keyword.operator.bitwise.and, keyword.operator.bitwise.or, keyword.operator.bitwise.xor | #FFAB91 | — |
| keyword.operator.comparison, keyword.operator.relational, keyword.operator.equality | #EF9A9A | — |
| keyword.operator.ternary, punctuation.separator.colon-question | #FFB74D | — |
| punctuation.definition.generic.begin, punctuation.definition.generic.end, meta.generic, storage.type.generic | #CE93D8 | italic |
| meta.attribute, storage.modifier.attribute, punctuation.definition.attribute | #FFB74D | italic |
| meta.annotation, punctuation.definition.annotation | #FFAB91 | italic |
| keyword.operator.cast, keyword.operator.type.annotation, storage.type.annotation | #81C784 | bold |
| meta.tuple, storage.type.tuple | #80CBC4 | — |
| meta.function.closure, storage.type.function.closure | #CE93D8 | italic |
| storage.modifier.mutable, storage.type.mutable | #EF9A9A | underline |
| keyword.coroutine, storage.type.coroutine | #64B5F6 | bold italic |
| support.function.reflection, support.type.reflection, storage.type.reflection | #CE93D8 | italic |
| support.function.intrinsic, support.type.intrinsic | #4FC3F7 | bold |
| keyword.other.unsafe, storage.modifier.unsafe | #EF9A9A | bold underline |
| storage.modifier.volatile | #FFB74D | bold |
| storage.modifier.inline | #81C784 | italic |
| storage.modifier.static | #CE93D8 | bold |
| storage.modifier.const | #80CBC4 | bold |
| storage.modifier.final | #FFAB91 | bold underline |
| storage.modifier.abstract | #CE93D8 | italic underline |
| storage.modifier.override | #EF9A9A | italic |
| storage.modifier.virtual | #64B5F6 | italic |
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}!`;
}