ToolDeck

CSS Minifier

Минификация CSS путём удаления пробелов и комментариев

Попробовать пример

Входной CSS

Минифицированный CSS

Работает локально · Безопасно вставлять секреты
Минифицированный CSS появится здесь…
Также попробуйте:CSS FormatterCSS Unit Converter

Что такое минификация CSS?

Минификация CSS — это процесс удаления всех лишних символов из таблицы стилей без изменения её поведения. Речь идёт об удалении пробельных символов, переносов строк, комментариев и избыточного синтаксиса — таких как завершающие точки с запятой и ненужные кавычки. Браузер разбирает минифицированный CSS идентично оригиналу. Спецификация W3C CSS Syntax Module определяет грамматику: пробельные символы между токенами необязательны везде, где они не разделяют идентификаторы. Минификация использует это, сворачивая всё до минимально необходимого количества символов.

Онлайн-минификатор CSS берёт форматированную таблицу стилей и производит компактную версию, оптимизированную по размеру передаваемых данных. Типичная экономия составляет от 15% до 40% в зависимости от количества пробелов и комментариев в источнике. Для таблицы стилей размером 50 КБ это означает на 7–20 КБ меньше байт, передаваемых по сети при каждой загрузке страницы. В сочетании с gzip- или Brotli-сжатием на сервере минификация дополнительно уменьшает итоговый размер передаваемых данных: сжатый вывод уже минифицированного CSS меньше, чем сжатие форматированного оригинала.

Минификация — стандартный шаг во frontend-конвейерах сборки. Такие инструменты, как cssnano, clean-css и esbuild, выполняют её в рамках сборки. Но в процессе разработки нередко нужно минифицировать отдельный фрагмент для тестирования, встроить блок критического CSS или проверить, насколько сжимается таблица стилей, прежде чем добавлять её в конфигурацию бандла. Именно для этого полезен браузерный CSS-минификатор: вставьте CSS, получите минифицированный результат, скопируйте — и продолжайте работу.

Before · css
After · css
/* Main navigation styles */
.nav {
  display: flex;
  align-items: center;
  padding: 1rem 2rem;
  background-color: #1e293b;
}

/* Links inside nav */
.nav a {
  color: #e2e8f0;
  text-decoration: none;
  margin-right: 1.5rem;
  transition: color 0.2s ease;
}

.nav a:hover {
  color: #818cf8;
}
.nav{display:flex;align-items:center;padding:1rem 2rem;background-color:#1e293b}.nav a{color:#e2e8f0;text-decoration:none;margin-right:1.5rem;transition:color .2s ease}.nav a:hover{color:#818cf8}

Зачем использовать этот CSS Minifier?

Вставьте любой CSS и получите минифицированный результат за миллисекунды. Никаких конфигурационных файлов инструментов сборки, CLI-команд и учётных записей.

Мгновенная минификация
Результат обновляется по мере ввода или вставки. Минифицированный вывод и экономия в байтах отображаются немедленно, без ожидания шага сборки.
🔒
Приватная обработка данных
Вся минификация выполняется локально в браузере с использованием JavaScript. Ваш CSS никогда не покидает устройство и не загружается ни на какой сервер.
📦
Точный подсчёт размера
Видите исходный размер, минифицированный размер и процент уменьшения — рядом. Удобно для оценки прироста производительности перед изменением конфигурации конвейера сборки.
📋
Без регистрации
Откройте страницу, вставьте CSS, скопируйте результат. Никакой регистрации, ограничений по количеству запросов и закрытых функций. Инструмент полностью доступен при каждом посещении.

Сценарии использования CSS Minifier

Оптимизация frontend-производительности
Минифицируйте критический CSS перед встраиванием его в элемент head вашего HTML. Меньший встроенный CSS ускоряет First Contentful Paint, особенно на мобильных соединениях.
Backend-шаблоны для email
Email-клиенты игнорируют внешние таблицы стилей и имеют строгие ограничения по размеру. Минифицируйте встроенный CSS, чтобы HTML письма не превышал порог обрезки (102 КБ для Gmail).
DevOps и проверка сборки
Сравнивайте минифицированный вывод вашего инструмента сборки с результатом этого инструмента, чтобы убедиться, что cssnano или clean-css настроен корректно и даёт оптимальный результат.
QA и бюджет производительности
Вставьте стороннюю таблицу стилей, чтобы проверить её минифицированный размер относительно бюджета производительности. Определите, нужно ли применять tree-shaking или замену, прежде чем добавлять её в проект.
Инженерия данных и веб-скрапинг
При извлечении CSS из сканируемых страниц минифицируйте его для нормализации различий в пробельных символах между источниками перед сравнением или хранением.
Изучение оптимизации CSS
Студенты могут вставить CSS и наглядно увидеть, какие символы минификатор удаляет. Сравнение ввода и вывода наглядно показывает, какие части синтаксиса CSS важны для браузеров, а какие носят чисто косметический характер.

Методы минификации CSS

CSS-минификатор применяет несколько преобразований для уменьшения размера файла. Каждое из них направлено на устранение определённого вида избыточности в исходном коде. В таблице ниже перечислены основные методы и их типичная экономия на форматированной таблице стилей:

МетодЧто делаетТипичная экономия
Whitespace removalStrips spaces, tabs, and newlines between tokens15–25%
Comment strippingRemoves /* ... */ block comments5–15%
Zero shortening0px → 0, 0.5 → .51–3%
Shorthand colors#ffffff → #fff, #aabbcc → #abc1–2%
Semicolon removalDrops the last semicolon before }<1%
Quote removalfont-family: "Arial" → font-family: Arial<1%

Процент экономии зависит от входных данных. Файлы с большим количеством комментариев выигрывают больше от их удаления, тогда как уже компактный CSS даст меньший прирост. Наиболее надёжный результат достигается за счёт удаления пробелов и оптимизации сокращённых свойств. Продвинутые минификаторы, такие как cssnano, также объединяют дублирующиеся селекторы, сворачивают полные свойства в сокращённые (margin-top + margin-right + margin-bottom + margin-left → margin) и удаляют перекрытые объявления.

Минификация vs. Gzip-сжатие

Минификация и сжатие дополняют друг друга — они не взаимозаменяемы. Они работают на разных уровнях и суммируются:

CSS Minifier (этот инструмент)
Работает на уровне синтаксиса CSS. Удаляет пробельные символы, комментарии и переписывает сокращённые значения. Выполняется один раз во время сборки. Результат — валидный CSS, который браузеры разбирают напрямую. Типичное уменьшение: 15–40% исходного размера файла.
Gzip / Brotli сжатие
Работает на байтовом уровне с использованием универсальных алгоритмов сжатия. Применяется веб-сервером при каждом ответе (или предварительно сжимается при развёртывании). Работает с любым типом файлов. Типичное уменьшение: 60–80% от минифицированного размера. Применение обоих методов вместе даёт наименьший итоговый размер передаваемых данных.

Примеры кода

Как программно минифицировать CSS на разных языках и в разных средах:

JavaScript (cssnano + PostCSS)
import postcss from 'postcss'
import cssnano from 'cssnano'

const input = `
.nav {
  display: flex;
  padding: 0px 1rem;
  color: #ffffff;
  /* TODO: update color */
}
`

const result = await postcss([cssnano]).process(input, { from: undefined })
console.log(result.css)
// → ".nav{display:flex;padding:0 1rem;color:#fff}"
Python (csscompressor)
import csscompressor

css = """
.nav {
  display: flex;
  padding: 0px 1rem;
  color: #ffffff;
  /* navigation styles */
}
"""

minified = csscompressor.compress(css)
print(minified)
# → ".nav{display:flex;padding:0 1rem;color:#fff}"
Go (tdewolff/minify)
package main

import (
	"fmt"
	"github.com/tdewolff/minify/v2"
	"github.com/tdewolff/minify/v2/css"
)

func main() {
	m := minify.New()
	m.AddFunc("text/css", css.Minify)

	input := ".nav { display: flex; padding: 0px 1rem; color: #ffffff; }"
	output, _ := m.String("text/css", input)
	fmt.Println(output)
	// → ".nav{display:flex;padding:0 1rem;color:#fff}"
}
CLI (cssnano / clean-css)
# Using cssnano via PostCSS CLI
npx postcss styles.css --use cssnano -o styles.min.css

# Using clean-css CLI
npx clean-css-cli styles.css -o styles.min.css

# Quick one-liner with Node.js
node -e "const CleanCSS=require('clean-css');console.log(new CleanCSS().minify('body { margin: 0px; }').styles)"
# → "body{margin:0}"

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

В чём разница между минификацией CSS и сжатием CSS?
Минификация переписывает исходный код CSS, удаляя ненужные символы (пробелы, комментарии, избыточный синтаксис) при сохранении идентичного поведения. Сжатие (gzip, Brotli) кодирует байты файла в более компактный бинарный формат на транспортном уровне. Минификация уменьшает размер CSS-файлов на диске; сжатие сокращает количество байт, передаваемых по HTTP. Лучшая практика — применять оба метода: сначала минифицируйте, затем позвольте серверу сжать минифицированный вывод.
Ломает ли минификация CSS что-либо?
Стандартная минификация сохраняет поведение CSS. Пробелы внутри строковых значений (например, в свойстве content) сохраняются всеми основными минификаторами. Однако агрессивные оптимизации, такие как объединение селекторов или переупорядочивание свойств, могут изменить специфичность или порядок перекрытия. Если вы используете пресет cssnano по умолчанию, эти рискованные преобразования отключены. Этот инструмент выполняет только безопасную минификацию: удаление пробелов, удаление комментариев и оптимизацию сокращённых свойств.
Насколько меньше становится CSS после минификации?
Типичное уменьшение составляет 15–40% от исходного форматированного размера файла. Хорошо прокомментированные файлы с большим количеством пробелов находятся в верхней части этого диапазона. Уже компактный CSS без комментариев может сократиться лишь на 10–15%. Точная экономия зависит от стиля написания кода, плотности комментариев и того, использует ли источник полные свойства, которые можно свернуть в сокращённые.
Следует ли минифицировать CSS вручную или с помощью инструмента сборки?
Для продакшен-сборок всегда используйте инструмент сборки (PostCSS с cssnano, esbuild или css-minimizer-webpack-plugin для webpack). Автоматическая минификация запускается при каждой сборке и охватывает все файлы. Браузерный минификатор полезен для разовых задач: встраивание фрагмента критического CSS, проверка минифицированного размера сторонней таблицы стилей или быстрая минификация прототипа перед публикацией.
Можно ли минифицировать SCSS или LESS этим инструментом?
Этот инструмент минифицирует стандартный CSS. SCSS и LESS — это препроцессорные языки, которые компилируются в CSS. Сначала скомпилируйте SCSS или LESS в CSS (с помощью sass или lessc), а затем вставьте скомпилированный результат сюда. Минификация сырого синтаксиса SCSS может удалить комментарии, управляющие поведением компиляции, такие как комментарии //! preserve или аннотации @use.
Сложнее ли отлаживать минифицированный CSS?
Да, минифицированный CSS — это одна строка без форматирования, что затрудняет чтение в DevTools. Стандартное решение — source maps. Инструменты сборки, такие как PostCSS и esbuild, генерируют .map-файлы, которые позволяют DevTools браузера отображать исходный форматированный код, пока браузер загружает минифицированную версию. Для отладки в продакшене без source maps вставьте минифицированный CSS в CSS-форматтер для восстановления читаемости.
В чём разница между CSS Minifier и CSS Compressor?
В распространённом употреблении эти термины взаимозаменяемы. Оба обозначают удаление ненужных символов из CSS для уменьшения размера файла. Некоторые инструменты используют в названии слово 'compressor' (например, csscompressor для Python), но выполняют стандартную минификацию. Слово 'сжатие' может также относиться к кодированию gzip/Brotli — это отдельный процесс на уровне сервера. Если вы видите 'CSS compressor', это почти всегда означает минификацию, а не gzip.