Demo Theme
Publisher: MaiDonThemes in package: 3
A beautifully warm dual theme for Visual Studio Code
A beautifully warm dual 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 |
|---|---|---|
| comment, comment.line, comment.block, comment.block.documentation, punctuation.definition.comment | #608B4E | — |
| punctuation.definition.string.template.begin, punctuation.definition.string.template.begin.js, punctuation.definition.string.template.begin.ts, punctuation.definition.string.template.end, punctuation.definition.string.template.end.js, punctuation.definition.string.template.end.ts | #4CA779 | — |
| punctuation.definition.template-expression.begin, punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.begin.ts, punctuation.definition.template-expression.end, punctuation.definition.template-expression.end.js, punctuation.definition.template-expression.end.ts | #FCB08AE6 | — |
| variable.other.readwrite.cs, variable.other.constant.js, variable.other.object.property.cs, source.ts | #8AD7FF | — |
| constant.character.entity, constant.character.entity.js, constant.character.entity.ts | #569CD6 | — |
| punctuation.definition.entity, punctuation.definition.entity.js, punctuation.definition.entity.ts, source.ts meta.enum.declaration.ts storage.type.enum.ts | #569CD6 | — |
| entity.name.tag.directive, entity.name.tag.directive.js, entity.name.tag.directive.ts | #f0bb6b | — |
| punctuation.definition.tag.directive, punctuation.definition.tag.directive.js, punctuation.definition.tag.directive.ts | #A477BE | — |
| constant.other.color | #fafafa | — |
| invalid, invalid.illegal, source.json.comments | #fcb08ae6 | — |
| keyword.operator.expression.of.ts | #C74DED | bold |
| meta.element.ng.html, source.ts meta.class.ts meta.method.declaration.ts storage.type.ts, source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts, source.cs entity.name.function.cs | #FFED91 | bold |
| storage.type.ts | #C74DED | bold |
| source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts, source.ts meta.class.ts meta.field.declaration.ts, source.ts meta.enum.declaration.ts variable.other.enummember.ts | #8AD7FF | — |
| storage.type.function.arrow, source.ts meta.class.ts storage.modifier.ts, source.ts meta.class.ts storage.type.class.ts, source.ts meta.interface.ts storage.type.interface.ts | #569CD6 | bold |
| source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts, source.ts variable.other.property.ts, source.ts meta.arrow.ts, source.ts variable.other.readwrite.ts | #8AD7FF | — |
| keyword.operator.assignment, keyword.operator.type.annotation, keyword.operator.comparison.ts, keyword.operator.logical | #fff | |
| entity.name.tag.html | #F92672 | bold |
| punctuation.definition.tag.html, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html | #797979 | bold |
| constant.other.color, punctuation, meta.brace.square, meta.tag, punctuation.definition.tag, punctuation.section.embedded, keyword.other.template, keyword.other.substitution, keyword.operator, meta.brace.round.ts | #fcb08ae6 | — |
| keyword.operator | #c2c2c2 | — |
| keyword.control.cs | #C74DED | — |
| entity.name.tag, meta.tag.sgml, markup.deleted.git_gutter | #6dbb46 | bold |
| variable.function, support.function, keyword.other.special-method | #ffed91 | — |
| entity.name.function.preprocessor, source.cs meta.preprocessor.cs keyword.preprocessor, source.cs meta.preprocessor.cs punctuation.separator.hash.cs | #608B4E | italic bold |
| string.unquoted.preprocessor.message.cs | #fcb08ae6 | italic |
| #8AD7FF | — | |
| support.other.variable, string.other.link, html-template.ng meta.element.structure.html meta.ng-binding.event.html entity.name.function.ts, html-template.ng meta.element.structure.html entity.name.function.ts, html-template.ng meta.ng-binding.event.html entity.name.function.ts | #ffed91 | bold |
| constant.language, support.constant, constant.character, constant.escape, keyword.other.unit | #29D398 | — |
| constant.numeric | #569CD6 | — |
| support.constant.property-value.css, constant.numeric.css, constant.other.color.rgb-value.hex.css, constant.language.color.rgb-value.css.sass | #B5CEA8 | |
| keyword.other.unit.percentage.css, keyword.other.unit.px.css, keyword.other.unit.rem.css, keyword.other.unit.em.css, keyword.other.unit.ms.css, keyword.other.unit.s.css, keyword.other.unit.deg.css, keyword.other.unit.fr.css, punctuation.definition.constant.css, keyword.control.unit.css.sass | #B5CEA8 | — |
| punctuation.separator.key-value.html-template.ng | #BBBBBB | — |
| invalid.deprecated.color.system.css | #a07fc7 | — |
| entity.other.inherited-class.placeholder-selector.css.sass | #F0BB6B | — |
| variable.other.value | #DF84A2 | — |
| string, constant.other.symbol, constant.other.key, markup.heading, markup.inserted.git_gutter, meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js, meta.group.braces.curly constant.other.object.key.ts string.unquoted.label.ts | #fcb08ae6 | — |
| source.ts meta.var.expr.ts variable.other.object.property.ts | #8AD7FF | — |
| support.class, markup.changed.git_gutter, support.type.sys-types | #4EC9B0 | — |
| html-template.ng source.js | #8AD7FF | — |
| variable.other.object.cs, source.cs entity.name.variable.local.cs, source.cs entity.name.variable.parameter.cs, source.cs entity.name.type.namespace.cs, source.cs entity.name.type.cs | #4EC9B0 | — |
| entity.name.variable.property.cs, source.cs entity.name.variable.field.cs | #8AD7FF | — |
| source.cs storage.modifier, source.cs keyword.operator, source.cs keyword.type, source.cs storage.type, source.cs keyword.other.directive.using.cs, source.cs keyword.control.context.using.cs | #569CD6 | — |
| entity.name.type.enum | #4EC9B0 | — |
| entity.name.type.interface, source.ts meta.class.ts entity.other.inherited-class.ts, source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts, source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts, source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts, source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.property.ts | #4EC9B0 | — |
| entity.name.type.module.js, entity.name.type.class | #4EC9B0 | — |
| support.type.property-name.css | #9CDCFE | normal |
| keyword.control.at-rule.css, keyword.control.at-rule.sass, keyword.control.at-rule.scss, keyword.control.at-rule.use | #40CFCF | italic |
| support.function.name.sass.library, support.function.name.scss.library | #E7D5A4 | italic |
| variable.css | #c7c7df | — |
| constant.character.css, constant.character.css.sass, constant.character.css.scss | #4CA779 | — |
| source.css support.type.property-name, source.sass support.type.property-name, source.scss support.type.property-name, source.less support.type.property-name, source.stylus support.type.property-name, source.postcss support.type.property-name | #f78c6c | — |
| support.type.vendored.property-name.css, support.type.vendored.property-name.sass, support.type.vendored.property-name.scss, support.type.vendored.property-name.less | #f0bb6b | — |
| entity.name.module, entity.name.module.js, entity.name.module.ts, variable.import.parameter, variable.import.parameter.js, variable.import.parameter.ts, variable.other.class, variable.other.class.js, variable.other.class.ts | #ff5370 | — |
| variable.language | #569CD6 | bold |
| keyword.control.trycatch.js, keyword.control.trycatch.ts | #5fe09f | italic |
| entity.name.method.js, entity.name.method.ts | #82aaff | — |
| meta.class-method.js entity.name.function.js, meta.class-method.ts entity.name.function.ts, variable.function, html-template.ng expression.ng, html-template.ng meta.element.custom.html, html-template.ng variable.other.object.ts | #FFED91 | — |
| constant.language | #40cfcf | — |
| constant.language.null, constant.language.null.js, constant.language.null.ts, constant.language.undefined, constant.language.undefined.js, constant.language.undefined.ts | #569CD6 | |
| entity.name.tag.js, entity.name.tag.ts | #d4785d | — |
| constant.character.other, html-template.ng meta.element.custom.html variable.other.property.ts, html-template.ng variable.other.property.ts, constant.numeric.decimal.ts | #ffed91 | — |
| support.type.property-name, meta.object-literal.key, meta.object.member.ts | #8AD7FF | — |
| variable.other.readwrite.alias.js, variable.other.readwrite.alias.ts | #4EC9B0 | — |
| constant.language.boolean.false, constant.language.boolean.false.js, constant.language.boolean.false.ts, constant.language.boolean.true, constant.language.boolean.true.js, constant.language.boolean.true.ts, keyword.operator.expression.typeof.ts | #569CD6 | — |
| keyword.control.conditional, keyword.control.conditional.js, keyword.control.conditional.ts, keyword.control.switch, keyword.control.switch.js, keyword.control.switch.ts, keyword.control.at-rule.import.scss | #C74DED | bold |
| keyword.control.flow, keyword.control.flow.js, keyword.control.flow.ts, keyword.control.loop, keyword.control.loop.js, keyword.control.loop.ts, keyword.operator.new, keyword.operator.expression.delete | #C74DED | — |
| support.type, support.type.primitive, support.type.primitive.js, support.type.primitive.ts, support.type.builtin, support.type.builtin.js, support.type.builtin.ts | #4EC9B0 | — |
| keyword.control.export, keyword.control.export.js, keyword.control.export.ts, keyword.control.default, keyword.control.default.js, keyword.control.default.ts | #C74DED | |
| entity.name.tag.js, entity.name.tag.ts | #d4785d | — |
| meta.tag.js, meta.tag.ts | #d5d5d5 | — |
| punctuation.definition.tag.begin.js, punctuation.definition.tag.begin.ts, punctuation.definition.tag.end.js, punctuation.definition.tag.end.ts | #ac66c9 | — |
| keyword.control.import.js, keyword.control.import.ts, keyword.control.from.js, keyword.control.from.ts, keyword.control.default.js, keyword.control.default.ts | #C74DED | |
| entity.other.attribute-name | #83df55 | bold |
| entity.other.attribute-name.localname.xml | #6dbb46 | bold |
| text.html.basic entity.other.attribute-name.html, text.html.basic entity.other.attribute-name | #ffcb6b | italic |
| entity.name.tag.css, entity.name.tag.custom.scss | #4EC9B0 | bold |
| entity.other.attribute-name.class | #e6d582 | bold |
| entity.other.attribute-name.pseudo-class.css | #e0a1a4 | — |
| entity.other.attribute-selector.css, entity.other.attribute-selector.scss, entity.other.attribute-selector.sass | #41c09a | — |
| source.sass keyword.control | #82aaff | — |
| keyword.control.at-rule.media.scss, meta.at-rule.media.scss | #C74DED | italic |
| sass.script.maps, scss.script.maps | #DF84A2 | — |
| support.function.interpolation.sass, support.function.interpolation.scss | #7c97bb | — |
| markup.inserted | #c3e88d | — |
| markup.deleted | #ff5370 | — |
| markup.changed | #c792ea | — |
| string.regexp | #89ddff | — |
| constant.character.escape | #89ddff | — |
| *url*, *link*, *uri* | — | underline |
| tag.decorator.js entity.name.tag.js, tag.decorator.ts entity.name.tag.ts, tag.decorator.js punctuation.definition.tag.js, tag.decorator.ts punctuation.definition.tag.ts | #82aaff | italic |
| source.js constant.other.object.key.js string.unquoted.label.js, source.ts constant.other.object.key.ts string.unquoted.label.ts | #ff5370 | italic |
| keyword.operator.optional, keyword.operator.optional.js, keyword.operator.optional.ts, punctuation.accessor.optional, punctuation.accessor.optional.js, punctuation.accessor.optional.ts, keyword.operator.ternary | #e78797 | |
| source.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | normal |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | normal |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #9CDCFE | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #f0bb6b | — |
| constant.numeric.json | #d4785d | — |
| constant.language.json | #569CD6 | — |
| punctuation.definition.dictionary.begin.json, punctuation.definition.dictionary.end.json | #ffcb6b | — |
| punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json | #d5d5d5 | — |
| text.html.markdown, punctuation.definition.list_item.markdown | #27D797B3 | — |
| text.html.markdown markup.inline.raw.string.markdown | #27D797B3 | — |
| text.html.markdown punctuation.definition.raw.markdown | #27D797B3 | — |
| punctuation.definition.heading.markdown | #f78c6c96 | — |
| entity.name.section.markdown | #f78c6c | — |
| markup.italic.markdown | #7a8491 | italic |
| markup.bold.markdown | #7a8491 | bold |
| markup.bold.markdown markup.italic.markdown, markup.italic.markdown markup.bold.markdown, markup.quote.markdown markup.bold.markdown | #7a8491 | italic bold |
| markup.underline.markdown | #7a8491 | underline |
| markup.quote punctuation.definition.blockquote.markdown | #6a7cdc | italic |
| markup.quote.markdown | #0670e0 | italic |
| punctuation.definition.quote.begin.markdown | #6a7cdc96 | italic |
| punctuation.definition.list.begin.markdown | #caaeeb80 | — |
| markup.list.unnumbered.markdown, markup.list.numbered.markdown | #27D797B3 | — |
| string.other.link.title.markdown, string.other.link.description.markdown, text.gitignore | #fcb08ae6 | — |
| markup.underline.link.markdown, markup.underline.link.image.markdown | #e0a1a4 | — |
| punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown | #f0bb6b | — |
| string.other.link.description.title.markdown | #c792ea | — |
| constant.other.reference.link.markdown | #ac66c9 | — |
| markup.raw.block | #e27171 | — |
| markup.fenced_code.block.markdown | #7a8491 | — |
| punctuation.definition.markdown | #4CA779 | — |
| fenced_code.block.language.markdown | #6a7cdc | — |
| markup.raw.block.fenced.markdown, variable.language.fenced.markdown, punctuation.section.class.end | #eeffff | — |
| meta.separator | #7a8491 | bold |
| constant.character.escape.markdown | #43c2e2 | — |
| string.unquoted.plain.out.yaml | #b37895 | — |
| entity.name.tag.localname.xml, meta.tag.xml | #4EC9B0 | — |
| punctuation.definition.tag.xml | #797979 | — |
| keyword.operation.graphql | #a477be | — |
| entity.name.function.graphql | #e27171 | italic |
| variable.graphql | #fa72c1 | — |
| variable.parameter.graphql | #40cfcf | — |
| constant.numeric.float.graphql | #d4785d | — |
| meta.selectionset.graphql | #f78c6c | — |
| support.type.builtin.graphql | #e4baba | italic |
| meta.brace.round.directive.graphql | #ac66c9 | — |
| punctuation.operation.graphql | #ffcb6b | — |
| keyword.operator.spread.graphql | #ffcb6b | — |
| entity.name.tag.pug, meta.tag.sgml.doctype.html | #D4785D | — |
| support.type.primitive.prisma | #F78C6C | — |
| #fff | — |
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}!`;
}