Github Dark Tritanopia
Publisher: zanatyThemes in package: 1
GitHub Dark Tritanopia color theme for VS Code - A colorblind-friendly dark theme based on GitHub's design system
GitHub Dark Tritanopia color theme for VS Code - A colorblind-friendly dark theme based on GitHub's design system
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 |
|---|---|---|
| text.html.markdown, text.markdown, text.html.markdown meta.block-level | #f0f6fc | — |
| comment, punctuation.definition.comment, comment.block.documentation, comment.line.documentation | #9198a1 | — |
| string, string.quoted.single, string.quoted.double, string.template, string.quoted.triple, string.regexp, string.other.link | #a5d6ff | — |
| constant.character.escape, string.escape | #ff7b72 | — |
| markup.underline.link, markup.underline.link.uri | #a5d6ff | italic |
| text.html.markdown punctuation.definition.list, text.markdown punctuation.definition.list | #f0f6fc | — |
| meta.object-literal.key string, meta.object.member string | #7ee787 | — |
| meta.object-literal.key, meta.object.member, meta.object-literal meta.property-name, meta.property-name, variable.other.property | #f0f6fc | — |
| variable.function, variable.other.function, entity.name.function, entity.name.method, meta.function-call variable.function, meta.method-call variable.function | #d2a8ff | — |
| entity.name.type, meta.type.annotation, meta.type.annotation entity.name.type, support.type | #ffa657 | — |
| meta.type.annotation punctuation.separator.type, punctuation.separator.type | #f0f6fc | — |
| meta.method-call, meta.property-access, source.js meta.method-call, source.ts meta.method-call | #d2a8ff | — |
| storage.type.function.arrow, meta.arrow, meta.function.arrow, source.js storage.type.function.arrow, source.ts storage.type.function.arrow | #ff7b72 | — |
| storage.type.function.arrow punctuation, meta.arrow punctuation, source.js storage.type.function.arrow punctuation.section.arrow, source.ts storage.type.function.arrow punctuation.section.arrow | #ff7b72 | — |
| comment.block.documentation, comment.line.documentation | #9198a1 | — |
| keyword, storage.type, storage.modifier | #ff7b72 | — |
| keyword.operator | #ff7b72 | — |
| keyword.operator, punctuation | #ff7b72 | — |
| string | #a5d6ff | — |
| constant.character.escape, string.escape | #ff7b72 | — |
| string.regexp | #a5d6ff | — |
| string.quoted, string.template, string.special | #79c0ff | — |
| string.special.symbol, constant.other.symbol | #79c0ff | — |
| constant.numeric | #79c0ff | — |
| constant.language, constant.other | #79c0ff | — |
| constant.language.boolean | #79c0ff | — |
| punctuation | #ff7b72 | — |
| punctuation.definition.bracket, punctuation.section.brackets | #f0f6fc | — |
| punctuation.separator, punctuation.definition | #f0f6fc | — |
| punctuation.definition.tag.jsx, punctuation.definition.tag.begin.jsx, punctuation.definition.tag.end.jsx | #ff7b72 | — |
| punctuation.definition.list.begin, punctuation.definition.list.end | #f0f6fc | — |
| punctuation.section.embedded, punctuation.special | #ff7b72 | — |
| entity.name.function, meta.function-call entity.name.function | #d2a8ff | — |
| entity.name.method | #d2a8ff | — |
| entity.name.function.special, meta.function.definition entity.name.function | #d2a8ff | — |
| entity.name.type, support.type | #ffa657 | — |
| support.type.builtin | #79c0ff | — |
| entity.name.enum | #ffa657 | — |
| entity.name.variant | #ffa657 | — |
| entity.name.function.constructor | #ff7b72 | — |
| variable | #f0f6fc | — |
| variable.language, variable.language.this, variable.language.super, variable.language.self | #79c0ff | — |
| variable.parameter | #f0f6fc | — |
| variable.other.special | #79c0ff | — |
| variable.other.property | #f0f6fc | — |
| support.type.property-name.json | #7ee787 | — |
| entity.other.attribute-name | #79c0ff | — |
| entity.name.label | #79c0ff | — |
| entity.name.tag | #7ee787 | — |
| meta.embedded, punctuation.section.embedded | #ff7b72 | — |
| markup.italic | — | italic |
| markup.bold | — | bold |
| markup.heading, entity.name.section | #79c0ff | bold |
| markup.inline.raw, markup.raw | #79c0ff | — |
| markup.underline.link, string.other.link | #a5d6ff | italic |
| markup.underline.link.uri | #79c0ff | — |
| meta.preprocessor | #ff7b72 | — |
| source | #f0f6fc | — |
| comment.line, comment.block | #9198a1 | bold |
| comment.block.documentation | #9198a1 | italic |
| storage.type, storage.type.primitive | #ff7b72 | — |
| storage.modifier, storage.modifier.async, storage.modifier.static | #ff7b72 | — |
| support.class, support.type.class-name | #ffa657 | — |
| support.function, support.function.builtin | #d2a8ff | — |
| support.constant, support.constant.property-value | #79c0ff | — |
| support.variable, support.variable.property | #79c0ff | — |
| entity.name.class, entity.name.type.class | #ffa657 | — |
| entity.name.namespace, entity.name.scope-resolution | #ffa657 | — |
| entity.name.module | #ffa657 | — |
| entity.name.section | #79c0ff | bold |
| meta.function-call, meta.method-call | #d2a8ff | — |
| meta.class, meta.class.body | #ffa657 | — |
| meta.property-name, meta.object-literal.key | #f0f6fc | — |
| invalid, invalid.illegal, invalid.deprecated | #f85149 | — |
| string.quoted.single | #a5d6ff | — |
| string.quoted.double | #a5d6ff | — |
| string.template, string.quoted.triple | #a5d6ff | — |
| constant.character, constant.character.entity | #79c0ff | — |
| constant.numeric.integer, constant.numeric.float | #79c0ff | — |
| variable.other.object.property, variable.other.property | #f0f6fc | — |
| variable.other.readwrite, variable.other.readwrite.alias | #f0f6fc | — |
| punctuation.definition.string, punctuation.definition.string.begin, punctuation.definition.string.end | #a5d6ff | — |
| punctuation.definition.variable, punctuation.definition.parameters | #f0f6fc | — |
| punctuation.accessor, punctuation.separator.key-value | #f0f6fc | — |
| markup.underline | — | underline |
| markup.strikethrough | — | strikethrough |
| markup.quote | — | italic |
| markup.inline.raw, markup.fenced_code.block | #79c0ff | — |
| markup.list, markup.list.numbered, markup.list.unnumbered | #f0f6fc | — |
| entity.other.inherited-class | #ffa657 | — |
| entity.other.attribute-name.id | #79c0ff | — |
| entity.other.attribute-name.class | #79c0ff | — |
| meta.tag, meta.tag.sgml | #7ee787 | — |
| meta.tag.structure, meta.tag.block | #7ee787 | — |
| punctuation.definition.tag, punctuation.definition.tag.begin, punctuation.definition.tag.end | #ff7b72 | — |
| punctuation.definition.comment | #9198a1 | — |
| keyword.control, keyword.control.flow, keyword.control.conditional, keyword.control.loop | #ff7b72 | — |
| keyword.other, keyword.other.important | #ff7b72 | — |
| variable.language, variable.language.this, variable.language.super, variable.language.self | #79c0ff | — |
| constant.language, constant.language.null, constant.language.undefined, constant.language.true, constant.language.false | #79c0ff | — |
| support.type.property-name, support.type.property-name.css, support.type.property-name.scss | #f0f6fc | — |
| entity.name.function.constructor, entity.name.function.new | #d2a8ff | — |
| meta.brace, meta.brace.round, meta.brace.square, meta.brace.curly | #f0f6fc | — |
| meta.delimiter, meta.delimiter.period, meta.delimiter.comma | #f0f6fc | — |
| string.interpolated, string.template meta.embedded | #79c0ff | — |
| punctuation.section.embedded, punctuation.definition.template-expression | #ff7b72 | — |
| source | #f0f6fc | — |
| text | #f0f6fc | — |
| variable.function, variable.other.function | #d2a8ff | — |
| entity.name.type, support.type, meta.type.annotation, meta.type.parameters, punctuation.definition.type | #ffa657 | — |
| variable.other.property, meta.property-access, meta.method-call variable.function | #f0f6fc | — |
| meta.object-literal.key, meta.object.member, meta.object-literal meta.property-name | #79c0ffff | — |
| string.quoted.module, string.quoted.single.module, string.quoted.double.module | #a5d6ff | — |
| punctuation.accessor, punctuation.separator.property-period, punctuation.definition.method | #f0f6fc | — |
| punctuation.definition.array, punctuation.section.array | #f0f6fc | — |
| meta.destructuring, meta.destructuring.object, meta.destructuring.array | #f0f6fc | — |
| meta.arrow, meta.function.arrow | #ff7b72 | — |
| keyword.control.return, keyword.control.flow | #ff7b72 | — |
| entity.name.type.alias, entity.name.type.interface | #ffa657 | — |
| support.type.generic, meta.generic | #ffa657 | — |
| variable.other.constant | #f0f6fc | — |
| variable.other.readonly | #f0f6fc | — |
| meta.block, meta.block.inner | #f0f6fc | — |
| punctuation.definition.parameters, punctuation.section.parameters | #f0f6fc | — |
| meta.group, meta.group.braces | #f0f6fc | — |
| source.js string.template meta.embedded, source.ts string.template meta.embedded, string.template meta.template.expression | #79c0ff | — |
| entity.name.tag.namespace, entity.name.tag.custom | #7ee787 | — |
| support.class.component, entity.name.tag.component | #FFA657 | — |
| meta.jsx.children, meta.tag.other | #f0f6fc | — |
| keyword.control.conditional, keyword.control.conditional.ternary | #ff7b72 | — |
| keyword.control.exception, keyword.control.try-catch | #ff7b72 | — |
| storage.type.function, storage.type.function.arrow | #ff7b72 | — |
| meta.function-call variable.function, meta.method-call variable.function | #d2a8ff | — |
| variable.other.member, variable.other.object | #ffa657 | — |
| meta.object.method, meta.method | #d2a8ff | — |
| punctuation.definition.type, punctuation.separator.type | #f0f6fc | — |
| meta.type.parameters, meta.generic.type | #ffa657 | — |
| entity.name.type.parameter, entity.name.type.template | #ffa657 | — |
| support.type.primitive, storage.type.primitive | #79c0ff | — |
| constant.numeric.hex, constant.numeric.octal, constant.numeric.binary | #79c0ff | — |
| string.regexp.character-class, string.regexp.character-set | #a5d6ff | — |
| string.regexp.group, string.regexp.backreference | #a5d6ff | — |
| entity.name.function.decorator, punctuation.decorator | #d2a8ff | — |
| meta.decorator, meta.annotation | #d2a8ff | — |
| support.variable.dom, support.variable.property.dom | #79c0ff | — |
| support.constant.dom, support.constant.property-value | #79c0ff | — |
| entity.name.namespace.type, entity.name.scope-resolution.type | #ffa657 | — |
| meta.export, meta.import | #ff7b72 | — |
| keyword.control.import, keyword.control.export, keyword.control.module | #ff7b72 | — |
| variable.other.readwrite.alias, variable.other.assignment | #f0f6fc | — |
| meta.import variable, meta.import-equals variable.other.readwrite, meta.import variable.other, meta.import entity.name, meta.import entity.name.class, meta.import entity.name.type | #ff7b72 | — |
| meta.object-literal.key string, meta.object.member string | #7ee787 | — |
| support.function.magic, support.function.builtin.python | #d2a8ff | — |
| entity.name.type.class.python, entity.name.type.class | #ffa657 | — |
| variable.parameter.function, meta.function.parameters variable.parameter | #f0f6fc | — |
| punctuation.definition.arguments, punctuation.section.arguments | #f0f6fc | — |
| meta.function.expression, meta.function.inline | #d2a8ff | — |
| storage.modifier.async, storage.modifier.await | #ff7b72 | — |
| keyword.operator.expression, keyword.operator.arithmetic, keyword.operator.comparison, keyword.operator.logical | #ff7b72 | — |
| punctuation.definition.variable.template, punctuation.section.embedded.begin, punctuation.section.embedded.end | #ff7b72 | — |
| meta.conditional-expression, meta.ternary | #f0f6fc | — |
| entity.name.tag.inline, entity.name.tag.block | #7ee787 | — |
| constant.other.color, support.constant.color | #79c0ff | — |
| meta.property-value, support.constant.property-value | #79c0ff | — |
| entity.other.attribute-name.pseudo-class, entity.other.attribute-name.pseudo-element | #79c0ff | — |
| support.function.transform, support.function.misc | #d2a8ff | — |
| variable.other.enum-member, constant.other.enum | #ffa657 | — |
| entity.name.type.union, entity.name.type.intersection | #ffa657 | — |
| punctuation.separator.union, punctuation.separator.intersection | #f0f6fc | — |
| meta.type.constraint, meta.type.extends | #ffa657 | — |
| keyword.operator.type, keyword.operator.expression.type | #ff7b72 | — |
| storage.type.modifier, storage.modifier.abstract, storage.modifier.final | #ff7b72 | — |
| entity.name.function.generator, storage.type.function.generator | #d2a8ff | — |
| meta.generator, meta.generator.expression | #d2a8ff | — |
| punctuation.definition.generator, punctuation.accessor.generator | #ff7b72 | — |
| variable.other.block, variable.other.block.scope | #f0f6fc | — |
| meta.block variable, meta.block variable.other | #79c0ffff | — |
| support.class.promise, support.class.builtin | #ffa657 | — |
| entity.name.type.array, meta.array.type | #ffa657 | — |
| punctuation.definition.generic, punctuation.section.generic | #f0f6fc | — |
| meta.generic, meta.type.parameters | #ffa657 | — |
| support.type.error, support.type.exception | #ffa657 | — |
| entity.name.exception, entity.name.type.exception | #ffa657 | — |
| keyword.control.exception, keyword.control.try-catch | #ff7b72 | — |
| string.quoted.other, string.quoted.triple.other | #a5d6ff | — |
| constant.character.format, constant.character.placeholder | #79c0ff | — |
| meta.format-string, string.quoted.format | #a5d6ff | — |
| punctuation.definition.format, punctuation.definition.placeholder | #ff7b72 | — |
| support.function.format, support.function.print | #d2a8ff | — |
| variable.interpolation, variable.other.interpolation | #79c0ff | — |
| punctuation.definition.interpolation, punctuation.section.interpolation | #ff7b72 | — |
| meta.interpolation, meta.string.interpolation | #79c0ff | — |
| entity.name.tag.script, entity.name.tag.style | #7ee787 | — |
| entity.name.tag.doctype, entity.name.tag.processing | #7ee787 | — |
| entity.other.attribute-name.namespace, entity.other.attribute-name.xml | #79c0ff | — |
| string.quoted.xml, string.quoted.double.xml | #a5d6ff | — |
| entity.name.tag.xml, entity.name.tag.sgml | #7ee787 | — |
| punctuation.definition.entity, punctuation.definition.entity.begin, punctuation.definition.entity.end | #ff7b72 | — |
| constant.character.entity, constant.character.entity.named | #79c0ff | — |
| keyword.control.exception, keyword.control.try-catch | #ff7b72 | — |
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}!`;
}