Назад к блогу
6 мин. чтения

4 строки CSS, которые копируют все — и никто не проверял

Разбираем популярный сниппет Finsweet Client-First построчно: что работает, что является мёртвым кодом, и почему слепое доверие к авторитетам — плохая практика.
Содержание
  1. Что такое Finsweet Client-First
  2. Разбираем построчно
  3. -webkit-font-smoothing: antialiased — ✅ работает, но только на macOS
  4. -moz-osx-font-smoothing: grayscale — ✅ работает, с 2024 года избыточна
  5. font-smoothing: antialiased — ❌ мёртвый код
  6. text-rendering: optimizeLegibility — ⚠️ работает, но опасна на body
  7. Итог: что реально нужно в 2026
/* Make text look crisper and more legible in all browsers */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

Источник: Finsweet Client-First

Если ты работаешь с Webflow — наверняка вставлял этот сниппет. И скорее всего не задавал вопросов. Это логично. Источник авторитетный, комментарий убедительный. Люди тянут этот код из проекта в проект, не проверяя.

Мне стало интересно — а что здесь реально работает? И правда ли это «in all browsers», как обещает комментарий? Спойлер: нет.


Что такое Finsweet Client-First

Client-First — гайдлайны и стратегии для организации и поддержки Webflow-проектов. Один из самых популярных фреймворков в Webflow-комьюнити. В составе есть готовый «Global Styles Embed» — код, который вставляется в каждый проект и уже включён в стартовый шаблон Client-First.1

Сниппет выше — часть этого эмбеда, раздел «Text clarity».

Именно потому что источник воспринимается как best practice, этот код почти никогда не подвергается сомнению. Берётся как есть — и живёт в проектах годами. Скорее всего, данный код никто не валидировал, поэтому сниппет просто не обновляется.


Разбираем построчно

-webkit-font-smoothing: antialiased — ✅ работает, но только на macOS

-webkit- — вендорный префикс движка WebKit. Означает что свойство нестандартное: реализовано браузерами самостоятельно, без стандарта W3C. Непрефиксной версии не существует — и не появится, пока свойство не стандартизировано.

Визуально — текст становится тоньше и легче, ближе к тому, как он выглядит в Figma. Свойство переключает режим сглаживания шрифта: с субпиксельного на полутоновое (grayscale antialiasing).

Работает исключительно на macOS: Safari, Chrome, Edge, Firefox 128+. На Windows, Linux и даже iOS Safari — никакого эффекта, браузер просто игнорирует это свойство.23

Важный контекст: начиная с macOS Mojave (2018) Apple отключила субпиксельное сглаживание на уровне системы. Браузеры продолжают его использовать по умолчанию — поэтому -webkit-font-smoothing: antialiased приводит веб-рендеринг в соответствие с остальной macOS.3

Оставляем? Да. Но понимаем, что это macOS-only, а не «all browsers».


-moz-osx-font-smoothing: grayscale — ✅ работает, с 2024 года избыточна

Firefox-специфичный («-moz» — mozilla) алиас того же поведения. Введён в Firefox 25 (2013) как намеренно ограниченное свойство — «osx» в названии сигнализирует о платформенной привязке.

В июле 2024 вышел Firefox 128, который добавил нативную поддержку -webkit-font-smoothing. С этого момента -moz-osx-font-smoothing фактически дублирует первую строку для Firefox на macOS.45

Оставляем? Да, для обратной совместимости. Если поддержка Firefox до июля 2024 не нужна — строку можно убрать.


font-smoothing: antialiased — ❌ мёртвый код

Эта строка не делает ничего. Совсем.

Свойство font-smoothing (с «-ing») никогда не существовало ни в одной CSS-спецификации W3C. В черновике CSS3 Fonts 2002 года фигурировало другое свойство — font-smooth (без «-ing»), с другим синтаксисом и значениями. Но оно так и не добралось до рекомендации.6

Ни один браузер — Chrome, Safari, Firefox, Edge — не распознаёт это свойство. Строка парсится и безмолвно игнорируется. Можно проверить самостоятельно: W3C CSS Validator выдаст ошибку — «Property font-smoothing doesn’t exist».

Популярное заблуждение — добавить «непрефиксную версию на будущее». Но font-smoothing не существует ни в одной спецификации — проверь сам в MDN.7

Оставляем? Нет. Удаляем.


text-rendering: optimizeLegibility — ⚠️ работает, но опасна на body

Это SVG-свойство, которое браузеры поддерживают и для HTML-элементов. Включает кернинг (точные отступы между буквами) и лигатуры (специальные соединения типа fi, fl) — текст выглядит типографически точнее.

Проблема в том, что применённое ко всему body, это затрагивает весь текст на странице. И здесь есть реальные задокументированные баги в Chromium: текст становится невидимым в сочетании с <video>, пропадают пробелы между словами, текст выходит за границы контейнера.89

MDN прямо указывает: не рекомендуется для обычного текста статей из-за возможных проблем с производительностью. Оптимально для крупных заголовков — коротких и больших.10

Ещё один факт: современные браузеры уже включают кернинг и лигатуры по умолчанию. На практике разница при добавлении optimizeLegibility к body минимальна — а риски есть. Если кернинг нужен явно — есть стандартная CSS-альтернатива без побочных эффектов: font-kerning: normal (стандартное свойство из CSS Fonts Module, поддерживается Chrome 33+, Firefox 32+, Safari 9+).

Оставляем? Не на body. Точечно — только на заголовках.


Итог: что реально нужно в 2026

Из четырёх строк — две рабочие, одна мёртвая, одна потенциально вредная при применении к body. Комментарий «in all browsers» не соответствует реальности ни для одной из них.

Оптимизированная версия:

/* Font smoothing — macOS only */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Kerning & ligatures — headings only */
h1,
h2,
h3,
h4,
h5,
h6 {
  text-rendering: optimizeLegibility;
}

Это не наезд на Finsweet. Client-First — полезная методология, и сниппет появился по делу. Просто у любого «best practice» есть дата рождения. И иногда стоит её проверить.

Ссылки

  1. Finsweet Client-First — Global Styles Embed — оригинальная документация сниппета

  2. caniuse — CSS font-smooth — caniuse не трекает вендорные свойства отдельно; страница font-smooth покрывает все варианты. Notes подтверждают: macOS-only, WebKit и Firefox реализуют свойства под другими именами, font-smooth удалён из спецификации

  3. David Bushell — What’s the deal with WebKit Font Smoothing? — тестирование на реальных устройствах, ноябрь 2024 2

  4. Mozilla dev-platform — Intent to ship -webkit-font-smoothing — анонс поддержки в Firefox 128

  5. caniuse — font-smooth Notes и Bugzilla #1296788 — caniuse Note 4: «Firefox 128 and later supports -webkit-font-smoothing: antialiased by mapping to -moz-osx-font-smoothing: grayscale»

  6. MDN — font-smooth — статус «Not part of any standard», документация по вендорным свойствам

  7. WHATWG Compat Issue #115 — открытый с 2019 года issue о стандартизации -webkit-font-smoothing, без прогресса за 7 лет

  8. Chromium Bug #78529 — текст невидим при optimizeLegibility + <video>

  9. Chromium Bug #132434 — текст исчезает при optimizeLegibility в стилях

  10. MDN — text-rendering — SVG-свойство, рекомендации по применению