Почему UnoCSS?
Мотивация
Мы рекомендуем вам прочитать блог-пост Переосмысление атомарного CSS, написанный создателем UnoCSS, Энтони Фу, чтобы лучше понять мотивацию за UnoCSS.
Чем UnoCSS отличается от X?
Windi CSS
UnoCSS был начат одним из членов команды Windi CSS, с большим количеством вдохновения, взятого из работы, которую мы проделали в Windi CSS. Хотя Windi CSS больше не поддерживается активно (по состоянию на март 2023 года), вы можете рассматривать UnoCSS как "духовного преемника" Windi CSS.
UnoCSS наследует природу Windi CSS по требованию, режим атрибутов, сокращения, группы вариантов, режим компиляции и многое другое. Более того, UnoCSS создан с нуля с максимальной расширяемостью и производительностью, что позволяет нам представлять новые функции, такие как чистые CSS-иконки, атрибуты без значения, тегирование, веб-шрифты и т.д.
Самое главное, UnoCSS извлечен как движок атомарного CSS, где все функции являются необязательными, и его легко создать со своими собственными соглашениями, собственной системой дизайна и собственными пресетами - с комбинациями нужных вам функций.
Tailwind CSS
И Windi CSS, и UnoCSS взяли много вдохновения из Tailwind CSS. Поскольку UnoCSS создан с нуля, мы можем иметь отличный обзор того, как атомарный CSS был разработан с предыдущими наработками и абстрагирован в элегантный и мощный API. С совершенно разными целями дизайна это не совсем справедливое сравнение с Tailwind CSS. Но мы попробуем перечислить несколько различий.
Tailwind CSS - это плагин PostCSS, в то время как UnoCSS - это изоморфный движок с коллекцией первоклассных интеграций с инструментами сборки (включая плагин PostCSS). Это означает, что UnoCSS может быть гораздо более гибким для использования в разных местах (например, CDN Runtime, который генерирует CSS на лету) и иметь глубокие интеграции с инструментами сборки для обеспечения лучшего HMR, производительности и опыта разработчика (например, Инспектор).
Технические компромиссы в сторону, UnoCSS также разработан с полной расширяемостью и настраиваемостью, в то время как Tailwind CSS более категоричен. Создание пользовательской системы дизайна (или токенов дизайна) поверх Tailwind CSS может быть сложным, и вы не можете действительно отойти от соглашений Tailwind CSS. С UnoCSS вы можете создать практически все, что хотите, с полным контролем. Например, мы реализовали все утилиты, совместимые с Tailwind CSS, в одном пресете, и существует много потрясающих пресетов сообщества, реализованных с другими интересными философиями.
Благодаря гибкости, которую предоставляет UnoCSS, мы можем экспериментировать со многими инновационными функциями поверх него, например:
Из-за различающихся целей дизайна по сравнению с Tailwind CSS, UnoCSS не поддерживает систему плагинов или конфигурации Tailwind CSS, что может усложнить миграцию из сильно настроенного проекта Tailwind CSS. Это намеренное решение, чтобы сделать UnoCSS высокопроизводительным и расширяемым, и мы считаем, что этот компромисс того стоит.