Клиенты жалуются: «модалка глючит — нажимаю 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 шага
- Анализ сценариев — определяем, какие действия требуют модалки, а какие — другого компонента. В среднем 30% предполагаемых модалок заменяем на popover.
- Прототипирование — создаём макеты для small, medium, large и fullscreen в Figma. Учитываем dark mode и состояния.
- Анимация и доступность — прописываем duration, easing, focus trap. Проверяем на скринридерах (NVDA, JAWS).
- Документация для разработки — экспорт SVG, CSS-variables, описание состояний. Это ускоряет фронтенд на 40%.
Кейс: интернет-магазин электроники. Клиент хотел модальное окно для добавления товара в корзину. После аудита выяснили, что 80% пользователей не замечают кнопку «Закрыть». Добавили focus trap и анимацию — bounce rate снизился на 25%. Стоимость доработки составила 15 000 ₽, но окупилась за неделю. Типовой бюджет на такой проект — от 30 000 ₽. Свяжитесь с нами, чтобы оценить ваш сценарий.
Что входит в работу
Мы разрабатываем полный набор модальных и всплывающих компонентов под ваш проект:
- 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.
Закажите проектирование модальных окон — получите готовые макеты и документацию, которые ускорят фронтенд-разработку. Получите консультацию — мы ответим на любые вопросы.







