Układ może przestać działać przy szerokości, która nie odpowiada popularnemu rozmiarowi urządzenia. Nawigacja zaczyna się łamać, kolumny ściskają treść albo przycisk wypada poza kontener. Dobieramy breakpoint do rzeczywistego zachowania komponentu, a nie do etykiety telefonu.
Krótka odpowiedź
Breakpoint Tailwind to minimalna szerokość viewportu, od której prefiks, taki jak `md:`, uruchamia daną klasę. W Tailwind CSS 4 domyślne progi to `sm` 40 rem, `md` 48 rem, `lg` 64 rem, `xl` 80 rem i `2xl` 96 rem.
Buduj bazowy układ dla wąskiego ekranu, dodawaj wariant wtedy, gdy projekt wymaga zmiany, a potem sprawdź widok tuż przed i po progu.
Usługi KC Mobile
Potrzebujesz pomocy w tym temacie?
Czytasz poradnik „Tailwind breakpoints: jak dopasować breakpointy do układu strony”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.
Jak działają breakpointy w Tailwind?
Breakpointy Tailwind pozwalają warunkowo stosować klasy utility przy określonej szerokości viewportu. Klasa bez prefiksu działa od najmniejszych szerokości, a wariant `md:` zaczyna działać od progu `md` wzwyż. Przykład `text-center md:text-left lg:text-right` ustawia tekst centralnie na bazie mobilnej, do lewej od `md`, a od `lg` do prawej.
Tailwind stosuje podejście mobile-first. Projektujemy podstawowy układ dla wąskiego ekranu, a następnie nadpisujemy tylko te właściwości, które muszą zmienić się w szerszym widoku. `sm:` nie oznacza "tylko mały ekran". To próg aktywacji od wskazanej szerokości wzwyż.
| Prefiks | Domyślny próg w Tailwind CSS 4 | Przykład zastosowania |
|---|---|---|
| `sm:` | 40 rem / 640 px | Zmiana odstępów lub liczby kolumn |
| `md:` | 48 rem / 768 px | Ułożenie nawigacji albo panelu bocznego |
| `lg:` | 64 rem / 1024 px | Zmiana siatki treści na szerszą |
| `xl:` | 80 rem / 1280 px | Ograniczenie szerokości lub większy układ |
| `2xl:` | 96 rem / 1536 px | Dostosowanie widoku do bardzo szerokiego viewportu |
Progi w tej tabeli są domyślną skalą Tailwind CSS 4. Projekt może ją zmieniać w motywie, więc przed diagnozą sprawdź konfigurację używaną w konkretnym repozytorium. W Tailwind CSS 3 te same wartości domyślne są zwykle zapisane jako `640px`, `768px`, `1024px`, `1280px` i `1536px`.
Warianty obejmują nie tylko szerokość, ale też inne właściwości utility. Możesz zmieniać siatkę, padding, rozmiar tekstu, wyrównanie, widoczność, szerokość albo zachowanie flexboxa. Jeśli modyfikujesz tylko jedną właściwość, dopisz jeden wariant do tej klasy; nie twórz osobnego breakpointu, jeśli problem można rozwiązać płynnym układem.
Czytasz poradnik „Tailwind breakpoints: jak dopasować breakpointy do układu strony”. 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
Jak dobrać breakpoint do układu, a nie modelu telefonu?
Próg wybierz w miejscu, w którym konkretny układ przestaje spełniać swoje zadanie. Nie zakładaj, że każda strona potrzebuje zmian przy `sm`, `md` i `lg`. Dla prostego artykułu wystarczy kolumna o ograniczonej szerokości, a rozbudowany panel administracyjny może wymagać kilku zmian układu.
Zacznij od komponentu o największym ryzyku: nagłówka, nawigacji, tabeli, siatki kart albo formularza. Zmniejszaj viewport, aż tekst zacznie się nienaturalnie łamać, elementy dotkną krawędzi lub przycisk straci czytelność. Zwiększaj szerokość i zanotuj moment, w którym układ może przyjąć kolejną kolumnę bez ściskania zawartości.
| Sygnał w układzie | Co sprawdzić | Możliwa zmiana |
|---|---|---|
| Linki nawigacji nachodzą na siebie | Długość etykiet, odstępy i szerokość logo | Zmień odstępy albo przełącz nawigację w innym miejscu |
| Karty mają zbyt wąskie kolumny | Minimalną szerokość czytelnej karty i gap | Przejdź z jednej kolumny na dwie dopiero po uzyskaniu miejsca |
| Formularz wymaga poziomego przewijania | Szerokości pól, etykiety i przyciski | Ułóż pola jeden pod drugim albo zmień siatkę |
| Nagłówek zajmuje większość widoku | Długość tekstu i szerokość kolumny | Zmień rozmiar typu lub strukturę nagłówka |
| Tabela ucina istotne dane | Szerokość kolumn i priorytet informacji | Zastosuj przewijanie tabeli lub osobny układ wąski |
Gdy znajdziesz punkt pękania, wybierz najbliższy istniejący próg, który pasuje do zachowania strony. Jeśli układ rozpada się przy 900 px, a zmiana przy 768 px wystarcza i przy 900 px komponent nadal wygląda poprawnie, dodatkowy breakpoint nie wniesie wartości. Gdy potrzebna zmiana musi wejść dokładnie przy innej szerokości, rozważ własny próg albo jednorazowy wariant arbitralny.
Po zmianie ponownie przetestuj szerokość tuż poniżej progu, sam próg i tuż powyżej niego. Sprawdź też szerszy widok, ponieważ wariant `md:` pozostaje aktywny na kolejnych szerokościach, dopóki nie nadpisze go późniejsza reguła.

Jak użyć domyślnych prefiksów responsywnych?
Wariant responsywny dopisujesz przed klasą utility, na przykład `md:grid-cols-2`. Klasy bazowe opisują najmniejszy układ, a prefiksy modyfikują go od swojego progu w górę.
Przykład siatki: `grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3`. Na małej szerokości karty układają się jedna pod drugą, od `md` tworzą dwie kolumny, a od `xl` trzy. Zanim dodasz trzeci próg, upewnij się, że treść kart zachowuje czytelną szerokość.
Odstępy mogą rosnąć razem z dostępną przestrzenią: `px-4 sm:px-6 lg:px-8`. Rozmiar tekstu można zwiększyć w szerszym układzie: `text-2xl md:text-4xl`. Dla widoczności elementów użyj na przykład `hidden md:block`, jeśli element jest rzeczywiście zbędny w wąskim widoku. Nie ukrywaj istotnych informacji wyłącznie po to, aby uniknąć poprawy układu.
Możesz zmieniać wiele klas w jednym komponencie: `flex flex-col gap-4 md:flex-row md:items-center`. Na bazie elementy są ułożone pionowo, a od `md` w jednym rzędzie. Zwróć uwagę na kolejność klas i wynikowe reguły, ale pamiętaj, że Tailwind nie interpretuje kolejności tekstowej klas jako kolejności kaskady CSS. Ostateczny wynik zależy od wygenerowanych selektorów, warstw i ewentualnych reguł własnych.
Tailwind obsługuje również zakresy, na przykład `md:max-lg:flex`, gdy styl ma działać tylko między dwoma progami. Takie klasy są przydatne w rzadkich przypadkach, gdy środkowy układ wymaga osobnego zachowania. Najpierw rozważ prostą progresję mobile-first, bo wiele nakładających się zakresów utrudnia późniejszą diagnozę.
Jak dodać własny breakpoint w konfiguracji Tailwind?
Sposób konfiguracji zależy od głównej wersji Tailwind. W Tailwind CSS 4 progi zapisujesz zwykle jako zmienne motywu `--breakpoint-*` w arkuszu CSS, a w Tailwind CSS 3 używasz `theme.screens` w pliku `tailwind.config.js`.
Dla Tailwind CSS 4 przykładowa konfiguracja może wyglądać tak:
@import "tailwindcss";
@theme {
--breakpoint-xs: 30rem;
--breakpoint-3xl: 120rem;
}Po kompilacji można użyć prefiksów `xs:` i `3xl:`. Jednostki breakpointów powinny być spójne. Dokumentacja Tailwind ostrzega, że mieszanie jednostek może doprowadzić do nieoczekiwanej kolejności wygenerowanych wariantów.
W projekcie Tailwind CSS 3 konfiguracja może przyjąć taką postać:
module.exports = {
theme: {
extend: {
screens: {
'3xl': '1600px',
},
},
},
}Rozszerzenie przez `theme.extend.screens` dodaje próg obok domyślnych wartości. Zastąpienie całej sekcji `theme.screens` może zmienić lub usunąć domyślną skalę, jeśli nie wpiszesz jej ponownie. Po zmianie sprawdź, czy klasa z nowym prefiksem pojawia się w wygenerowanym CSS.
Dodaj własny próg, gdy kilka komponentów wymaga tego samego zakresu albo punkt pękania nie pasuje do istniejącej skali. Dla pojedynczej, wyjątkowej korekty możesz użyć arbitralnego wariantu, np. `min-[900px]:grid-cols-3`. Jeśli ten sam próg wraca w wielu miejscach, nazwany breakpoint ułatwia utrzymanie projektu.
W Tailwind CSS 4 dostępne są także container queries. Warianty takie jak `@md:` reagują na szerokość kontenera, a nie całego viewportu. Używaj ich dla komponentu osadzonego w różnych obszarach strony, kiedy jego dostępna przestrzeń może być inna niż szerokość okna.
Jak debugować klasę responsywną, która nie działa?
Zacznij od ustalenia, czy problem dotyczy breakpointu, generowania CSS, specyficzności czy cache. Sprawdzenie samego HTML nie wystarczy, jeśli Tailwind nie wygenerował reguły dla użytej klasy.
| Objaw | Możliwa przyczyna | Test i poprawa |
|---|---|---|
| Klasa działa zawsze albo nigdy | Literówka w prefiksie lub błędny próg | Sprawdź nazwę klasy i szerokość viewportu w DevTools |
| W źródle jest klasa, ale nie ma reguły w CSS | Plik nie jest skanowany albo nazwa powstaje dynamicznie | Sprawdź źródła skanowania i użyj pełnych nazw klas |
| Wygenerowany CSS istnieje, ale styl nie wchodzi | Reguła własna lub selektor o większej specyficzności | W panelu Styles sprawdź przekreśloną deklarację i jej nadpisanie |
| Zmiana konfiguracji nie działa po przebudowie | Błędny plik konfiguracji lub proces korzysta z innego entry pointu | Sprawdź wersję Tailwind, plik CSS wejściowy i konfigurację projektu |
| Poprawka pojawia się dopiero po odświeżeniu | Cache przeglądarki lub niewykonana kompilacja | Uruchom ponownie właściwy proces build i odśwież bez cache |
| Klasa występuje tylko dla części danych | Składanie nazwy klasy z fragmentów | Zmapuj warianty na pełne, statyczne nazwy klas |
Tailwind skanuje pliki źródłowe jako tekst i szuka kompletnych nazw klas. Wyrażenie sklejające `bg-${color}-600` nie zawiera pełnej nazwy, więc kompilator może nie wygenerować potrzebnej reguły. Zamiast tego przypisz każdej opcji kompletny zestaw klas, taki jak `bg-red-600` albo `bg-blue-600`.
W Tailwind CSS 4 sprawdź, czy katalogi projektu są wykrywane automatycznie. Jeśli używasz monorepo, biblioteki komponentów lub plików pomijanych przez domyślne skanowanie, skonfiguruj `@source`. W Tailwind CSS 3 sprawdź ścieżki w polu `content` w `tailwind.config.js`.
W DevTools wybierz element i przejdź do zakładki Styles lub Computed. Sprawdź, czy klasa znajduje się w DOM, czy reguła istnieje w załadowanym arkuszu i jaki media query ją ogranicza. Gdy reguła jest przekreślona, przyczyna leży zwykle w kaskadzie CSS, a nie w samym breakpointcie.
Jak sprawdzić breakpointy w przeglądarce?
Testuj zachowanie przy kontrolowanej szerokości viewportu, a nie tylko na nazwach urządzeń. W Chrome lub Chromium otwórz DevTools, włącz Device Toolbar i ustaw szerokość w pikselach. Możesz też przeciągać krawędź widoku, aby znaleźć dokładny moment, w którym komponent przestaje działać.
Po znalezieniu progu zanotuj szerokość problemu, szerokość poniżej i szerokość powyżej niego. Sprawdź stan przy samym progu, ponieważ błąd może występować tylko na granicy. Jeśli klasa działa od `md`, testuj viewport w okolicy 768 px, o ile projekt zachował domyślną wartość tego progu.
Viewport nie zawsze jest równy szerokości ekranu urządzenia. Tryb emulacji może pokazywać viewport w CSS pixels, podczas gdy fizyczny ekran ma inną rozdzielczość. Dla breakpointu CSS liczy się szerokość obszaru strony używana przez przeglądarkę.
Sprawdź orientację pionową i poziomą, długość realnych tekstów, stan aktywnych menu oraz elementy, które pojawiają się dopiero po interakcji. W przypadku strony z dynamicznymi treściami zmień także język lub wariant danych, bo dłuższa etykieta może wywołać problem niewidoczny w przykładowym wypełnieniu. Warto przejrzeć również szerokości pośrednie między popularnymi presetami urządzeń.
Jakie błędy powodują problemy z responsywnością?
Nadmierna liczba breakpointów zwiększa liczbę kombinacji stylów i utrudnia ustalenie, która reguła odpowiada za dany widok. Dodawaj próg w reakcji na zauważony problem, a nie dlatego, że pojawia się w tabeli urządzeń.
Sztywne szerokości często powodują poziome przewijanie. Jeśli element ma `w-[500px]`, może wyjść poza viewport węższy niż zadana wartość. Rozważ `w-full`, ograniczenie przez `max-w-*`, siatkę lub flexbox, a stałą szerokość zostaw tylko wtedy, gdy wymaga jej komponent.
Ukrywanie treści na mobile maskuje objaw i może odebrać użytkownikowi potrzebną informację. Najpierw spróbuj zmienić kolejność, odstęp, rozmiar tekstu lub układ. Dla szerokiej tabeli wybierz świadomie przewijanie poziome, alternatywny widok albo ograniczony zestaw najważniejszych kolumn.
Przed publikacją przejdź przez krótką kontrolę:
- sprawdź układ bazowy bez prefiksów na wąskim viewportcie;
- sprawdź każdą zmianę przy progu i po obu jego stronach;
- sprawdź szerokości pośrednie, długie treści i stan interaktywny;
- usuń niepotrzebne progi oraz sztywne szerokości powodujące overflow;
- potwierdź, że klasy są kompletne i trafiają do wygenerowanego CSS.
Jeśli pracujesz nad nowym interfejsem albo porządkujesz istniejące klasy, wdrożenie Tailwind CSS może objąć przygotowanie struktury stylów i dostosowanie jej do zachowania komponentów. W szerszym kontekście wyboru technologii warto też przeczytać porównanie systemów CMS oraz wyjaśnienie responsywności strony.

Więcej poradników w tym temacie
Wspomniane narzędzia
Najczęściej zadawane pytania
Jakie breakpointy ma Tailwind CSS?
Jak działają breakpointy mobile-first w Tailwind?
Jak ustawić własny breakpoint Tailwind?
Dlaczego klasa `md:` nie działa?
Jak testować breakpointy Tailwind w przeglądarce?
Czy breakpointy powinny odpowiadać rozmiarom telefonów?
Potrzebujesz pomocy w tym temacie?
Czytasz poradnik „Tailwind breakpoints: jak dopasować breakpointy do układu strony”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.
