Shopifont

Shopify Origin · Free, no signup · Last updated

Free Shopify Origin Custom Font Generator

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

Origin is a furniture- and home-goods-oriented free theme built around editorial spacing and gallery-style product blocks. Out of the box, Origin ships with Assistant for headings and Assistant for body — typography that's deliberately calm, generous-line-height typography optimized for long descriptions and lifestyle storytelling. If you need a brand-specific face on a home & garden Origin 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 Origin

Upload your custom font files to your Origin 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__heading, .product-description and every other element that reads from `--font-heading-family` or `--font-body-family` — meaning your custom face propagates site-wide without touching Origin's core templates.

Frequently asked questions

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

    Upload your font files to Origin'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. Origin reads those tokens for every typography rule, so the swap propagates instantly.

  • What font formats does Origin support for custom uploads?

    Origin 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 Origin?

    Not if you set `font-display: swap` (the generator does this automatically) and reserve typography metrics by overriding Origin's CSS variables instead of swapping fonts via JavaScript. Origin's headings — .section__heading, .product-description — 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 Origin?

    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 Origin instead of self-hosting?

    Origin 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.