Shopifont

Free, no signupShopify OS 2.0

Does your store look like every other Shopify store?

It's usually the fonts — most stores never change the theme default, so they all read the same. Take the free 30-second typography audit and see exactly what's making your store look stock, plus the one change that fixes it.

assets/base.css
@font-face {
font-family: "Söhne";
src: url({{ 'söhne.woff2' | asset_url }}) format('woff2');
font-weight: 400;
font-display: swap;
}
  • CLS< 0.05
  • LCP< 2.5s
  • Zero JS shipped to your store
  • No upload — files stay in your browser
  • Works on Dawn, Sense, Refresh, and 10 more
  • Pure CSS output — no JS in your store
Updated · Built for Shopify Dawn 14Verify on PageSpeed

Verify the “no upload” claim in DevTools → Network: dropping a font file makes zero requests.

30-second typography audit

1 / 4

Which Shopify theme is your store on?

This tells us your stock font and where the fix goes.

On a paid or custom theme? Pick the closest — the diagnosis is the same.

Already picked your font? Generate the install code

Paste a font name and copy three error-free blocks — the @font-face CSS, the settings_schema.json snippet, and the CSS-variable override — tailored to Shopify Dawn and every other OS 2.0 theme. The implementation step, free.

Faces(1 face)

Face 1·Regular 400

Formats

Each face becomes its own @font-face block. The filename field on each row defaults to a clean pattern, but you can paste the exact filename you uploaded if your foundry shipped it with a different name — no renaming required.

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

Upload your font files to the theme's assets/ folder, then paste this at the bottom of assets/base.css. Shopify's asset_url filter resolves the file paths 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;
}

Typography Kit

Don't want to make the decision?

You've got working code — but you still have to pick fonts that fit your brand, confirm they're licensed for ecommerce, and paste it in without breaking the theme. A Shopify Typography Kit is the decision already made: a proven pairing, the exact copy-paste code for your theme, the license cleared, and a visual specimen — instant download.

See the Typography Kits$19 · one-time · instant download

Affiliate · No cost to you

Don't have a font yet?

Creative Fabrica has 30,000+ web fonts with commercial licenses included — ready to drop into the @font-face block this site generates. Most are under $20, and the all-access subscription unlocks the full library.

Browse Creative Fabrica

Affiliate · No cost to you

Custom font + custom merch?

Printify plugs into Shopify in one click. 900+ products, no inventory risk, fulfilled and shipped automatically when an order lands. Free to start — you only pay when you sell.

Try Printify

How it works

Step 01

Enter your font

Type the display name and tick the formats your foundry sent you. WOFF2 covers ~97% of modern browsers.

Step 02

Copy three blocks

The site generates @font-face CSS, a settings_schema.json snippet, and CSS variable overrides — each with a copy button.

Step 03

Paste into Shopify

Upload the file to your theme's Assets folder, paste the @font-face into base.css, the JSON into settings_schema.json. Save and refresh.