Как подключить свой шрифт в CSS: @font-face и Google Fonts

Если нужного шрифта нет на компьютере читателя, можно всё равно его показать: подключить свой файл через @font-face или взять готовый вариант с Google Fonts. Оба способа заставляют браузер один раз скачать файл шрифта и дальше использовать его как обычный, локально установленный.

Попробуй прямо сейчас: поменяй имя шрифта в правиле @font-face (например, на "DrugoyShrift") так, чтобы оно перестало совпадать с именем в классе .custom - шрифт перестанет узнаваться, и текст вернётся к обычному запасному варианту sans-serif.

Свой файл шрифта: как работает @font-face

@font-face - это правило, которое регистрирует шрифт под именем, каким ты сам его назовёшь, и указывает браузеру, откуда скачать файл. После этого имя можно использовать в font-family точно так же, как имя любого установленного шрифта.

src: url("shrift.woff2") format("woff2"), url("shrift.ttf") format("truetype"); - несколько форматов через запятую: если браузер читателя не поддерживает woff2, он попробует следующий.

src: url("shrift.ttf") format("truetype"); - только один старый формат: файл будет заметно тяжелее, чем нужно, без явной причины для этого в 2026 году.

Готовый шрифт из Google Fonts

Не обязательно искать файл шрифта самому - Google Fonts уже подготовил тысячи шрифтов с готовым @font-face внутри. Нужно просто подключить одну ссылку в <head> - и дальше использовать имя шрифта в font-family как обычно.

<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto&display=swap"> - строка в <head>, дальше просто font-family: "Roboto", sans-serif;.

@import url("https://fonts.googleapis.com/css2?family=Roboto"); внутри CSS-файла - грузится последовательно, а не параллельно с остальными стилями, и заметно задерживает отрисовку страницы.

Из истории В 2022 году окружной суд Мюнхена (LG München I) в деле от 20 января 2022 года (номер 3 O 17493/20) обязал владельца сайта выплатить посетителю компенсацию в 100 евро - за то, что сайт напрямую подключал шрифт с серверов Google, и IP-адрес посетителя автоматически передавался Google без согласия. Суд отметил, что тот же результат достижим и без передачи данных Google - например, можно скачать файлы шрифта и подключить их через собственный @font-face. С тех пор для сайтов, ориентированных на аудиторию ЕС, самостоятельное размещение файлов Google Fonts стало распространённой практикой. Источник: activemind.legal - разбор решения суда, 2022.

font-display: что показывать, пока шрифт загружается

Пока файл шрифта не скачался, браузеру нужно решить, что показывать читателю. Свойство font-display управляет этим: swap сразу показывает запасной шрифт и заменяет его на нужный, как только тот загрузится - это самый частый выбор, потому что текст виден с первой секунды.

font-display: swap; - текст сразу виден в запасном шрифте, без пустого места на странице.

/* font-display не указан */ - по умолчанию используется auto, и часть браузеров на короткое время делают текст невидимым, пока идёт загрузка.

Частые ошибки новичков

ОшибкаЧто происходитКак исправить
Не указан font-display (используется auto по умолчанию) В части браузеров текст на короткое время невидим, пока шрифт не загрузится Добавить font-display: swap - запасной шрифт покажется сразу
Google Fonts подключены через @import вместо <link> Загрузка шрифта блокирует и задерживает загрузку остального CSS - последовательно, а не параллельно Использовать <link rel="stylesheet"> в <head>, а не @import
В @font-face указан только один формат файла В части браузеров, не поддерживающих именно этот формат, шрифт не подключится вообще Перечислить несколько форматов через запятую в src, начиная с woff2
Опечатка или неверный путь в src: url(...) Шрифт тихо не подключается, браузер использует следующий шрифт по списку - видимой ошибки на странице нет Проверить путь и открыть вкладку Network в инструментах разработчика - там виден статус 404

Шпаргалка

Что нужноКак сделать
Подключить свой файл@font-face { font-family: "Имя"; src: url("шрифт.woff2") format("woff2"); }
Несколько форматов на всякий случайsrc: url(...woff2) format("woff2"), url(...ttf) format("truetype");
Подключить Google Fonts<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Имя"> в <head>
Не прятать текст во время загрузкиfont-display: swap;
Приватность (для аудитории ЕС)Вместо прямой ссылки на Google можно скачать файлы шрифта и подключить через свой @font-face

Коротко: отвечаем на вопросы

Шрифт подключил через @font-face, но он не применяется - в чём может быть проблема?

Чаще всего дело в неверном пути к файлу в src: url(...) - шрифт тихо не загружается и подставляется запасной вариант без видимой ошибки на странице. Стоит открыть вкладку Network в инструментах разработчика: если файл не найден, там будет виден статус 404.

Можно ли использовать шрифты из Google Fonts бесплатно в коммерческом проекте?

Да - все шрифты Google Fonts распространяются по открытым лицензиям (чаще всего SIL Open Font License, также встречаются Apache License и Ubuntu Font License) и разрешают бесплатное использование, в том числе в коммерческих проектах.

Категория
css
Поделиться в социальных сетях

Отправить комментарий

0 Комментарии

Отправить комментарий (0)

#buttons=(Хорошо) #days=(20)

Мы используем файлы cookie для улучшения работы сайта. Подробнее
Хорошо
×