Плагины и оптимизация сборки

Расширяем Tailwind плагинами и понимаем, почему итоговый CSS остаётся лёгким.

Что такое плагин

Плагин добавляет в Tailwind новые утилиты или готовые стили. Подключают их в массив plugins конфига:

// tailwind.config.js
module.exports = {
  content: ["./src/**/*.{html,js,vue}"],
  plugins: [
    require("@tailwindcss/typography"),
    require("@tailwindcss/forms")
  ]
}

Перед этим плагин ставят через npm, например npm install -D @tailwindcss/typography.

Полезные официальные плагины

ПлагинЧто даёт
@tailwindcss/typographyкласс prose — красивое оформление длинного HTML-текста (статьи, Markdown)
@tailwindcss/formsаккуратные базовые стили для полей ввода, селектов, чекбоксов
@tailwindcss/aspect-ratioудобное управление соотношением сторон блоков

Плагин typography особенно ценен для статей: один класс prose сразу делает «сырой» HTML читабельным.

<article class="prose lg:prose-xl">
  <h1>Заголовок</h1>
  <p>Абзац статьи, который сразу выглядит опрятно...</p>
</article>

Заголовки, абзацы, списки и цитаты внутри получат продуманные отступы и размеры без ручной расстановки утилит.

Почему CSS остаётся маленьким: content

Раньше «вычищение» неиспользуемых классов называли purge; сейчас за это отвечает поле content, которое мы видели в уроке про сканирование. Tailwind генерирует только те классы, что реально встретились в указанных файлах — поэтому даже на большом проекте итоговый CSS обычно весит десятки килобайт, а не мегабайты.

content: [
  "./index.html",
  "./src/**/*.{html,js,ts,jsx,tsx,vue}"
]

Важно: чтобы оптимизация работала и ничего не «отвалилось» в проде, перечислите в content все файлы с разметкой. Пропущенный файл — и его классы исчезнут из сборки.

Сборка для прода

При финальной сборке CSS дополнительно минифицируют. В Tailwind CLI для этого есть флаг:

npx tailwindcss -i ./src/input.css -o ./dist/output.css --minify

Получится сжатый файл без лишних пробелов — то, что отдаём пользователю.

Итог

  • Плагины подключаются в массив plugins; полезны typography (класс prose) и forms.
  • Малый размер CSS обеспечивает content: в сборку попадают только встреченные классы.
  • Все файлы с разметкой должны быть в content, иначе их стили исчезнут; для прода CSS минифицируют (--minify).
Проверьте себя
1. Что даёт плагин @tailwindcss/typography?
AСтили для форм
BКласс prose для красивого оформления длинного HTML-текста
CТёмную тему
DНовые цвета
2. Что обеспечивает маленький размер итогового CSS в Tailwind?
AСжатие gzip браузером
BПоле content: в сборку попадают только реально встреченные классы
CОтключение цветов
DПлагин forms
3. Что произойдёт, если забыть указать файл в content?
AСборка не запустится
BКлассы из этого файла не попадут в CSS и стили пропадут
CTailwind подключит все классы подряд
DВключится тёмная тема
Поддержать проект