Yes, you can add custom fonts to Dawn without an app. The main thing is to load the font correctly and then target the parts of the theme where you want to use it.
For newer Dawn versions, I’d recommend using Shopify’s Content → Files area rather than relying on older assets-folder tutorials.
1. Upload the font
In Shopify Admin, go to:
Content → Files → Upload files
For web use, .woff2 is generally the preferred format because it is more compact. If you have separate weights, upload each one (for example, Regular 400 and Bold 700).
2. Add @font-face
Go to:
Online Store → Themes → … → Edit code → Assets → base.css
Add something like this:
@font-face {
font-family: "MyCustomFont";
src: url("YOUR_FONT_FILE_URL") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "MyCustomFont";
src: url("YOUR_BOLD_FONT_FILE_URL") format("woff2");
font-weight: 700;
font-style: normal;
font-display: swap;
}
Copy the actual file URL from Content → Files and replace the placeholders.
Shopify’s current theme documentation uses the file_url filter when referencing uploaded fonts, so if you’re putting the Liquid directly in a theme stylesheet/template, the equivalent approach is:
@font-face {
font-family: "MyCustomFont";
src: url("{{ 'MyCustomFont-Regular.woff2' | file_url }}") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
3. Apply it where you need it
For example, if you want the custom font on headings and the navigation:
h1, h2, h3, h4, h5, h6,
.header__menu-item {
font-family: "MyCustomFont", sans-serif;
}
Or, if you want it throughout the store:
body {
font-family: "MyCustomFont", sans-serif;
}
I would not recommend blindly adding !important to everything. Dawn has its own typography variables and component styles, so it is better to target the specific elements you actually want to change.
One important limitation
Adding a custom @font-face does not automatically add that font to Dawn’s Typography dropdown in the Theme Editor. You’re essentially overriding the CSS for the selected elements. Shopify’s font picker is designed around the fonts available through Shopify’s font library.
Also make sure you have the appropriate web-use license for the font. And don’t load unnecessary font formats/weights, every font file is another resource the visitor’s browser has to download, which can affect page performance.
If the font uploads successfully but still doesn’t appear, check the browser’s DevTools → Network tab and filter for font. A 404/CORS error or an incorrect file URL will usually reveal the problem immediately.