Минифицировать CSS
Удалите комментарии и пробелы и сократите значения. А если минификатор не может обработать что-то в вашем файле, он так и скажет — вместо того чтобы молча вернуть таблицу стилей без части правил.
- Не сохраняется
- Без очереди и ожидания
- Без регистрации и водяных знаков
Здесь появится минифицированный CSS.
Как это работает
Вставьте CSS
Или перетащите файл. Ничего не сохраняется.
Посмотрите на результат
Вы получите минифицированную таблицу стилей и узнаете, насколько она уменьшилась, — или объяснение, что обработать не удалось.
Скопируйте или скачайте
Готово к добавлению в вашу сборку.
Где на самом деле экономятся байты
Основная экономия — пробелы и комментарии, а в написанной вручную таблице стилей их очень много: отступы, пустые строки между правилами и заголовки разделов, по которым удобно ориентироваться в большом файле, при отдаче сайта — чистый балласт. Кроме того, значения сокращаются так, что их смысл не меняется: цвет #ffffff превращается в #fff, 0px — в 0, ведь нулю не нужна единица, ведущий ноль в 0.5em убирается, а margin: 10px 10px 10px 10px сворачивается в margin: 10px.
Намеренно не делается то, что рискованно. Объединение правил с одинаковыми объявлениями или их перестановка меняют каскад — а каскад — это та часть CSS, где из двух правил с равной специфичностью побеждает последнее. Минификатор, который агрессивно переставляет правила, выдаст файл поменьше, а на большой таблице стилей — слегка другую страницу. Повторяющиеся объявления тоже часто оставлены намеренно — как запасной вариант для старых браузеров, которые игнорируют второе.
Вложенные правила и современный синтаксис диапазонов в медиазапросах не минифицируются — такой файл отклоняется, и причину стоит назвать, потому что большинство инструментов поступает наоборот. Парсер, на котором это построено, старше обеих возможностей, и, встретив то, чего не понимает, он не выдаёт ошибку, а молча удаляет это: вложенный блок просто исчезает из результата, и страница теряет стили, о чём никто не сообщил. Честный ответ — отказаться. Если в ваших стилях есть нативная вложенность или @media (400px <= width <= 700px), воспользуйтесь одним из инструментов ниже.
Как и с разметкой, оценивайте результат после сжатия. Таблицы стилей отдаются в gzip или brotli, а эти алгоритмы и так отлично справляются с повторяющимися пробелами, поэтому файл, который после минификации уменьшился на 30 процентов, при передаче может сократиться всего на 5. Экономия реальна, но меньше, чем цифра в заголовке.
Если нужно другое
Для современных таблиц стилей правильный инструмент — Lightning CSS: он понимает вложенность, диапазоны в медиазапросах, цветовые функции и всё остальное, что появилось за последние годы, сжимает сильнее любого более старого инструмента и заодно может транспилировать новый синтаксис для старых браузеров. esbuild --minify style.css почти так же хорош и очень быстр. Обоим место в сборке, а не во вкладке браузера.
Куда больший выигрыш обычно даёт удаление неиспользуемых правил. Сайт на утилитарном фреймворке или библиотеке компонентов часто отдаёт стили, большая часть которых ни к чему на странице не применяется, — и PurgeCSS или сборка самого фреймворка сократят их на порядок. Минификация неиспользуемого CSS делает неиспользуемый CSS меньше; настоящее решение — его удалить.
Частые вопросы
Мой CSS где-нибудь сохраняется?
Нет, и для исходного кода в этом весь смысл. Ничего не сохраняется, и ни один сервер его не видит. Вставить закрытый исходный код в онлайн-минификатор, который куда-то его отправляет, — это раскрытие информации, что бы сайт ни писал о сроках хранения. И это как раз то, что делают в спешке, не задумываясь.
Почему мой файл отклонён?
Потому что при минификации потерялись бы правила. Минификатор на этой странице выпущен в 2022 году и не знает о двух вещах, которые сейчас стали обычным CSS. Встретив нативную вложенность — правило, записанное внутри другого правила, с "&" или без, — он возвращает внешнее правило и МОЛЧА ОТБРАСЫВАЕТ вложенное. Встретив современный медиазапрос с диапазоном, например @media (width >= 400px), он возвращает пустую таблицу стилей. Ни в одном из случаев ошибки нет. Мы проверили оба случая на той самой версии, которую используем, и решили, что вернуть таблицу стилей с недостающими стилями хуже, чем отказаться, поэтому эти два случая распознаются и отклоняются. Кроме того, в качестве общей проверки правила подсчитываются до и после — на случай, если существует третий случай, который пока никто не нашёл.
Как тогда минифицировать вложенный CSS?
Сначала уберите вложенность компиляцией. Любой инструмент сборки, поддерживающий вложенность, — Sass, PostCSS, Lightning CSS или ваш сборщик — разворачивает её при сборке, и развёрнутый результат минифицируется здесь без проблем. Если вы пишете вложенность вручную и отдаёте её как есть, вы полагаетесь на возможность, которую современные браузеры поддерживают, а экосистема минификаторов ещё не до конца освоила.
Что именно он делает?
Удаляет комментарии и пробелы, сокращает цвета (#ffffff становится #fff, #ff0000 — red), убирает ненужные единицы и точки с запятой и объединяет то, что можно безопасно объединить. Правила, которые кажутся неиспользуемыми, он не удаляет: для этого нужно знать ваш HTML, а ошибочная догадка удалит нужные вам стили.
Насколько меньше станет файл?
Для написанного вручную CSS — обычно на 15–30%. Уже скомпилированный инструментом сборки результат часто почти минимален и почти не изменится. Gzip на вашем сервере даёт больше, чем минификация; эффекты складываются.
Безопасно ли минифицировать здесь боевую таблицу стилей?
Да. Ничего не сохраняется, а два случая, которые инструмент не умеет обрабатывать, отклоняются, а не ломаются молча, поэтому в ответ вы получите либо корректный результат, либо объяснение, почему файл отклонён.
Полезно знать: Вложенные правила и современный синтаксис диапазонов в медиазапросах не минифицируются — такой файл отклоняется. Минификатор построен на парсере, который старше обеих возможностей, и вместо ошибки он молча удаляет то, чего не понимает: вложенный блок просто исчезает из результата. Пока этот парсер не догонит стандарт, честный ответ — отказаться обрабатывать файл.
Разместите этот инструмент на своём сайте
Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.
Ещё Инструменты для текста
Минификатор JavaScript
Сжатие JavaScript без передачи на сервер
Минификатор HTML
Сожмите HTML, не сломав страницу
Изменить регистр текста
ВЕРХНИЙ, нижний, Как В Заголовке, camelCase и другие
Удалить повторяющиеся строки
Уберите повторы, отсортируйте и приведите список в порядок
Счётчик слов
Слова, предложения и время чтения
Счётчик символов
Символы, байты и что на самом деле считает ваш лимит