Cold Python Theme
Publisher: nparamonovThemes in package: 1
PyCharm inspired dark theme with icons and JetBrains Mono font
PyCharm inspired dark theme with icons and JetBrains Mono font
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 | #BABABA | — |
| source | #bcbec4 | — |
| emphasis | — | italic |
| strong | — | bold |
| comment | #7a7e85 | — |
| comment.block.documentation | #4a6f59 | italic |
| string.quoted | #5b9c71 | — |
| constant.numeric | #279cb2 | |
| constant.character.escape | #CF8E6D | — |
| variable.parameter.url, string.url | #287BDE | — |
| constant.regexp | #646695 | — |
| constant.keyword, constant.language | #c48d69 | — |
| meta.var storage.type | #c48d69 | — |
| storage.type.function | #c48d69 | — |
| support.function.builtin | #747dc2 | — |
| variable.language.special | #94558d | — |
| variable.language | #c48d69 | — |
| support.constant.handlebars | #ad9665 | |
| support.type.primitive | #c48d69 | |
| source.python variable.parameter.function.language.special | #94558d | |
| source.python meta.function-call.arguments variable.parameter.function-call | #aa4926 | — |
| source.python constant.language, source.python constant.character.escape, source.python keyword.operator.logical, source.python constant.character.format.placeholder.other, source.python meta.function storage.type.function , source.python meta.class storage.type.class, source.python keyword.control.flow, source.python keyword.control.import, source.python storage.type.format, source.python storage.modifier | #c48d69 | |
| source.python support.function.magic, source.python support.variable.magic | #b200b2 | — |
| source.python string.quoted | #6aab73 | |
| source.python string.quoted.docstring, source.python string.quoted.docstring punctuation.definition.string.begin, source.python string.quoted.docstring punctuation.definition.string.end | #5f826b | italic |
| source.python meta.function.decorator support.type, source.python meta.function.decorator entity.name.function.decorator | #adad57 | — |
| source.python support.type, source.python meta.function-call.arguments support.type, source.python meta.function-call support.function.builtin, source.python meta.item-access meta.item-access.arguments support.type | #767ec3 | — |
| source.python entity.name.function | #56a8f5 | |
| source.python string.quoted.binary.single, source.python string.quoted.binary.single punctuation.definition.string.begin, source.python string.quoted.binary.single punctuation.definition.string.end, source.python string.quoted.binary.single storage.type.string | #a5c261 | |
| source.python support.type.exception, source.python meta.class.inheritance support.type.exception, source.python meta.class.inheritance support.type.metaclass | #767ec3 | — |
| text.xml punctuation.definition.tag, text.xml keyword.other | #ad9665 | — |
| text.xml entity.name.tag.localname | #ad9665 | — |
| text.xml entity.name.tag.namespace, text.xml entity.other.attribute-name.namespace | #9876AA | — |
| text.xml string | #6A8759 | — |
| text.xml constant.character.entity | #56A8F5 | — |
| text.xml string.unquoted.cdata | #BCBEC4 | — |
| text.html meta.tag.metadata.script.end punctuation.definition.tag.begin source, text.html meta.tag.metadata.style.end punctuation.definition.tag.begin source | #ad9665 | — |
| text.html punctuation.definition.tag.begin, text.html punctuation.definition.tag.end | #ad9665 | — |
| text.html meta.tag entity.name.tag, text.html entity.name.tag.inline.any, text.html entity.name.tag.block.any | #ad9665 | — |
| text.html meta.tag punctuation, text.html meta.tag string.unquoted, text.html meta.tag string.quoted, text.html meta.attribute.style.html meta.embedded.line.css source.css | #588f66 | — |
| text.html constant | #56A8F5 | — |
| text.html meta.tag.custom entity.name.tag | #2FBAA3 | — |
| text.html constant.character.escape | #c48d69 | |
| text.html.jinja keyword.control | #AD9665 | bold |
| text.html.jinja entity.other.jinja.delimiter.variable, text.html.jinja entity.other.jinja.delimiter.tag, text.html.jinja variable.entity.other.jinja.delimiter, text.html.jinja meta.attribute.unrecognized.{{.html, text.html.jinja meta.attribute.unrecognized.}}.html | #c48d69 | — |
| text.html.django keyword.control | #c48d69 | bold |
| text.html.django entity.other.django.delimiter.variable | #c48d69 | — |
| text.html.django entity.other.django.delimiter.tag | #c48d69 | — |
| text.html.django meta.tag | #ad9665 | — |
| text.html.django meta.tag entity.other.attribute-name | #BABABA | — |
| entity.tag.tagbraces | #c48d69 | — |
| text.html.django storage.type.templatetag keyword.operator.django, text.html.django storage.type.templatetag keyword.control.tag-name, text.html.django storage.type.customtemplatetag constant.other.tag.name | #c48d69 | bold |
| source.css constant | #6897BB | — |
| support.type.property-name.css | #BABABA | — |
| source.css variable.parameter.url | #5C92FF | — |
| meta.at-rule.import.css, meta.at-rule.font-face.css, entity.name.tag.css, punctuation.terminator.rule.css, punctuation.separator.css, punctuation.separator.list.comma.css, keyword.control.at-rule.media.css | #CF8E6D | — |
| constant.other.color.rgb-value.hex.css | #56A8F5 | |
| source.css keyword.other.unit, support.constant.property-value.css | #6AAB73 | |
| constant.other.unicode-range.css, source.css support.function, punctuation.section.function.css, meta.selector.css, keyword.operator.logical.and.media.css | #D5B778 | |
| meta.property-value.css | #588f66 | |
| punctuation.definition.variable.less, variable.other.less | #D0D0FF | — |
| source.css.less entity.other.attribute-name.class.mixin.css, source.css.less constant.other.unicode-range.css | #A5C261 | — |
| source.css.less meta.property-list.css meta.property-value.css entity.name.tag.css, source.css.less meta.property-list.css meta.property-value.css constant.numeric.css | #588f66 | — |
| keyword.other.DML.sql, keyword.other.alias.sql, keyword.other.order.sql, keyword.other.sql, storage.type.sql, source.sql keyword, keyword.other.DDL, source.sql support, support.function.logical.sql, storage.modifier.sql | #c48d69 | — |
| support.function.aggregate.sql, support.function.analytic.sql | #3d85cc | italic |
| constant.other.table-name.sql | #aa6b8c | — |
| text.html.markdown markup.heading, text.html.markdown markup.heading.setext | #99688a | italic |
| text.html.markdown meta.paragraph meta.link.inet markup.underline.link | #4a88c3 | — |
| text.html.markdown meta.link.reference constant.other.reference | #c48d69 | — |
| text.html.markdown meta.link.reference punctuation.definition.constant | #c48d69 | bold |
| text.html.markdown meta.link.inet punctuation | #287BDE | — |
| text.html.markdown meta.link.inline punctuation.definition.string | #287BDE | — |
| text.html.markdown meta.paragraph meta.link.reference punctuation.definition.string | #287BDE | — |
| text.html.markdown meta.link.reference markup.underline.link | #4a88c3 | italic |
| text.html.markdown meta.link.inline markup.underline.link | #4a88c3 | italic |
| text.html.markdown meta.link.reference string.other.link.description.title | #808080 | italic |
| text.html.markdown meta.link.reference string.other.link.title, text.html.markdown meta.reference.link.inline, text.html.markdown meta.reference.link constant.other | #4a88c3 | — |
| text.html.markdown punctuation.definition.bold, text.html.markdown punctuation.definition.italic, text.html.markdown punctuation.definition.strikethrough | #af7353 | — |
| text.html.markdown markup.fenced_code.block, text.html.markdown markup.raw.block, text.html.markdown markup.inline.raw | #808080 | — |
| text.html.markdown meta.statement.command.shell | #6D9CBE | — |
| text.html.markdown meta.statement.command.name.shell, text.html.markdown support.function.builtin.shell | #917747 | — |
| punctuation.definition.markdown, punctuation.definition.list.begin.markdown, punctuation.definition.heading.markdown, punctuation.definition.link.title.begin.markdown, punctuation.definition.link.title.end.markdown, punctuation.definition.metadata.markdown, punctuation.definition.link.description.begin.markdown, punctuation.definition.link.description.end.markdown, fenced_code.block.language.markdown, punctuation.definition.table.markdown, punctuation.separator.table.markdown, text.html.markdown meta.separator.markdown, constant.character.escape.markdown | #af7353 | — |
| text.html.markdown markup.quote, text.html.markdown markup.quote meta.paragraph, text.html.markdown markup.quote heading | #6A8759 | |
| text.html.markdown beginning.punctuation.definition.quote | #608b4e | — |
| text.html.markdown beginning.punctuation.definition.list | #6796e6 | — |
| markup.heading.restructuredtext | #6897BB | — |
| support.directive.restructuredtext, punctuation.separator.key-value.restructuredtext, meta.link.footnote.def.restructuredtext constant.other.footnote.link.restructuredtext, entity.name.tag.restructuredtext, markup.other.command.restructuredtext | #c48d69 | — |
| source.shell support.function.builtin, source.shell keyword, source.shell punctuation.definition.subshell.single, source.shell punctuation.separator.statement.background, source.shell punctuation.definition.string.heredoc.delimiter, source.shell punctuation.definition.variable.shell | #c48d69 | — |
| source.shell meta.function entity.name.function | #56A8F5 | — |
| source.shell entity.name.command, source.shell punctuation.definition.evaluation.backticks | #C57633 | — |
| source.shell variable.other.normal | #BCBEC4 | — |
| source.json meta.structure.dictionary support.type.property-name | #9876AA | — |
| source.json string.quoted.double | #6A8759 | — |
| source.json constant.language, source.json constant.character.escape | #c48d69 | — |
| source.json comment.block, source.json comment.block.documentation | #808080 | — |
| source.json string.quoted.double | #6A8759 | — |
| source.json constant.character.escape.js | #c48d69 | — |
| source.js string.regexp | #9876AA | |
| source.js keyword.operator.new.js, source.js keyword.operator.expression.js, source.js keyword.operator.cast.js, source.js keyword.operator.sizeof.js | #c48d69 | |
| source.js storage.type.class, source.js storage.type.interface | #c48d69 | |
| source.js meta.decorator entity.name.function, source.js punctuation.decorator | #BBB529 | — |
| entity.name.function.js, source.js meta.function meta.definition.function.js entity.name.function, source.js meta.function.expression.js entity.name.function | #4784b8 | — |
| source.js variable.other.property | #9876AA | — |
| source.js meta.object.member variable.other.property, source.js variable.other.object.property | #9876AA | — |
| source.js string.quoted.single, source.js string.quoted.double | #6A8759 | — |
| source.powershell keyword.control, source.powershell storage.type, source.powershell support.variable.automatic | #c48d69 | — |
| source.powershell support.variable.automatic variable.other.member | #9876AA | — |
| source.powershell entity.name.function, source.powershell support.function | #ad9665 | — |
| source.batchfile keyword.control.repeat, source.batchfile keyword.control.statement, source.batchfile keyword.control.conditional, source.batchfile keyword.command, source.batchfile keyword.operator.at, source.batchfile keyword.operator.logical, source.batchfile keyword.operator.comparison, source.batchfile keyword.operator.assignment, source.batchfile keyword.operator.arithmetic, source.batchfile keyword.operator.redirection, source.batchfile keyword.other.special-method | #c48d69 | — |
| source.batchfile keyword.other.special-method | #ad9665 | — |
| source.batchfile keyword.command.rem | #808080 | — |
| source.reg entity.name.function.section.delete entity.section, source.reg entity.name.function.section.delete punctuation.definition.section, source.reg keyword.operator.arithmetic.minus | #BBB529 | — |
| source.reg entity.name.function.section.add entity.section, source.reg entity.name.function.section.add punctuation.definition.section | #c48d69 | — |
| source.reg keyword.control.import, source.reg punctuation.definition.equals | #9876AA | — |
| source.ini entity.name.section | #c48d69 | — |
| source.ini keyword | #9876AA | — |
| source.toml keyword.key, source.toml entity.other, support.type.property-name.toml | #c48d69 | — |
| support.type.property-name.table.toml, support.type.property-name.array.toml | #56A8F5 | — |
| source.toml string.quoted.single.basic.line | #5B9C71 | — |
| source.toml constant.character.escape | #CF8E6D | — |
| source.yaml string.unquoted entity.name.tag | #c48d69 | — |
| source.yaml entity.name, source.yaml variable.other | #E8BF6A | — |
| source.yaml comment.line | #4a6f59 | — |
| source.ts punctuation.separator.comma, source.ts punctuation.terminator.statement | #c48d69 | — |
| source.ts storage.type, source.ts storage.modifier, source.ts keyword.control, source.ts keyword.operator.expression, source.ts keyword.operator.new | #c48d69 | — |
| source.ts punctuation.decorator, source.ts meta.decorator entity.name.function | #BBB529 | — |
| source.ts meta.class variable.other.object.property, source.ts meta.class variable.other.property, source.ts meta.class variable.object.property, source.ts meta.class variable.other.property | #9876AA | |
| source.ts meta.class variable.other.object.property, source.ts meta.class variable.other.property, source.ts meta.class variable.object.property, source.ts meta.class variable.other.property | #9876AA | |
| source.ts meta.function-call entity.name.function, source.ts meta.definition.method entity.name.function, source.ts meta.definition.function entity.name.function, source.ts meta.function entity.name.function, source.ts meta.definition.variable entity.name.function | #ad9665 | |
| invalid | #FA6675 | — |
| token.info-token | #6796e6 | — |
| token.warn-token | #cd9731 | — |
| token.error-token | #f44747 | — |
| token.debug-token | #b267e6 | — |
| string.regexp, string.regexp constant.character, string.regexp storage.type.string, string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end | #d16969 | |
| string.regexp entity.name.tag | #F23B7A | |
| string.regexp support.other.parenthesis, string.regexp punctuation.character.set | #E8BF6A | |
| string.regexp keyword.operator | #c48d69 | |
| string.regexp keyword.operator.quantifier | #6897BB | |
| source.env string.quoted constant.character.escape | #6a8759 | — |
| source.env string.quoted string.interpolated | #c48d69 | |
| source.dockerfile keyword.other.special-method, source.dockerfile punctuation.separator.statement.and.shell | #c48d69 | — |
| source.dockerfile variable | #C77DBB | — |
| entity.name.image.stage.dockerfile | #3e83c9 | — |
| constant.numeric.version.dockerfile | #279CB2 | — |
| source.dockerfile punctuation.definition.variable variable, punctuation.separator.version.dockerfile, punctuation.separator.version.dockerfile constant.numeric.version.dockerfile | #BCBEC4 | — |
| source.dockerfile entity.name.command.shell | #b77651 | — |
| support.function.git-rebase | #9876AA | — |
| constant.sha.git-rebase | #b5cea8 | — |
| punctuation.section.embedded.begin.metatag.php, punctuation.section.embedded.end.metatag.php | #c48d69 | — |
| source.makefile support, source.makefile keyword, source.makefile constant.character.escape.continuation, source.makefile punctuation.definition.variable | #a47f60 | — |
| punctuation.separator.key-value.makefile, source.makefile punctuation.separator.key-value, keyword.control.@.makefile, source.makefile variable, variable.language.makefile | #BCBEC4 | — |
| source.makefile entity.name.function.target | #418fe0 | — |
| source.makefile meta.scope.target | #a1ac56 | — |
| source.makefile comment | #7A7E85 | — |
| keyword.package.go, keyword.control.import.go, keyword.const.go, keyword.type.go, keyword.interface.go, keyword.function.go, keyword.var.go, keyword.control.go, keyword.struct.go, keyword.channel.go, source.go keyword.package, source.go keyword.control.import, source.go keyword.const, source.go keyword.type, source.go keyword.interface, source.go keyword.function, source.go keyword.var, source.go keyword.control, source.go keyword.struct, source.go keyword.channel | #b77651 | — |
| entity.name.type.package.go, source.go entity.name.type.package, variable.other.import.go, source.go variable.other.import | #94a261 | — |
| constant.other.placeholder.go, source.go constant.other.placeholder | #c48d69 | — |
| entity.name.function.go, source.go entity.name.function | #3e83c9 | — |
| entity.name.function.support.go, source.go entity.name.function.support | #9d865a | — |
| storage.type.byte.go, storage.type.numeric.go, storage.type.error.go, storage.type.boolean.go, storage.type.rune.go, storage.type.string.go, entity.name.function.support.builtin.go, entity.name.type.any.go, constant.language.null.go, constant.language.boolean.go, source.go storage.type.byte, source.go storage.type.numeric, source.go storage.type.error, source.go storage.type.boolean, source.go storage.type.rune, source.go storage.type.string, source.go entity.name.function.support.builtin, source.go entity.name.type.any, source.go constant.language.null, source.go constant.language.boolean | #b6632b | — |
| entity.name.type.go, source.go entity.name.type | #5996a3 | — |
| constant.numeric.hexadecimal.go, keyword.other.unit.hexadecimal.go, constant.numeric.binary.go, keyword.other.unit.binary.go, source.go constant.numeric.hexadecimal, source.go keyword.other.unit.hexadecimal, source.go constant.numeric.binary, source.go keyword.other.unit.binary | #279CB2 | — |
| source.go constant.character.escape | #c48d69 | |
| go.mod keyword | #ad734d | — |
| go.mod constant.language, go.sum constant.language | #27989d | — |
| source.groovy constant, constant.language.groovy | #ae7396 | italic |
| meta.method-call.groovy meta.method.groovy, source.groovy meta.method-call meta.method, entity.name.function.java | #3e83c9 | — |
| source.groovy, source.groovy punctuation, source.groovy keyword.operator | #BCBEC4 | — |
| source.groovy storage, source.groovy keyword | #b77853 | — |
| comment.line.double-slash.groovy, punctuation.definition.comment.groovy, source.groovy comment.line.double-slash, source.groovy punctuation.definition.comment | #7A7E85 | — |
| source.groovy support.function | #9d865a | — |
| source.groovy constant.character.escape | #c48d69 | — |
| source.http keyword.control, source.http keyword.other | #CF8E6D | — |
| source.http http.filevariable string.other | #6AAB73 | — |
| source.http http.headers entity.name.tag | #C77DBB | — |
| source.http http.headers keyword.other | #BCBEC4 | — |
| source.rst markup.heading | #2AACB8 | — |
| source.rst keyword | #CF8E6D | — |
| source.rst markup.italic | — | italic |
| source.rst markup.bold | — | bold |
| source.rst entity.name.tag | #6AAB73 | — |
| text.log log.debug | #299999 | — |
| text.log log.info | #56A8F5 | — |
| text.log log.warning | #E0BB65 | — |
| text.log log.error | #F75464 | — |
| text.log log.date | #6AAB73 | — |
| text.log constant.language | #BCBEC4 | — |
| source.pip-requirements entity.name.class | #b17655 | — |
| source.pip-requirements constant.numeric | #5a955f | — |
| source.rust meta.attribute | #B3AE60 | — |
| source.rust keyword, source.rust storage, source.rust entity.name.type.numeric, source.rust entity.name.type.primitive, source.rust punctuation.definition.interpolation | #CF8E6D | — |
| source.rust keyword.operator, source.rust meta.interpolation | #BCBEC4 | — |
| source.rust constant, source.rust entity.name.type.option | #C77DBB | — |
| source.rust string.quoted | #6AAB73 | — |
| source.rust meta.function.definition entity.name.function | #57AAF7 | — |
| source.rust entity.name.function.macro, source.rust keyword.operator.macro.dollar, source.rust meta.macro variable.other.metavariable.specifier | #FFC66D | — |
| source.rust comment.line.documentation | #5F826B | — |
| source.rust entity.name.type.lifetime, source.rust punctuation.definition.lifetime | #20999D | — |
| text.csv rainbow1 | #BABABA | — |
| text.csv keyword.rainbow2 | #808080 | — |
| text.csv entity.name.function.rainbow3 | #3d85d6 | — |
| text.csv comment.rainbow4 | #00A3A3 | — |
| text.csv string.rainbow5 | #5C962C | — |
| text.csv variable.parameter.rainbow6 | #A771BF | — |
| text.csv constant.numeric.rainbow7 | #F0524F | — |
| text.csv entity.name.type.rainbow8 | #A68A0D | — |
| text.csv markup.bold.rainbow9 | #FF941A | — |
| text.csv invalid.rainbow10 | #955AE0 | — |
| source.css.less keyword | #CF8E6D | — |
| source.css.less string.quoted | #6AAB73 | — |
| source.css.less support.other.variable | #D0D0FF | — |
| source.css.less entity.other.attribute-name, source.css.less support.unicode-range, source.css.less support.unicode-range constant.codepoint-range, source.css.less entity.name.tag | #D5B778 | — |
| source.css.less keyword.operator.arithmetic, source.css.less entity.other.attribute-name.pseudo-element punctuation.definition.entity | #BCBEC4 | — |
| source.css.less constant.other.color | #56A8F5 | — |
| source.css.less constant.numeric | #2AACB8 | — |
| source.css.scss comment | #BC9455 | — |
| source.css.scss variable | #6D9CBE | — |
| source.css.scss keyword | #CF8E6D | — |
| source.css.scss support.constant, source.css.scss entity.name.tag.css, source.css.scss entity.name.function, source.css.scss entity.other.attribute-name, source.css.scss entity.name.tag.reference | #D5B778 | — |
| source.css.scss keyword.operator.arithmetic, source.css.scss punctuation.terminator.rule.css, source.css.scss entity.other.attribute-name punctuation | #BCBEC4 | — |
| source.css.scss support.constant.color | #6AAB73 | — |
| source.css.scss keyword.control.at-rule.mixin | #D0D0FF | — |
| source.sass comment | #BC9455 | — |
| source.sass variable | #6D9CBE | — |
| source.sass keyword | #CF8E6D | — |
| source.sass keyword.control.unit | #BCBEC4 | — |
| source.sass constant.character | #6AAB73 | — |
| source.sass constant.language.color | #56A8F5 | — |
| source.sass entity.other.attribute-name, source.sass entity.name.tag.css, source.sass entity.other.attribute-selector, source.sass support.function.name, source.sass entity.other.inherited-class.placeholder-selector | #D5B778 | — |
| source.sass keyword.control.unit | #6AAB73 | — |
| source.puppet storage.type, source.puppet keyword | #CF8E6D | — |
| source.puppet variable.other, source.puppet punctuation.section.embedded.begin, source.puppet punctuation.section.embedded.end | #C77DBB | — |
| source.asm keyword | #CDA3E6 | — |
| source.asm entity.directive, source.asm entity.name.section | #CF8E6D | — |
| source.asm entity.name.function | #D5B778 | — |
| source.asm constant, source.asm constant.numeric, source.asm constant.language | #2a9d9d | — |
| source.proto keyword, source.proto constant, source.proto storage.modifier, constant.language.proto | #CF8E6D | — |
| source.proto string, string.quoted.double.proto | #6AAB73 | — |
| source.proto storage.type | #CC7832 | — |
| source.dart keyword, source.dart storage.type.primitive, source.dart storage.modifier | #CF8E6D | — |
| source.dart string | #6AAB73 | — |
| source.dart keyword.operator.assignment, source.dart keyword.operator.arithmetic, source.dart comment.block.documentation variable.name, source.dart keyword.operator.ternary, source.dart keyword.operator | #BCBEC4 | — |
| source.dart entity.name.function | #56A8F5 | — |
| source.dart storage.type.annotation | #B3AE60 | — |
| source.dart support.class | #C77DBB | — |
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}!`;
}