Noir Omarchy
Publisher: Taha SadoughThemes in package: 2
A dark theme for Visual Studio Code with muted sage accents.
A dark theme for Visual Studio Code with muted sage accents.
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, punctuation.definition.comment, comment.line, comment.block, comment.block.documentation, comment.line.double-slash, comment.line.double-dash, comment.line.number-sign | #505050 | italic |
| variable, variable.other, variable.other.object, variable.other.property, variable.other.readwrite, variable.other.object.property, variable.other.constant, entity.name.variable | #c1c1c1 | — |
| variable.parameter, variable.parameter.function, parameter, entity.name.variable.parameter, variable.other.parameter | #c1c1c1 | — |
| keyword, keyword.control, keyword.control.flow, keyword.operator.word, keyword.other, keyword.other.unit, keyword.other.use, keyword.other.decorator, keyword.other.directive, keyword.other.important, storage, storage.modifier, storage.modifier.async, storage.modifier.readonly, storage.type.function, storage.type.class, storage.type.interface, storage.type.generic, storage.type.namespace, storage.type.import, storage.type.export, storage.type.module, storage.type.java, storage.type.default, storage.type.extends, storage.type.implements, storage.type.method, storage.type.parameter, storage.type.property, storage.type.primitive, storage.type.user-defined, storage.type.annotation | #999999 | — |
| control.conditional, control.flow, control.loop, control.evaluate, control.import, control.repeat, control.return, control.throw, control.try, control.catch, control.finally, control.continue, control.break, control.switch, control.select, control.case, control.default, control.directive, control.import.include | #999999 | — |
| keyword.operator, keyword.operator.arithmetic, keyword.operator.assignment, keyword.operator.comparison, keyword.operator.logical, keyword.operator.relational, keyword.operator.ternary, keyword.operator.increment, keyword.operator.decrement, keyword.operator.new, keyword.operator.expression, keyword.operator.type, keyword.operator.spread, punctuation, punctuation.definition, punctuation.accessor, punctuation.definition.generic, punctuation.definition.tag, punctuation.definition.arguments, punctuation.definition.begin, punctuation.definition.end, punctuation.definition.template-expression, punctuation.definition.typeparameters, punctuation.section, punctuation.separator, punctuation.terminator, punctuation.bracket, punctuation.bracket.round, punctuation.bracket.square, punctuation.bracket.curly, punctuation.bracket.angle, punctuation.separator.continuation, punctuation.separator.key-value, punctuation.separator.parameter, punctuation.separator.tuple, punctuation.separator.comma, punctuation.separator.pointer-access, punctuation.terminator.statement | #9b99a3 | — |
| string, string.quoted, string.quoted.single, string.quoted.double, string.quoted.triple, string.quoted.other, string.quoted.other.literal, string.quoted.other.template, string.interpolated, string.escape, string.template, string.template-expression, string.template.expression, string.other, string.unquoted, string.regexp, source.regexp, string.quoted.double.ruby, string.quoted.single.ruby, string.regexp.dart, string.regexp.ts, string.regexp.js, constant.other.character.escape, constant.character.escape, constant.character.entity, constant.other.placeholder | #aa9988 | — |
| constant, constant.other, constant.language, constant.language.boolean, constant.language.null, constant.language.undefined, constant.numeric, constant.numeric.integer, constant.numeric.float, constant.numeric.hex, constant.numeric.octal, constant.numeric.binary, constant.numeric.exponent, constant.other.color, constant.other.caps, constant.other.key, constant.other.symbol, constant.other.enum, constant.character, constant.other.class.name, constant.other.object.key, constant.other.namespace, constant.other.function, constant.other.enum-member, constant.other.type, constant.other.string, constant.other.character, constant.other.boolean, number, entity.name.constant, entity.other.attribute-name.enum, support.constant | #aaaaaa | — |
| support.variable, support.variable.magic, support.variable.type, support.variable.parameter, support.variable.object, support.variable.property, variable.language, variable.other.readwrite.global, variable.other.constant.builtin, variable.other.readwrite.builtin | #aaaaaa | — |
| support.function, support.function.builtin, support.function.console, support.function.construct, support.function.misc, support.function.name, support.function.procedure, support.function.property, support.function.variable, support.function.parameter, support.function.general, support.function.type, support.function.module, support.function.array, support.function.iterator, support.function.global, support.function.method, support.function.instance, support.function.variable.package, entity.name.function, entity.name.function.definition, entity.name.function.declaration, entity.name.function.method, entity.name.function.symbol, entity.name.function.variable, entity.name.function.procedure, entity.name.function.builtin, entity.name.function.parameter, entity.name.function.type, entity.name.function.method-definition, entity.name.function.arrow, entity.name.function.lambda, entity.name.function.generator, entity.name.function.anonymous, meta.function-call.generic, meta.function-call.name, meta.function-call.method, meta.function-call, function, meta.function, meta.method, meta.method-call, meta.method-call.name, meta.method-call.generic | #888888 | — |
| support.class, support.type, support.type.primitive, support.type.property-name, support.type.type.name, support.type.module, support.type.namespace, support.type.interface, support.type.definition, support.type.class, support.type.enum, support.type.structure, support.type.object, support.type.exception, support.type.builtin, support.type.dictionary, support.type.other, entity.name.type, entity.name.type.class, entity.name.type.class.definition, entity.name.type.interface, entity.name.type.namespace, entity.name.type.module, entity.name.type.enum, entity.name.type.definition, entity.name.type.typedef, entity.name.type.structure, entity.name.type.typealias, entity.name.type.parameter, entity.name.type.generic, entity.name.type.abstract, entity.name.type.builtin, entity.name.type.instance, meta.type, meta.type.name, meta.type.definition, meta.type.annotation, meta.interface, meta.class, meta.structure, meta.definition.type | #777755 | — |
| meta.annotation, meta.annotation.identifier, meta.annotation.type, meta.preprocessor, meta.preprocessor.numeric, meta.preprocessor.string, meta.preprocessor.macro, meta.preprocessor.define, meta.preprocessor.include, meta.directive, preprocessor, keyword.other.directive, keyword.control.directive, keyword.other.macro, entity.name.tag.decorator | #999999 | — |
| entity.name.tag, entity.name.tag.custom, entity.name.tag.inline, entity.name.tag.block, meta.tag, meta.tag.block, meta.tag.inline, meta.tag.any, tag, punctuation.definition.tag.begin, punctuation.definition.tag.end, entity.other.attribute-name.class, entity.other.attribute-name.id | #8a9a7b | — |
| entity.other.attribute-name, entity.other.attribute-name.selector, entity.other.attribute-name.tag, entity.other.attribute-name.attribute, meta.attribute-selector, meta.attribute, meta.attribute.name, meta.tag.attribute, attribute, punctuation.definition.attribute | #c1c1c1 | — |
| entity.other.attribute-name.pseudo-class, entity.other.attribute-name.pseudo-element, support.constant.property-value, support.type.property-name, support.constant.property-name, meta.property-name, meta.property-value, meta.property, variable.object.property, variable.other.object.property | #c1c1c1 | — |
| variable.other.member, variable.other.object.property.member, variable.other.property, variable.other.object.property, variable.other.member.property, support.variable.property, entity.name.property, meta.property.object, meta.property.property-name | #c1c1c1 | — |
| meta.embedded, meta.embedded.block, meta.embedded.line, markup.raw, markup.raw.inline | #aa9988 | — |
| markup.heading, markup.heading.setext, markup.heading.1, markup.heading.2, markup.heading.3, markup.heading.4, markup.heading.5, markup.heading.6, markup.heading.name, meta.header, punctuation.definition.heading | #8a9a7b | bold |
| markup.bold, markup.bold.markdown, markup.bold.strong, markup.strong | #c1c1c1 | bold |
| markup.italic, markup.italic.markdown, markup.emphasis | #c1c1c1 | italic |
| markup.quote, markup.quote.markdown, markup.quote.block | #505050 | — |
| markup.underline, markup.underline.link, markup.underline.link.markdown, string.other.link, string.other.link.title, string.other.link.description, meta.link, meta.link.inline, meta.link.reference, markup.inline.raw.string, hyperlink, constant.other.reference.link | #8a9a7b | underline |
| markup.list, markup.list.markdown, markup.list.unnumbered, markup.list.numbered, punctuation.definition.list | #9b99a3 | — |
| markup.strikethrough, markup.deleted, markup.inserted, markup.changed | #c1c1c1 | — |
| markup.deleted, meta.diff.header.from-file, markup.deleted.markdown | #8a9a7b | — |
| markup.inserted, meta.diff.header.to-file, markup.inserted.markdown | #6e4c4c | — |
| meta.diff, meta.diff.header, meta.diff.index, meta.diff.header.git, meta.separator | #c1c1c1 | — |
| invalid, invalid.illegal, invalid.deprecated, invalid.unimplemented | #8a9a7b | — |
| markup.italic.markdown, markup.bold.markdown | #8a9a7b | — |
| punctuation.definition.constant | #aaaaaa | — |
| meta.function, meta.function.definition, meta.method, meta.method.declaration, meta.method.definition, meta.method.parameters, meta.function.parameters, meta.parameters, meta.parameter, meta.function.parameter | #c1c1c1 | — |
| entity.name.namespace, entity.name.module, entity.name.scope, entity.name.package | #777755 | — |
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, punctuation.definition.comment, comment.line, comment.block, comment.block.documentation, comment.line.double-slash, comment.line.double-dash, comment.line.number-sign | #505050 | italic |
| variable, variable.other, variable.other.object, variable.other.property, variable.other.readwrite, variable.other.object.property, variable.other.constant, entity.name.variable | #c1c1c1 | — |
| variable.parameter, variable.parameter.function, parameter, entity.name.variable.parameter, variable.other.parameter | #c1c1c1 | — |
| keyword, keyword.control, keyword.control.flow, keyword.operator.word, keyword.other, keyword.other.unit, keyword.other.use, keyword.other.decorator, keyword.other.directive, keyword.other.important, storage, storage.modifier, storage.modifier.async, storage.modifier.readonly, storage.type.function, storage.type.class, storage.type.interface, storage.type.generic, storage.type.namespace, storage.type.import, storage.type.export, storage.type.module, storage.type.java, storage.type.default, storage.type.extends, storage.type.implements, storage.type.method, storage.type.parameter, storage.type.property, storage.type.primitive, storage.type.user-defined, storage.type.annotation | #999999 | — |
| control.conditional, control.flow, control.loop, control.evaluate, control.import, control.repeat, control.return, control.throw, control.try, control.catch, control.finally, control.continue, control.break, control.switch, control.select, control.case, control.default, control.directive, control.import.include | #999999 | — |
| keyword.operator, keyword.operator.arithmetic, keyword.operator.assignment, keyword.operator.comparison, keyword.operator.logical, keyword.operator.relational, keyword.operator.ternary, keyword.operator.increment, keyword.operator.decrement, keyword.operator.new, keyword.operator.expression, keyword.operator.type, keyword.operator.spread, punctuation, punctuation.definition, punctuation.accessor, punctuation.definition.generic, punctuation.definition.tag, punctuation.definition.arguments, punctuation.definition.begin, punctuation.definition.end, punctuation.definition.template-expression, punctuation.definition.typeparameters, punctuation.section, punctuation.separator, punctuation.terminator, punctuation.bracket, punctuation.bracket.round, punctuation.bracket.square, punctuation.bracket.curly, punctuation.bracket.angle, punctuation.separator.continuation, punctuation.separator.key-value, punctuation.separator.parameter, punctuation.separator.tuple, punctuation.separator.comma, punctuation.separator.pointer-access, punctuation.terminator.statement | #999999 | — |
| string, string.quoted, string.quoted.single, string.quoted.double, string.quoted.triple, string.quoted.other, string.quoted.other.literal, string.quoted.other.template, string.interpolated, string.escape, string.template, string.template-expression, string.template.expression, string.other, string.unquoted, string.regexp, source.regexp, string.quoted.double.ruby, string.quoted.single.ruby, string.regexp.dart, string.regexp.ts, string.regexp.js, constant.other.character.escape, constant.character.escape, constant.character.entity, constant.other.placeholder | #aa9988 | — |
| constant, constant.other, constant.language, constant.language.boolean, constant.language.null, constant.language.undefined, constant.numeric, constant.numeric.integer, constant.numeric.float, constant.numeric.hex, constant.numeric.octal, constant.numeric.binary, constant.numeric.exponent, constant.other.color, constant.other.caps, constant.other.key, constant.other.symbol, constant.other.enum, constant.character, constant.other.class.name, constant.other.object.key, constant.other.namespace, constant.other.function, constant.other.enum-member, constant.other.type, constant.other.string, constant.other.character, constant.other.boolean, number, entity.name.constant, entity.other.attribute-name.enum, support.constant | #aaaaaa | — |
| support.variable, support.variable.magic, support.variable.type, support.variable.parameter, support.variable.object, support.variable.property, variable.language, variable.other.readwrite.global, variable.other.constant.builtin, variable.other.readwrite.builtin | #aaaaaa | — |
| support.function, support.function.builtin, support.function.console, support.function.construct, support.function.misc, support.function.name, support.function.procedure, support.function.property, support.function.variable, support.function.parameter, support.function.general, support.function.type, support.function.module, support.function.array, support.function.iterator, support.function.global, support.function.method, support.function.instance, support.function.variable.package, entity.name.function, entity.name.function.definition, entity.name.function.declaration, entity.name.function.method, entity.name.function.symbol, entity.name.function.variable, entity.name.function.procedure, entity.name.function.builtin, entity.name.function.parameter, entity.name.function.type, entity.name.function.method-definition, entity.name.function.arrow, entity.name.function.lambda, entity.name.function.generator, entity.name.function.anonymous, meta.function-call.generic, meta.function-call.name, meta.function-call.method, meta.function-call, function, meta.function, meta.method, meta.method-call, meta.method-call.name, meta.method-call.generic | #888888 | — |
| support.class, support.type, support.type.primitive, support.type.property-name, support.type.type.name, support.type.module, support.type.namespace, support.type.interface, support.type.definition, support.type.class, support.type.enum, support.type.structure, support.type.object, support.type.exception, support.type.builtin, support.type.dictionary, support.type.other, entity.name.type, entity.name.type.class, entity.name.type.class.definition, entity.name.type.interface, entity.name.type.namespace, entity.name.type.module, entity.name.type.enum, entity.name.type.definition, entity.name.type.typedef, entity.name.type.structure, entity.name.type.typealias, entity.name.type.parameter, entity.name.type.generic, entity.name.type.abstract, entity.name.type.builtin, entity.name.type.instance, meta.type, meta.type.name, meta.type.definition, meta.type.annotation, meta.interface, meta.class, meta.structure, meta.definition.type | #888888 | — |
| meta.annotation, meta.annotation.identifier, meta.annotation.type, meta.preprocessor, meta.preprocessor.numeric, meta.preprocessor.string, meta.preprocessor.macro, meta.preprocessor.define, meta.preprocessor.include, meta.directive, preprocessor, keyword.other.directive, keyword.control.directive, keyword.other.macro, entity.name.tag.decorator | #999999 | — |
| entity.name.tag, entity.name.tag.custom, entity.name.tag.inline, entity.name.tag.block, meta.tag, meta.tag.block, meta.tag.inline, meta.tag.any, tag, punctuation.definition.tag.begin, punctuation.definition.tag.end, entity.other.attribute-name.class, entity.other.attribute-name.id | #8a9a7b | — |
| entity.other.attribute-name, entity.other.attribute-name.selector, entity.other.attribute-name.tag, entity.other.attribute-name.attribute, meta.attribute-selector, meta.attribute, meta.attribute.name, meta.tag.attribute, attribute, punctuation.definition.attribute | #c1c1c1 | — |
| entity.other.attribute-name.pseudo-class, entity.other.attribute-name.pseudo-element, support.constant.property-value, support.type.property-name, support.constant.property-name, meta.property-name, meta.property-value, meta.property, variable.object.property, variable.other.object.property | #c1c1c1 | — |
| variable.other.member, variable.other.object.property.member, variable.other.property, variable.other.object.property, variable.other.member.property, support.variable.property, entity.name.property, meta.property.object, meta.property.property-name | #c1c1c1 | — |
| meta.embedded, meta.embedded.block, meta.embedded.line, markup.raw, markup.raw.inline | #aa9988 | — |
| markup.heading, markup.heading.setext, markup.heading.1, markup.heading.2, markup.heading.3, markup.heading.4, markup.heading.5, markup.heading.6, markup.heading.name, meta.header, punctuation.definition.heading | #8a9a7b | bold |
| markup.bold, markup.bold.markdown, markup.bold.strong, markup.strong | #c1c1c1 | bold |
| markup.italic, markup.italic.markdown, markup.emphasis | #c1c1c1 | italic |
| markup.quote, markup.quote.markdown, markup.quote.block | #505050 | — |
| markup.underline, markup.underline.link, markup.underline.link.markdown, string.other.link, string.other.link.title, string.other.link.description, meta.link, meta.link.inline, meta.link.reference, markup.inline.raw.string, hyperlink, constant.other.reference.link | #8a9a7b | underline |
| markup.list, markup.list.markdown, markup.list.unnumbered, markup.list.numbered, punctuation.definition.list | #999999 | — |
| markup.strikethrough, markup.deleted, markup.inserted, markup.changed | #c1c1c1 | — |
| markup.deleted, meta.diff.header.from-file, markup.deleted.markdown | #8a9a7b | — |
| markup.inserted, meta.diff.header.to-file, markup.inserted.markdown | #888888 | — |
| meta.diff, meta.diff.header, meta.diff.index, meta.diff.header.git, meta.separator | #c1c1c1 | — |
| invalid, invalid.illegal, invalid.deprecated, invalid.unimplemented | #8a9a7b | — |
| markup.italic.markdown, markup.bold.markdown | #8a9a7b | — |
| punctuation.definition.constant | #aaaaaa | — |
| meta.function, meta.function.definition, meta.method, meta.method.declaration, meta.method.definition, meta.method.parameters, meta.function.parameters, meta.parameters, meta.parameter, meta.function.parameter | #c1c1c1 | — |
| entity.name.namespace, entity.name.module, entity.name.scope, entity.name.package | #888888 | — |
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}!`;
}