
В React приложения шрифты можно подключать несколькими способами, каждый из которых имеет свои особенности и ограничения. Локальные шрифты позволяют хранить файлы внутри проекта и обеспечивают стабильную загрузку без зависимости от внешних сервисов. Для этого достаточно разместить файлы шрифтов в папке public или src и подключить их через CSS с использованием @font-face.
Google Fonts предоставляет широкий выбор шрифтов с автоматической оптимизацией для веба. В React проект их можно подключить напрямую через ссылку в index.html или импортировать в CSS и JS файлы. При использовании Google Fonts важно учитывать влияние на скорость загрузки страниц: рекомендуется выбирать только необходимые начертания и веса.
Для компонентов, стилизованных через styled-components, шрифты можно импортировать внутри компонентов с помощью createGlobalStyle. Такой подход позволяет управлять типографикой на уровне отдельных модулей и избегать глобальных конфликтов стилей. Важно проверять, что путь к шрифту указан корректно относительно структуры проекта.
Помимо этого, существуют npm-пакеты с шрифтами, которые автоматически добавляют файлы и конфигурацию в проект. Это ускоряет интеграцию и упрощает поддержку шрифтов, но требует контроля версии пакета и совместимости с текущей сборкой React. Тестирование подключенных шрифтов в разных браузерах и устройствах помогает убедиться в правильном отображении текста и предотвращает проблемы с fallback-шрифтами.
Добавление локальных шрифтов через CSS
Локальные шрифты позволяют полностью контролировать загрузку и отображение текста в React приложении. Для подключения шрифта необходимо разместить файлы в папке src/assets/fonts или public/fonts и создать CSS правило @font-face. Указывайте формат файла для браузерной совместимости: woff2, woff, ttf.
Пример подключения шрифта через CSS:
src/assets/fonts/CustomFont.woff2
@font-face {
font-family: 'CustomFont';
src: url('./assets/fonts/CustomFont.woff2') format('woff2'),
url('./assets/fonts/CustomFont.woff') format('woff');
font-weight: 400;
font-style: normal;
}
После подключения шрифта можно использовать его в стилях компонентов через CSS классы или inline-стили:
body {
font-family: 'CustomFont', Arial, sans-serif;
}
Для контроля веса и начертаний рекомендуется создать таблицу с соответствием файлов и параметров:
| Файл | Начертание | Вес | CSS font-family |
|---|---|---|---|
| CustomFont-Regular.woff2 | Normal | 400 | CustomFont |
| CustomFont-Bold.woff2 | Normal | 700 | CustomFont |
| CustomFont-Italic.woff2 | Italic | 400 | CustomFont |
Важно проверять, что пути к файлам соответствуют структуре проекта. В React с Create React App файлы из папки public подключаются через абсолютный путь: /fonts/CustomFont.woff2. При использовании src – путь относительный к CSS файлу.
Использование Google Fonts в React

Google Fonts предоставляет коллекцию веб-шрифтов, которые можно подключать напрямую в React приложения. Основные способы интеграции:
- Подключение через ссылку в index.html:
- Откройте public/index.html.
- Добавьте тег <link> в <head>:
-
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
- Используйте шрифт в CSS через font-family:
-
body { font-family: 'Roboto', sans-serif; }
- Импорт через CSS или SCSS:
- В файле стилей добавьте:
-
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap'); - Применяйте шрифт в классах или глобальных стилях.
- Импорт через JavaScript:
- В файле index.js или компоненте:
-
import '@fontsource/roboto/400.css'; import '@fontsource/roboto/700.css';
- Обеспечивает поддержку tree-shaking и контроль весов шрифта.
Рекомендации при использовании Google Fonts:
- Выбирайте только необходимые начертания и веса, чтобы уменьшить время загрузки.
- Используйте параметр display=swap для плавного отображения текста до загрузки шрифта.
- Тестируйте отображение на мобильных устройствах и в разных браузерах.
- При разработке с TypeScript можно импортировать шрифты через npm-пакеты @fontsource для точного контроля версий.
Подключение шрифтов через npm-пакеты
Шрифты можно интегрировать в React проект через npm-пакеты, что упрощает управление версиями и автоматизирует подключение файлов. Популярный подход – использовать пакеты из @fontsource для Google Fonts и других открытых коллекций.
Пошаговая инструкция:
- Установка пакета:
- Через npm:
npm install @fontsource/roboto
- Через yarn:
yarn add @fontsource/roboto
- Через npm:
- Импорт шрифта в проект:
- Импортируйте необходимые веса и начертания в index.js или компонент:
-
import '@fontsource/roboto/400.css'; import '@fontsource/roboto/700.css';
- Можно импортировать только нужные варианты для оптимизации загрузки.
- Применение в стилях:
- Используйте шрифт через font-family в CSS или styled-components:
-
body { font-family: 'Roboto', sans-serif; }
Рекомендации:
- Сохраняйте соответствие между импортированными файлами и CSS-свойствами font-weight и font-style.
- Обновляйте пакеты регулярно для совместимости с текущей версией React.
- При использовании нескольких шрифтов создавайте отдельные импорты для каждого, чтобы избежать лишней нагрузки.
- Для TypeScript можно создавать декларации типов для кастомных шрифтов, чтобы избежать ошибок импорта.
Импорт шрифтов в компонент через styled-components

Styled-components позволяет подключать шрифты на уровне компонентов с помощью createGlobalStyle. Это обеспечивает контроль над типографикой без изменения глобальных CSS-файлов и минимизирует конфликт стилей между компонентами.
Пример использования локального шрифта в компоненте:
import { createGlobalStyle } from 'styled-components';
import CustomFontWoff2 from '../assets/fonts/CustomFont.woff2';
const GlobalStyle = createGlobalStyle`
@font-face {
font-family: 'CustomFont';
src: url(${CustomFontWoff2}) format('woff2');
font-weight: 400;
font-style: normal;
}
body {
font-family: 'CustomFont', sans-serif;
}
`;
export default GlobalStyle;
Для использования Google Fonts через styled-components:
import { createGlobalStyle } from 'styled-components';
const GlobalStyle = createGlobalStyle`
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
body {
font-family: 'Roboto', sans-serif;
}
`;
export default GlobalStyle;
Рекомендации:
- Импортируйте только необходимые веса и начертания, чтобы сократить размер CSS.
- Создавайте один глобальный styled-компонент для шрифтов, который подключается в App.js или корневой компонент.
- Для локальных шрифтов проверяйте корректность пути относительно структуры проекта.
- Тестируйте отображение на разных устройствах и браузерах для проверки fallback-шрифтов.
Настройка шрифтов в файле index.css
Файл index.css в React отвечает за глобальные стили приложения. Подключение шрифтов через этот файл позволяет использовать их во всех компонентах без повторного импорта.
Пример подключения локального шрифта:
@font-face {
font-family: 'CustomFont';
src: url('./assets/fonts/CustomFont.woff2') format('woff2'),
url('./assets/fonts/CustomFont.woff') format('woff');
font-weight: 400;
font-style: normal;
}
body {
font-family: 'CustomFont', Arial, sans-serif;
}
Пример подключения Google Fonts через import:
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
body {
font-family: 'Roboto', sans-serif;
}
Рекомендации при работе с index.css:
- Для нескольких начертаний и весов создавайте отдельные @font-face правила.
- Используйте fallback-шрифты для корректного отображения при ошибках загрузки.
- Проверяйте относительные пути к локальным шрифтам относительно файла index.css.
- При подключении Google Fonts выбирайте только необходимые веса, чтобы уменьшить объем CSS и ускорить загрузку страниц.
Загрузка кастомных шрифтов с внешнего сервера
Кастомные шрифты можно подключать напрямую с внешнего сервера через CSS с использованием правила @font-face. Это позволяет использовать шрифты без хранения файлов в проекте и облегчает обновление типографики.
Пример подключения шрифта с внешнего URL:
@font-face {
font-family: 'CustomFont';
src: url('https://example.com/fonts/CustomFont.woff2') format('woff2'),
url('https://example.com/fonts/CustomFont.woff') format('woff');
font-weight: 400;
font-style: normal;
}
body {
font-family: 'CustomFont', sans-serif;
}
Рекомендации при использовании внешних шрифтов:
- Используйте надежные и быстрые серверы для хранения файлов, чтобы минимизировать задержку загрузки.
- Указывайте форматы woff2 и woff для совместимости с большинством браузеров.
- Контролируйте кэширование шрифтов через заголовки сервера для уменьшения повторной загрузки.
- Проверяйте корректность CORS-настроек, чтобы шрифты загружались без ошибок в браузере.
- Создавайте fallback-шрифты в font-family, чтобы текст отображался при недоступности внешнего файла.
Проверка работы шрифтов в разных браузерах
После подключения шрифтов в React приложении важно убедиться, что они корректно отображаются во всех популярных браузерах: Chrome, Firefox, Safari, Edge и Opera. Разные движки рендеринга могут по-разному обрабатывать форматы файлов и начертания шрифтов.
Алгоритм проверки:
- Откройте приложение в каждом браузере и проверьте отображение текста в ключевых компонентах.
- Используйте инструменты разработчика для проверки применяемого font-family и фактического загруженного шрифта.
- Проверяйте разные веса и начертания, особенно если подключены несколько @font-face правил.
- Тестируйте fallback-шрифты: временно отключите основной шрифт и убедитесь, что текст остаётся читаемым.
- Проверяйте мобильные версии браузеров для корректного отображения на разных экранах и разрешениях.
Рекомендации:
- Используйте форматы woff2 и woff для совместимости с большинством движков.
- Следите за кэшированием и заголовками CORS при загрузке шрифтов с внешних серверов.
- Документируйте используемые веса и начертания для поддержки команды разработчиков и дизайнеров.
- Регулярно обновляйте тестирование при обновлениях React, браузеров или подключенных пакетов шрифтов.
Вопрос-ответ:
Как подключить локальный шрифт в React проекте?
Для подключения локального шрифта сначала разместите файлы в папке проекта, например src/assets/fonts или public/fonts. Затем создайте CSS правило @font-face с указанием пути к файлам и форматов woff2, woff или ttf. После этого можно применять шрифт через свойство font-family в CSS или styled-components.
Можно ли использовать Google Fonts в React без npm-пакетов?
Да. Шрифты Google Fonts можно подключить через ссылку в index.html или через @import в CSS. После подключения шрифта указывайте его в font-family для нужных элементов. При этом рекомендуется выбирать только необходимые веса и начертания, чтобы не увеличивать время загрузки страниц.
Как импортировать шрифт в компонент с помощью styled-components?
В styled-components для глобальных шрифтов используется createGlobalStyle. Через него можно подключить локальные файлы шрифта или Google Fonts. После определения шрифта в глобальном styled-компоненте достаточно подключить его в корневом компоненте приложения, чтобы все дочерние элементы использовали этот шрифт.
Какие проверки нужны после подключения шрифтов в React?
После подключения шрифтов важно проверить их работу во всех основных браузерах и на мобильных устройствах. Проверяйте правильность веса и начертания, отображение fallback-шрифтов, а также корректную загрузку при использовании внешних серверов. Для диагностики можно использовать инструменты разработчика, чтобы убедиться, что нужный шрифт загружен и применяется.
