Lunar Eclipse
Publisher: Ed HeltzelThemes in package: 5
A vibrant theme with light & dark variants.
A vibrant theme with light & dark variants.
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 |
|---|---|---|
| keyword, storage.type, storage.modifier, punctuation.definition.directive.c, punctuation.definition.directive.cpp, keyword.type.go, storage.class.d, markup.deleted.git_gutter, entity.name.tag.css, punctuation.definition.keyword.css, entity.name.tag.wildcard.css, storage.modifier.mut.rust, storage.modifier.type.rust, variable.language.self.rust, storage.modifier.cs, keyword.other.this.cs, keyword.control.powershell, storage.type.powershell, meta.function.powershell, variable.language.this.js, keyword.operator.new.js, storage.type.js, constant.language.null.js, constant.language.undefined.js, keyword.operator.ternary.js, variable.language.this.ts, keyword.operator.new.ts, storage.type.ts, storage.type.namespace.ts, variable.language.this.ts, constant.language.null.ts, constant.language.undefined.ts, keyword.operator.ternary.ts, keyword.operator.expression.of.ts | #EB4B68 | — |
| entity.name.type.primitive.rust, entity.name.type.numeric.rust, keyword.type.cs, support.type.primitive.js, support.type.primitive.ts | #EB4B68 | — |
| punctuation, keyword.operator, keyword.operator.sigil.rust, keyword.operator.access.dot.rust, keyword.operator.key-value.rust, keyword.operator.attribute.inner.rust, punctuation.definition.tag, punctuation.definition.tag.html, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, meta.brace.round.js, meta.brace.square.js, meta.brace.round.ts, meta.brace.square.ts, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.definition.string.begin.xml, punctuation.definition.string.end.xml, punctuation.definition.string.markdown, punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json | #9F917D | |
| entity.name.function, meta.function-call, variable.function, support.function, keyword.other.special-method, keyword.other.common.function, entity.name.function.rust, entity.name.function.cs, support.function.powershell, entity.name.function.js, entity.name.function.ts, support.function.misc.css, support.function.misc.scss | #7E98A0 | — |
| support.function.macro.rust, support.function.macro.builtin.rust, support.function.macro.core.rust, entity.name.type.macro.rust, entity.name.function.macro.rust, entity.name.function.macro.rules.rust, support.function.macro.julia, support.function.builtin.zig | #7E98A0 | — |
| support.type, support.class, support.other.namespace.use.php, meta.use.php, support.other.namespace.php, markup.changed.git_gutter, support.type.sys-types, entity.other.attribute-name.table.toml, variable.key.table.toml, storage.type.haskell, storage.type.java, storage.type.primitive.java, storage.type.object.array.java, storage.type.c, storage.type.built-in.c, meta.function.definition.parameters.c, storage.type.built-in.cpp, storage.type.built-in.primitive.cpp, entity.name.class.kotlin, storage.type.go, storage.type.boolean.go, storage.type.byte.go, storage.type.error.go, storage.type.numeric.go, storage.type.rune.go, storage.type.string.go, storage.type.uintptr.go, storage.type.concrete.nim, storage.type.basic-type.d, storage.type.d, support.type.python, basicTypes.nim, meta.class.stanza.dune, storage.type.cs, entity.name.type.rust, entity.name.type.struct.rust, entity.name.type.enum.rust, entity.name.type.union.rust, entity.name.type.declaration.rust, storage.type.cs, entity.name.type.class.cs, entity.name.type.struct.cs, entity.name.type.enum.cs, entity.name.type.class.js, support.class.builtin.js, support.class.component.js, entity.name.type.class.ts | #AEB124 | — |
| constant.other.haskell, variable.other.enummember.cpp, support.enum.core.rust, entity.name.type.option.rust, entity.name.type.result.rust, constant.language.bool.rust, entity.name.variable.enum-member.cs, constant.language.boolean.true.cs, constant.language.boolean.false.cs, constant.language.powershell, constant.language.powershell punctuation.definition.variable.powershell, constant.language.boolean.true.js, constant.language.boolean.false.js, variable.other.enummember.ts, constant.language.boolean.true.ts, constant.language.boolean.false.ts, constant.language.boolean.yaml, constant.language.boolean.toml | #6DAF81 | — |
| entity.name.type.trait.rust, entity.name.type.interface.ts | #B37EC8 | — |
| entity.name.type.type-parameter.cs | #AEB124 | — |
| variable, meta.function-call.arguments, string constant.other.placeholder, meta.function-call.java, storage.modifier.import.java, variable.other.object, variable.other.rust, entity.name.variable.local.cs, variable.other.readwrite.cs, variable.other.readwrite.js, variable.other.constant.js, , variable.css, variable.argument.css, variable.scss | #CCBB97 | — |
| variable.parameter, keyword.other.self.rust, meta.parens.block.c, variable.css, entity.name.variable.parameter.cs, variable.parameter.js, variable.parameter.ts | #A9A9A9 | — |
| entity.name.variable.field.cs, variable.other.object.property.cs, variable.other.member.powershell, variable.other.property.js, variable.object.property.ts, variable.other.property.ts | #B98090 | — |
| constant.other.caps.rust, constant.language.null.cs, support.constant.variable.powershell, support.constant.variable.powershell punctuation.definition.variable.powershell, variable.other.constant.js, variable.other.constant.ts, constant.language.json, constant.other.boolean.toml | #6DAF81 | — |
| string, punctuation.definition.string, constant.other.symbol, constant.other.key, meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js, string.quoted.double.rust, punctuation.definition.string.rust, string.quoted.double.cs, punctuation.definition.string.begin.cs, punctuation.definition.string.end.cs, string.quoted.double.powershell, string.quoted.single.powershell, punctuation.definition.string.begin.powershell, punctuation.definition.string.end.powershell, string.quoted.single.js, string.quoted.double.js, string.template.js, punctuation.definition.string.begin.js, punctuation.definition.string.end.js, punctuation.definition.string.template.begin.js, punctuation.definition.string.template.end.js, string.quoted.single.ts, string.quoted.double.ts, string.template.ts, punctuation.definition.string.begin.ts, punctuation.definition.string.end.ts, punctuation.definition.string.template.begin.ts, punctuation.definition.string.template.end.ts, string.quoted.double.css, string.quoted.double.scss, string.quoted.single.css, string.quoted.single.scss, string.quoted.single.xml, string.quoted.double.xml, string.quoted.double.json, string.unquoted.plain.out.yaml, string.unquoted.block.yaml, punctuation.definition.string.begin.yaml, punctuation.definition.string.end.yaml, string.quoted.single.yaml, string.quoted.double.yaml, string.quoted.single.basic.line.toml, string.quoted.triple.basic.block.toml, string.quoted.single.literal.line.toml, string.quoted.triple.literal.block.toml, string.quoted.single.ini, string.quoted.double.ini, punctuation.definition.string.begin.ini, punctuation.definition.string.end.ini, string.quoted.double.bnf, string.quoted.single.bnf | #EFB52D | — |
| constant.character.escape, constant.character.escape.rust, constant.character.escape.cs, constant.character.escape.powershell, constant.character.escape.js, constant.character.escape.ts, punctuation.definition.constant.xml, constant.character.entity.xml, constant.character.escape.yaml, constant.character.escape.toml | #ED7717 | — |
| punctuation.definition.char.rust, string.quoted.single.char.rust, punctuation.definition.char.begin.cs, punctuation.definition.char.end.cs, string.quoted.single.cs | #ED7717 | — |
| constant.numeric, constant.numeric.decimal.rust, constant.numeric.bin.rust, constant.numeric.hex.rust, constant.numeric.oct.rust, punctuation.separator.dot.decimal.rust, constant.numeric.binary.cs, constant.numeric.decimal.cs, constant.numeric.hex.cs, constant.numeric.integer.powershell, constant.numeric.hex.powershell, constant.numeric.octal.powershell, constant.numeric.binary.js, constant.numeric.decimal.js, constant.numeric.hex.js, constant.numeric.octal.js, constant.numeric.binary.ts, constant.numeric.decimal.ts, constant.numeric.hex.ts, constant.numeric.octal.ts, constant.numeric.css, constant.numeric.json, constant.numeric.integer.yaml, constant.numeric.float.yaml, constant.numeric.integer.toml, constant.numeric.float.toml, constant.numeric.bin.toml, constant.numeric.hex.toml, constant.numeric.oct.toml, constant.numeric.inf.toml, constant.numeric.nan.toml | #ED7717 | — |
| comment, punctuation.definition.comment, comment.block.cs, comment.line.double-slash.cs, comment.line.powershell, comment.block.documentation.js, comment.line.double-slash.js, comment.block.documentation.ts, comment.line.double-slash.ts, comment.block.xml, punctuation.definition.comment.xml, comment, comment.line.double-slash.js, comment.block.json, punctuation.definition.comment.yaml, comment.line.number-sign.yaml, punctuation.definition.comment.toml, comment.line.number-sign.toml, punctuation.definition.comment.ini, comment.line.semicolon.ini, comment.line.number-sign.ini, comment.line.bnf, comment.block.bnf | #5F5D5B | italic |
| meta.attribute.rust, meta.attribute.rust punctuation.definition.attribute.rust, meta.attribute.rust punctuation.brackets.attribute.rust, meta.attribute.rust punctuation.brackets.round.rust, meta.attribute.rust entity.name.type.rust, support.function.attribute.powershell, variable.parameter.attribute.powershell | #ED7717 | — |
| invalid, invalid.illegal | #85598E | — |
| *url*, *link*, *uri* | — | underline |
| keyword.operator.misc.question-mark.rust, keyword.operator.question.rust | #EB4B68 | — |
| punctuation.definition.lifetime.rust, entity.name.type.lifetime.rust, storage.modifier.lifetime.rust | #B37EC8 | — |
| meta.interpolation.rust, punctuation.definition.interpolation.rust | #B37EC8 | — |
| variable.other.metavariable.specifier.rust | #8ABA3C | — |
| entity.name.tag.cs, comment.block.documentation.cs punctuation.definition.tag.cs, comment.block.documentation.cs punctuation.separator.equals.cs | #5F5D5B | — |
| entity.other.attribute-name.cs | #ED7717 | — |
| comment.block.documentation.cs | #CCBB97 | — |
| punctuation.definition.interpolation.begin.cs, punctuation.definition.interpolation.end.cs | #B37EC8 | — |
| variable.other.readwrite.powershell, punctuation.definition.variable.powershell, storage.modifier.scope.powershell | #AEB124 | — |
| storage.modifier.scope.powershell, support.variable.drive.powershell | #AEB124 | underline |
| support.variable.automatic.powershell, support.variable.automatic.powershell punctuation.definition.variable.powershell, variable.language.powershell, variable.language.powershell punctuation.definition.variable.powershell | #B37EC8 | — |
| keyword.operator.comparison.powershell, keyword.operator.logical.powershell | #EB4B68 | — |
| keyword.operator.documentation.powershell | #CCBB97 | — |
| punctuation.section.embedded.substatement.begin.powershell, punctuation.section.embedded.substatement.end.powershell | #B37EC8 | — |
| punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.end.js | #B37EC8 | — |
| punctuation.definition.group.regexp, punctuation.definition.group.no-capture.regexp | #CCBB97 | — |
| constant.other.character-class.regexp, keyword.operator.quantifier.regexp, keyword.control.anchor.regexp, punctuation.definition.look-ahead.regexp, meta.assertion.look-ahead.regexp, meta.group.assertion.regexp | #B37EC8 | — |
| punctuation.section.embedded.begin.js, punctuation.section.embedded.end.js | #ED7717 | bold |
| entity.other.attribute-name.js | #B37EC8 | italic |
| punctuation.definition.template-expression.begin.ts, punctuation.definition.template-expression.end.ts | #B37EC8 | — |
| entity.name.tag.html | #EB4B68 | — |
| meta.attribute.id.html string.quoted.double.html, entity.other.attribute-name.id.css | #ED7717 | bold |
| meta.attribute.class.html string.quoted.double.html, entity.other.attribute-name.class.css | #AEB124 | — |
| entity.other.attribute-name.html, entity.other.attribute-name.css | #6DAF81 | italic |
| meta.attribute, meta.attribute-selector.css string.quoted.double.css | #EFB52D | — |
| meta.attribute.href.html string.quoted.double.html, meta.attribute.src.html string.quoted.double.html, meta.attribute.unrecognized.xmlns.html string.quoted.double.html | #B37EC8 | — |
| meta.embedded.line.css | #8ABA3C | — |
| entity.name.tag.css | #EB4B68 | — |
| support.type.property-name.css, meta.property-name.css, meta.property-name.scss, support.type.property-name.media.css | #B98090 | — |
| support.constant.property-value.css | #6DAF81 | — |
| support.constant.font-name.css | #EFB52D | — |
| entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-element.css | #8ABA3C | — |
| keyword.other.unit.rem.css, keyword.other.unit.em.css, keyword.other.unit.ex.css, keyword.other.unit.ch.css, keyword.other.unit.vw.css, keyword.other.unit.vh.css, keyword.other.unit.vmin.css, keyword.other.unit.vmax.css, keyword.other.unit.percentage.css, keyword.other.unit.mm.css, keyword.other.unit.in.css, keyword.other.unit.px.css, keyword.other.unit.pt.css, keyword.other.unit.pc.css, keyword.other.unit.deg.css, constant.other.scss | #ED7717 | — |
| keyword.operator.logical.and.media.css, keyword.operator.logical.not.media.css, keyword.operator.logical.only.media.css | #EB4B68 | — |
| support.constant.media.css | #B37EC8 | — |
| punctuation.definition.keyword.scss, keyword.control.at-rule.include.scss, entity.name.tag.reference.scss, entity.name.tag.wildcard.scss | #EB4B68 | — |
| entity.name.tag.xml, entity.name.tag.localname.xml | #EB4B68 | — |
| entity.other.attribute-name.xml, entity.other.attribute-name.localname.xml | #6DAF81 | italic |
| entity.name.tag.namespace.xml | #8ABA3C | — |
| entity.other.attribute-name.namespace.xml | #8ABA3C | italic |
| entity.other.attribute-name.xml punctuation.separator.namespace.xml | — | italic |
| variable.language.documentroot.xml | #B37EC8 | — |
| text.html.markdown, punctuation.definition.list_item.markdown | #8F8071 | — |
| punctuation.definition.raw.markdown, markup.inline.raw.string.markdown | #CCBB97 | — |
| markup.fenced_code.block.markdown | #CCBB97 | — |
| fenced_code.block.language.markdown, markup.fenced_code.block.markdown punctuation.definition.markdown | #CCBB97 | — |
| markdown.heading, markup.heading | markup.heading entity.name, markup.heading.markdown punctuation.definition.heading.markdown, entity.name.section.markdown | #EB4B68 | — |
| punctuation.definition.bold.markdown, markup.bold, markup.bold string | #ED7717 | bold |
| punctuation.definition.italic.markdown, markup.italic | #7E98A0 | italic |
| markup.bold markup.italic, markup.italic markup.bold, markup.quote markup.bold, markup.bold markup.italic string, markup.italic markup.bold string, markup.quote markup.bold string | #7E98A0 | italic bold |
| punctuation.definition.quote.begin.markdown, markup.quote.markdown | #EFB52D | italic |
| markup.strikethrough.markdown, punctuation.definition.strikethrough.markdown | #8F8071 | strikethrough |
| meta.separator.markdown | #CCBB97 | bold |
| punctuation.definition.list.begin.markdown | #6DAF81 | — |
| punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, string.other.link.description.title.markdown, string.other.link.description.markdown, string.other.link.title.markdown | #AEB124 | — |
| markup.underline.link, constant.other.reference.link.markdown | #B37EC8 | underline |
| punctuation.definition.math.begin.markdown | — | — |
| constant.character.math.tex, constant.character.math.tex punctuation.definition.math.tex | #6DAF81 | — |
| support.type.property-name.json | #EB4B68 | — |
| punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json | — | — |
| entity.name.tag.yaml | #EB4B68 | — |
| constant.other.timestamp.yaml | #AEB124 | — |
| constant.language.null.yaml | #EB4B68 | — |
| storage.type.tag-handle.yaml | #EB4B68 | — |
| entity.name.type.anchor.yaml, punctuation.definition.anchor.yaml, variable.other.alias.yaml, keyword.control.flow.alias.yaml punctuation.definition.alias.yaml | #8ABA3C | — |
| keyword.key.toml, support.type.property-name.toml | #EB4B68 | — |
| constant.other.date.toml, constant.other.datetime.toml, constant.other.datetime-with-timezone.toml, constant.other.time.date.toml, constant.other.time.time.toml, constant.other.time.datetime.local.toml, constant.other.time.datetime.offset.toml | #AEB124 | — |
| entity.other.attribute-name.table.toml, support.type.property-name.table.toml | #8ABA3C | — |
| entity.other.attribute-name.table.array.toml, support.type.property-name.array.toml | #B37EC8 | — |
| keyword.other.definition.ini | #EB4B68 | — |
| entity.name.section.group-title.ini | #8ABA3C | — |
| entity.name.class.bnf | #AEB124 | — |
| support.variable.bnf | #6DAF81 | — |
TypeScript sample highlighted with this variant's colors and tokenColors.
Loading...
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}!`;
}
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}!`;
}