Download

Fonts

With the release of Publii version 0.39.0, there has been a significant change in our themes regarding the way fonts are loaded. Previously, the Google font loaded directly from its CDN. However, since most browsers have blocked resource-caching from transferring across domains, users must re-download the font files for every site they visit that uses the same font, regardless of whether it was downloaded and cached previously from another site. Even more importantly, the EU court has deemed that Google Fonts (loaded directly from its CDN) are not compliant with the GDPR, which requires consent to be sought before any personally identifiable information can be collected and stored.

Due to these changes, all fonts provided by Publii will, from now on, be loaded locally (self-hosting), which confers a few benefits to our earlier solution:

  • Avoids an Extra DNS Lookup
  • Removes Non-Minified CSS
  • Provides Better Control over Cache Settings
  • Complies with the GDPR

Variable fonts

To reduce the number of font files and provide greater control over them, our themes come with variable fonts only. With variable fonts, instead of loading a normal and bold version of the font, Publii will only load a single file. This is important because Publii allows for two different fonts to be loaded; if both a standard and bold version of each of these fonts were included on the site, the total weight (that is, download size) of the files would be too much and could negatively affect load times.

Another advantage of using variable fonts is that now we can manipulate their size across the full range; instead of only being able to choose between displaying the font at 400 (normal) or 700 (bold), we can choose to display a given font at a seemingly random size such as 436, which affords us even greater control when customizing the style of our site. 

Pretty great, isn't it?

One more thing to be aware of; you may have noticed that we have omitted some trendy fonts like “Open Sans” or “Noto Sans” from the fonts included in Publii. We decided not to include these fonts as their weight (size) is too big, which is unacceptable when building a lightweight static website such as the Publii CMS is designed for.

Explore the fonts used in official Publii themes

If you’d like to see how each typeface looks in action, click the button below to open a curated Google Fonts collection. This preview showcases all font families included across Publii themes, allowing you to explore their styles, weights, and overall appearance directly on the Google Fonts platform.

View fonts on Google Fonts →

The list of available fonts with their specification

Below is the list of all fonts used in our themes, including their typeface, weight, or size. 

NameWeight rangeSize
Serif
Aleo100 - 90066 KB
Aleo Italic100 - 90067 KB
Andada Pro400 - 840106 KB
Andada Pro Italic400 - 840111 KB
Besley400 - 90049 KB
Besley Italic400 - 90052 KB
Bitter100 - 900108 KB
Bitter Italic100 - 900112 KB
Bodoni Moda400 - 90073 KB
Bodoni Moda Italic400 - 90083 KB
Brygada 1918400 - 70089 KB
Brygada 1918 Italic400 - 70094 KB
Cinzel400 - 90048 KB
Danfo400 - 40034 KB
Domine400 - 70040 KB
Faustina300 - 80049 KB
Faustina Italic300 - 80052 KB
Frank Ruhl Libre300 - 90078 KB
Grenze Gotisch100 - 90079 KB
Imbue100 - 90090 KB
Kalnia100 - 70055 KB
Kreon300 - 70033 KB
Labrada100 - 90086 KB
Labrada Italic100 - 90087 KB
Lora400 - 70083 KB
Lora Italic400 - 70090 KB
Manuale300 - 80076 KB
Manuale Italic300 - 80085 KB
Petrona100 - 90086 KB
Petrona Italic100 - 90094 KB
Playfair Display400 - 900106 KB
Playfair Display Italic400 - 900104 KB
Red Rose300 - 70048 KB
Roboto Slab100 - 900117 KB
Rokkitt100 - 90053 KB
Rokkitt Italic100 - 90055 KB
Yrsa300 - 70090 KB
Yrsa Italic300 - 700108 KB
Sans Serif
Advent Pro100 - 90066 KB
Advent Pro Italic100 - 900120 KB
Albert Sans100 - 90051 KB
Albert Sans Italic100 - 90056 KB
Antonio100 - 70037 KB
Archivo Narrow400 - 70037 KB
Archivo Narrow Italic400 - 70040 KB
Asap400 - 70057 KB
Asap Italic400 - 700181 KB
Assistant200 - 80037 KB
Bitcount100 - 90031 KB
Cabin400 - 70045 KB
Cabin Italic400 - 70065 KB
Cairo200 - 100074 KB
Comme100 - 90045 KB
DM Sans100 - 100087 KB
DM Sans Italic100 - 1000110 KB
Dosis200 - 80047 KB
Doto100 - 9009 KB
DynaPuff400 - 70095 KB
Exo100 - 90054 KB
Exo Italic100 - 90058 KB
Familjen Grotesk400 - 70033 KB
Familjen Grotesk Italic400 - 70036 KB
Figtree300 - 90029 KB
Figtree Italic300 - 90028 KB
Finlandica400 - 70046 KB
Finlandica Italic400 - 70050 KB
Fredoka300 - 70084 KB
Funnel Display300 - 80023 KB
Gantari100 - 90050 KB
Gantari Italic100 - 90055 KB
Glory100 - 80042 KB
Glory Italic100 - 80044 KB
Handjet100 - 90048 KB
Heebo100 - 90041 KB
Host Grotesk300 - 80031 KB
Host Grotesk Italic300 - 80033 KB
Inclusive Sans300 - 70045 KB
Inclusive Sans Italic300 - 70048 KB
Instrument Sans400 - 70049 KB
Instrument Sans Italic400 - 70095 KB
Jura300 - 70078 KB
Karla200 - 80042 KB
Karla Italic200 - 80048 KB
Kumbh Sans100 - 90061 KB
League Spartan100 - 90040 KB
Lexend100 - 90074 KB
Lexend Deca100 - 90070 KB
Libre Franklin100 - 90044 KB
Libre Franklin Italic100 - 90049 KB
Manrope100 - 90053 KB
Maven Pro400 - 90042 KB
Merriweather Sans300 - 80093 KB
Merriweather Sans Italic300 - 80090 KB
Montserrat100 - 900125 KB
Montserrat Italic100 - 900130 KB
Mulish200 - 100076 KB
Mulish Italic200 - 100082 KB
Nunito200 - 1000100 KB
Nunito Italic200 - 1000110 KB
Orbitron400 - 90016 KB
Oswald200 - 70066 KB
Outfit100 - 90044 KB
Oxanium200 - 80019 KB
Parkinsans300 - 80040 KB
Plus Jakarta Sans200 - 80061 KB
Plus Jakarta Sans Italic200 - 80065 KB
Pontano Sans300 - 70035 KB
Public Sans100 - 90040 KB
Public Sans Italic100 - 90044 KB
Quicksand300 - 70052 KB
Radio Canada Big400 - 70027 KB
Radio Canada Big Italic400 - 70029 KB
Raleway100 - 900128 KB
Raleway Italic100 - 900132 KB
Red Hat Display300 - 90041 KB
Red Hat Display Italic300 - 90041 KB
Red Hat Text300 - 70039 KB
Red Hat Text Italic300 - 70042 KB
REM100 - 90076 KB
REM Italic100 - 90081 KB
Roboto Flex100 - 90078 KB
Rubik300 - 90077 KB
Rubik Italic300 - 900116 KB
Ruda400 - 90038 KB
Smooch Sans100 - 90041 KB
Sora100 - 80048 KB
Spartan100 - 90044 KB
Stick No Bills200 - 80079 KB
Teachers400 - 80032 KB
Teachers Italic400 - 80034 KB
Tektur400 - 90059 KB
Tourney100 - 90047 KB
Tourney Italic100 - 90052 KB
Urbanist100 - 90038 KB
Urbanist Italic100 - 90041 KB
Varta300 - 70049 KB
Wix Madefor Text400 - 80043 KB
Wix Madefor Text Italic400 - 80029 KB
Workbench400 - 4005 KB
Work Sans100 - 900131 KB
Work Sans Italic100 - 900124 KB
Yanone Kaffeesatz200 - 70053 KB
Zalando Sans200 - 900113 KB
Zalando Sans Italic200 - 900119 KB
Zalando Sans Expanded200 - 90053 KB
Zalando Sans Expanded Italic200 - 90055 KB
Cursive
Big Shoulders100 – 90082 KB
Comfortaa300 - 70080 KB
Dancing Script400 - 70059 KB
Gluten100 - 90079 KB
Lemonada300 - 70081 KB
Playwrite US Modern100 - 400110 KB
Playwrite US Traditional100 - 400114 KB
Monospace
Geist Mono100 - 90060 KB
Google Sans Code300 - 80058 KB
Google Sans Code Italic300 - 80063 KB
JetBrains Mono100 - 80071 KB
JetBrains Mono Italic100 - 80076 KB
Red Hat Mono300 - 70029 KB
Red Hat Mono Italic300 - 70032 KB
Source Code Pro200 - 90085 KB
Source Code Pro Italic200 - 90071 KB
SUSE Mono100 - 80034 KB
SUSE Mono Italic100 - 80035 KB
Victor Mono100 - 70064 KB
Victor Mono Italic100 - 70083 KB

How to Add a Custom Font

Since official Publii themes work best with variable fonts, ensure you have one in the woff2 format. It's not worth supporting other formats as all modern browsers support woff2, which provides the best compression.

To add the variable font to your theme, follow these steps:

  1. Go to this location: /Documents/Publii/sites/Your_site/input/themes/Your_theme/
  2. Copy your font file, your_font.woff2, to the folder /assets/dynamic/fonts/your_font/
  3. Open the config.json file and add the name of your font in two sections: fontBody and fontHeadings, then save the changes.
    {
        "name": "fontBody",
        "label": "Body font",
        "group": "Fonts",
        "value": "system-ui",
        "type": "select",
        "options": [
            {
                "label": "Your Font Name",
                "value": "your-font-name",
                "group": "Serif"
            },
    ...
    
    {
        "name": "fontHeadings",
        "label": "Headings font (H1-H6)",
        "group": "Fonts",
        "value": "system-ui",
        "type": "select",
        "options": [
            {
                "label": "Your Font Name",
                "value": "your-font-name",
                "group": "Serif"
            },
    ...
  4. Then open the theme-variables.js file and add your font in the fontParams section, specifying the font family and weight, and save the changes.
    var generateThemeVariables = function (params) {
      let fontParams = {
        your-font-name: {
          name: 'Your Font Name',
          family: '\'Your Font Family\', serif',
          weight: '100 900'
        },
    ...

Important: We recommend creating file overrides to avoid losing your changes during theme updates unless it's a custom theme. You can learn more about overriding Publii themes in this guide.

That's it; now you should be able to select the font from the theme options and use it on your site.

What are you waiting for?

Start building your site today.

  1. 1 Download Publii
  2. 2 Write your content
  3. 3 Publish your site
Create website