How to Add Custom Local Fonts in Next.js?

Spread the love


In the realm of web development, the aesthetic appeal of your website can significantly impact user engagement and satisfaction. Utilizing custom local fonts in Next.js is a powerful strategy to enhance your site’s visual appeal and reinforce your brand identity. This guide delves into the process of integrating custom local fonts into Next.js applications, offering a unique typographic style that can set your website apart. By following the steps outlined here, you’ll ensure your application not only stands out with a distinct style but also maintains high performance and accessibility standards.

Also Read: Complete Next.js Tutorial: Mastering Full Stack Development


Before embarking on integrating custom local fonts in Next.js project, several prerequisites are necessary:

  • Next.js Setup:
    Ensure you have an existing Next.js project. If you’re new to Next.js, consider following a basic tutorial to set up your project environment.
  • Basic Knowledge:
    You should be comfortable with the basics of Next.js and CSS to follow along effectively.
  • Font Files:
    Have access to your chosen custom font files. These should ideally be in WOFF or WOFF2 formats, which are specifically optimized for web use due to their compressed size and compatibility.
  • Font License:
    Confirm that you have the right to use and embed these fonts. Licensing for fonts can vary, and it’s important to use fonts legally to avoid infringement issues.

Also Read: How to Import External CSS Files in Next.js

Step 1: Obtaining and Preparing Your Font Files

Choosing the right fonts is critical, as they should align with your brand’s identity and values. Fonts can be sourced from various online platforms that offer both free and paid fonts. Websites like Google Fonts provide an extensive library of free fonts, while Adobe Fonts offers a broader range with subscription-based access. After selecting your font:

  1. Download the Font Files:
    Ensure you download the font files in a web-optimized format like WOFF or WOFF2. If the fonts are in TTF or OTF formats, use a tool like Font Squirrel’s Webfont Generator to convert them to a web-friendly format.
  2. Prepare the Font Files:
    Organize your font files by creating a dedicated directory within your project. This organization helps maintain a clean project structure and makes the fonts easily accessible.

Step 2: Including Custom Local Fonts in Next.js Project

To use the custom local fonts in Next.js project, place the font files into the public directory. This directory is designed to serve static assets like images and fonts efficiently:

  • Create a Subdirectory:
    Inside the public folder, create a subdirectory called fonts. This separation keeps your project organized.
  • Store Your Fonts:
    Upload your .woff and .woff2 files to this folder. Here’s how you might structure it:
  - your-custom-font.woff
  - your-custom-font.woff2

Step 3: Creating and Importing a CSS File for Fonts

With your custom local fonts in Next.js place, the next step is to create a CSS file that includes @font-face declarations for each custom font. This setup involves:

Also Read: How to Install and Setup Tailwind CSS in Next.js

  • Creating a CSS File:
    Create a new CSS file named fonts.css in your styles directory.
  • Writing @font-face Rules:
    Define @font-face for each font, specifying the font family, style, weight, and file paths. Here’s an example:
@font-face {
  font-family: 'YourCustomFont';
  src: url('/fonts/your-custom-font.woff2') format('woff2'),
       url('/fonts/your-custom-font.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  • Importing CSS in Next.js:
    Import this CSS file into your Next.js application to make the fonts available globally or in specific components. This can be done in the _app.js file:
import '../styles/fonts.css';

Step 4: Applying Custom Fonts in Your Application

Now that your custom local fonts in Next.js are ready to be used, you can apply them throughout your Next.js application:

  • Set Font-Family:
    Use the CSS font-family property to apply your custom fonts to HTML elements or React components. For instance:
body {
  font-family: 'YourCustomFont', sans-serif;
  • Styling Components:
    Extend the usage of your fonts to specific components or UI elements to enhance their visual appeal and maintain consistency.

Also Read: Next.js Image Optimization: A Step-by-Step Guide


Integrating custom local fonts in Next.js project can significantly enhance the visual aesthetics and user experience of your web application. This guide provides you with a clear roadmap for embedding unique typography into your project, ensuring it stands out in today’s competitive digital landscape.

Begin incorporating these steps into your Next.js project today to elevate its design with custom local fonts in Next.js. Explore different fonts and styles to find the best match for your application’s needs. For more advanced techniques and customization options, refer to the official Next.js documentation.

Leave a Comment