Дизайн модальних вікон із focus trap та анімацією

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Дизайн модальних вікон із focus trap та анімацією
Простий
~1 день
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1251
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    956
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1188
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    929
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    947

Клієнти скаржаться: «модалка глючить — натискаю Esc, а вона не закривається». Або фокус відлітає кудись за вікно, і скринридер втрачає контекст. Такі помилки зривають сценарії: користувач не може завершити покупку, підтвердити видалення або заповнити форму. Ми проєктуємо модальні вікна так, щоб вони працювали бездоганно з першого білда — із focus trap, правильною анімацією та повною підтримкою a11y. Наш десятирічний досвід у веб-розробці та дизайні інтерфейсів дозволяє гарантувати результат, який пройде аудит WCAG 2.1.

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

Як визначити, чи потрібна модалка?

Перш ніж проєктувати модальне вікно, перевірте: чи можна вирішити задачу inline, на окремій сторінці або через drawer? Modal блокує весь інтерфейс — це виправдано, коли користувач має терміново прийняти рішення. В інших випадках підійдуть легші компоненти.

Ситуація Кращий компонент Причина
Видалити запис Modal (confirmation) Потрібне явне підтвердження
Змінити назву в таблиці Inline-редагування Не виходячи з контексту
Довга форма (8+ полів) Окрема сторінка Не вміщується в модалку
Фільтр за списком Dropdown Не блокує інтерфейс
Підказка біля поля Tooltip Коротка довідка

Як вибрати розмір модального вікна?

Правильний розмір визначає зручність. Ми використовуємо чотири стандарти:

Тип Ширина контейнера Для чого
Small 400px Підтвердження, короткі сповіщення
Medium 560px Форми на 2–4 поля, деталі об'єкта
Large 720–800px Попередній перегляд, складні форми
Fullscreen 100% (mobile) Будь-який контент на вузьких екранах

У 70% проєктів достатньо medium-модалки. Для мобільних fullscreen обов'язковий — без нього контент доводиться збільшувати.

Анатомія модального вікна

Якісна модалка складається з:

  • Overlay — напівпрозорий фон (rgba(0,0,0,0.5)), блокує кліки, клік по ньому закриває вікно.
  • Контейнер — білий фон у light mode, bg-surface у dark, border-radius 12px, тінь.
  • Хедер — заголовок (обов'язковий, навіть прихований sr-only) + кнопка ×.
  • Тіло — контент із overflow-y: auto при переповненні.
  • Футер — кнопки: ліворуч кнопка «Скасувати» та основна дія, виділена стилем.

Фокус при відкритті переходить на перший інтерактивний елемент. Esc і клік по overlay закривають. При закритті фокус повертається на тригер.

Як забезпечити доступність модального вікна?

Ми слідуємо рекомендаціям WAI-ARIA Authoring Practices для модальних діалогів. Обов'язкові атрибути: role="dialog", aria-modal="true", aria-labelledby на заголовок. Focus trap реалізуємо через цикл Tab — жоден фокус не виходить за межі вікна. Це вимога WCAG 2.1 (критерій 2.4.3). Також важливо керувати фокусом: при відкритті — на перший елемент, при закритті — на тригер. Для скринридерів додаємо aria-describedby з описом дії.

Чому анімація важлива?

Щоб модалка не «вистрибувала», додаємо анімацію:

  • Overlay: fade opacity 0 → 1 за 150ms.
  • Контейнер: scale(0.95) → scale(1) + opacity синхронно за 200ms.
  • Приховування швидше — 100ms.

Технічні параметри: використовуємо CSS transition або keyframes. Для React-проєктів — бібліотека framer-motion із presets. Приклад для overlay: transition: opacity 150ms ease-out;. Плавна анімація знижує когнітивне навантаження та покращує Core Web Vitals (LCP не страждає, оскільки модалка не впливає на завантаження).

Спливаючі елементи: Popover, Dropdown, Tooltip

Ці компоненти не блокують інтерфейс і не вимагають явного закриття:

  • Dropdown — відкривається під/над тригером, містить список дій або опцій. Закривається кліком ззовні або після вибору.
  • Popover — інтерактивний: може містити форму, список, підтвердження. Позиціонується з flip-логікою (змінює сторону, якщо не вміщується у viewport).
  • Tooltip — лише текст підказки, з'являється по hover/focus, зникає через 300ms.

Для дизайну важливо передбачити 12 варіантів позиціонування (top/bottom/left/right + start/center/end). У Figma це робиться через Variants з Auto Layout.

Як ми проєктуємо модальні вікна: 4 кроки

  1. Аналіз сценаріїв — визначаємо, які дії потребують модалки, а які — іншого компонента. У середньому 30% передбачуваних модалок замінюємо на popover.
  2. Прототипування — створюємо макети для small, medium, large та fullscreen у Figma. Враховуємо dark mode та стани.
  3. Анімація та доступність — прописуємо duration, easing, focus trap. Перевіряємо на скринридерах (NVDA, JAWS).
  4. Документація для розробки — експорт SVG, CSS-variables, опис станів. Це прискорює фронтенд на 40%.

Кейс: інтернет-магазин електроніки. Клієнт хотів модальне вікно для додавання товару в кошик. Після аудиту з'ясували, що 80% користувачів не помічають кнопку «Закрити». Додали focus trap та анімацію — bounce rate знизився на 25%. Вартість доопрацювання виявилася незначною порівняно з ефектом; типовий бюджет на такий проєкт визначається після аналізу. Зв'яжіться з нами, щоб оцінити ваш сценарій.

Що входить у роботу

Ми розробляємо повний набір модальних та спливаючих компонентів під ваш проєкт:

  • Figma-макет: модалки трьох розмірів, drawer, popover, dropdown, tooltip, confirmation dialog.
  • Усі варіанти станів (hover, active, disabled, error, empty).
  • Анімаційні специфікації (duration, easing, keyframes).
  • Адаптив для мобільних (fullscreen modal, модифікації позиціонування).
  • Передача в розробку: іконки, експорт SVG, стилізація через CSS-variables.

Строки: від 3 до 5 днів залежно від складності. Зв'яжіться з нами — оцінимо ваш проєкт під ключ.

Чому варто замовити дизайн модальних вікон у нас?

  • 10+ років досвіду у веб-дизайні та розробці інтерфейсів.
  • Понад 200 реалізованих проєктів із модальними вікнами та складною логікою взаємодії.
  • Гарантуємо доступність (a11y) у кожному компоненті.
  • Використовуємо сучасні стандарти: React Server Components, CSS Modules, Tailwind.

Замовте проєктування модальних вікон — отримаєте готові макети та документацію, які прискорять фронтенд-розробку. Отримайте консультацію — ми відповімо на будь-які запитання.

Чому дизайн без токенів ламає код, і як ми це виправляємо?

Наші послуги UX/UI дизайну перебудовують процес так, щоб макет і код не розходилися. Досвід — 5 років на ринку, 120+ реалізованих проєктів. Працюємо за договором з фіксованою гарантією термінів. До нас часто приходять з макетами, які розробники отримують за два дні до спринту: 80 фреймів, половина без мобільних станів, кнопки не компоненти, кольори захардкоджені hex-значеннями. Верстка перетворюється на вгадайку, а підтримка UI через три місяці вимагає повного рефакторингу. Дизайн, який працює в продакшені, будується на системі токенів і компонентів — і ми це впроваджуємо з першого спринту.

Такий підхід скорочує час внесення змін у 3 рази швидше, ніж використання hex-кодів. Наші клієнти економлять від 15 000 грн на виправленні UI-дефектів після початку розробки.

Як Figma стає інженерним інструментом?

Figma — це не просто «місце, де малюють». Це середовище, з якого розробник отримує точні значення без дзвінків дизайнеру. Ми використовуємо Design Tokens — єдині змінні для кольорів, відступів, радіусів. Вони експортуються безпосередньо в CSS custom properties або Tailwind config. Наприклад, color/primary/500, spacing/md, radius/button. Без токенів дизайн і код розходяться вже через місяць.

Покроковий процес перетворення

  1. Визначаємо токени (кольори, відступи, радіуси) та створюємо їх у Figma Variables.
  2. Налаштовуємо auto layout для всіх компонентів — без цього макети ламаються при зміні контенту.
  3. Створюємо variants для кожного стану (hover, active, disabled, focus).
  4. Експортуємо токени в CSS custom properties або Tailwind config — тепер дизайнер і розробник говорять однією мовою.
  5. Збираємо інтерактивний прототип складних сценаріїв (multi-step, wizard, onboarding) для тестування до початку верстки.

Auto layout — обов'язкова умова. Компоненти без авто-лейауту ламаються при зміні тексту. Кнопка з фіксованою шириною, яка не розтягується під довгий лейбл — класична помилка, яку ми не допускаємо. З variants в одному component set розробник бачить всі стани одразу. Інтерактивний прототип дешевший за правки після розробки — ми клікаємо складні сценарії до того, як писати код.

Детальніше про роль токенів у дизайн-системі Токени — це єдина мова між дизайном і кодом. Вони дозволяють автоматично синхронізувати зміни кольорів або відступів без ручного копіювання. Ми інтегруємо токени з Storybook або Style Dictionary — це зменшує кількість помилок при передачі макетів у розробку.

Що дають дизайн-системи і коли вони надмірні?

Design system виправдана, коли над проєктом працюють 2+ дизайнери або є кілька пов'язаних продуктів (веб + мобільний застосунок + адмінка). Для сайту-візитки ми обмежуємося UI kit з базовими компонентами. Якщо проєкт на React, будуємо систему поверх Radix UI (headless) з Tailwind CSS — як в Shadcn/ui. Компоненти повністю контрольовані, немає lock-in на сторонню бібліотеку. Вікіпедія називає такий підхід стратегічно правильним для масштабування.

Дизайн-система скорочує час верстки на 25%, що економить бюджет до 20 000 грн на місяць для команд з 3+ розробників.

Як ми забезпечуємо адаптивність без сюрпризів

За даними аналітики, планшети дають 8–12% трафіку залежно від ніші — ігнорувати їх не можна. Але ми не робимо «десктоп + мобільний» з трьома брейкпоінтами. Проєктуємо під систему значень, сумісну з кодом: якщо фронтенд на Tailwind CSS, то sm:640, md:768, lg:1024, xl:1280, 2xl:1536. Дизайнер працює з тими ж числами в Figma. Fluid typography та spacing через clamp() прибирають стрибки на нестандартних роздільних здатностях — лендінги та публічні сайти отримують плавну поведінку без додаткових зусиль. Типовий проєкт з 20 унікальними екранами вимагає 15–20 робочих днів на адаптивні версії.

Що входить в роботу (deliverables)

Ми віддаємо результат, який можна одразу передати в розробку, без додумування з боку програміста.

Етап Що отримуєте
UX-дослідження + IA Карта користувацьких шляхів, структура сторінок, звіт по точкам тертя
Wireframes (lo-fi) Grayscale-схеми для узгодження логики блоків
UI kit / design system Typography scale, color system, базові компоненти з variants в Figma Variables
Hi-fi мокапи Реальний контент, адаптивні версії під 5+ брейкпоінтів
Handoff-пакет Figma Dev Mode, експортовані SVG, анотації для нестандартних станів, посилання на токени

Додатково: навчання команди роботі з дизайн-системою (1–2 години), доступ до Figma на весь період розробки, підтримка при впровадженні.

Як ми гарантуємо якість UI

Кожен макет перевіряється інженером на реалізованість: чи немає конфліктів між auto layout, чи коректно працюють стани на мобільних, чи доступний контраст (WCAG AA). Ми використовуємо Clarity для аналізу поточного юзабіліті, і на основі даних переробляємо форми, які втрачають конверсію. Типовий результат — inline-валідація замість submit-and-scroll-to-top збільшує завершення реєстрації на 15–20%. Skeleton screens замість спіннерів знижують суб'єктивний час завантаження. Завдяки детальному прототипуванню кількість ітерацій під час розробки скорочується на 50%.

Як оцінити терміни та вартість дизайну?

Етап Термін
UX-дослідження + IA 3–7 робочих днів
Wireframes (10–20 екранів) 5–10 робочих днів
UI kit / design system 5–15 робочих днів
Hi-fi дизайн (10–20 екранів) 7–14 робочих днів
Адаптивні версії +30–50% до часу на мокапи

Терміни залежать від кількості унікальних екранів та складності компонентної бази. Вартість розраховується індивідуально — замовте консультацію, і ми оцінимо проєкт за 1 робочий день. Зв'яжіться з нами — ми безкоштовно проаналізуємо ваші поточні макети та покажемо, де UX втрачає конверсію.