Night Milk
Publisher: carljkempeThemes in package: 1
Dark Twitter blues with vibrant hues
Dark Twitter blues with vibrant hues
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 |
|---|---|---|
| Global settings | #BDD2E7 | — |
| meta.property-list.css meta.property-value.css variable.other.less, meta.property-list.scss variable.scss, meta.property-list.sass variable.sass, meta.brace, keyword.operator.operator, keyword.operator.or.regexp, keyword.operator.expression.in, keyword.operator.relational, keyword.operator.assignment, keyword.operator.comparison, keyword.operator.type, keyword.operator, keyword, punctuation.definintion.string, punctuation, variable.other.readwrite.js, storage.type, source.css, string.quoted | — | normal |
| markup.changed, meta.diff.header.git, meta.diff.header.from-file, meta.diff.header.to-file | #1DA1F2 | normal |
| markup.deleted.diff | #F05050 | normal |
| markup.inserted.diff | #64DE8C | normal |
| variable.language | #1DA1F2 | — |
| constant.character.escape | #3FC56B | — |
| punctuation.definition.tag, meta.tag | #BDD2E7 | — |
| entity.other.attribute-name | #6E78E6 | normal |
| entity.other.attribute-name.class.pug | #F9C859 | normal |
| support.variable.property | #00DCDC | — |
| invalid.deprecated | #F05050 | — |
| string.regexp, string.regexp keyword.other, string.regexp punctuation.definition.string, constant.character.escape.backslash.regexp, constant.other.character-class.set.regexp, constant.character.control.regexp | #DBD4BA | — |
| constant.other.color | #BDD2E7 | — |
| italic | normal | |
| bold | #3FC56B | bold |
| quote | #3FC56B | normal |
| invalid | #FFFFFF | — |
| support.variable, support.type, support.class, entity.name.type.class | #6E78E6 | — |
| support.function, support.constant | #6E78E6 | normal |
| variable.other.object.property | #BDD2E7 | normal |
| variable.instance, variable.other.instance, variable.readwrite.instance, variable.other.readwrite.instance, variable.other.property | #F29455 | — |
| support.constant.math | #FF3838 | — |
| storage.type, punctuation.definition.block.tag, meta.method.declaration, meta.method.declaration storage.type.js | #1DA1F2 | normal |
| storage.type.interface | #1DA1F2 | — |
| storage, meta.class meta.method.declaration meta.var.expr storage.type.js, storage.type.property.js, storage.type.property.ts, storage.type.property.tsx | #1DA1F2 | normal |
| entity.name.tag.custom | #DC8CFF | — |
| meta.delimiter.period | #DC8CFF | normal |
| meta.selector | #DC8CFF | normal |
| entity.name.tag.doctype, meta.tag.sgml.doctype | #DC8CFF | normal |
| keyword.control.conditional.js, keyword.control.conditional.ts, keyword.control.switch.js, keyword.control.switch.ts | #DC8CFF | normal |
| keyword.control.loop | #DC8CFF | — |
| keyword.control | #6E78E6 | — |
| variable.parameter.function | #00DCDC | normal |
| meta.function-call | — | normal |
| meta.property-name | #00DCDC | — |
| keyword.control.operator | #00DCDC | — |
| entity.name.function, meta.class entity.name.type.class.js, entity.other.inherited-class.js, meta.class entity.name.type.class.tsx, entity.name.type.class.cpp, entity.name.type.inherited.cpp | #00DCDC | — |
| support.constant, keyword.other.special-method, keyword.other.new, keyword.other.debugger | #00DCDC | — |
| meta.var.expr, meta.object-literal.key | #BDD2E7 | normal |
| variable | #F9C859 | normal |
| constant.language, punctuation.definition.constant, variable.other.constant | #F9C859 | — |
| constant.character, constant.other | #F9C859 | — |
| entity.name.class, meta.class entity.name.type.class | #F9C859 | — |
| entity.other.inherited-class | #F9C859 | — |
| string | #3FC56B | — |
| string.quoted, variable.other.readwrite.js, string.quoted.single.js | #3FC56B | — |
| string.template punctuation.definition.string | #3FC56B | — |
| punctuation.definition.string | #3FC56B | — |
| punctuation, punctuation.separator, meta.property-list.css.sass, punctuation.accessor, punctuation.accessor | #BDD2E7 | — |
| punctuation.terminator.expression, punctuation.definition.arguments, punctuation.definition.array, punctuation.section.array, meta.array | #BDD2E7 | — |
| punctuation.definition.list.begin, punctuation.definition.list.end, punctuation.separator.arguments, punctuation.definition.list | #BDD2E7 | — |
| punctuation.definition.string.markdown, punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, meta.link.inline.markdown punctuation.definition.string | #BDD2E7 | — |
| meta.import.ts punctuation.definition.block, meta.import.tsx punctuation.definition.block, meta.export.ts punctuation.definition.block, meta.export.tsx punctuation.definition.block | #BDD2E7 | — |
| meta.brace, punctuation.definition, punctuation.definition.parameters | #BDD2E7 | — |
| punctuation.definition.template-expression | #FF3838 | — |
| keyword.operator | #FF3838 | normal |
| keyword.operator.expression | #FF3838 | — |
| keyword.operator.assignment | #FF3838 | — |
| keyword.operator.arithmetic | #FF3838 | — |
| keyword.operator.bitwise | #FF3838 | — |
| keyword.operator.increment, keyword.operator.decrement | #FF3838 | — |
| keyword.operator.ternary | #FF3838 | — |
| keyword.operator.logical | #DC8CFF | normal |
| keyword.operator.comparison | #DC8CFF | — |
| keyword.operator.relational | #DC8CFF | normal |
| comment, comment.block.documentation punctuation.definition.bracket.curly | #647882 | normal |
| comment.line.double-slash, punctuation.definition.comment, punctuation.whitespace.comment, string.comment.buffered.block.pug | #647882 | — |
| comment.block.documentation entity.name.type.instance.jsdoc, comment.block.documentation entity.name.type.instance.phpdoc | #6E78E680 | — |
| comment.block.documentation variable.other.jsdoc, comment.block.documentation variable.other.phpdoc | #F9C85980 | — |
| comment.block.documentation storage.type.class.jsdoc, comment.block.documentation punctuation.definition.block.tag.jsdoc | #1DA1F280 | — |
| constant.numeric, constant.character.numeric | #F29455 | normal |
| constant.language.null, constant.language.undefined | #FF3838 | — |
| constant.language.boolean | #FF3838 | — |
| entity.name.type | #F9C859 | — |
| variable.scss, variable.sass, variable.parameter.scss, variable.parameter.sass | #F9C859 | — |
| entity.other.attribute-name.id, entity.other.attribute-name.id.css, entity.other.attribute-name.id.css punctuation.definition.entity.css, entity.other.attribute-name.id.scss, entity.other.attribute-name.id.css.sass | #1DA1F2 | — |
| support.function.name.sass.library, source.sass entity.name.function | #1DA1F2 | — |
| entity.other.attribute-name.class.css, entity.other.attribute-name.class.css punctuation.definition.entity.css, entity.other.attribute-name.class.css.sass, entity.other.attribute-name.class.scss | #F9C859 | — |
| entity.name.tag.css, entity.name.tag.less, entity.name.tag.custom.css, entity.name.tag.reference.scss, entity.name.tag.css.sass | #FF3838 | normal |
| entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css, entity.other.pseudo-class.css.sass, entity.other.attribute-name.pseudo-element.css, entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css | #DC8CFF | normal |
| support.type.property-name.css, support.type.property-name.css.sass | #00DCDC | — |
| support.constant.property-value.css | #F29455 | — |
| keyword.other.unit, keyword.other.unit.css, keyword.other.unit.scss, keyword.other.unit.css.sass, constant.numeric.css, punctuation.definition.constant.css, constant.numeric.css.sass | #F29455 | — |
| support.type.vendor.property-name, support.constant.vendor.property-value, support.type.property-name, meta.property-list entity.name.tag | #6E78E6 | normal |
| keyword.other.important.css, keyword.other.important.scss | #FF3838 | normal |
| meta.at-rule.keyframes.body.css, source.css.scss meta.at-rule.keyframes.scss entity.other.attribute-name.scss | #DC8CFF | normal |
| punctuation.definition.keyword, entity.name.tag.reference, entity.name.tag.custom.css, entity.name.tag.custom.scss, entity.name.tag.custom.sass, support.function.sass, keyword.control.interpolation.sass, keyword.operator.css.sass, keyword.other.reserved.sass, keyword.control.at-rule, keyword.control.at-rule.css.sass | #6E78E6 | normal |
| punctuation.separator.key-value.css, punctuation.separator.key-value.scss, punctuation.separator.key-value.less, punctuation.separator.key-value.css.sass | #BDD2E7 | — |
| entity.name.tag.wildcard.css, entity.name.tag.wildcard.less, entity.name.tag.wildcard.scss, entity.name.tag.wildcard.sass | #00DCDC | — |
| meta.attribute-selector.css entity.other.attribute-name, meta.attribute-selector.less entity.other.attribute-name.attribute, entity.other.attribute-name.css.sass, keyword.operator.attribute-selector.css.sass, meta.attribute-selector, source.css.scss entity.other.attribute-name.attribute, meta.attribute-selector.scss, meta.attribute-selector.scss keyword.operator.scss, meta.attribute-selector.scss punctuation.definition.string.begin.scss, meta.attribute-selector.scss punctuation.definition.string.end.scss, meta.attribute-selector.scss punctuation.definition.attribute-selector.begin.bracket.square.scss, meta.attribute-selector.scss punctuation.definition.attribute-selector.end.bracket.square.scss, entity.other.attribute-selector.sass, meta.attribute-selector.css, meta.attribute-selector.css keyword.operator.pattern.css, meta.attribute-selector.css punctuation.definition.entity.begin.bracket.square.css, meta.attribute-selector.css punctuation.definition.entity.end.bracket.square.css | #3FC56B | — |
| support.function.interpolation.sass, punctuation.definition.interpolation.begin.bracket.curly.scss, punctuation.definition.interpolation.end.bracket.curly.scss | #FF3838 | — |
| meta.class entity.name.type.class.js, entity.other.inherited-class.js, meta.class entity.name.type.class.tsx | — | underline |
| support.variable.property.js | #6E78E6 | normal |
| storage.type.function.arrow.js | — | normal |
| variable.language.this.js | #FF3838 | — |
| meta.object.member.js meta.object-literal.key.js, variable.other.property.js | #BDD2E7 | — |
| variable.other.meta.import.js, meta.import.js variable.other, variable.other.meta.export.js, meta.export.js variable.other | #F9C859 | — |
| meta.function-call.js entity.name.function.js | — | normal |
| meta.decorator punctuation.decorator.ts, meta.decorator punctuation.decorator.tsx | #BDD2E7 | — |
| variable.other.readwrite.alias.ts, variable.other.readwrite.alias.tsx, variable.other.readwrite.ts, variable.other.readwrite.tsx, variable.other.object.ts, variable.other.object.tsx, variable.object.property.ts, variable.object.property.tsx, variable.other.ts, variable.other.tsx, variable.tsx, variable.ts | #F9C859 | — |
| entity.name.type.ts, entity.name.type.tsx | #F9C859 | — |
| meta.type.parameters.ts entity.name.type, meta.type.parameters.tsx entity.name.type | #7BA5CF | — |
| variable.other.readwrite.js, variable.parameter | #F9C859 | — |
| support.class.component.js, support.class.component.tsx | #FF3838 | normal |
| punctuation.decorator.js | #00DCDC | — |
| meta.jsx.children, meta.jsx.children.js, meta.jsx.children.tsx | #BDD2E7 | — |
| punctuation.section.embedded | #BDD2E7 | — |
| entity.name.type.tsx, entity.name.type.module.tsx | #6E78E6 | normal |
| meta.method.declaration storage.type.ts, meta.method.declaration storage.type.tsx | #1DA1F2 | — |
| variable.other.object.js, variable.other.object.jsx, variable.object.property.js, variable.object.property.jsx | #F9C859 | — |
| variable.js, variable.other.js | #F9C859 | — |
| entity.name.type.js, entity.name.type.module.js | #6E78E6 | normal |
| support.class.js | #F9C859 | — |
| keyword.control.flow.js, keyword.control.flow.ts, keyword.control.flow.tsx, keyword.control.import.js, keyword.control.import.ts, keyword.control.import.tsx, keyword.control.from.js, keyword.control.from.ts, keyword.control.from.tsx | #6E78E6 | normal |
| entity.name.tag, meta.tag.other.html, meta.tag.other.js, meta.tag.other.tsx, entity.name.tag.tsx, entity.name.tag.js, entity.name.tag, meta.tag.js, meta.tag.tsx, meta.tag.html | #FF3838 | normal |
| punctuation.separator.key-value.html, punctuation.definition.tag.html | #BDD2E7 | — |
| support.type.property-name.json | #F9C859 | — |
| support.constant.json | #FF3838 | — |
| meta.structure.dictionary.value.json string.quoted.double | #3FC56B | — |
| string.quoted.double.json punctuation.definition.string.json | #3FC56B | — |
| meta.structure.dictionary.json meta.structure.dictionary.value constant.language | #FF3838 | — |
| constant.language.python | #FF3838 | — |
| variable.parameter.function.python, meta.function-call.arguments.python | #6E78E6 | normal |
| meta.function-call.python, meta.function-call.generic.python | #00DCDC | normal |
| punctuation.python | #BDD2E7 | — |
| entity.name.function.decorator.python | #FF3838 | — |
| source.python variable.language.special | #F9C859 | — |
| variable.assignment.coffee | #F9C859 | — |
| variable.parameter.function.coffee | #00DCDC | — |
| meta.arguments.coffee, variable.parameter.function.coffee | #F9C859 | — |
| variable.other.readwrite.cs | #F9C859 | — |
| entity.name.type.class.cs, storage.type.cs | #6E78E6 | — |
| entity.name.type.namespace.cs | #F9C859 | — |
| source.elixir support.type.elixir, source.elixir meta.module.elixir entity.name.class.elixir | #6E78E6 | — |
| source.elixir entity.name.function | #00DCDC | — |
| source.elixir constant.other.symbol.elixir, source.elixir constant.other.keywords.elixir | #6E78E6 | — |
| source.elixir punctuation.definition.string | #3FC56B | — |
| source.elixir variable.other.readwrite.module.elixir, source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir | #3FC56B | — |
| source.elixir .punctuation.binary.elixir | #DC8CFF | normal |
| markup.heading.markdown | #6E78E6 | bold |
| markup.italic.markdown | #F29455 | normal |
| markup.bold.markdown | #F29455 | bold |
| markup.quote.markdown | #3FC56B | normal |
| markup.underline.link.markdown, markup.underline.link.image.markdown | #F9C859 | — |
| string.other.link.title.markdown, string.other.link.description.markdown | #F9C859 | — |
| punctuation.definition.metadata.markdown | #BDD2E7 | — |
| beginning.punctuation.definition.list.markdown | #3FC56B | — |
| markup.inline.raw.string.markdown | #3FC56B | — |
| source.go keyword.package.go, source.go keyword.import.go, source.go keyword.function.go, source.go keyword.type.go, source.go keyword.struct.go, source.go keyword.interface.go, source.go keyword.const.go, source.go keyword.var.go, source.go keyword.map.go, source.go keyword.channel.go, source.go keyword.control.go | #DC8CFF | normal |
| source.go constant.language.go, source.go constant.other.placeholder.go | #FF3838 | — |
| meta.use.rust, meta.function.definition.rust, keyword.other.rust | #6E78E6 | — |
| entity.name.namespace.rust | #DC8CFF | — |
| entity.name.namespace.rust | #DC8CFF | — |
| punctuation.definition.attribute.rust, punctuation.brackets.attribute.rust | #FF3838 | — |
| punctuation.section.embedded.begin.php, punctuation.section.embedded.end.php | #FF3838 | — |
| keyword.other.namespace.php, keyword.other.use.php, keyword.other.use-as.php, storage.modifier.php | #6E78E6 | — |
| meta.use.php, meta.use.php punctuation.separator.inheritance.php, entity.name.type.namespace.php, entity.name.type.namespace.php punctuation.separator.inheritance.php | #F29455 | — |
| variable.other.php, variable.other.property.php, punctuation.definition.variable.php, support.class.php, entity.other.alias.php | #F9C859 | — |
| meta.function-call.php punctuation | #BDD2E7 | normal |
| keyword.blade | #6E78E6 | — |
| keyword.control.directive.include.cpp punctuation.definition.directive.cpp | #6E78E6 | — |
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}!`;
}