Shopifont

Shopify Sense vs Refresh · Free, no signup · Last updated

Sense vs Refresh: Custom Font Setup Compared

Both Sense and Refresh expose the same six `--font-heading-*` and `--font-body-*` CSS variables, so the @font-face block and CSS variable override generated above paste cleanly into either theme — the only material difference is the default the theme's default heading face vs the theme's default heading face fallback.

Sense is Shopify's wellness-leaning free theme designed for health, beauty, and personal-care brands. Refresh is a sport- and energy-leaning free theme tuned for high-saturation imagery and bold supporting copy. Despite the different positioning, both themes are OS 2.0 and inherit Dawn's typography token convention — meaning the workflow to add a custom font is essentially identical. The differences are in defaults, fallback metrics, and the .product-card__title vs .banner__heading selectors that pick up the override.

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 Sense vs Refresh

  1. For a side-by-side migration: paste the same @font-face block into the bottom of `assets/base.css` on Sense and into the bottom of `assets/base.css` on Refresh.

  2. The CSS variable override block is byte-identical between the two — both themes read `--font-heading-family` and `--font-body-family` from `:root`.

  3. The settings_schema.json snippet is also portable: Sense and Refresh both honor `font_picker` and `select` types in the Theme Editor.

  4. Where the themes diverge is in their default fallback faces (Sense uses the theme's default heading face; Refresh uses the theme's default body face), so check that your custom face's `size-adjust` matches well enough that any swap is invisible.

Frequently asked questions

  • Which is easier to customize fonts on, Sense or Refresh?

    Equally easy. Both Sense and Refresh are OS 2.0 themes that read typography from CSS custom properties on `:root`, so the override block this site generates works on either with no edits. The "easier" theme is whichever you already have installed.

  • Do Sense and Refresh use the same CSS variable names for typography?

    Yes. `--font-heading-family`, `--font-heading-style`, `--font-heading-weight`, and the matching `--font-body-*` triplet are identical across Sense and Refresh. The variable convention is inherited from Dawn, which both themes derive from.

  • Can I move a custom-font setup from Sense to Refresh?

    Yes — copy your asset files into Refresh's `assets/` folder, paste the same @font-face block into the bottom of `assets/base.css`, and append the same CSS variable override. The only file-path detail to double-check is whether you used the `asset_url` filter (you should have); if so, Shopify rewrites the path correctly on the new theme automatically.

  • Which theme has better typography defaults out of the box, Sense or Refresh?

    Subjective and audience-dependent. Sense's rounded, soft-edged typography that pairs cleanly with high-resolution lifestyle imagery. Refresh's high-contrast display headings sitting above utilitarian body copy. If your brand is more expressive, the sport & energy positioning of Refresh probably aligns better. If you're in a health & wellness space, Sense sets a closer baseline.