<meta name="viewport" content="width=device-width, initial-scale=1">
Без этого тега телефон рисует страницу шириной 980 px и уменьшает её.
Подходы
- Mobile first: базовые стили для узкого экрана, расширения — через
@media (min-width: …). - Гибкая раскладка: Grid с
minmaxиauto-fill, Flexbox с переносом — часто без единого медиазапроса. - Гибкая типографика:
font-size: clamp(1rem, 0.9rem + 0.5vw, 1.25rem). - Контейнерные запросы (
@container) — компонент подстраивается под ширину своего контейнера, а не окна; удобно для переиспользуемых компонентов. - Картинки:
max-width: 100%,srcsetиsizes,<picture>для разных форматов. - Сенсорные цели не меньше 44×44 px, учёт
hover: noneна телефонах. 100vhна мобильных прыгает из-за панели браузера —100dvh.