CodeNewbie Community 🌱

Cover image for 3 quick ways to add fonts to your React app
Tapas Adhikary
Tapas Adhikary

Posted on • Originally published at blog.greenroots.info

3 quick ways to add fonts to your React app

In HTML, font is used to specify the font face, font size, typography of the text. You can add fonts to your React application in different ways. This article aims to explain three quick ways of adding fonts to your React app.

All the examples in the article assumes the React code structure provided by the create-react-app. You can choose to use the examples in any other code structure too.

✨ Using the Font link

We can link to any fonts hosted online using the <link> tag inside an HTML file. Let's take an example of applying Google Fonts using the <link> tag.

image.png

  • Click on the +Select this style button

image.png

  • Go to the section, Use on the web and copy the code under the <link> section

image.png

  • Go to the index.html file of your project. If your app is based on the create-react-app, you will find it under the public folder. Paste the copied lines inside the <head> section. Here is an example,
 <link rel="preconnect" href="https://fonts.gstatic.com">
 <link href="https://fonts.googleapis.com/css2?family=Hanalei+Fill&display=swap" rel="stylesheet">
Enter fullscreen mode Exit fullscreen mode
  • Go to your CSS file and add a style like,
.font-link {
   font-family: 'Hanalei Fill', cursive;
 }
Enter fullscreen mode Exit fullscreen mode

Here we are using the same font-family that linked in the above step.

  • Last, you can add this style anywhere in your React component.
const FontLink = () => {
   return(
       <div className="card">
           <span className="font-link">
               This is with Font Link. We are linking the fonts from the Google Fonts.
           </span>
       </div>
   )
};

export default FontLink;
Enter fullscreen mode Exit fullscreen mode

Please note, we are using the class name with the <span> element in the React component.

This is how the component may look like,

image.png

✨ Using the Web Font Loader

The Web Font Loader helps you to load fonts from Google Fonts, Typekit, Fonts.com, and Fontdeck, as well as self-hosted web fonts. It is co-developed by Google and Typekit.

Let us see how to load multiple fonts from Google Fonts and use them in a React component.

  • Install webfontloader
yarn add webfontloader # Or, npm i webfontloader
Enter fullscreen mode Exit fullscreen mode
  • Import webloader to your component
import WebFont from 'webfontloader';
Enter fullscreen mode Exit fullscreen mode
  • Load the desired fonts using the font name. It is better to use the useEffect hook and let it run once when the component loads. As the fonts need to be loaded just once in the app, you can load them in the index.js file.
 useEffect(() => {
   WebFont.load({
     google: {
       families: ['Droid Sans', 'Chilanka']
     }
   });
  }, []);
Enter fullscreen mode Exit fullscreen mode

Here we are loading fonts, 'Droid Sans' and 'Chilanka'.

  • Now you can use these fonts in a React component using the className or style attribute. To use with the className attribute, create a CSS class in the .css file,
.font-loader {
   font-family: 'Chilanka';
}
Enter fullscreen mode Exit fullscreen mode

Then, in the component's render() method,

 <div className="font-loader">
     This is with Web Font Loader using the class attribute. 
     We are loading the <u><b>Chilanka</b></u> font from the Google Fonts.
 </div>
Enter fullscreen mode Exit fullscreen mode

With the style attribute,

 <div style={{fontFamily: 'Droid Sans'}}>
    This is with Web Font Loader using the style attribute. 
    We are loading the <u><b>Droid Sans</b></u> fonts from the Google Fonts.
 </div>
Enter fullscreen mode Exit fullscreen mode

This is how the component may look like,

image.png

Read more about the Web Font Loader from here.

✨ Using @font-face

In some situations, you may not be allowed to connect to a font repository online and link/load it. A classic example is, your app users use intranet and they have restricted access to the internet. In these situations, the fonts must be downloaded locally and packaged within the app.

@font-face is a CSS rule to define a font name by pointing to a font with a URL.

  • Create a folder called fonts under src.
  • Download the required fonts into the src\fonts folder. In this example, we have downloaded two fonts, Goldman and Lobster.

image.png

  • Next, import the fonts into the index.js file.
 import './fonts/Goldman/Goldman-Bold.ttf';
Enter fullscreen mode Exit fullscreen mode
  • In the index.css file add,
@font-face {
 font-family: "GoldmanBold";
 src: local("GoldmanBold"),
  url("./fonts/Goldman/Goldman-Bold.ttf") format("truetype");
 font-weight: bold;
}
Enter fullscreen mode Exit fullscreen mode
  • Now add a class name in the App.css file that uses this family name.
.font-face-gm {
  font-family: "GoldmanBold";
}
Enter fullscreen mode Exit fullscreen mode
  • Use this class name in your React component,
const FontFace = () => {
   return(
       <div className="card">
           <div className="font-face-gm">
               This is using Font Face. 
               We are linking the <u><b>Goldman</b></u> font from the Google Fonts.
           </div>
       </div>
   )
}
export default FontFace;
Enter fullscreen mode Exit fullscreen mode

This is how the component may look like,
image.png

Before we end...

Hope it was useful. Please Like/Share so that it reaches others as well. But, a few more points before we finish,

  • All the mechanisms discussed here are also applicable to a vanilla JavaScript application.
  • We can use multiple fonts in one app. image.png
  • All the source code used in this article is in my GitHub repository.

GitHub logo atapas / font-loader

font-loader is a simple react app created using the Create React App to show case how fonts can be loaded.

Let's connect. You can @ me on Twitter (@tapasadhikary) with comments, or feel free to follow. You may also enjoy reading,


Other articles of mine that you might like

Top comments (5)

Collapse
 
troykason profile image
Troy Kason • Edited

Google Fonts is a straightforward way to include custom fonts in your React app:

a. In your React project, open the HTML file (usually located at public/index.html).

b. Inside the

section of your HTML file, add a focusautodetailing.com/ tag to include the Google Fonts stylesheet for the font you want. For example, to add the "Roboto" font
Collapse
 
morganphoebe profile image
Morgan Phoebe

Obtain the font files (e.g., .ttf, .woff, .woff2) for the desired fonts.
Place the font files in a directory within your React project (e.g., src/fonts).
Import the font files in your CSS or component where you want to apply the font like Vape Shop Islamabad.

Collapse
 
andrewbrooks profile image
Andrew Brooks • Edited

To quickly add custom fonts to your React app, you can use Google Fonts by including the font's stylesheet in your HTML file and then specifying the font in your CSS. Alternatively, if you have custom font files, place them in a directory within your project and use @font-face in your CSS or SCSS to define the font. Finally, if you're using a CSS-in-JS library like styled-components, import the library, create a styled component with your custom font, kellie shanygne williams age and use it in your JSX. Each method provides a straightforward way to enhance your app's typography and design according to your preferences and project requirements.

Collapse
 
armandolen profile image
Arman dolen • Edited

The above command uses react-native-asset to copy the assets to respective native directories and make all the required changes. If everything is right, you will see something like below, and you can see the new font assets in android/app/src/main/assets/fonts in the case of android and changes in the plumbing estimating services Info.plist in case of iOS.

Collapse
 
aydenbentley profile image
Ayden Bentley

One of the easiest ways is to use Google urban jungle Font. Google Fonts provides a wide selection of free web fonts that you can easily include in your React app. Simply add the link to the desired font in the

section of your index.html file:

href="https://fonts.googleapis.com/css2?family=FontName&amp;display=swap"

rel="stylesheet"

/>

Replace "FontName" with the name of the font you want to use. After adding the link, the font will be available throughout your React app.