Wei Glass Theme
Publisher: Ethan WilkinsThemes in package: 2
A glassmorphism VS Code theme — translucent panels with classical Chinese elegance (胭脂/玉/金/紫). Background wallpaper included.
A glassmorphism VS Code theme — translucent panels with classical Chinese elegance (胭脂/玉/金/紫). Background wallpaper included.
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 |
|---|---|---|
| emphasis | — | italic |
| strong | — | bold |
| header | #9B7FCF | — |
| meta.diff, meta.diff.header | #7A7B94 | — |
| markup.inserted | #4CAF7F | — |
| markup.deleted | #D6406A | — |
| markup.changed | #D4A853 | — |
| invalid | #D6406A | underline italic |
| invalid.deprecated | #2C2D3E | underline italic |
| entity.name.filename | #B8943E | — |
| markup.error | #D6406A | — |
| markup.underline | — | underline |
| markup.bold | #D4A853 | bold |
| markup.heading | #9B7FCF | bold |
| markup.italic | #B8943E | italic |
| beginning.punctuation.definition.list.markdown, beginning.punctuation.definition.quote.markdown, punctuation.definition.link.restructuredtext | #7EC8E3 | — |
| markup.inline.raw, markup.raw.restructuredtext | #4CAF7F | — |
| markup.underline.link, markup.underline.link.image | #7EC8E3 | — |
| meta.link.reference.def.restructuredtext, punctuation.definition.directive.restructuredtext, string.other.link.description, string.other.link.title | #D03A88 | — |
| entity.name.directive.restructuredtext, markup.quote | #B8943E | italic |
| meta.separator.markdown | #7A7B94 | — |
| fenced_code.block.language, markup.raw.inner.restructuredtext, markup.fenced_code.block.markdown punctuation.definition.markdown | #4CAF7F | — |
| entity.name.type.class, entity.name.class | #7EC8E3 | normal |
| keyword.expressions-and-types.swift, keyword.other.this, variable.language, variable.language punctuation.definition.variable.php, variable.other.readwrite.instance.ruby, variable.parameter.function.language.special | #9B7FCF | italic |
| entity.other.inherited-class | #7EC8E3 | italic |
| comment, punctuation.definition.comment, unused.comment, wildcard.comment | #A8A9BD | — |
| comment keyword.codetag.notation, comment.block.documentation keyword, comment.block.documentation storage.type.class | #D03A88 | — |
| comment.block.documentation entity.name.type | #7EC8E3 | italic |
| comment.block.documentation entity.name.type punctuation.definition.bracket | #7EC8E3 | — |
| comment.block.documentation variable | #D4A853 | italic |
| constant, variable.other.constant | #9B7FCF | — |
| constant.character.escape, constant.character.string.escape, constant.regexp | #D03A88 | — |
| entity.name.tag | #E04A7C | — |
| entity.other.attribute-name.parent-selector | #E04A7C | — |
| entity.other.attribute-name | #4CAF7F | italic |
| entity.name.function, meta.function-call.object, meta.function-call.php, meta.function-call.static, meta.method-call.java meta.method, meta.method.groovy, support.function.any-method.lua, keyword.operator.function.infix | #4CAF7F | — |
| entity.name.variable.parameter, meta.at-rule.function variable, meta.at-rule.mixin variable, meta.function.arguments variable.other.php, meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql, variable.parameter | #D4A853 | italic |
| meta.decorator variable.other.readwrite, meta.decorator variable.other.property | #4CAF7F | italic |
| meta.decorator variable.other.object | #4CAF7F | — |
| keyword, punctuation.definition.keyword | #E04A7C | — |
| keyword.control.new, keyword.operator.new | — | bold |
| meta.selector | #E04A7C | — |
| support | #7EC8E3 | italic |
| support.function.magic, support.variable, variable.other.predefined | #9B7FCF | regular |
| support.function, support.type.property-name | — | regular |
| constant.other.symbol.hashkey punctuation.definition.constant.ruby, entity.other.attribute-name.placeholder punctuation, entity.other.attribute-name.pseudo-class punctuation, entity.other.attribute-name.pseudo-element punctuation, meta.group.double.toml, meta.group.toml, meta.object-binding-pattern-variable punctuation.destructuring, punctuation.colon.graphql, punctuation.definition.block.scalar.folded.yaml, punctuation.definition.block.scalar.literal.yaml, punctuation.definition.block.sequence.item.yaml, punctuation.definition.entity.other.inherited-class, punctuation.function.swift, punctuation.separator.dictionary.key-value, punctuation.separator.hash, punctuation.separator.inheritance, punctuation.separator.key-value, punctuation.separator.key-value.mapping.yaml, punctuation.separator.namespace, punctuation.separator.pointer-access, punctuation.separator.slice, string.unquoted.heredoc punctuation.definition.string, support.other.chomping-indicator.yaml, punctuation.separator.annotation | #E04A7C | — |
| keyword.operator.other.powershell, keyword.other.statement-separator.powershell, meta.brace.round, meta.function-call punctuation, punctuation.definition.arguments.begin, punctuation.definition.arguments.end, punctuation.definition.entity.begin, punctuation.definition.entity.end, punctuation.definition.tag.cs, punctuation.definition.type.begin, punctuation.definition.type.end, punctuation.section.scope.begin, punctuation.section.scope.end, punctuation.terminator.expression.php, storage.type.generic.java, string.template meta.brace, string.template punctuation.accessor | #2C2D3E | — |
| meta.string-contents.quoted.double punctuation.definition.variable, punctuation.definition.interpolation.begin, punctuation.definition.interpolation.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end, punctuation.section.embedded.begin, punctuation.section.embedded.coffee, punctuation.section.embedded.end, punctuation.section.embedded.end source.php, punctuation.section.embedded.end source.ruby, punctuation.definition.variable.makefile | #E04A7C | — |
| entity.name.function.target.makefile, entity.name.section.toml, entity.name.tag.yaml, variable.other.key.toml | #7EC8E3 | — |
| constant.other.date, constant.other.timestamp | #D4A853 | — |
| variable.other.alias.yaml | #4CAF7F | italic underline |
| storage, meta.implementation storage.type.objc, meta.interface-or-protocol storage.type.objc, source.groovy storage.type.def | #E04A7C | regular |
| entity.name.type, keyword.primitive-datatypes.swift, keyword.type.cs, meta.protocol-list.objc, meta.return-type.objc, source.go storage.type, source.groovy storage.type, source.java storage.type, source.powershell entity.other.attribute-name, storage.class.std.rust, storage.type.attribute.swift, storage.type.c, storage.type.core.rust, storage.type.cs, storage.type.groovy, storage.type.objc, storage.type.php, storage.type.haskell, storage.type.ocaml | #7EC8E3 | italic |
| entity.name.type.type-parameter, meta.indexer.mappedtype.declaration entity.name.type, meta.type.parameters entity.name.type | #D4A853 | — |
| storage.modifier | #E04A7C | — |
| string.regexp, constant.other.character-class.set.regexp, constant.character.escape.backslash.regexp | #B8943E | — |
| punctuation.definition.group.capture.regexp | #E04A7C | — |
| string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end | #D6406A | — |
| punctuation.definition.character-class.regexp | #7EC8E3 | — |
| punctuation.definition.group.regexp | #D4A853 | — |
| punctuation.definition.group.assertion.regexp, keyword.operator.negation.regexp | #D6406A | — |
| meta.assertion.look-ahead.regexp | #4CAF7F | — |
| string | #B8943E | — |
| punctuation.definition.string.begin, punctuation.definition.string.end | #9B7FCF99 | — |
| meta.object-literal.key-meta.object-literal.key string.quoted, meta.object-literal.key string.quoted | #7EC8E3 | — |
| source.json meta.structure.dictionary.json string.quoted.json, source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.json | #B8943E | — |
| variable, variable.other | #2C2D3E | — |
| variable.other.readwrite | #2C2D3E | — |
| variable.other.property | #2C2D3E | — |
| variable.other.object | #2C2D3E | — |
| punctuation.definition.tag.begin, punctuation.definition.tag.end | #E04A7C | — |
| meta.tag | #E04A7C | — |
| punctuation.definition.tag, punctuation.separator.key-value.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html | #D03A88 | — |
| meta.tag.meta.attribute.string.html, meta.tag.inline.any.html | #B8943E | — |
| entity.other.attribute-name.html, entity.other.attribute-name | #4CAF7F | italic |
| punctuation.definition.block | #2C2D3E | — |
| keyword.control.flow, keyword.control.conditional, keyword.control.loop, keyword.control.switch, keyword.control.trycatch, keyword.control.import, keyword.control.export, keyword.control.return, keyword.control.yield, keyword.control.await, keyword.control.break, keyword.control.continue, keyword.control.throw, keyword.control.with, keyword.control.pass, keyword.control.directive | #E04A7C | — |
| keyword.operator.arithmetic, keyword.operator.comparison, keyword.operator.assignment, keyword.operator.logical, keyword.operator.increment, keyword.operator.decrement, keyword.operator.bitwise, keyword.operator.spread, keyword.operator.optional.chaining, keyword.operator.null-coalescing, keyword.operator.expression, keyword.operator.typeof, keyword.operator.instanceof, keyword.operator.delete, keyword.operator.void, keyword.operator.ternary, keyword.operator.operator, keyword.operator.range, keyword.operator.pipe | #E04A7C | — |
| keyword.other.dotenv, keyword.other.substitution, keyword.other.pseudo, keyword.other.special-method, keyword.other.unit | #E04A7C | — |
| variable.other.constant.ruby | #9B7FCF | — |
| constant.language | #9B7FCF | — |
| constant.numeric | #9B7FCF | — |
| constant.other.color | #9B7FCF | — |
| constant.other.character | #9B7FCF | — |
| string.quoted | #B8943E | — |
| string.quoted.single | #D4A853 | — |
| string.quoted.double | #D4A853 | — |
| string.quoted.triple | #D4A853 | — |
| string.unquoted | #B8943E | — |
| string.interpolated | #B8943E | — |
| string.template | #B8943E | — |
| string.key | #7EC8E3 | — |
| string.tag | #B8943E | — |
| string.value | #B8943E | — |
| entity.name.section | #9B7FCF | bold |
| entity.name.label | #E04A7C | — |
| entity.name.namespace | #7EC8E3 | — |
| support.class, support.type, support.constant, support.variable, support.function | #7EC8E3 | — |
| punctuation.definition.annotation, punctuation.definition.decorator | #4CAF7F | — |
| meta.preprocessor, meta.preprocessor.namespace, meta.preprocessor.string | #E04A7C | — |
| meta.diff.range, meta.diff.index, meta.separator.diff, meta.diff.header.from-file, meta.diff.header.to-file | #7EC8E3 | — |
| meta.diff.range | #9B7FCF | — |
| markup.deleted.diff | #D6406A | — |
| markup.inserted.diff | #4CAF7F | — |
| meta.property-list.css meta.property-value.css variable | #7EC8E3 | — |
| meta.property-list.css meta.property-name.css | #E04A7C | — |
| support.type.property-name.css, support.type.vendor.property-name.css | #E04A7C | — |
| source.css meta.property-list.css entity.name.tag.css | #D03A88 | — |
| source.css entity.name.tag.css | #E04A7C | — |
| source.css entity.other.attribute-name.class.css | #D4A853 | — |
| source.css entity.other.attribute-name.id.css | #D4A853 | — |
| source.css meta.property-value.css constant | #9B7FCF | — |
| source.css meta.property-list.css keyword | #E04A7C | — |
| support.function.transform.css, support.function.filter.css, support.function.color.css | #4CAF7F | — |
| keyword.other.important.css, keyword.other.important.sass, keyword.other.important.scss, keyword.other.important.less | #E04A7C | bold |
| punctuation.definition.entity.css | #E04A7C | — |
| meta.attribute-selector.css, meta.attribute-selector.scss, meta.attribute-selector.less | #E04A7C | — |
| keyword.other.unit.css | #E04A7C | — |
| source.css meta.at-rule.media, source.css meta.at-rule.keyframes, source.css meta.at-rule.font-face, source.css meta.at-rule.supports | #E04A7C | — |
| entity.other.less.mixin, entity.other.scss.mixin, entity.other.sass.mixin | #4CAF7F | — |
| meta.brace.round punctuation, meta.brace.square punctuation, meta.brace.curly punctuation | #2C2D3E | — |
| variable.other.less, variable.other.scss, variable.other.sass | #E04A7C | — |
| keyword.other.interpolation | #E04A7C | — |
| punctuation.separator.comma | #2C2D3E | — |
| punctuation.terminator.statement | #2C2D3E | — |
| storage.modifier.async | #E04A7C | — |
| storage.type.class | #E04A7C | — |
| storage.type.function | #E04A7C | — |
| storage.type.interface | #E04A7C | — |
| storage.type.enum | #E04A7C | — |
| storage.type.module | #E04A7C | — |
| storage.type.namespace | #E04A7C | — |
| storage.type.type | #E04A7C | — |
| punctuation.definition.constant.ruby, punctuation.definition.variable.ruby | #E04A7C | — |
| keyword.other.special-method.ruby | #4CAF7F | — |
| variable.other.constant.ruby | #9B7FCF | — |
| variable.other.fixed.ruby | #2C2D3E | — |
| variable.other.local.ruby | #2C2D3E | — |
| keyword.other.DRaise | #D6406A | — |
| keyword.other.super | #9B7FCF | — |
| keyword.other.special-method | #4CAF7F | — |
| variable.other.object.super | #9B7FCF | — |
| variable.other.object.prototype | #7EC8E3 | — |
| entity.name.function.constructor, entity.name.function.constructor.js, entity.name.function.constructor.ts | #7EC8E3 | — |
| keyword.operator.optional.chaining | #7EC8E3 | — |
| meta.optional.ts punctuation | #7EC8E3 | — |
| meta.optional.ts keyword | #7EC8E3 | — |
| keyword.declaration.module, keyword.declaration.module.ts, keyword.declaration.module.js | #E04A7C | — |
| keyword.declaration.import, keyword.declaration.import.ts, keyword.declaration.import.js | #E04A7C | — |
| keyword.declaration.export, keyword.declaration.export.ts, keyword.declaration.export.js | #E04A7C | — |
| keyword.declaration.type, keyword.declaration.type.ts, keyword.declaration.type.js | #E04A7C | — |
| entity.name.type.alias, entity.name.type.alias.ts, entity.name.type.alias.js | #7EC8E3 | — |
| keyword.operator.expression.keyof, keyword.operator.expression.keyof.ts, keyword.operator.expression.keyof.js | #E04A7C | — |
| keyword.operator.expression.infer, keyword.operator.expression.infer.ts, keyword.operator.expression.infer.js | #E04A7C | — |
| keyword.operator.expression.satisfies, keyword.operator.expression.satisfies.ts | #E04A7C | — |
| keyword.control.as, keyword.control.as.ts, keyword.control.as.js | #E04A7C | — |
| keyword.control.is, keyword.control.is.ts, keyword.control.is.js | #E04A7C | — |
| entity.name.function.decorator, entity.name.function.decorator.ts, entity.name.function.decorator.js | #4CAF7F | — |
| meta.decorator.identifier, meta.decorator.identifier.ts, meta.decorator.identifier.js | #4CAF7F | — |
| token.info-token, token.debug-token, token.warn-token, token.error-token | #2C2D3E | — |
| meta.embedded.block, meta.embedded.block.ts, meta.embedded.block.js | #2C2D3E | — |
| meta.embedded | #2C2D3E | — |
| source.shell keyword.control, source.shell keyword.operator, source.shell keyword.other, source.shell keyword.control.conditional, source.shell keyword.control.loop | #E04A7C | — |
| source.shell string.quoted, source.shell string.quoted.double, source.shell string.quoted.single | #D4A853 | — |
| source.shell variable.other, source.shell variable.other.normal | #9B7FCF | — |
| source.shell entity.name.function | #4CAF7F | — |
| source.shell punctuation.definition.variable | #E04A7C | — |
| source.shell entity.name.tag, source.shell support.function, source.shell support.command | #7EC8E3 | — |
| source.shell comment, source.shell comment.line.number-sign | #A8A9BD | italic |
| source.shell meta.function, source.shell meta.function entity.name.function | #4CAF7F | — |
| source.shell storage.modifier | #E04A7C | — |
| source.shell keyword.control.redirect | #E04A7C | — |
| source.makefile entity.name.function, source.makefile meta.scope.target entity.name.function | #4CAF7F | — |
| source.makefile keyword.control, source.makefile keyword.operator | #E04A7C | — |
| source.makefile string.unquoted, source.makefile string | #D4A853 | — |
| source.makefile variable.other | #9B7FCF | — |
| source.makefile comment, source.makefile comment.line.number-sign | #A8A9BD | italic |
| source.yaml entity.name.tag, source.yaml entity.name.tag.yaml | #7EC8E3 | — |
| source.yaml string.unquoted, source.yaml string.unquoted.yaml | #B8943E | — |
| source.yaml string.quoted, source.yaml string.quoted.double, source.yaml string.quoted.single | #D4A853 | — |
| source.yaml constant, source.yaml constant.numeric, source.yaml constant.language | #9B7FCF | — |
| source.yaml keyword, source.yaml keyword.other | #E04A7C | — |
| source.yaml comment, source.yaml comment.line.number-sign | #A8A9BD | italic |
| source.yaml punctuation.separator.key-value, source.yaml punctuation.definition.block.sequence.item | #E04A7C | — |
| source.json string.quoted.json, source.json string.quoted.double.json | #D4A853 | — |
| source.json support.type.property-name.json, source.json meta.structure.dictionary.key.json string.quoted.json | #7EC8E3 | — |
| source.json constant.language.json, source.json constant.numeric.json | #9B7FCF | — |
| source.json keyword.json, source.json keyword.other.json | #E04A7C | — |
| source.toml entity.name.section.toml, source.toml entity.name.section | #7EC8E3 | bold |
| source.toml variable.other.key.toml, source.toml variable.other.key | #7EC8E3 | — |
| source.toml string.quoted, source.toml string.quoted.double, source.toml string.quoted.single | #D4A853 | — |
| source.toml constant.numeric, source.toml constant.language | #9B7FCF | — |
| source.toml comment, source.toml comment.line.number-sign | #A8A9BD | italic |
| source.python keyword.control.import, source.python keyword.control.from, source.python keyword.control.as | #E04A7C | — |
| source.python variable.other.decorator | #4CAF7F | italic |
| source.python entity.name.function.decorator | #4CAF7F | — |
| source.python storage.type.class | #E04A7C | — |
| source.python storage.type.function | #E04A7C | — |
| source.python variable.language.special | #9B7FCF | italic |
| source.python meta.function-call support.function.builtin | #7EC8E3 | — |
| source.python support.type | #7EC8E3 | italic |
| source.go keyword.package, source.go keyword.import, source.go keyword.map, source.go keyword.chan, source.go keyword.struct, source.go keyword.interface, source.go keyword.func, source.go keyword.defer, source.go keyword.go, source.go keyword.select, source.go keyword.fallthrough, source.go keyword.default, source.go keyword.range | #E04A7C | — |
| source.go keyword.control.go | #E04A7C | — |
| source.go storage.type | #7EC8E3 | italic |
| source.go string.quoted, source.go string.quoted.double, source.go string.quoted.raw | #D4A853 | — |
| source.go constant.numeric, source.go constant.language | #9B7FCF | — |
| source.go variable.other | #2C2D3E | — |
| source.go comment, source.go comment.line.double-slash | #A8A9BD | italic |
| source.go entity.name.function, source.go meta.function entity.name.function | #4CAF7F | — |
| source.go entity.name.type | #7EC8E3 | italic |
| source.rust keyword.unsafe, source.rust keyword.async, source.rust keyword.await, source.rust keyword.move, source.rust keyword.static, source.rust keyword.const, source.rust keyword.mut, source.rust keyword.ref, source.rust keyword.impl, source.rust keyword.trait, source.rust keyword.enum, source.rust keyword.struct, source.rust keyword.type, source.rust keyword.fn, source.rust keyword.use, source.rust keyword.crate, source.rust keyword.module, source.rust keyword.where, source.rust keyword.return, source.rust keyword.let, source.rust keyword.match, source.rust keyword.if, source.rust keyword.else, source.rust keyword.while, source.rust keyword.for, source.rust keyword.in, source.rust keyword.loop, source.rust keyword.break, source.rust keyword.continue, source.rust keyword.pub, source.rust keyword.super, source.rust keyword.self, source.rust keyword.crate.root, source.rust keyword.extern | #E04A7C | — |
| source.rust storage.type.primitive, source.rust storage.type.core, source.rust storage.type | #7EC8E3 | italic |
| source.rust entity.name.function | #4CAF7F | — |
| source.rust entity.name.type, source.rust entity.name.enum, source.rust entity.name.struct, source.rust entity.name.trait | #7EC8E3 | italic |
| source.rust string.quoted, source.rust string.quoted.double, source.rust string.quoted.raw | #D4A853 | — |
| source.rust constant.numeric, source.rust constant.language, source.rust constant.other | #9B7FCF | — |
| source.rust variable.other | #2C2D3E | — |
| source.rust comment, source.rust comment.line.double-slash, source.rust comment.block.doc | #A8A9BD | italic |
| source.rust variable.language | #9B7FCF | italic |
| source.rust meta.attribute, source.rust meta.attribute keyword.operator | #4CAF7F | — |
| source.rust keyword.operator.lifetime | #7EC8E3 | — |
| source.rust entity.name.lifetime | #7EC8E3 | — |
| source.rust keyword.operator.macro | #4CAF7F | — |
| source.rust entity.name.function.macro, source.rust meta.macro entity.name.function | #4CAF7F | — |
| source.rust punctuation.definition.macro | #4CAF7F | — |
| source.shell, source.shell string, source.shell punctuation, source.shell keyword, source.shell variable, source.shell function, source.shell comment, source.shell constant, source.shell entity, source.shell storage, source.shell support, source.shell meta, source.shell markup | #2C2D3E | — |
| source.makefile, source.makefile string, source.makefile punctuation, source.makefile keyword, source.makefile variable, source.makefile function, source.makefile comment, source.makefile constant, source.makefile entity, source.makefile storage, source.makefile support, source.makefile meta, source.makefile markup | #2C2D3E | — |
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}!`;
}