WebEngine

0%
Веб-розробка

Mobile-first дизайн: чому 70% трафіку вирішує все

Як проєктувати під мобільний спочатку, а не адаптувати після. Плавність скролу, розміри тапів, важкі ефекти та інші речі, які ламають досвід на телефоні.

Pavlo7 хв читання

Сайт малює дизайнер на 27-дюймовому моніторі, погоджує директор із ноутбука, а дивиться його жінка в метро з тріснутим екраном і однією рукою. Розрив між цими трьома сценаріями коштує реальних заявок. Нижче — що конкретно означає проєктувати mobile-first: у якому порядку робити макети, які розміри тапів працюють, чому плавність скролу важливіша за анімацію і як це перевірити, не покладаючись на емулятор у браузері.

70%

типова частка мобільного трафіку

48px

мінімальна зона дотику для пальця

16px

розмір шрифту в полях, щоб не було зуму

2.5s

цільовий LCP на мобільному

Mobile-first — це не «зменшити десктоп»

Адаптація зверху вниз завжди дає той самий результат: на телефоні залишається все, що було на десктопі, тільки в стовпчик. Шість блоків стають шістьма екранами прокрутки, меню ховається під три смужки, а головна кнопка опиняється на четвертому екрані. Проєктування знизу вгору змушує ухвалити чесне рішення на початку — що з цього справді потрібне.

  • Обмеження працює як фільтр. На 375 пікселях ширини фізично поміщається один заголовок, один абзац і одна кнопка. Те, що не пройшло цей відбір, зазвичай не було потрібне й на десктопі.
  • Пріоритет стає видимим. Порядок блоків у мобільному макеті — це і є ваша воронка. Якщо ціна опинилась нижче за історію компанії, ви щойно побачили проблему позиціонування.
  • Продуктивність закладається одразу. Коли макет починається з телефона, важкі фонові відео й паралакси просто не встигають потрапити в проєкт — їх немає у вихідній версії.
  • Пошук оцінює мобільну версію. Індексується саме те, що бачить телефон. Контент, схований під «показати ще» на мобільному, — це контент, який ви приховали від пошуку.

Порядок роботи, який реально працює

  1. 1

    Один екран — одне рішення

    Для кожного екрана прокрутки випишіть, яку дію людина має зробити або яке заперечення знімає цей блок. Екран без відповіді видаляється, а не «доопрацьовується».

  2. 2

    Макет 375 пікселів першим

    Це нижня межа, яка досі поширена. Якщо композиція виживає тут, на 430 і на 1440 вона виживе теж. Зворотний шлях не працює ніколи.

  3. 3

    Дві контрольні точки замість п’яти

    На практиці вистачає переходів приблизно на 640 і 1024 пікселях. Більше точок — більше станів для тестування і більше місць, де верстка розʼїжджається.

  4. 4

    Типографіка й сітка до кольору

    Розмір базового тексту від 16 пікселів, міжрядковий інтервал 1,5, довжина рядка 45–75 символів. На телефоні саме це визначає, чи дочитають текст.

  5. 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 пікселів, головна дія — нижньої третини екрана.
  • Плавність скролу дорожча за анімацію: розмиття фону й нескінченні ефекти прибирайте з мобільної версії першими.
  • Індексується мобільна версія, тому видалений з неї контент зникає й з пошуку.
  • Перевіряйте на реальному середньому телефоні, при повільному зʼєднанні й зі збільшеним системним шрифтом.
Поділитися
  • mobile-first
  • UX
  • дизайн

Схожі матеріали

SEO та аналітика

Core Web Vitals: LCP, INP і CLS простими словами

Три метрики, які Google використовує як сигнал ранжування. Пояснюємо кожну і показуємо, що ламає їх найчастіше.

8 хв читання