Custom Fonts

React Native 6 min min read Updated: Jul 26, 2026 Intermediate
Custom Fonts
Intermediate Topic 22 of 30

Custom Fonts

Adding custom fonts allows your React Native application to reflect a unique brand identity instead of relying on default system fonts. This tutorial explains how to add and use custom fonts correctly.

Adding Font Files to Your Project

Custom font files, typically in .ttf or .otf format, should be placed inside an assets/fonts folder within your project directory.

text assets/ └── fonts/ ├── Poppins-Regular.ttf └── Poppins-Bold.ttf

Linking Fonts (React Native CLI)

For React Native CLI projects, fonts must be linked using a configuration file and the asset linking command.

javascript // react-native.config.js module.exports = { assets: ['./assets/fonts'], };
bash npx react-native-asset

Using Custom Fonts in Expo

Expo projects use the expo-font library to load fonts asynchronously before rendering the app.

javascript import { useFonts } from 'expo-font'; const [fontsLoaded] = useFonts({ 'Poppins-Regular': require('./assets/fonts/Poppins-Regular.ttf'), });

Applying a Custom Font

Once linked, the font family name can be applied directly in your StyleSheet, exactly as it appears in the font file name.

javascript const styles = StyleSheet.create({ title: { fontFamily: 'Poppins-Regular', fontSize: 18 }, });

Common Font Issues

  • Font not appearing after adding — requires a full app rebuild, not just Fast Refresh
  • Incorrect font family name not matching the actual file name
  • Forgetting to relink fonts after adding new font files

Conclusion

Custom fonts play a significant role in establishing a unique visual identity for your React Native application. Properly linking and applying fonts ensures consistent typography across both Android and iOS.

Get Newsletter

Subscibe to our newsletter and we will notify you about the newest updates on Edugators