Mobile-first дизайн: чому 70% трафіку вирішує все
Як проєктувати під мобільний спочатку, а не адаптувати після. Плавність скролу, розміри тапів, важкі ефекти та інші речі, які ламають досвід на телефоні.
Сайт малює дизайнер на 27-дюймовому моніторі, погоджує директор із ноутбука, а дивиться його жінка в метро з тріснутим екраном і однією рукою. Розрив між цими трьома сценаріями коштує реальних заявок. Нижче — що конкретно означає проєктувати mobile-first: у якому порядку робити макети, які розміри тапів працюють, чому плавність скролу важливіша за анімацію і як це перевірити, не покладаючись на емулятор у браузері.
70%
типова частка мобільного трафіку
48px
мінімальна зона дотику для пальця
16px
розмір шрифту в полях, щоб не було зуму
2.5s
цільовий LCP на мобільному
Mobile-first — це не «зменшити десктоп»
Адаптація зверху вниз завжди дає той самий результат: на телефоні залишається все, що було на десктопі, тільки в стовпчик. Шість блоків стають шістьма екранами прокрутки, меню ховається під три смужки, а головна кнопка опиняється на четвертому екрані. Проєктування знизу вгору змушує ухвалити чесне рішення на початку — що з цього справді потрібне.
- Обмеження працює як фільтр. На 375 пікселях ширини фізично поміщається один заголовок, один абзац і одна кнопка. Те, що не пройшло цей відбір, зазвичай не було потрібне й на десктопі.
- Пріоритет стає видимим. Порядок блоків у мобільному макеті — це і є ваша воронка. Якщо ціна опинилась нижче за історію компанії, ви щойно побачили проблему позиціонування.
- Продуктивність закладається одразу. Коли макет починається з телефона, важкі фонові відео й паралакси просто не встигають потрапити в проєкт — їх немає у вихідній версії.
- Пошук оцінює мобільну версію. Індексується саме те, що бачить телефон. Контент, схований під «показати ще» на мобільному, — це контент, який ви приховали від пошуку.
Порядок роботи, який реально працює
- 1
Один екран — одне рішення
Для кожного екрана прокрутки випишіть, яку дію людина має зробити або яке заперечення знімає цей блок. Екран без відповіді видаляється, а не «доопрацьовується».
- 2
Макет 375 пікселів першим
Це нижня межа, яка досі поширена. Якщо композиція виживає тут, на 430 і на 1440 вона виживе теж. Зворотний шлях не працює ніколи.
- 3
Дві контрольні точки замість п’яти
На практиці вистачає переходів приблизно на 640 і 1024 пікселях. Більше точок — більше станів для тестування і більше місць, де верстка розʼїжджається.
- 4
Типографіка й сітка до кольору
Розмір базового тексту від 16 пікселів, міжрядковий інтервал 1,5, довжина рядка 45–75 символів. На телефоні саме це визначає, чи дочитають текст.
- 5
Стани елементів окремим екраном
Пусті списки, довгі назви товарів, помилки форми, довантаження. Пропущені стани — головна причина того, що готовий сайт виглядає гірше за макет.
Пальці, зона великого пальця й форми
Курсор має точність в один піксель, палець — приблизно в сім міліметрів. Це головна фізична різниця, з якої випливає більшість правил нижче.
| Елемент | Мінімум | Типова помилка |
|---|---|---|
| Кнопка або посилання в меню | 48×48 px плюс 8 px відступу | Іконка 24 px без області навколо |
| Поле вводу | Висота 44 px, шрифт 16 px | Шрифт 14 px — iOS зумить сторінку |
| Посилання всередині тексту | Відстань між рядками від 1,5 | Два посилання підряд у сусідніх рядках |
| Головна дія сторінки | Нижня третина екрана | Кнопка вгорі, куди не дістає палець |
| Закриття модального вікна | 44×44 px у зоні досяжності | Хрестик 16 px у верхньому куті |
Плавність скролу важливіша за анімацію
Найпоширеніша скарга на мобільні сайти — не «некрасиво», а «підвисає при прокрутці». Причина майже завжди в трьох речах: розмиття фону, тіні великого радіуса й нескінченні анімації, які браузер перемальовує кожен кадр. На флагманському телефоні це непомітно, на середньому апараті трирічної давності — це різниця між 60 і 25 кадрами.
- Розмиття фону — найдорожчий ефект у списку. Один напівпрозорий блок із розмиттям на липкій шапці здатен зʼїсти половину кадрового бюджету на скролі.
- Анімації, що не зупиняються — пульсуючі кнопки, градієнти, що переливаються, обертові фігури. Вони працюють, поки сторінка відкрита, навіть коли їх не видно.
- Анімація не тих властивостей — рухати варто
transformіopacity. Змінаwidth,topчиmarginзмушує браузер перераховувати всю розкладку. - Зображення без розмірів — без явних
widthіheightконтент стрибає під час завантаження, і це прямо псує показник зсуву макета.
/* Дорогі ефекти лишаємо десктопу з мишею,
і завжди поважаємо системне налаштування руху */
.panel {
background: rgba(12, 14, 18, 0.92);
}
@media (min-width: 1024px) and (hover: hover) {
.panel {
background: rgba(12, 14, 18, 0.6);
backdrop-filter: blur(12px);
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}Швидкість і плавність — це дві різні проблеми з різними метриками. Перша вимірюється часом до появи головного елемента, друга — затримкою відповіді на дотик. Обидві розібрані окремо в матеріалі про Core Web Vitals, а практичний порядок оптимізації — у гайді про швидкість завантаження сайту.
Як перевірити, а не сподіватись
Перевірка перед запуском
- Відкрити сайт на реальному середньому телефоні, а не лише в емуляторі браузера
- Пройти шлях до заявки однією рукою, тримаючи телефон як у транспорті
- Увімкнути повільне зʼєднання в інструментах розробника і подивитись, що видно першим
- Перевірити всі форми: клавіатура, автопідстановка, повідомлення про помилки
- Збільшити системний шрифт до 200% і переконатись, що нічого не обрізається
- Перевірити горизонтальну прокрутку — її не повинно бути на жодній сторінці
- Прокрутити довгу сторінку пальцем і відчути, чи є ривки
Емулятор показує розміри. Він не показує, як сайт поводиться на телефоні з двома роками фонових застосунків і слабким сигналом.
Збільшення шрифту в чеклісті — не формальність: масштабування тексту й контраст перетинаються з вимогами доступності, і виправляти їх після запуску вдвічі дорожче. Що саме перевіряти, зібрано в гайді з доступності сайту.
Часті питання про mobile-first
Чим mobile-first відрізняється від адаптивного дизайну?
Адаптивний дизайн означає, що сайт підлаштовується під ширину екрана, і це може бути зроблено як від десктопа вниз, так і від телефона вгору. Mobile-first — це порядок проєктування: спершу малюють і верстають мобільний макет, потім розширюють його для великих екранів. Результат відрізняється тим, що в mobile-first на телефон не потрапляє зайвий вміст, бо його там ніколи й не було.
Чи потрібна окрема мобільна версія сайту на піддомені?
Ні, окремі мобільні піддомени — застаріла практика, від якої відмовились через подвоєння контенту, складні редиректи та ризик розсинхрону версій. Сучасний підхід — одна адреса й одна кодова база, яка перебудовує розкладку під ширину екрана. Виняток трапляється хіба що у великих сервісах зі складною логікою, і навіть там це рішення про застосунок, а не про піддомен.
На яку ширину екрана орієнтуватись під час проєктування?
Базовою нижньою межею зручно вважати 360–375 логічних пікселів: це перекриває більшість бюджетних і компактних апаратів. Далі достатньо двох контрольних точок — приблизно 640 пікселів для планшетів і 1024 для настільних екранів. Більша кількість точок ускладнює тестування, майже не покращуючи результат.
Чому сайт швидкий за тестами, але «гальмує» на телефоні?
Тести швидкості вимірюють переважно завантаження, а відчуття гальмування виникає під час взаємодії. Найчастіші причини — важкі візуальні ефекти на прокрутці, анімації, які працюють безперервно, і великі обробники подій, що блокують основний потік. Це окремий клас проблем: спершу приберіть розмиття фону й нескінченні анімації, потім заміряйте затримку відповіді на дотик.
Чи можна ховати частину контенту на мобільному?
Ховати за розкривними блоками можна — цей текст залишається в коді сторінки, доступний і людям, і пошуковим системам. А от повністю видаляти вміст із мобільної версії не варто: індексується саме мобільний варіант, тому видалений блок фактично зникає з пошуку. Якщо контент не потрібен на телефоні, поставте питання інакше — чи потрібен він узагалі.
Коротко
- Mobile-first — це порядок проєктування, а не набір медіазапитів. Макет починається з 375 пікселів, інакше телефон отримає обрізаний десктоп.
- Палець потребує 48 пікселів зони дотику, поля — шрифту 16 пікселів, головна дія — нижньої третини екрана.
- Плавність скролу дорожча за анімацію: розмиття фону й нескінченні ефекти прибирайте з мобільної версії першими.
- Індексується мобільна версія, тому видалений з неї контент зникає й з пошуку.
- Перевіряйте на реальному середньому телефоні, при повільному зʼєднанні й зі збільшеним системним шрифтом.
Схожі матеріали
Швидкість сайту: 15 причин повільного завантаження і як їх усунути
Кожна зайва секунда завантаження коштує конверсій. Ось список винуватців у порядку шкоди.
Core Web Vitals: LCP, INP і CLS простими словами
Три метрики, які Google використовує як сигнал ранжування. Пояснюємо кожну і показуємо, що ламає їх найчастіше.
Доступність сайту: базовий рівень, який має бути в кожного
Доступність — це не про «людей з інвалідністю окремо». Це про те, чи працює сайт узагалі.