На главную
CSS и вёрстка
Правило @font-face
Собирает @font-face с font-display и unicode-range, раскладывает источники в правильном порядке и добавляет теги preload.
Шрифт
Если шрифт уже стоит в системе — браузер возьмёт его и ничего не скачает
swap — сразу запасной, потом подмена
Файлы
woff2
woff
Порядок в правиле выставляется сам: woff2 первым, дальше woff и ttf. Иначе браузер скачает формат потяжелее, хотя умеет более лёгкий.
Диапазоны символов
Без unicode-range браузер скачает файл, даже если на странице нет ни одного его символа.
@font-face
@font-face {
font-family: 'Golos Text';
src: url('/fonts/golos-text.woff2') format('woff2'),
url('/fonts/golos-text.woff') format('woff');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}Теги preload
<link rel="preload" href="/fonts/golos-text.woff2" as="font" type="font/woff2" crossorigin>
Применение
body {
font-family: 'Golos Text', system-ui, -apple-system, "Segoe UI", sans-serif;
}Всё вместе
@font-face {
font-family: 'Golos Text';
src: url('/fonts/golos-text.woff2') format('woff2'),
url('/fonts/golos-text.woff') format('woff');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body {
font-family: 'Golos Text', system-ui, -apple-system, "Segoe UI", sans-serif;
}