Shopifont

Shopify Dawn · Free, no signup · Last updated

Free Shopify Dawn Custom Font Generator

Paste any font name above to generate the exact @font-face CSS, settings_schema.json snippet, and CSS variable overrides Shopify Dawn needs to render your custom font without layout shifts.

Dawn is the Shopify OS 2.0 reference theme that ships with every new store and powers the largest install base of any free theme. Out of the box, Dawn ships with Assistant for headings and Assistant for body — typography that's deliberately neutral, low-contrast humanist sans that prioritizes legibility over personality. If you need a brand-specific face on a general-purpose Dawn store, this generator builds the three code blocks Shopify expects in seconds.

Generator

Formats
WOFF2 covers ~97% of modern traffic. Add WOFF / TTF only if you need legacy fallbacks.
Apply to
Controls which Dawn typography roots the CSS variable block overrides.

Live preview

Add to cart · Free shipping · 30-day returns

Drop a WOFF2 / WOFF / TTF file here to preview your actual font. The file stays in your browser — nothing is uploaded.

Paste these three blocks in order. They're independent files in your theme — copying one without the others won't break the store.

Step 1: @font-face CSS

Paste at the bottom of assets/base.css. Uses Liquid's asset_url filter — Shopify resolves the path at render time.

@font-face {
font-family: "My Brand Sans";
src: url({{ 'my-brand-sans.woff2' | asset_url }}) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}

How to use this on Dawn

Upload your custom font files to your Dawn theme's `assets/` folder. Paste the generated @font-face block into the bottom of `assets/base.css` so Shopify's Liquid `asset_url` filter resolves correctly. Add the settings_schema.json snippet to expose a Theme Editor toggle for non-technical merchants. Finally, the CSS variable overrides retarget .section-header__heading, .product__title and every other element that reads from `--font-heading-family` or `--font-body-family` — meaning your custom face propagates site-wide without touching Dawn's core templates.

Frequently asked questions

  • How do I add a custom font to the Shopify Dawn theme?

    Upload your font files to Dawn's `assets/` folder, paste the @font-face block this generator outputs into the bottom of `assets/base.css`, and override `--font-heading-family` and `--font-body-family` to point at your font name. Dawn reads those tokens for every typography rule, so the swap propagates instantly.

  • What font formats does Dawn support for custom uploads?

    Dawn supports WOFF2, WOFF, TTF, OTF, and EOT — anything the browser can decode. WOFF2 is the only format you strictly need on a modern store; the others are legacy fallbacks. The generator orders them WOFF2 → WOFF → TTF so each browser stops at the smallest file it understands.

  • Will a custom font cause layout shift on Dawn?

    Not if you set `font-display: swap` (the generator does this automatically) and reserve typography metrics by overriding Dawn's CSS variables instead of swapping fonts via JavaScript. Dawn's headings — .section-header__heading, .product__title — read from `--font-heading-family`, so the override happens before paint and the metric box doesn't change after load.

  • Do I need to edit Liquid to use a custom font on Dawn?

    Only once. The @font-face block goes into the bottom of `assets/base.css`, which is CSS, not Liquid. The optional settings_schema.json block is JSON. The only Liquid in play is Shopify's `{{ 'yourfont.woff2' | asset_url }}` filter inside the @font-face, which resolves to the public URL of the file you uploaded.

  • Can I use Google Fonts with Dawn instead of self-hosting?

    Dawn already supports Google Fonts via the Theme Editor's font picker, but that route is limited to fonts in Shopify's curated catalog. Self-hosting your own WOFF2 unlocks any face — including paid foundry fonts you've licensed — and avoids the third-party request that Google Fonts adds to every page load.