Брейкпоинты и mobile-first

Один из главных козырей Tailwind: адаптивность прямо в классах, без отдельных медиа-запросов.

Mobile-first: базовые классы действуют на всех экранах, а префикс с брейкпоинтом включает стиль начиная с этой ширины и выше.

Брейкпоинты-префиксы

Чтобы применить класс только на экранах от определённой ширины, добавьте префикс через двоеточие:

ПрефиксДействует от ширины
sm:≈640px
md:≈768px
lg:≈1024px
xl:≈1280px

Как читать адаптивные классы

Ключевая идея mobile-first: класс без префикса — это база для самого узкого экрана, а префиксы переопределяют её на больших. Разберём пример:

<div class="text-center md:text-left">Заголовок</div>

Читается так: «по умолчанию текст по центру; начиная с md (768px) — по левому краю». На телефоне заголовок отцентрован, на планшете и шире — прижат влево.

Перестроение колонок

Классический сценарий — блоки, которые на телефоне идут столбцом, а на десктопе встают в ряд:

<div class="flex flex-col md:flex-row gap-4">
  <div>Сайдбар</div>
  <div>Контент</div>
</div>

На узком экране сайдбар окажется над контентом (столбец), а от md они встанут рядом (ряд). Заметьте: мы не писали ни одного медиа-запроса вручную.

Почему именно mobile-first

Поскольку база — это мобильный вид, вы сначала описываете самый простой случай (узкий экран), а затем добавляете усложнения для широких. Это и удобнее, и надёжнее: если забыть про большие экраны, сайт всё равно останется рабочим на мобильном — а это сегодня большинство пользователей.

Частая ошибка

Новички пишут sm:text-center, ожидая «только на мобильном». Но sm: означает «от 640px и шире», а не «только на маленьких». Чтобы задать вид для самых узких экранов, используйте класс без префикса.

Итог

  • Префиксы sm/md/lg/xl: включают стиль начиная с указанной ширины и выше.
  • Класс без префикса — база для всех экранов (самый узкий), префиксы её переопределяют.
  • Mobile-first: сначала мобильный вид, потом усложнения для широких экранов.
Проверьте себя
1. Как читается класс md:text-left?
AТекст слева только на экранах меньше 768px
BТекст слева начиная с ширины md (≈768px) и выше
CТекст всегда слева
DТекст по центру на md
2. Что задаёт класс без префикса в mobile-first подходе?
AСтиль только для десктопа
BБазовый стиль для всех экранов, включая самый узкий
CСтиль, который игнорируется
DСтиль только для печати
3. Что делает flex-col md:flex-row?
AВсегда ставит элементы в ряд
BСтолбец на узких экранах, ряд начиная с md
CСкрывает элементы на мобильном
DЦентрирует по вертикали
Поддержать проект