Przejdź do treści
Tailwind CSS v4: jak przejść z v3 i uniknąć problemów

Tailwind CSS v4: jak przejść z v3 i uniknąć problemów

Opublikowano: 18 października 2026| Zaktualizowano: 18 października 2026

Aktualizacja Tailwind CSS może zmienić wygląd motywu WordPress lub sklepu WooCommerce, nawet gdy build kończy się bez błędu. Problemy często ujawniają się w szablonach PHP, dynamicznie składanych klasach i widokach generowanych przez wtyczki.

Krótka odpowiedź

Tailwind CSS v4 zmienia import arkusza na `@import "tailwindcss"`, przenosi główną konfigurację do CSS i automatycznie wykrywa klasy w źródłach. Migrację wykonaj na osobnym branchu, użyj `npx @tailwindcss/upgrade` na Node.js 20 lub nowszym i sprawdź produkcyjny build oraz krytyczne widoki.

Tailwind CSS v4 wymaga Safari 16.4, Chrome 111 i Firefox 128 lub nowszych.

Usługi KC Mobile

Potrzebujesz pomocy w tym temacie?

Czytasz poradnik „Tailwind CSS v4: jak przejść z v3 i uniknąć problemów”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.

Co zmieniło się między Tailwind CSS v3 a v4?

Tailwind CSS v4 wprowadza konfigurację CSS-first, zmienia integracje z bundlerami i automatycznie wykrywa klasy w plikach projektu. W v3 arkusz zwykle zawierał dyrektywy `@tailwind`, a ścieżki szablonów deklarowało się w `content` pliku konfiguracyjnym. W v4 używa się `@import "tailwindcss"`, a tokeny motywu można deklarować przez `@theme`.

Tabela zestawia zmiany między wersjami i wskazuje, co trzeba sprawdzić w istniejącym projekcie.

zmiany między Tailwind CSS v3 i v4 oraz kontrola po migracji
ObszarTailwind CSS v3Tailwind CSS v4Co sprawdzić po migracji
Import arkuszaDyrektywy `@tailwind``@import "tailwindcss"`Czy motyw ładuje właściwy arkusz
Konfiguracja`tailwind.config.*` i `content`CSS-first i skanowanie źródełCzy tokeny i źródła są rozpoznane
Integracja PostCSSPlugin `tailwindcss``@tailwindcss/postcss`Czy konfiguracja wskazuje nowy pakiet
Integracja ViteZwykle PostCSS`@tailwindcss/vite`Czy plugin jest w `vite.config.*`
SafelistOpcja `safelist``@source inline()`Czy klasy z danych są generowane
PrzeglądarkiZależy od użytych funkcji CSSWersje wskazane w osobnej tabeliCzy wymagania pasują do odbiorców

Konfiguracja JavaScript nie jest automatycznie ładowana przez v4. Można podłączyć ją dyrektywą `@config`, ale część opcji, w tym `corePlugins`, `safelist` i `separator`, nie jest obsługiwana. Klasy, których nie ma w skanowanych plikach, można wskazać przez `@source inline()`.

Część utilities zmieniła nazwy lub wartości domyślne. Przykładowo `bg-opacity-*` zastępuje się modyfikatorem opacity w klasie koloru, `flex-shrink-*` zmienia się na `shrink-*`, a domyślna grubość klasy `ring` jest inna. Build może się udać, mimo że komponent wygląda inaczej, dlatego porównaj reprezentatywne widoki.

Tailwind CSS v4.0 wymaga Safari 16.4, Chrome 111 i Firefox 128 lub nowszych. Jeżeli projekt musi obsługiwać starsze wersje, dokumentacja Tailwind zaleca pozostanie przy v3.4 do czasu zmiany wymagań. Szczegółowy wykaz zmian zawiera oficjalny przewodnik migracji Tailwind CSS.

Czytasz poradnik „Tailwind CSS v4: jak przejść z v3 i uniknąć problemów”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny. Omów temat tego poradnika

Czy projekt jest gotowy do migracji?

Projekt jest gotowy do migracji, gdy można odtworzyć build i wskazać miejsca, z których mają być wykrywane klasy. Przed zmianą zanotuj wersję Node.js, komendę produkcyjną, lockfile, konfigurację bundlera i widoki dostępne na stagingu. W motywie WordPress uwzględnij pliki PHP, bloki, partiale i katalogi wtyczek dostarczające markup z klasami Tailwind.

Tabela porządkuje dane, które warto zachować przed rozpoczęciem zmiany. Dzięki temu po migracji łatwiej porównać konfigurację i ustalić źródło regresji.

informacje projektu do zapisania przed migracją Tailwind CSS
ElementGdzie sprawdzićCo zapisać
Node.jsLokalnie i w CIWersję dla produkcyjnego buildu
Bundler`package.json` i konfiguracjaKomendy developerskie i produkcyjne
Zależności`package.json` i lockfileTailwind, PostCSS, Vite i pluginy
Arkusz wejściowyCSS importowany przez motywImporty, warstwy i kolejność stylów
Konfiguracja`tailwind.config.*` i `postcss.config.*``content`, tokeny, pluginy i `darkMode`
Źródła klasMotyw i używane bibliotekiPliki PHP, bloki i komponenty sklepu
Widoki testoweStaging lub kopia lokalnaStrony i stany wymagające porównania

Własne pluginy i tokeny wymagają osobnego przeglądu, ponieważ migrator może nie odtworzyć ich logiki. Wyszukaj klasy dynamiczne, utilities opacity oraz style zapisane w `@layer components` lub `@layer utilities`. W v4 własne utilities rejestruje się dyrektywą `@utility`, a CSS korzysta z natywnych warstw kaskady.

Zapisz przed zmianą widoki reprezentatywne dla projektu: kategorię, produkt wariantowy, koszyk, checkout i komunikat walidacyjny. Jeśli motyw ma menu mobilne, filtry lub popup, uwzględnij ich stany otwarte i zamknięte. Wybór systemu treści warto powiązać z porównaniem WordPressa, Drupala i Joomli.

Jak przejść z Tailwind v3 na v4 krok po kroku?

Migrację wykonaj na osobnym branchu, żeby móc przywrócić zależności, konfigurację CSS i lockfile jako spójny zestaw. Oficjalny upgrader automatyzuje większość zmian, ale jego wynik wymaga przeglądu.

1. Utwórz branch migracyjny i zapisz commit bazowy oraz aktualny build.
2. Sprawdź Node.js lokalnie i w CI; `npx @tailwindcss/upgrade` wymaga Node.js 20 lub nowszego.
3. Uruchom `npx @tailwindcss/upgrade` w katalogu projektu.
4. Przejrzyj zmiany zależności, konfiguracji, CSS i szablonów, ze szczególnym uwzględnieniem pluginów.
5. Uruchom komendę produkcyjną z `package.json` w środowisku zgodnym z CI.
6. Porównaj reprezentatywne widoki na stagingu z wersją v3.

W projekcie Vite Tailwind zaleca plugin `@tailwindcss/vite`. Dodaj `tailwindcss()` do `plugins` w `vite.config.*`, a w arkuszu wejściowym umieść `@import "tailwindcss";`. W projekcie PostCSS skonfiguruj `@tailwindcss/postcss` w `postcss.config.*`; sam pakiet `tailwindcss` nie pełni już funkcji pluginu PostCSS.

Jeśli nie używasz automatycznego upgradera, wykonuj zmianę etapami: zaktualizuj zależności, integrację bundlera i import CSS, następnie przenieś tokeny do `@theme` i uzupełnij źródła klas przez `@source`. Build po każdym etapie ułatwia odróżnienie błędów konfiguracji od różnic wizualnych.

Po zbudowaniu arkusza potwierdź, że motyw ładuje nowy asset. W DevTools otwórz kartę Network i sprawdź adres, status oraz zawartość pobranego CSS. Jeśli widzisz poprzednią wersję arkusza, sprawdź cache buildu, wtyczki optymalizującej i CDN.

W projektach WordPress zakres prac zależy od motywu, pipeline'u i liczby widoków do sprawdzenia. Jeśli potrzebujesz wykonawcy prac przy witrynie WordPress, poznaj ofertę tworzenia stron na WordPressie, a przed ustaleniem migracji zweryfikuj, czy dany zakres odpowiada potrzebom projektu.

Schemat prowadzi przez migrację Tailwind od zapisu stanu projektu po porównanie widoków, aby łatwiej wykryć regresje.

Dlaczego po aktualizacji znikają klasy z motywu lub wtyczki?

Brak stylu po aktualizacji najczęściej oznacza, że Tailwind nie wygenerował reguły albo inny arkusz ją nadpisał. Tailwind v4 skanuje pliki jako zwykły tekst i wyszukuje pełne ciągi przypominające nazwy klas. Nie analizuje logiki PHP ani JavaScript, więc nie odczyta nazwy złożonej z fragmentów.

Tabela łączy objaw z miejscem diagnozy i poprawką. Sprawdź najpierw CSS wygenerowany przez build, a później kaskadę w DevTools.

diagnostyka brakujących klas Tailwind CSS w motywie i wtyczce
ObjawPrawdopodobna przyczynaJak sprawdzićMożliwa poprawka
Brak klasy w CSSKlasa składana z fragmentówWyszukaj pełną nazwę w kodzieUżyj mapy pełnych nazw
Klasy biblioteki nie działająPliki są w `node_modules`Sprawdź ścieżkę bibliotekiDodaj katalog przez `@source`
Brakuje klas z PHPMotyw nie jest skanowanySprawdź bazę skanowaniaUstaw `source()` lub `@source`
Działa lokalnie, nie na serwerzeInny build lub cache assetuPorównaj log CI i CSS z serweraUjednolić build i odświeżyć cache
Styl znika po interakcjiBrak klasy dla stanuSprawdź klasy hover i focusZapisz pełne nazwy albo użyj `@source inline()`
Klasa jest w CSS, ale wygląd się różniNadpisanie lub zmiana utilitySprawdź computed stylesSkoryguj klasę lub kolejność arkuszy

Tailwind domyślnie pomija pliki z `.gitignore`, katalog `node_modules`, pliki binarne, CSS i lockfile. Bibliotekę z klasami można jawnie dodać, na przykład `@source "../node_modules/nazwa-paczki";`. Ścieżka jest liczona względem arkusza CSS. W monorepo bazę skanowania można określić przez `source("../src")` w imporcie Tailwind.

Klasa złożona w PHP przez połączenie fragmentów, na przykład `bg-`, nazwy koloru i `-600`, nie występuje w kodzie jako pełny token. Zastąp takie składanie mapą, w której każdy wariant zawiera kompletną klasę, na przykład `blue => bg-blue-600` i `red => bg-red-600`. Gdy nazwy pochodzą wyłącznie z bazy danych lub API, wskaż wymagane utilities przez `@source inline("...")`.

Brak selektora w arkuszu wskazuje na problem źródła lub nazwy klasy. Selektor obecny, ale przekreślony w DevTools, oznacza konflikt kaskady. Zasady skanowania i rejestrowania źródeł zawiera dokumentacja wykrywania klas Tailwind.

Co sprawdzić w sklepie WooCommerce po migracji?

Po migracji przetestuj produkt, koszyk, checkout, menu mobilne i walidację na desktopie oraz telefonie. Błąd CSS może ukryć wybór wariantu, cenę lub komunikat błędnego pola, nawet jeśli strona główna wygląda poprawnie.

Tabela przedstawia przypadki testowe i warunek akceptacji każdego widoku. Przejdź je na stagingu po zbudowaniu arkusza produkcyjnego.

testy widoków WooCommerce po migracji Tailwind CSS
Widok lub stanPrzypadek testowyKryterium akceptacji
ProduktProdukt prosty, wariantowy i niedostępnyCena, wariant i przycisk są czytelne
KoszykPusty koszyk i koszyk z produktemZmiana ilości aktualizuje widok
CheckoutPoprawne oraz niepełne danePola i komunikaty nie nachodzą na siebie
Menu mobilneOtwarcie, zamknięcie i podmenuMenu działa dotykiem i nie zasłania zakupu
KomunikatBłąd płatności i potwierdzenie dodaniaKomunikat pozostaje widoczny
FiltryKategoria, sortowanie i paginacjaStan filtrów i kontrolek jest widoczny

Testuj działanie komponentów, nie tylko ich statyczny wygląd. Zmień wariant produktu, liczbę sztuk w koszyku i wyślij niepełny formularz checkoutu. Otwórz menu na wąskim ekranie, sprawdź obsługę klawiaturą oraz komunikat po dodaniu produktu.

Wtyczki i buildery mogą generować markup poza katalogiem motywu. Jeśli ich klasy nie pojawiają się w CSS, dodaj odpowiednią ścieżkę przez `@source` albo zastąp dynamiczne składanie pełnymi nazwami. Uwzględnij stany pojawiające się po interakcji, ponieważ mogą być niewidoczne w pierwszym widoku strony.

Lista przypomina o sprawdzeniu kluczowych widoków i interakcji WooCommerce po migracji, by wychwycić błędy niewidoczne na stronie głównej.

Czy Tailwind v4 działa z używanym stosem projektu?

Tailwind CSS v4 może współpracować z WordPressem, Vite i PostCSS, jeśli pipeline buduje arkusz v4 i skanuje właściwe źródła. WordPress dostarcza markup, a Tailwind kompiluje CSS w środowisku developerskim lub CI. Zgodność należy więc potwierdzić oddzielnie dla integracji i każdej wymaganej przeglądarki.

Tabela pokazuje pojedynczy warunek dla każdego składnika stosu. Wiersze przeglądarek rozdzielają wymagane wersje, aby można je było porównać z ruchem witryny.

warunki zgodności Tailwind CSS v4 z elementami stosu projektu
ŚrodowiskoWarunek zgodnościRyzykoSposób weryfikacji
WordPressPipeline motywu buduje CSS v4Skaner pomija pliki PHPSzukaj klas w CSS i sprawdź staging
VitePlugin `@tailwindcss/vite`Została stara integracja PostCSSUruchom produkcyjny build
PostCSSPlugin `@tailwindcss/postcss`Nieaktualny wpis pluginuSprawdź `postcss.config.*` i log
SafariWersja 16.4 lub nowszaStarsza wersja nie spełnia wymagań v4Porównaj wymagania z ruchem witryny
ChromeWersja 111 lub nowszaStarsza wersja nie spełnia wymagań v4Porównaj wymagania z ruchem witryny
FirefoxWersja 128 lub nowszaStarsza wersja nie spełnia wymagań v4Porównaj wymagania z ruchem witryny
Współdzielony CSSUstalona kolejność warstw i importówKonflikt Preflight lub stylów wtyczekSprawdź kaskadę w DevTools

Tailwind v4 importuje warstwy `theme`, `base`, `components` i `utilities`; Preflight zmienia podstawowe style elementów HTML. W istniejącym motywie reset może wpłynąć na wygląd komponentów wtyczek. Jeśli projekt nie powinien używać Preflight, można zaimportować wybrane części Tailwind i pominąć `preflight.css`.

Wstrzymaj aktualizację, jeśli nie można odtworzyć produkcyjnego buildu, źródła klas nie trafiają do CSS albo projekt musi obsługiwać przeglądarki starsze niż wymagane. Osobnej analizy wymaga plugin, którego konfiguracji migrator nie przenosi i którego nie da się zastąpić bez zmian w projekcie. Dokumentacja zgodności Tailwind CSS opisuje wymagania przeglądarek i ograniczenia narzędzi.

Jak cofnąć migrację, jeśli build lub wdrożenie się nie powiedzie?

Rollback przywraca spójny zestaw zależności, lockfile, konfiguracji CSS i assetów z poprzedniej wersji. Cofnięcie samego arkusza przy pozostawieniu nowych pakietów może uniemożliwić odtworzenie buildu. Przed migracją zapisz commit bazowy, wersję Node.js i komendę wdrożeniową.

Gdy build lokalny lub CI kończy się błędem, zachowaj komunikat z pierwszej nieudanej operacji, wersję Node.js, manager pakietów i zmiany konfiguracji. Komunikat `Cannot find package '@tailwindcss/postcss'` wskazuje zwykle na brak zależności lub niezgodny wpis w PostCSS. Brak `@tailwindcss/vite` oznacza, że plugin nie jest dostępny w środowisku buildu.

Gdy build przechodzi, ale witryna nie ma stylów, sprawdź w DevTools kartę Network: kod odpowiedzi arkusza, jego adres i zawartość. Porównaj asset wdrożony na serwerze z wynikiem lokalnym, a następnie sprawdź cache aplikacji, wtyczki optymalizującej i CDN. Zapisz wersję pobranego pliku przed czyszczeniem cache.

Gdy pojawia się regresja wizualna, porównaj ten sam widok przy tej samej szerokości i sprawdź computed styles wadliwego elementu. Brak selektora kieruje do wykrywania źródeł, a selektor przekreślony w DevTools wskazuje konflikt kolejności lub kaskady. Po poprawce wykonaj build produkcyjny i ponownie przejdź krytyczne ścieżki sklepu.

Jeśli wdrożenie powoduje błąd krytyczny, przywróć poprzedni commit lub artefakt razem z poprzednim lockfile. Odtwórz problem na stagingu w osobnym branchu. Rollback jest zakończony, gdy produkcja serwuje poprzedni arkusz, kluczowe widoki działają i logi nie pokazują błędów ładowania CSS.

Co wpływa na zakres migracji?

Zakres migracji zależy od liczby źródeł klas, własnych pluginów, dynamicznych nazw i widoków wymagających kontroli. Podmiana pakietu w prostym projekcie obejmuje mniej zmian niż motyw WordPress ze wspólnymi bibliotekami i rozbudowanym checkoutem. Zakres ustal przed rozpoczęciem pracy, oddzielając zmianę pipeline'u od porządkowania kodu i testów.

Tabela porównuje trzy scenariusze i wskazuje, co zwiększa zakres w każdym z nich. Nie przypisuje scenariuszom stałej liczby godzin, ponieważ zależy ona od istniejącej konfiguracji i wyniku audytu.

scenariusze migracji Tailwind CSS i czynniki wpływające na zakres
ScenariuszTypowy zakresCo zwiększa zakres
MałyStandardowy Vite i kilka widokówZmiany utilities i porównanie podstron
ŚredniMotyw WordPress i szablony PHPŚcieżki `@source`, pluginy i checkout
ZłożonyKilka bundlerów lub wspólne bibliotekiZależności zewnętrzne i różne środowiska

Przed estymacją zmapuj szablony, integracje i stany komponentów, które muszą zachować wygląd. Ustal, czy zakres obejmuje tylko build CSS, czy również klasy dynamiczne, zmianę wspieranych przeglądarek i testy stagingowe. Przy rozwoju lub utrzymaniu samej witryny WordPress sprawdź, czy oferta WordPressa odpowiada zakresowi opieki technicznej potrzebnemu po migracji.

Więcej poradników w tym temacie

Wspomniane narzędzia

Tailwind CSSNode.js@tailwindcss/upgradeVitePostCSS@tailwindcss/postcss@tailwindcss/viteWordPressWooCommerceDevTools

Najczęściej zadawane pytania

Czym różni się Tailwind CSS v4 od Tailwind CSS 3?
V4 zmienia import CSS, integracje narzędzi i sposób konfiguracji, a źródła klas wykrywa automatycznie. Zmienia również część utilities i wymaga Safari 16.4, Chrome 111 oraz Firefox 128 lub nowszych.
Jak zaktualizować projekt z Tailwind v3 do v4?
Utwórz branch, użyj Node.js 20 lub nowszego i uruchom `npx @tailwindcss/upgrade`. Przejrzyj zmiany, wykonaj produkcyjny build i sprawdź krytyczne widoki na stagingu.
Czy Tailwind CSS v4 działa z WordPressem i WooCommerce?
Tak, jeśli pipeline motywu buduje CSS v4 i obejmuje pliki PHP oraz źródła klas wtyczek. Po migracji sprawdź produkt, koszyk, checkout, komunikaty walidacyjne i menu mobilne.
Dlaczego po migracji do Tailwind v4 nie działają niektóre klasy?
Skaner może pomijać katalog motywu lub biblioteki, a klasa może być składana dynamicznie. Brak reguły w CSS wskazuje problem ze źródłem, a przekreślona reguła w DevTools oznacza konflikt stylów.
Czy Tailwind CSS 4 wymaga zmiany konfiguracji PostCSS?
Tak, jeśli projekt używa PostCSS. W v4 należy skonfigurować plugin `@tailwindcss/postcss`; dla Vite Tailwind udostępnia plugin `@tailwindcss/vite`.
Jak sprawdzić, czy Tailwind v4 obejmuje pliki motywu WordPress?
Wykonaj produkcyjny build i wyszukaj w wygenerowanym CSS kilka klas używanych w plikach PHP. Otwórz odpowiadające widoki, a brakujące ścieżki dodaj przez `@source`.
#Tailwind CSS#Tailwind CSS v4#migracja Tailwind#WordPress#WooCommerce#Vite#PostCSS#frontend
Zdjęcie autora: Krzysztof Czapnik
O autorze

Krzysztof Czapnik

Founder & Technical Lead, KC Mobile

Projektuję i rozwijam strony WordPress, sklepy WooCommerce oraz aplikacje internetowe. Łączę projektowanie z programowaniem, integracjami i technicznym SEO. Projekty KC Mobile prowadzę osobiście.

Potrzebujesz pomocy z tym tematem? Napisz - odpowiem osobiście w 24h.

Potrzebujesz pomocy w tym temacie?

Czytasz poradnik „Tailwind CSS v4: jak przejść z v3 i uniknąć problemów”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.