Минификатор CSS
Минифицируйте CSS с помощью csso — минификатора, который разбирает таблицу стилей в настоящее синтаксическое дерево, а не просто вырезает символы, благодаря чему он может безопасно объединять дублирующиеся правила и сокращать значения. Работает полностью в вашем браузере.
- Файлы никогда не покидают ваше устройство
- Бесплатно, без регистрации
- Без водяных знаков
- Работает офлайн после загрузки
Как пользоваться: минификатор css
- 1
Вставьте свой CSS
Вставьте таблицу стилей, фрагмент кода или один блок правил.
- 2
Оставьте реструктуризацию включённой для минимального результата
Она объединяет дублирующиеся и пересекающиеся правила. Отключите её, если результат вас когда-нибудь удивит.
- 3
Скопируйте результат
Скопируйте минифицированный CSS вместе с информацией об экономии размера.
Что минификация CSS на самом деле удаляет и меняет
Удаление пробелов и комментариев — очевидная и простая часть минификации: это делает любой минификатор, и сама по себе она мало чем отличается от прохода «найти и заменить». То, что отличает настоящий минификатор, понимающий CSS, от наивного удаления пробелов, — это всё, что требует реального понимания таблицы стилей: сжатие сокращённых значений, при котором цвет вроде `#ffffff` превращается в `#fff`, а лишние нулевые единицы измерения обрезаются, и объединение дублирующихся или пересекающихся правил, при котором два правила, применяющие в итоге одни и те же декларации, объединяются в одно. Для обоих требуется сначала разобрать CSS в настоящую структуру — понять, какой селектор относится к каким декларациям и какие значения эквивалентны, — именно поэтому csso строит настоящее синтаксическое дерево, а не сопоставляет текст по шаблону, по той же причине, по которой настоящий парсер оправдывает себя по сравнению с проходом регулярными выражениями.
Почему разовая минификация одного файла всё ещё нужна
Современные сборщики автоматически минифицируют CSS на этапе продакшен-сборки, поэтому для тех, кто работает внутри проекта со сборщиком, минификация уже происходит незаметно при каждой сборке. Отдельный инструмент вроде этого закрывает случаи, выходящие за рамки такого конвейера: CMS или платформу вообще без этапа сборки, быстрый разовый фрагмент, который нужно уместить туда, где ограничен размер, или просто проверку того, насколько сократится конкретная таблица стилей, прежде чем решать, стоит ли вообще настраивать инструментарий. Для одного файла, нужного один раз, вставить его сюда и скопировать результат обратно — более быстрый путь к тому же результату, который дал бы сборщик.
Что остаётся нетронутым
Минификатор, понимающий CSS, намеренно консервативен в том, что он готов объединять или переписывать: пользовательские свойства (CSS-переменные), медиазапросы, keyframe-анимации и объявления с вендорными префиксами сохраняются в точности как написаны, потому что их некорректное схлопывание могло бы незаметно изменить отображение страницы в некоторых браузерах или при определённых размерах экрана, а не просто изменить внешний вид исходного кода. Оптимизации, которые безопасно выполнять автоматически, — пробелы, комментарии, сокращённые значения, действительно дублирующиеся правила, — это те, что не могут никак повлиять на отрендеренную страницу, и именно в этом заключается принцип использования настоящего парсера вместо более грубого и рискованного подхода «найти и заменить».
Часто задаваемые вопросы
Моя таблица стилей отправляется на сервер?
Нет. csso загружается в ваш браузер и работает там же — минификация происходит полностью на вашем устройстве. Ваш CSS ни на каком этапе не передаётся по сети.
Может ли минификация сломать мои стили?
Как правило, нет, если всё сделано правильно — csso разбирает ваш CSS в настоящее синтаксическое дерево, а не просто вырезает символы, и именно поэтому он может безопасно делать такие вещи, как объединение дублирующихся селекторов или сокращение значений, не меняя при этом, какая декларация побеждает в каскаде. Единственное место, где он изредка может удивить, — структурная реструктуризация: объединение правил по всей таблице стилей — более агрессивная оптимизация, чем простое удаление пробелов, и в редких крайних случаях с CSS, чувствительным к специфичности, результат может выглядеть не так, как ожидалось. Именно поэтому существует опция «объединять и реструктурировать правила» — отключите её, и вы получите только удаление комментариев и пробелов, без каких-либо структурных изменений.
Минифицированный CSS остаётся валидным и рабочим CSS?
Да. Результат — обычный CSS, просто нечитаемый для человека, в чём и заключается смысл для продакшена. Браузер разбирает его точно так же, как отформатированный оригинал; его можно сразу поместить в тег `<link>` или в результат сборки.
Когда действительно стоит использовать этот инструмент?
Для продакшен-таблицы стилей, для CSS, встраиваемого туда, где ограничен размер (инлайновый блок `<style>`, шаблон письма, платформа с лимитом символов), или для разового файла, который нужно быстро сжать без настройки сборки. Исходные или рабочие таблицы стилей минифицировать не стоит — держите их читаемыми и минифицируйте только итоговый результат сборки, так же как это делает сборщик.
Почему результат выглядит нечитаемым?
В этом и есть смысл. Пробелы и комментарии существуют для людей, читающих исходный код, а не для браузера, который его рендерит. Их удаление и безопасное объединение того, что можно объединить, уменьшает количество байт, передаваемых по сети, не меняя внешний вид страницы.
Вам также может понадобиться
Форматировщик CSS
Форматирование и минификация таблиц стилей
Минификатор JS
Сжимайте JavaScript настоящей минификацией, а не регулярными выражениями
Форматировщик HTML
Аккуратное форматирование и расстановка отступов в HTML
Кодировщик и декодировщик Base64
Кодирование и декодирование Base64 и Base64URL
Генератор хешей
MD5, SHA-1, SHA-256, SHA-384 и SHA-512
Форматировщик JavaScript
Форматирование JS и TypeScript настоящим парсером
Форматтер JSON
Мгновенное форматирование, валидация и минификация JSON
Декодер JWT
Декодирование и анализ JSON Web Token