BiancoNero
Publisher: Mauro PaterninaThemes in package: 2
A minimal, black and white theme for day and night
A minimal, black and white theme for day and night
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.line.double-slash, comment.line.double-slash.js, comment.line.double-slash.jsx, comment.line.double-slash.ts, comment.line.double-slash.tsx, comment.block, comment.block.documentation, punctuation.definition.comment | #323232 | |
| entity.name.tag.html | #AAA | — |
| punctuation.definition.tag, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html | #DDD | — |
| entity.other.attribute-name.html, text.html.basic entity.other.attribute-name.html | #777777 | — |
| meta.attribute.content.html, meta.attribute.unrecognized.role.html, string.quoted.double.html, string.quoted.single.html | #B7FADA | — |
| text.html.derivative | #FFF | — |
| punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.separator.key-value.html | #B7FADA | — |
| constant.character | #FFF | bold |
| punctuation.definition.entity.html | #AAA | — |
| punctuation.definition.comment.html | #323232 | — |
| comment.block.html | #323232 | — |
| source.css, source.sass | #fff | — |
| comment.block.css, comment.block.scss, comment.block.sass, comment.block.documentation.scss, comment.block.documentation.sass, comment.line.scss, comment.line.sass | #323232 | |
| entity.name.tag.wildcard.css, entity.name.tag.wildcard.scss, entity.name.tag.wildcard.sass | #fff | bold |
| entity.other.attribute-name.id.css | #ff8e8e | — |
| entity.name.tag.css | #fff | — |
| entity.other.attribute-name.pseudo-element.css | #ccc | bold |
| entity.other.attribute-name.class, entity.other.attribute-name.class.css | #fff | bold |
| entity.other.attribute-name.pseudo-class.css | #ccc | bold |
| entity.other.attribute-name.css, entity.other.attribute-name.attribute.scss, entity.other.attribute-selector.sass | #437878 | — |
| punctuation.definition.entity.begin.bracket.square.css, punctuation.definition.entity.end.bracket.square.css, punctuation.definition.attribute-selector.begin.bracket.square.scss, punctuation.definition.attribute-selector.end.bracket.square.scss | #589e9e | — |
| meta.attribute-selector.scss | #72b97b | — |
| keyword.operator.combinator.css | #ff8e8e | — |
| support.type.property-name.css | #ddd | — |
| support.constant.property-value.css, support.constant.media.css | #356161 | bold |
| string.quoted.single.css, string.quoted.single.scss, string.quoted.double.css, string.quoted.double.scss | #b7fada | — |
| constant.numeric.css | #c9c9fc | — |
| keyword.other.unit.px.css, keyword.other.unit.rem.css, keyword.other.unit.em.css, keyword.other.unit.vh.css, keyword.other.unit.vw.css, keyword.control.unit.css.sass, keyword.other.unit.percentage.css | #fff | — |
| variable.css, variable.scss | #fff | bold |
| support.function.misc.css, support.function.misc.scss, entity.name.function, support.function.calc.css, support.function.url.css | #fff | bold |
| punctuation.section.function.begin.bracket.round.css, punctuation.section.function.end.bracket.round.css, punctuation.section.function.scss, entity.name.function.close | #fff | bold |
| keyword.control.at-rule | #5f6f81 | bold |
| keyword.operator.logical.and.media.css | #fff | bold |
| meta.at-rule.media.header.css | #fff | bold |
| keyword.other.important.css, keyword.other.important.scss, keyword.other.default.scss | #fff | bold |
| punctuation.definition.entity.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css | #fff | bold |
| constant.other.color.rgb-value.hex.css | #7b80a8 | bold |
| support.constant.color.w3c-standard-color-name.css, support.constant.color.w3c-extended-color-name.css | #ad919a | bold |
| comment.punctuation.comma.sass | #4f5757 | — |
| keyword.operator.logical.js, keyword.operator.logical.jsx, keyword.operator.logical.ts, keyword.operator.logical.tsx, keyword.operator.comparison.js, keyword.operator.comparison.jsx, keyword.operator.comparison.ts, keyword.operator.comparison.tsx, keyword.operator.assignment.js, keyword.operator.assignment.jsx, keyword.operator.assignment.ts, keyword.operator.assignment.tsx, keyword.operator.ternary.js, keyword.operator.ternary.jsx, keyword.operator.ternary.ts, keyword.operator.ternary.tsx, storage.type.function.arrow.js, storage.type.function.arrow.jsx, storage.type.function.arrow.ts, storage.type.function.arrow.tsx, meta.arrow.js, meta.arrow.jsx, meta.arrow.ts, meta.arrow.tsx, keyword.operator.optional.js, keyword.operator.optional.jsx, keyword.operator.optional.ts, keyword.operator.optional.tsx, punctuation.terminator.statement.js, punctuation.terminator.statement.jsx, punctuation.terminator.statement.ts, punctuation.terminator.statement.tsx | #bbb | — |
| punctuation.definition.block.js, punctuation.definition.block.jsx, punctuation.definition.block.ts, punctuation.definition.block.tsx, meta.brace.round.js, meta.brace.round.jsx, meta.brace.round.ts, meta.brace.round.tsx, punctuation.definition.parameters.begin.js, punctuation.definition.parameters.begin.jsx, punctuation.definition.parameters.begin.ts, punctuation.definition.parameters.begin.tsx, punctuation.definition.parameters.end.js, punctuation.definition.parameters.end.jsx, punctuation.definition.parameters.end.ts, punctuation.definition.parameters.end.tsx, meta.brace.square.js, meta.brace.square.jsx, meta.brace.square.ts, meta.brace.square.tsx, punctuation.section.embedded.begin.js, punctuation.section.embedded.begin.jsx, punctuation.section.embedded.begin.ts, punctuation.section.embedded.begin.tsx, punctuation.section.embedded.end.js, punctuation.section.embedded.end.jsx, punctuation.section.embedded.end.ts, punctuation.section.embedded.end.tsx, punctuation.definition.binding-pattern.array.js, punctuation.definition.binding-pattern.array.jsx, punctuation.definition.binding-pattern.array.ts, punctuation.definition.binding-pattern.array.tsx, punctuation.definition.binding-pattern.object.js, punctuation.definition.binding-pattern.object.jsx, punctuation.definition.binding-pattern.object.ts, punctuation.definition.binding-pattern.object.tsx | #ffffff48 | bold |
| storage.type, storage.type.js, storage.type.jsx, storage.type.ts, storage.type.tsx, storage.type.function | #727272 | bold |
| support.variable.property.js, support.variable.property.jsx, support.variable.property.ts, support.variable.property.tsx | #727272 | bold |
| constant.language.boolean.true.js, constant.language.boolean.true.jsx, constant.language.boolean.true.ts, constant.language.boolean.true.tsx, constant.language.boolean.false.js, constant.language.boolean.false.jsx, constant.language.boolean.false.ts, constant.language.boolean.false.tsx | #eee | bold |
| constant.language.null.js, constant.language.null.jsx, constant.language.null.ts, constant.language.null.tsx, constant.language.undefined.js, constant.language.undefined.jsx, constant.language.undefined.ts, constant.language.undefined.tsx | #fff | underline |
| keyword.operator.expression.void.js, keyword.operator.expression.voidjsx, keyword.operator.expression.void.ts, keyword.operator.expression.void.tsx | #fff | underline |
| storage.modifier.async.js, storage.modifier.async.jsx, storage.modifier.async.ts, storage.modifier.async.tsx | #727272 | bold |
| keyword.control.conditional.js, keyword.control.conditional.jsx, keyword.control.conditional.ts, keyword.control.conditional.tsx, keyword.control.trycatch.js, keyword.control.trycatch.jsx, keyword.control.trycatch.ts, keyword.control.trycatch.tsx, keyword.control.switch.js, keyword.control.switch.jsx, keyword.control.switch.ts, keyword.control.switch.tsx, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.jsx, keyword.operator.expression.instanceof.ts, keyword.operator.expression.instanceof.tsx, storage.type.function.js, storage.type.function.jsx, storage.type.function.ts, storage.type.function.tsx | #727272 | bold |
| keyword.control.loop.js, keyword.control.loop.jsx, keyword.control.loop.ts, keyword.control.loop.tsx, keyword.control.loop.js, keyword.operator.expression.of.js, keyword.operator.expression.of.jsx, keyword.operator.expression.of.ts, keyword.operator.expression.of.tsx | #727272 | bold |
| keyword.control.flow.js, keyword.control.flow.jsx, keyword.control.flow.ts, keyword.control.flow.tsx | #fff | underline |
| variable.language.this.js, variable.language.this.jsx, variable.language.this.ts, variable.language.this.tsx | #727272 | bold |
| variable.language.super.js, variable.language.super.jsx, variable.language.super.ts, variable.language.super.tsx | #727272 | bold |
| keyword.operator.new.js, keyword.operator.new.jsx, keyword.operator.new.ts, keyword.operator.new.tsx | #fff | underline |
| keyword.control.import.js, keyword.control.import.jsx, keyword.control.import.ts, keyword.control.import.tsx, keyword.control.from.js, keyword.control.from.jsx, keyword.control.from.ts, keyword.control.from.tsx, keyword.control.as.js, keyword.control.as.jsx, keyword.control.as.ts, keyword.control.as.tsx, keyword.control.export.js, keyword.control.export.jsx, keyword.control.export.ts, keyword.control.export.tsx, keyword.control.default.js, keyword.control.default.jsx, keyword.control.default.ts, keyword.control.default.tsx, storage.modifier.js, storage.modifier.jsx, storage.modifier.ts, storage.modifier.tsx | #727272 | bold |
| constant.language.import-export-all.js, constant.language.import-export-all.jsx, constant.language.import-export-all.ts, constant.language.import-export-all.tsx | #727272 | bold |
| variable, string constant.other.placeholder | #fafafa | — |
| entity.name.function, entity.name.function.js, entity.name.function.jsx, entity.name.function.ts, entity.name.function.tsx, meta.function-call, meta.function-call.js, meta.function-call.jsx, meta.function-call.ts, meta.function-call.tsx | #fff | bold |
| storage.type.class.js, storage.type.class.jsx, storage.type.class.ts, storage.type.class.tsx | #727272 | bold |
| entity.name.type.class.js, entity.name.type.class.jsx, entity.name.type.class.ts, entity.name.type.class.tsx, entity.other.inherited-class.js, entity.other.inherited-class.jsx, entity.other.inherited-class.ts, entity.other.inherited-class.tsx | #fff | bold |
| string.quoted.single.js, string.quoted.single.jsx, string.quoted.single.ts, string.quoted.single.tsx, string.quoted.double.js, string.quoted.double.jsx, string.quoted.double.ts, string.quoted.double.tsx, string.template.js, string.template.jsx, string.template.ts, string.template.tsx | #b7fada | — |
| punctuation.definition.template-expression.begin.js, punctuation.definition.template-expression.begin.jsx, punctuation.definition.template-expression.begin.ts, punctuation.definition.template-expression.begin.tsx, punctuation.definition.template-expression.end.js, punctuation.definition.template-expression.end.jsx, punctuation.definition.template-expression.end.ts, punctuation.definition.template-expression.end.tsx | #fff | bold |
| constant.numeric.decimal.js, constant.numeric.decimal.jsx, constant.numeric.decimal.ts, constant.numeric.decimal.tsx | #c9c9fc | — |
| entity.name.tag.js, entity.name.tag.jsx, entity.name.tag.ts, entity.name.tag.tsx | #fff | bold |
| punctuation.definition.tag.begin.js.jsx, punctuation.definition.tag.end.js.jsx | #bbb | bold |
| entity.other.attribute-name.js, entity.other.attribute-name.jsx, entity.other.attribute-name.ts, entity.other.attribute-name.tsx | #777 | |
| support.type.primitive.ts, support.type.primitive.tsx | #323232 | bold |
| storage.type.namespace.ts, storage.type.namespace.tsx, storage.type.type.ts, storage.type.type.tsx | #363b3b | bold |
| entity.name.type.module.ts, entity.name.type.module.tsx, entity.name.type.ts, entity.name.type.tsx | #FFF | bold |
| entity.name.type.alias.ts, entity.name.type.alias.tsx | #ffbfa6 | |
| support.type.property-name.json | — | |
| source.json meta.structure.dictionary.json support.type.property-name.json | #FFF | — |
| source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json | #AAA | — |
| 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 | #565656 | — |
| 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 | #FFF | — |
| 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 | #AAA | — |
| 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 | #565656 | — |
| 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 | #FFF | — |
| 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 | #AAA | — |
| 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 | #565656 | — |
| string.quoted.double.json | #b7fada | — |
| constant.numeric.json | #c9c9fc | — |
| constant.language.json | #EEE | bold |
| punctuation.definition.array.begin.json, punctuation.definition.array.end.json | #AAA | — |
| punctuation.separator.dictionary.key-value.json, punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json | #444 | — |
| punctuation.separator.array.json | #444 | — |
| text.html.markdown, punctuation.definition.list_item.markdown | #fff | — |
| text.html.markdown markup.inline.raw.markdown, markup.inline.raw.string.markdown | #b7fada | — |
| text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown | #bbb | — |
| markdown.heading, entity.name.section.markdown, markup.heading | markup.heading entity.name, markup.heading.markdown punctuation.definition.heading.markdown | #c9c9fc | bold |
| markup.italic.markdown | #aaa | italic |
| markup.bold, markup.bold string | #aaa | bold |
| 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 | #aaa | bold italic |
| markup.underline | #aaa | underline |
| punctuation.definition.quote.begin.markdown | #ffffff32 | — |
| markup.quote.markdown | #626969 | bold |
| string.other.link.title.markdown, string.other.link.description.markdown | #ccc | — |
| string.other.link.description.title.markdown | #ccc | |
| constant.other.reference.link.markdown, markup.underline.link.markdown, markup.underline.link.image.markdown | #fff | — |
| punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.metadata.markdown | #a4b7d1 | — |
| punctuation.definition.list.begin.markdown | #646464 | — |
| markup.list.numbered.markdown, markup.list.unnumbered.markdown | #aaa | — |
| punctuation.definition.markdown | #2b5842 | bold |
| fenced_code.block.language.markdown | #2b5842 | bold |
| meta.separator | #ffe1e1 | bold |
| string.unquoted.plain.out.yaml | #7b7b7b | — |
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}!`;
}