Перейти к основному содержимому
Tooletto

Форматировщик CSS

Форматируйте CSS, SCSS и Less с единообразными отступами или минифицируйте до самого компактного валидного результата. Код разбирается по-настоящему, поэтому вложенные правила, медиазапросы и пользовательские свойства остаются нетронутыми.

  • Файлы никогда не покидают ваше устройство
  • Бесплатно, без регистрации
  • Без водяных знаков
  • Работает офлайн после загрузки
Loading tool…

Как пользоваться: форматировщик css

  1. 1

    Вставьте свой CSS

    Обычный CSS, SCSS или Less — всё разбирается корректно.

  2. 2

    Отформатируйте или минифицируйте

    Форматируйте для читаемости или сжимайте для продакшена.

  3. 3

    Скопируйте или скачайте

    Результат готов к вставке прямо в ваш проект.

Почему CSS нужен настоящий парсер, а не проход регулярными выражениями

CSS выглядит достаточно простым, чтобы переформатировать его парой правил «найти и заменить» — добавить перенос строки после каждой точки с запятой, добавить отступ внутри фигурных скобок, — пока в файле не появляются вложенность, медиазапросы и современные возможности вроде пользовательских свойств и container query. У подхода на основе регулярных выражений нет реального понятия глубины вложенности, поэтому он не может правильно расставить отступы в медиазапросе с несколькими вложенными селекторами, и он не способен отличить точку с запятой, завершающую декларацию, от той, что находится внутри строкового значения или пользовательского свойства с произвольным текстом. Именно разбор таблицы стилей в настоящую структуру — понимание того, какое правило вложено в какое и где начинается и заканчивается каждый блок, — делает форматирование корректным на реальном, нетривиальном CSS, а не только на игрушечных примерах.

Что минификация меняет и что намеренно оставляет без изменений

Минификация в этом инструменте ограничена удалением пробелов и комментариев — той части таблицы стилей, которая существует исключительно для человека, читающего код, и не имеет никакого значения для движка рендеринга браузера. Инструмент намеренно не объединяет одинаковые селекторы, не меняет порядок деклараций и не сокращает цветовые значения вроде превращения `#ffffff` в `#fff`, хотя более агрессивный минификатор мог бы делать всё это и получать файл ещё меньшего размера. Такие преобразования могут незаметно изменить поведение: объединение двух правил с одинаковым селектором, но написанных в разных местах каскада, способно изменить, какая декларация побеждает при конфликте, и изменение порядка деклараций несёт тот же риск. Одно только удаление пробелов такого риска не несёт — оно не может повлиять на то, что рендерит браузер, а влияет лишь на то, сколько байт нужно, чтобы это описать.

Почему минификация экономит меньше, чем кажется, после gzip

Веб-серверы практически повсеместно сжимают текстовые ресурсы с помощью gzip или brotli перед отправкой по сети, и оба алгоритма сжатия отлично умеют использовать именно ту избыточность, которую представляют собой пробелы и единообразные отступы, — повторяющиеся последовательности пробелов и так сжимаются очень хорошо. Это значит, что разница между отформатированной и минифицированной таблицей стилей после прохождения через gzip заметно меньше, чем можно предположить по разнице в несжатом размере. Минификация всё равно полезна — в первую очередь потому, что полностью убирает комментарии, а не просто сжимает их, — но стоит понимать, что основную часть выгоды по объёму передачи, которую обещают современные инструменты, даёт именно сжатие, а минификация добавляет к ней лишь небольшой дополнительный слой.

Форматирование SCSS и Less в сравнении с компиляцией

Форматирование файла Sass или Less означает применение единообразных отступов и пробелов к исходному коду ровно в том виде, в каком он написан, — вложенность, переменные, миксины и управляющие директивы остаются нетронутыми, в исходном синтаксисе препроцессора. Это совершенно другая операция по сравнению с компиляцией, которая разрешает переменные в их фактические значения, преобразует вложенные селекторы в самостоятельные плоские правила CSS и выполняет все миксины, получая их развёрнутый результат. Тот, кто ожидает получить скомпилированный CSS из SCSS-файла, будет удивлён, увидев тот же вложенный код с переменными, только отформатированный, а не разрешённый, — этот инструмент форматирует язык препроцессора, а не компилирует его.

Часто задаваемые вопросы

Сколько на самом деле экономит минификация?

Обычно 20–30% до сжатия gzip для CSS, написанного вручную, и заметно меньше для кода, уже прошедшего через сборщик. При передаче по сети основную работу всё равно делает gzip или brotli — минификация в первую очередь помогает тем, что заранее убирает комментарии и лишние пробелы.

Меняет ли минификация поведение стилей?

Нет. Удаляются только пробелы и комментарии — селекторы, свойства и значения остаются нетронутыми. Этот инструмент не объединяет правила, не меняет порядок деклараций и не сокращает цвета, потому что такие преобразования способны незаметно изменить поведение стилей.

Поддерживаются ли SCSS и Less?

Да, оба языка разбираются по собственным грамматикам, поэтому вложенность, переменные и миксины сохраняются при форматировании. Обратите внимание: инструмент их форматирует, а не компилирует в CSS.

Почему мой CSS отклоняется?

Обычно причина — незакрытая фигурная скобка или лишний символ. Сообщение об ошибке содержит номер строки, чтобы вы могли её найти. Синтаксис шаблонизатора, смешанный с таблицей стилей, тоже вызовет ошибку, поскольку это не валидный CSS.

Частые задачи: форматировщик css