Модальное окно Modal

Модальное окно работает как системный диалог браузера. Оно появляется поверх страницы и блокирует доступ к содержимому под ним.

Между собой дизайнеры называют его модалкой.

Когда использовать

Используйте модальное окно, чтобы сосредоточить внимание пользователя или для вспомогательных страниц, которые требуются только в некоторых случаях. Как правило, это настройки, создание новых документов, заполнение небольших форм, пошаговый мастер. Например, заполнение адреса.

Не используйте модальное окно для больших форм, которые не помещаются в экран монитора.

Если важно оставить контекст страницы, лучше использовать сайдпейдж.

Описание работы

Модальное окно появляется поверх страницы, затемняя её. Это помогает сфокусировать внимание пользователя на конкретных действиях, не теряя при этом общий контекст.

Содержание

Модальное окно может состоять из:

  • Шапки — заголовка и крестика,
  • Контента,
  • Подвала — терминальной зоны с кнопками.

Заголовок

Если модальное окно предназначено для выполнения одной конкретной задачи, она должна быть отражена в заголовке. Заголовок должен быть кратким (1 — 3 слова) и являться названием процесса или объекта.

Заголовок модального окна «Создать счёт»Заголовок модального окна «Заполните реквизиты»

Неправильно

Заголовок модального окна «Создание счёта»Заголовок модального окна «Реквизиты»

Правильно

Но если модальное окно носит информационный характер, заголовок должен ёмко передавать суть сообщения:Заголовок модального окна «Воспользуйтесь другим браузером»

Если модальное окно используется для подтверждения, то пишите в заголовке вопрос.

Заголовок модального окна «Удалить контрагента?»

Действия

Чаще всего в модальном окне есть минимум два действия:

  1. Целевое действие — сохраняет проделанную работу или подтверждает вызванную ранее команду.
  2. Действие отмены или закрытия — закрывает модальное окно, не выполняя целевое действие.

Действия расположены слева направо. Чем правее действие, тем оно менее важное.

Дополнительные кнопки и ссылки располагайте справа.

Модальное окно «Подписка на рассылку» с полем «Почта» и радиокнопками. В подвале слева чёрная кнопка «Подписаться» и «Отменить», справа — дополнительная «Не напоминать больше» с отступом 32 px от правого края окна.

Закрытие модального окна

В правом верхнем углу модального окна расположен крестик для закрытия — делает то же самое, что действие отмены или закрытия.

Также модальное окно закрывается по нажатию клавиши Esc на клавиатуре.

Модальные окна, несущие чисто информационную функцию, могут закрываться при клике за пределами окна.

Не закрывайте модальные окна кликом за пределами окна, если в этом окне есть ценные данные пользователя, которые легко потерять. А лучше сохраняйте изменения автоматически.

Если пользователь изменил данные, то всегда уточняйте у него — сохранить данные или уйти без сохранения. Больше советов по работе с данными форм в гайде Сохранение данных.

Не делайте модальные окна, которые исчезают по таймауту — есть вероятность, что пользователь не увидит их или не успеет разобрать текст.

Мини-модальное окно

Используйте мини-модалку для диалоговых окон, в которых нет дополнительных контролов, мало контента или его совсем нет.

Мини-модалка с иконкой корзины, заголовком «Удалить отчёт?» и текстом по центру, внизу в ряд красная кнопка «Удалить» и кнопка «Отменить»

В мини-модалке кнопки могут располагаться вертикально и горизонтально.

Та же мини-модалка «Удалить отчёт?», но кнопки друг под другом во всю ширину: красная «Удалить», под ней «Отменить»

Если смысл третьей кнопки сильно отличается от остальных, то отодвиньте её.

Мини-модалка «Разрешить уведомления?» с иконкой колокольчика и тремя кнопками друг под другом: чёрная «Разрешить все», «Разрешить только основные» и отодвинутая ниже «Запретить»

У мини-модалки всегда должна быть иконка. Если подобрать иконку по смыслу не получается, используйте дефолтную.

Мини-модалка «Информационное сообщение» с иконкой «i» в круге и одной чёрной кнопкой «Понятно»

В некоторых случаях полезно красить иконку. Например, когда нужно привлечь внимание пользователя к опасному действию — удалению.

Мини-модалка «Не удалось переслать требование» с красной иконкой в виде перечёркнутого круга и кнопками «Повторить» и «Отменить» друг под другом

Дизайн

Модальное окно без заголовка:

Модальное окно без заголовка: вверху крупный текст и крестик, ниже поле «Почта», в подвале кнопки «Сохранить» и «Отменить»

Модальное окно без кнопок:

Модальное окно «Воспользуйтесь другим браузером» без кнопок: заголовок, крестик и текст со списком браузеров, от текста до низа окна 40 px

Обычно это информационное окно, которое можно только закрыть.

Модальное окно с терминальной плашкой:

Модальное окно «Заголовок», подвал с кнопками «Сохранить» и «Отменить» отделён линией. Отступы: сверху 24 px, по бокам 32 px, под заголовком 16 px, от текста до линии 40 px, над кнопками и под ними по 20 px, кликабельное поле крестика 72 × 72 px.

Модальное окно без терминальной плашки:

Модальное окно «Заголовок» без линии над кнопками: «Сохранить» и «Отменить» идут сразу за текстом, над ними и под ними по 20 px

Не используйте модальное окно без терминальной плашки, когда присутствуют поля, не выровненные по левому краю, или текст, выровненный по центру.

Модальное окно «Адрес места осуществления предпринимательской деятельности» без линии над кнопками: подписи «Страна» и «Адрес» слева, поля правее, сразу под ними кнопки «Отправить заявку» и «Отменить»

Неправильно

Размер и расположение

По горизонтали модальное окно позиционируется по центру. По вертикали — по центру и на 10 % смещено к верхней части окна браузера.

Модальное окно в браузере: по горизонтали по центру, по вертикали его середина на 40 % высоты от верхнего края экрана и на 60 % — от нижнего

Когда высота модального окна почти равна высоте окна браузера, задайте верхний отступ в 40 px. Это предотвратит прилипание окна к верхней границе экрана.

Большое модальное окно с отступом 40 px от верхнего края окна браузера

Размер модального окна должен соответствовать его содержимому — внутри окна не должно быть пустых областей.

В то же время, если контент требует большого экранного пространства — модальное окно должно иметь максимально возможный размер. Например, если внутри длинный список — модальное окно должно открываться на максимально возможную высоту, а скролл работать как описано ниже. Если интерактивная карта — максимальную высоту и ширину.

Если высота модального окна меняется при работе с ним, то такое окно лучше зафиксировать у верхней границы экрана с отступом, чтобы избежать неприятных скачков.

Прокрутка

Не делайте длинных модальных окон, которые выходят за границы экрана. Лучше сделать отдельную страницу или использовать сайдпейдж.

Если всё же высота контента внутри модального окна больше высоты браузера, то модальное окно открывается на всю высоту браузера и с отступом 40 px от верхнего края страницы. Контрол скролла появляется у всей страницы, а не внутри модального окна. Контент страницы под модальным окном не должен скроллиться.

Во время скролла модальное окно занимает всю высоту окна без отступов, а после скролла до нижнего края — позиционируется с отступом 40 px от нижнего края страницы.

Верх длинного модального окна «Заголовок»: отступ 40 px от верхнего края браузера, полоса прокрутки справа у всей страницы
Низ того же окна после прокрутки: кнопки «Сохранить» и «Отменить», под окном отступ 40 px до нижнего края браузера

Залипающие элементы

Шапка и подвал могут залипать, если для пользователя важно видеть название и управлять действиями. При этом окно так же открывается с отступом от верхнего края окна браузера, и скроллится до появления отступа снизу.

Модальное окно «Лицензионный договор № 5/21» с длинным текстом открыто с отступом 40 px от верха браузера, кнопки «Закрыть» и «Скачать копию» залипли у нижнего края экрана
То же окно во время прокрутки: занимает всю высоту браузера без отступов, заголовок залип вверху, кнопки — внизу
То же окно, прокрученное до конца: заголовок залип вверху, а под окном отступ 40 px до нижнего края браузера

Следите за тем, чтобы контент страницы или модального окна не скакал при открытии и закрытии окна или открытии новых модальных окон. Такое случается при появлении или исчезновении скролл-бара — со скролл-баром страница становится у́же.

Наложение модальных окон

Всеми силами старайтесь избегать вложенности модальных окон.

Если поверх модального окна открывается ещё одно, то затемнение не множится, а все открытые ранее модальные окна помещаются под него.

Модальное окно «Подписка на рассылку» поверх модального окна «Заголовок»: страница затемнена дважды и темнее нижнего окна

Неправильно

Модальное окно «Подписка на рассылку» поверх окна «Заголовок»: страница и нижнее окно под одним общим затемнением

Правильно

Доступность

Управление клавиатурой

Если модальное окно содержит поля ввода, при открытии окна на десктопе ставьте фокус в первое поле автоматически. На мобильных устройствах, где фокус открывает виртуальную клавиатуру, такое поведение лучше отключать.

При открытом модальном окне нажатие Tab не переводит фокус на элементы страницы, фокус переходит только по элементам модального окна, включая крестик.

Клавиша Esc закрывает модальное окно.