Typst-ModernPro-Coverletter

December 11, 2025 ยท View on GitHub

This is a cover letter template for Typst with Sans font. It is a modern and professional cover letter template. It is easy to use and customize. This cover letter template is suitable for any job application or general purpose.

If you want to find a CV template, you can check out modernpro-cv.

How to use

Use from the Typst Universe

It is simple and easy to use this template from the Typst Universe. If you prefer to use the local editor and typst-cli, you can use the following command to create a new cover letter project with this template.

typst init @preview/modernpro-coverletter

It will create a new cover letter project with this template in the current directory.

Use from GitHub

You can also use this template from GitHub. You can clone this repository and use it as a normal project.

git clone https://github.com/jxpeng98/typst-coverletter.git

Features

This package provides one cover letter template and one statement template.

Cover Letter

#import "@preview/fontawesome:0.6.0": *
#import "@preview/modernpro-coverletter:0.0.8": *

#show: coverletter.with(
  font-type: "PT Serif",
  margin: (left: 2cm, right: 2cm, top: 3cm, bottom: 2cm),
  name: [example],
  address: [],
  salutation: [Best regards,],
  supplements: ([Enclosure: Resume], [Portfolio: example.com]),
  contacts: (
    (text: [#fa-icon("location-dot") UK]),
    (text: [123-456-789], link: "tel:123-456-789"),
    (text: [example.com], link: "https://www.example.com"),
    (text: [github], link: "https://github.com/"),
    (text: [example\@example.com], link: "mailto:example@example.com"),
  ),
  recipient: (
    start-title: [Dear Hiring Manager,],
    cl-title: [Job Application for Software Engineer],
    date: [],
    department: [Department of Engineering],
    institution: [Example Company],
    address: [London, UK],
    postcode: [W1 S2],
  ),
  // Customisation options (uncomment to use)
  // primary-colour: rgb("#000000"),
  // closing-spacing: 1em,
  // signature-spacing: 0.5em,  // increase to 2em+ for printed version
  // supplement-spacing: 1em,
)

// Main body of the cover letter
ParameterDescriptionDefault
font-typeThe font type of the cover letter, e.g. "PT Serif"none
marginOptional page margins as a single value or directional tuple(left: 1.25cm, right: 1.25cm, top: 3cm, bottom: 1.5cm)
nameThe name of the sendernone
addressThe address of the sendernone
contactsThe contact information of the sender(text:[], link: [])()
salutationClosing greeting text; set to none to hide"Sincerely,"
supplementsOne or more lines after the name (e.g., enclosure notes); accepts a string/content value or an arraynone
Colour Options
primary-colourPrimary text colourrgb("#000000")
headings-colourHeadings text colourrgb("#2b2b2b")
subheadings-colourSubheadings text colourrgb("#333333")
date-colourDate text colourrgb("#666666")
link-colourLink text colour; none inherits from textnone
Font Size Options
name-sizeFont size for the name in header20pt
body-sizeFont size for the main body text11pt
address-sizeFont size for the address11pt
contact-sizeFont size for contact information10pt
recipient-sizeFont size for recipient information10pt
cl-title-sizeFont size for the cover letter title12pt
supplement-sizeFont size for supplement/enclosure text10pt
Layout Options
line-strokeStroke width for the header separator line0.2pt
header-ascentHeader ascent distance1em
first-line-indentFirst line indent for paragraphs2em
line-spacingLine spacing within paragraphs0.65em
paragraph-spacingSpacing between paragraphs0.8em
contact-separatorSeparator between contact items" | "
Header Alignment
name-alignAlignment for name in headercenter
address-alignAlignment for address in headercenter
contact-alignAlignment for contacts in headercenter
Font Weight Options
name-weightFont weight for name in header"bold"
body-weightFont weight for body text"regular"
salutation-weightFont weight for salutation"regular"
signature-weightFont weight for signature name"bold"
Signature Block Spacing
closing-spacingVertical space before the salutation0.8em
signature-spacingVertical space between salutation and name (increase to 2em+ for printed/signed version)0.3em
supplement-spacingVertical space between name and supplements0.8em
Date Format
date-formatFormat string for auto-generated date"[day] [month repr:long] [year]"
Parameter in RecipientDescription
start-titleThe start title of the letter
cl-titleThe title of the letter (i.g., Job Application for Hiring Manager)
dateThe date of the letter(If "" or [], it will generate the current date)
departmentThe department of the recipient, can be "" or []
institutionThe institution of the recipient
addressThe address of the recipient
postcodeThe postcode of the recipient

Statement

#import "@preview/fontawesome:0.6.0": *
#import "@preview/modernpro-coverletter:0.0.8": *

#show: statement.with(
  font-type: "PT Serif",
  margin: (left: 2cm, right: 2cm, top: 3cm, bottom: 2cm),
  name: [Your Name],
  address: [Your Address],
  contacts: (
    (text: [#fa-icon("location-dot") UK]),
    (text: [#fa-icon("mobile") 123-456-789], link: "tel:123-456-789"),
    (text: [#fa-icon("link") example.com], link: "https://www.example.com"),
    (text: [#fa-icon("github") github], link: "https://github.com/"),
    (text: [#fa-icon("envelope") example\@example.com], link: "mailto:example@example.com"),
  ),
  // Customisation options (uncomment to use)
  // primary-colour: rgb("#000000"),
  // name-size: 20pt,
  // body-size: 11pt,
)

#v(1em)
#align(center, text(13pt, weight: "semibold")[#underline([Statement Title])])

// Main body of the statement
ParameterDescriptionDefault
font-typeThe font type of the statement, e.g. "PT Serif"none
marginOptional page margins as a single value or directional tuple(left: 1.25cm, right: 1.25cm, top: 3cm, bottom: 1.5cm)
nameThe name of the sendernone
addressThe address of the sendernone
contactsThe contact information of the sender(text:[], link: [])()
supplementAdditional content at the end of the statementnone
Colour Options
primary-colourPrimary text colourrgb("#000000")
headings-colourHeadings text colourrgb("#2b2b2b")
subheadings-colourSubheadings text colourrgb("#333333")
date-colourDate text colourrgb("#666666")
link-colourLink text colour; none inherits from textnone
Font Size Options
name-sizeFont size for the name in header20pt
body-sizeFont size for the main body text11pt
address-sizeFont size for the address11pt
contact-sizeFont size for contact information10pt
Layout Options
line-strokeStroke width for the header separator line0.2pt
header-ascentHeader ascent distance1em
first-line-indentFirst line indent for paragraphs2em
line-spacingLine spacing within paragraphs0.65em
paragraph-spacingSpacing between paragraphs0.8em
contact-separatorSeparator between contact items" | "
Header Alignment
name-alignAlignment for name in headercenter
address-alignAlignment for address in headercenter
contact-alignAlignment for contacts in headercenter
Font Weight Options
name-weightFont weight for name in header"bold"
body-weightFont weight for body text"regular"

Icons

The new version also integrates the FontAwesome icons. You can use the #fa-icon("icon") function to insert the icons in the cover letter or statement template as shown above.

You just need to import the FontAwesome package at the beginning of the document.

#import "@preview/fontawesome:0.6.0": *

Preview

Cover Letter

Cover Letter Preview

Statement

Statement Preview