Dlaczego UnoCSS?
Motywacje
Zalecamy przeczytanie wpisu na blogu Reimagine Atomic CSS napisanego przez twórcę UnoCSS, Anthony'ego Fu, aby lepiej zrozumieć motywacje stojące za UnoCSS.
Jak UnoCSS różni się od X?
Windi CSS
UnoCSS został rozpoczęty przez jednego z członków zespołu Windi CSS, z dużą inspiracją z pracy, którą wykonaliśmy w Windi CSS. Ponieważ Windi CSS nie jest już aktywnie utrzymywany (od marca 2023), możesz rozważyć UnoCSS jako "duchowego następcę" Windi CSS.
UnoCSS dziedziczy naturę na żądanie Windi CSS, tryb atrybutów, skróty, grupy wariantów, tryb kompilacji i wiele więcej. Ponadto, UnoCSS został zbudowany od podstaw z myślą o maksymalnej rozszerzalności i wydajności, co pozwala nam wprowadzać nowe funkcje, takie jak ikony pure CSS, atrybuty bez wartości, tagify, czcionki internetowe itp.
Co najważniejsze, UnoCSS został wydzielony jako silnik atomic CSS, gdzie wszystkie funkcje są opcjonalne, i ułatwia tworzenie własnych konwencji, własnego systemu designu i własnych presetów - z kombinacji funkcji, których potrzebujesz.
Tailwind CSS
Zarówno Windi CSS, jak i UnoCSS czerpały dużo inspiracji z Tailwind CSS. Ponieważ UnoCSS został zbudowany od podstaw, mamy świetny przegląd tego, jak atomic CSS został zaprojektowany z wcześniejszych rozwiązań i zamknięty w eleganckim i potężnym API. Z dość różnymi celami projektowymi, nie jest to naprawdę porównanie jabłek do jabłek z Tailwind CSS. Ale postaramy się wymienić kilka różnic.
Tailwind CSS to wtyczka PostCSS, podczas gdy UnoCSS jest izomorficznym silnikiem z kolekcją pierwszorzędnych integracji z narzędziami budowania (w tym wtyczką PostCSS). Oznacza to, że UnoCSS może być znacznie bardziej elastyczny w użyciu w różnych miejscach (na przykład CDN Runtime, który generuje CSS w locie) i ma głębokie integracje z narzędziami budowania, aby zapewnić lepsze HMR, wydajność i doświadczenie dewelopera (na przykład Inspektor).
Poza kompromisami technicznymi, UnoCSS jest również zaprojektowany aby być w pełni rozszerzalny i konfigurowalny, podczas gdy Tailwind CSS jest bardziej opinionowany. Budowanie niestandardowego systemu designu (lub tokenów designu) na bazie Tailwind CSS może być trudne, i naprawdę nie można odejść od konwencji Tailwind CSS. Z UnoCSS możesz zbudować prawie wszystko, co chcesz, z pełną kontrolą. Na przykład, zaimplementowaliśmy całe narzędzia kompatybilne z Tailwind CSS w pojedynczym preście, i jest wiele wspaniałych presetów społeczności zaimplementowanych z innymi interesującymi filozofiami.
Dzięki elastyczności, którą zapewnia UnoCSS, jesteśmy w stanie eksperymentować z wieloma innowacyjnymi funkcjami na jego bazie, na przykład:
Z powodu różnych celów projektowych w porównaniu do Tailwind CSS, UnoCSS nie obsługuje systemu wtyczek lub konfiguracji Tailwind CSS, co oznacza, że może być trudniej przeprowadzić migrację z mocno dostosowanego projektu Tailwind CSS. Jest to zamierzona decyzja, aby UnoCSS był wydajny i rozszerzalny, i uważamy, że kompromis jest tego wart.