Когда я только начинал верстать сайты, мои заказчики часто просили «сделать красиво, как у тех ребят». Я открывал их сайт, видел необычный шрифт, лез в код и обнаруживал, что там подключены какие-то файлы с расширением .woff или .ttf. Тогда я думал: «Это какая-то магия». Спустя десять лет я понял: магии нет, есть правильный подход к подключению шрифтов и иконок. В этой статье я расскажу, как сделать сайт запоминающимся с помощью типографики и иконок, не превратив его в «тяжеловоза», который грузится вечность.

Digital-студия WNDER

Почему стандартных шрифтов мало

Системные шрифты вроде Arial или Times New Roman — это как офисная одежда: удобно, привычно, но скучно. Ваш сайт может быть наполнен гениальным контентом, но если он набран стандартным шрифтом, пользователь подсознательно воспринимает его как шаблонный. Кастомный шрифт — это как фирменный костюм: он выделяет вас из толпы и подчеркивает стиль.

Но зачем вообще заморачиваться? Дело в том, что шрифт передает настроение. Например, округлые шрифты с мягкими линиями вызывают доверие и дружелюбие, а строгие гротески — надежность и профессионализм. Иконки же помогают пользователю быстро считывать информацию: иконка корзины понятна без слов, иконка лупы — это поиск. Вместе они создают целостный пользовательский опыт.

Однако подключение кастомных шрифтов — это не просто «закинул файл на сервер и прописал в CSS». Есть нюансы: форматы, вес, оптимизация загрузки. Если не разобраться, можно получить сайт, который грузится как в 90-е. Давайте разбираться.

Как подключить шрифт: от простого к сложному

Самый простой способ — использовать Google Fonts. Выбираете шрифт, копируете ссылку, вставляете в HTML. Вот пример:

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">

Этот код подключает шрифт Roboto с начертаниями 400 (обычное) и 700 (жирное). Параметр display=swap означает, что браузер сначала покажет системный шрифт, а потом заменит его на кастомный, когда тот загрузится. Это называется FOUT (Flash of Unstyled Text).

Но что если нужен нестандартный шрифт, которого нет в Google Fonts? Тогда придется использовать @font-face в CSS. Выглядит это так:

@font-face {
  font-family: 'MyFont';
  src: url('myfont.woff2') format('woff2'),
       url('myfont.woff') format('woff');
  font-weight: 400;
  font-style: normal;
}

Здесь мы говорим браузеру: «Слушай, у меня есть шрифт MyFont, он лежит в файлах myfont.woff2 и myfont.woff. Если браузер поддерживает WOFF2 — используй его, если нет — бери WOFF». Формат WOFF2 — это сжатый шрифт, который весит меньше, чем TTF или OTF, и поддерживается всеми современными браузерами.

Лайфхак: Всегда подключайте шрифт в формате WOFF2, а для старых браузеров — WOFF. TTF и OTF используйте только как запасной вариант, если нет других. Это сократит вес шрифта в 2-3 раза.

Важно: если вы используете несколько начертаний (например, 400, 700, 900), для каждого нужно прописать свой @font-face. Иначе браузер будет искусственно «жирнить» обычный шрифт, и результат будет выглядеть ужасно.

Иконки: от картинок к шрифтам и SVG

Раньше я использовал иконки как обычные картинки: вставил PNG с прозрачным фоном — и радуйся. Но у такого подхода есть минусы: картинки не масштабируются без потери качества, весят много, и их сложно менять программно. Поэтому современные разработчики используют иконочные шрифты или SVG-спрайты.

Иконочные шрифты — это шрифты, в которых вместо букв находятся иконки. Например, библиотека Font Awesome. Подключаете шрифт, а в HTML вставляете тег <i> с классом, который определяет конкретную иконку. Вот пример:

<!-- Подключение CSS с иконочным шрифтом -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">

<!-- Использование иконки -->
<i class="fas fa-home"></i>

Плюсы иконочных шрифтов: они легкие, легко меняют цвет через CSS, масштабируются без потери качества. Минусы: если на сайте используется много разных иконок, шрифт может весить прилично. Но это решается подключением только нужных иконок через специальные сервисы.

Более современный подход — использование SVG-спрайтов. SVG — это векторный формат, который описывает картинку с помощью XML-кода. Вы создаете один файл со спрайтом, в котором собраны все иконки, а затем в HTML используете тег <svg> с ссылкой на нужный элемент:

<svg style="width: 24px; height: 24px;">
  <use href="sprite.svg#icon-home"></use>
</svg>

Преимущества SVG: лучше контролируется размер, можно анимировать, иконки не зависят от шрифта (не будет проблем с загрузкой). Но есть и сложность: нужно уметь готовить спрайт.

Оптимизация загрузки: чтобы сайт не тормозил

Главная боль с кастомными шрифтами — это вес. Один шрифт с несколькими начертаниями может весить 200-300 КБ, а если подключить 3-4 шрифта — сайт станет тяжелым. Что делать?

Во-первых, используйте только нужные начертания. Если для заголовков нужен жирный, а для текста — обычный, не подключайте все 9 вариантов. Во-вторых, применяйте современные форматы (WOFF2). В-третьих, используйте атрибут font-display в CSS, чтобы контролировать поведение браузера во время загрузки.

Вот таблица форматов шрифтов и их характеристик, чтобы вы могли быстро сориентироваться:

Формат Сжатие Поддержка браузеров Когда использовать
WOFF2 Лучшее (сжатие до 30% от TTF) Все современные Основной формат
WOFF Хорошее Все, включая IE11 Для старых браузеров
TTF/OTF Нет Почти все, но не поддерживается в некоторых мобильных Как запасной вариант
EOT Среднее Только IE Не нужен, если не поддерживаете IE

Еще один способ ускорить загрузку — использовать подмножества шрифтов. Это когда вы включаете в файл только те символы, которые нужны для вашего языка. Например, для кириллицы и латиницы создаются разные файлы. Сервисы вроде Fontsquirrel позволяют сгенерировать такие подмножества.

Инструменты для работы с иконками

Когда я работаю с иконками, я использую несколько инструментов, которые экономят время. Вот список моих фаворитов:

  • Font Awesome — самая популярная библиотека иконок. Бесплатная версия содержит тысячи иконок, есть платная с дополнительными стилями.
  • IcoMoon — сервис, который позволяет выбрать нужные иконки из библиотеки и скачать их в виде шрифта или SVG-спрайта. Очень удобно, чтобы не тянуть весь набор.
  • Feather Icons — набор простых иконок в виде SVG. Отлично подходит для минималистичных дизайнов.
  • SVG Sprites Generator — онлайн-инструменты, которые собирают все ваши SVG-иконки в один файл. Например, svgsprit.es.

Для проверки, как шрифт ведет себя на разных устройствах, я использую Chrome DevTools. Там можно эмулировать медленное соединение и увидеть, когда появляется текст. Это помогает понять, нужно ли что-то оптимизировать.

Правило: Не используйте более двух-трех семейств шрифтов на сайте. Один для заголовков, один для текста, максимум — один для акцентов. Иначе сайт будет выглядеть как лоскутное одеяло и грузиться дольше.

Практический пример: подключаем шрифт и иконки вместе

Давайте соберем все вместе. Представьте, что вы делаете сайт для кофейни. Вы выбрали шрифт Playfair Display для заголовков и Inter для текста. Для иконок решили использовать Font Awesome. Вот как будет выглядеть подключение:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Кофейня «Уют»</title>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Playfair+Display:wght@700&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
  <style>
    body { font-family: 'Inter', sans-serif; }
    h1 { font-family: 'Playfair Display', serif; }
    .icon { font-size: 24px; color: #6b4f3a; }
  </style>
</head>
<body>
  <h1>Добро пожаловать в «Уют»</h1>
  <p>Мы варим кофе с любовью.</p>
  <span class="icon"><i class="fas fa-coffee"></i></span>
</body>
</html>

В этом примере мы подключаем шрифты через Google Fonts, а иконки — через CDN. Обратите внимание, что в CSS мы явно указываем, какой шрифт для чего используется. Это важно, чтобы браузер не путал.

Если вы хотите использовать SVG-иконки, то код будет чуть сложнее, но и гибче. Например, вы можете менять цвет иконки при наведении через CSS.

Что в итоге

Кастомные шрифты и иконки — это мощный инструмент, который делает ваш сайт уникальным и удобным. Но с ними нужно обращаться аккуратно. Помните о весе файлов, подключайте только нужные начертания, используйте современные форматы и не забывайте про запасные варианты для старых браузеров.

Начните с малого: попробуйте подключить один шрифт через Google Fonts и замените стандартные иконки на Font Awesome. Вы увидите, как изменится восприятие сайта. А когда освоитесь, переходите на SVG-спрайты и оптимизацию.

Веб-дизайн — это не только сетки и цвета, но и детали. Хороший шрифт и правильная иконка могут сказать больше, чем любой текст. Так что экспериментируйте, но с умом.

Студия WNDER — мы создаем сайты, которые работают на вас.