API Reference¶
This page documents the public Typst functions exported by brilliant-CV. For metadata keys read from metadata.toml, see the Configuration Reference.
Entry Point Functions¶
cv()¶
Render a CV document with header, footer, and page layout applied.
| Parameter | Type | Default | Description |
|---|---|---|---|
doc |
content | — | The body content of the CV (typically the imported modules). |
profile-photo |
image | image("../template/assets/avatar.png") |
The profile photo to display in the header. Pass none to hide. |
custom-icons |
dictionary | (:) |
Custom icons to override or extend the default icon set. |
letter()¶
Render a cover letter document with header, footer, and page layout applied.
| Parameter | Type | Default | Description |
|---|---|---|---|
doc |
content | — | The body content of the letter. |
sender-address |
str | auto | auto |
The sender's mailing address. Defaults to auto, which reads from metadata.personal.address. Pass a string or content to override. |
recipient-name |
str | "Company Name Here" |
The recipient's name or company displayed in the header. |
recipient-address |
str | "Company Address Here" |
The recipient's mailing address displayed in the header. Supports multiline content. |
date |
str | datetime.today().display() |
The date displayed in the letter header. Defaults to today's date. |
subject |
str | "Subject: Hey!" |
The subject line of the letter. |
signature |
str | content | "" |
(optional) path to a signature image, or content to display as signature. |
address-style |
str | "smallcaps" |
Address rendering style. "smallcaps" (default) or "normal". |
CV Components¶
cv-section()¶
Add the title of a section.
The first letters characters of the title are highlighted in the accent color,
while the rest is rendered in black. For non-Latin languages (zh, ja, ko, ru),
highlighting is skipped entirely and the full title is shown in the accent color.
| Parameter | Type | Default | Description |
|---|---|---|---|
title |
str | — | The title of the section. |
highlighted |
bool | true |
Whether the first n letters will be highlighted in accent color. |
letters |
int | 3 |
The number of first letters of the title to highlight. Defaults to 3. |
cv-entry()¶
Add an entry to the CV.
When display_entry_society_first = true is set in metadata.toml, the society
field appears bold/first and title appears as the subtitle. When false (the
default), the title field is bold/first and society is the subtitle.
| Parameter | Type | Default | Description |
|---|---|---|---|
title |
str | "Title" |
The title of the entry (role or position). |
society |
str | "Society" |
The society of the entry (company, university, etc.). |
date |
str | content | "Date" |
The date(s) of the entry. |
location |
str | "Location" |
The location of the entry. |
description |
array | "" |
The description of the entry. It can be a string or an array of strings. |
logo |
image | "" |
The logo of the society. If empty, no logo will be displayed. |
tags |
array | () |
The tags of the entry. |
#block(width: 300pt)[
#cv-entry(
title: [Data Analyst],
society: [ABC Company],
date: [2017 - 2020],
location: [New York, NY],
description: list(
[Analyzed datasets with SQL and Python],
),
tags: ("Python", "SQL"),
)
]
cv-entry-start()¶
Add the start of an entry to the CV. Use this together with one or more
cv-entry-continued calls to list multiple roles at the same company.
The start renders the company name and location, while each continued entry
adds a role with its own dates, description, and tags.
Requires display_entry_society_first = true in metadata.toml.
| Parameter | Type | Default | Description |
|---|---|---|---|
society |
str | "Society" |
The society of the entry (company, university, etc.). |
location |
str | "Location" |
The location of the entry. |
logo |
image | "" |
The logo of the society. If empty, no logo will be displayed. |
#block(width: 300pt)[
#cv-entry-start(
society: [XYZ Corporation],
location: [San Francisco, CA],
)
#cv-entry-continued(
title: [Data Scientist],
date: [2017 - 2020],
description: list(
[Analyzed large datasets with SQL and Python],
),
)
]
cv-entry-continued()¶
Add a continued entry to the CV. Must be used after a cv-entry-start call
to add an additional role at the same company. Multiple cv-entry-continued
calls can follow a single cv-entry-start.
Requires display_entry_society_first = true in metadata.toml.
| Parameter | Type | Default | Description |
|---|---|---|---|
title |
str | "Title" |
The title of the entry (role or position). |
date |
str | content | "Date" |
The date(s) of the entry. |
description |
str | array | "" |
The description of the entry. Can be a string or an array of strings. |
tags |
array | () |
The tags of the entry. |
color |
color | — | (optional) override the accent color for this entry. |
cv-skill()¶
Add a skill to the CV.
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
str | "Type" |
The type of the skill. It is displayed on the left side. |
info |
str | content | "Info" |
The information about the skill. It is displayed on the right side. Items can be separated by #h-bar(). |
#block(width: 300pt)[
#cv-skill(
type: [Tech Stack],
info: [Python #h-bar() SQL #h-bar() Tableau],
)
]
cv-skill-with-level()¶
Add a skill with a level to the CV.
The level is rendered as a row of 5 circles: filled circles for the skill level and empty circles for the remainder (e.g., level 3 shows 3 filled and 2 empty circles).
| Parameter | Type | Default | Description |
|---|---|---|---|
type |
str | "Type" |
The type of the skill. It is displayed on the left side. |
level |
int | 3 |
The level of the skill (0--5). Rendered as filled/empty circles in the middle column. |
info |
str | content | "Info" |
The information about the skill. It is displayed on the right side. |
#block(width: 300pt)[
#cv-skill-with-level(
type: [Languages],
level: 4,
info: [English #h-bar() French #h-bar() Chinese],
)
]
cv-skill-tag()¶
Add a skill tag to the CV.
| Parameter | Type | Default | Description |
|---|---|---|---|
skill |
str | content | — | The skill to be displayed. |
cv-honor()¶
Add a Honor to the CV.
| Parameter | Type | Default | Description |
|---|---|---|---|
date |
str | "1990" |
The date of the honor. |
title |
str | "Title" |
The title of the honor. |
issuer |
str | "" |
The issuer of the honor. |
url |
str | "" |
The URL of the honor. |
location |
str | "" |
The location of the honor. |
#block(width: 300pt)[
#cv-honor(
date: [2022],
title: [AWS Certified Security],
issuer: [Amazon Web Services],
location: [Online],
)
]
cv-publication()¶
Add the publications to the CV by reading a bib file.
When ref-full is true, all entries in the bib file are displayed.
When ref-full is false, only the entries whose keys appear in
key-list are included, allowing selective publication lists.
| Parameter | Type | Default | Description |
|---|---|---|---|
bib |
bibliography | "" |
The bibliography object with the path to the bib file. |
key-list |
list | list() |
The list of bib keys to include when ref-full is false. |
ref-style |
str | "apa" |
The reference style of the publication list (e.g., "apa"). |
ref-full |
bool | true |
Whether to show all entries (true) or only those in key-list (false). |
Utility Functions¶
h-bar()¶
Renders a vertical bar separator (|) for use inside skill entries.