У Expo для підключення шрифтів використовується спеціальний Expo Font. Спочатку його потрібно встановити, запустивши в терміналі такий рядок.
npx expo install expo-font
Виберіть у своєму проекті якусь папку для зберігання усіх шрифтів. Наприклад: assets/fonts. У розробці підтримуються лише два формати шрифтів із розширеннями .tiff та .otf. Щоб працювати з іншими форматами потрібні додаткові налаштування. Загальнодоступні безкоштовні шрифти можна завантажити наприклад на платфомі .
Щоб застосувати шрифти потрібно спочатку заімпортувати хук useFont з модуля expo-font, а потім приєднати шрифти, які будете застосовувати в проекті.
Після цього шрифт можна застосувати у проекті в стилі компонента Text у властивості fontFamily.
Завантажити шрифти достатньо один раз на проект у файлі App.js. Тепер вони будуть доступні у будь-якому компоненті застосунку при зверненні за властивістю fontFamily.
App.js
import { View } from "react-native";
import { styles } from "./styles";
import { useFonts } from "expo-font";
import TestText from "./TestText";
export default function App() {
const [fontsLoaded] = useFonts({
"Kablammo-Regular": require("./assets/fonts/Kablammo/Kablammo-Regular.ttf"),
});
if (!fontsLoaded) {
return null;
}
return (
<View style={styles.container}>
<TestText />
</View>
);
}
TestText.jsx
import React from "react";
import { Text } from "react-native";
import { styles } from "./styles";
const TestText = () => {
return (
<>
<Text style={styles.kablamoFont}>Test Text</Text>
<Text style={styles.systemFont}>Test Text</Text>
</>
);
};
export default TestText;
Давайте винесемо стилізацію в окремий файл styles.js і там застосуємо шрифти, в App.js приєднаємо шрифти, а застосуємо стилі до окремого компонента TestText.jsx. Для більшої виразності і очевидності різниці шрифтів приєднаємо шрифт . На цей момент структура проекту матиме такий вигляд: