How to use @next/font globally

mikeesto

Michael Esteban

Posted on February 20, 2023

How to use @next/font globally

The @next/font package can download Google Fonts at build time and self-host them as a static asset. This is useful because no requests are made to Google by the client to request fonts used on the page.

However, it wasn't obvious to me how to apply the font globally. This can be achieved as follows.

app.js

import "@/styles/globals.css";

import { DM_Sans } from "@next/font/google";

const dm_sans = DM_Sans({
  display: "swap",
  subsets: ["latin"],
  weight: ["400", "500", "700"],
});

export default function App({ Component, pageProps }) {
  return (
    <>
      <style jsx global>{`
        :root {
          --dm-font: ${dm_sans.style.fontFamily};
        }
      `}</style>
      <Component {...pageProps} />
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

And then use the CSS variable in your stylesheet.

global.css

body {
  font-family: var(--dm-font);
}
Enter fullscreen mode Exit fullscreen mode
💖 💪 🙅 🚩
mikeesto
Michael Esteban

Posted on February 20, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

How to use @next/font globally
nextjs How to use @next/font globally

February 20, 2023