Раскрывающийся список Select

В раскрывающемся списке (селекте) можно выбрать значение из заранее известного набора вариантов.

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

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

Используйте селект для выбора одного значения из 5 — 25 вариантов:

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

Если значений в списке до 5, лучше использовать группу радиокнопок или  переключатель. Если значений больше 25 — используйте комбобокс.

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

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

Смена состояний селекта: пустой селект под курсором, затем открытый список «Автоматический режим», «Ручной режим», «Экономичный режим» с курсором на втором пункте, затем селект той же ширины со значением «Ручной режим»

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

Если селект используется для настройки параметров, в нём сразу выбрано значение, соответствующее текущему состоянию системы. Это даёт пользователю возможность вернуть настройку в первоначальное состояние. 

Селект без значения, с серым плейсхолдером «Выберите подписанта»

Неправильно

Селект с выбранным значением «Подпись руководителя»

Правильно

Если невозможно выбрать значение за пользователя, то поле остаётся пустым или с плейсхолдером-призывом к заполнению — например, «Выберите». В списке вариантов плейсхолдер не показывается.

Два селекта без значения: пустой и с серым плейсхолдером «Выберите подписанта»

Чтобы пользователь мог отменить выбор, добавьте в список соответствующий пункт. Например, «Все», «Любой», «Неважно». Отделите такой пункт линией.

Открытый селект с плейсхолдером «Выберите тип»: в списке пункт «Любой», под ним линия, затем «Отчёт», «Акт» и «Требование»

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

Название

Названия селекта и вариантов пишутся с заглавной буквы и формулируются так, чтобы:

  • было понятно, что можно выбрать только 1 вариант;
  • названия не содержали повторяющуюся часть;
  • название селекта не дублировалось в вариантах списка.
Открытый селект с плейсхолдером «Выберите тип», в списке пункты «Любой тип документа», Тип «Отчёт», Тип «Акт» и Тип «Требование»

Неправильно

Открытый селект с плейсхолдером «Выберите тип», в списке пункты «Любой», «Отчёт», «Акт» и «Требование»

Правильно

В подписи к селекту нельзя писать слова «Выберите», «Укажите» и т. д.

Пустой селект, над ним подпись «Выберите настройку»

Неправильно

Пустой селект, над ним подпись «Настройка»

Правильно

Дизайн

Селект внешне похож на кнопку, но радиус скругления его углов повторяет радиус скругления поля ввода.

Текст в селекте выравнивается по левому краю. По правому краю — иконка стрелки стрелка внизиз библиотеки интерфейсных иконок.

У раскрывающегося списка есть тень.

Пункты списка можно дополнять пояснениями. 

Открытый селект: у трёх пунктов списка с иконками под названием серое пояснение, например у «Ручной режим» — «Настройка параметров вручную»

Список можно разделить на группы с заголовком или без. Заголовки не могут быть кликабельными.

Открытый селект, список разделён линиями на три группы: у первой серый заголовок «Тип хозяйственной операции» и пункты с пояснениями, например «Авансовый отчёт», у второй и третьей заголовка нет

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

Ширина кнопки должна быть такой, чтобы большая часть значений из списка помещалась полностью:

Узкий селект с плейсхолдером, обрезанным многоточием: «Выберите нас…»

Неправильно

Селект с плейсхолдером «Выберите настройку», текст помещается целиком

Правильно

Если выбранное значение не помещается, появляется многоточие:

Селект с серым плейсхолдером, обрезанным многоточием: «Выберите настройку отображе…»

Раскрывающийся список не может быть меньше селекта по ширине.

Открытый селект с плейсхолдером «Выберите тип», список уже селекта и не доходит до его правого края

Неправильно

Открытый селект с плейсхолдером «Выберите тип», список примерно той же ширины, что и селект

Правильно

Красиво, когда список шире селекта на 24 — 40 px.

Открытый селект с плейсхолдером «Выберите тип», список шире селекта и выступает за его правый край

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

Открытый пустой селект: длинные названия пунктов перенесены на вторую строку, например «Управление проектами, задачами и дедлайнами команды»

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

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

Обычно список раскрывается вниз. Минимальная высота списка со скроллингом — 200 px. При наличии места список стремится отобразить максимум вариантов и расширяется до высоты 450 px.

Исключение — если раскрывающийся список находится у нижней границы окна. В таком случае он открывается вверх.

Схема окна: поверх затемнённой страницы открыта боковая панель, в её нижней строке у края окна селект, его список открыт вверх

Валидация

Блокируйте или убирайте из списка варианты, выбор которых приведёт к ошибке. Таким образом, валидация понадобится только для проверки на обязательность выбора.

Пустой селект в красной рамке, под ним красный текст «Выберите один из вариантов»

Доступность

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

Раскрывающийся список получает фокусную обводку только при переходе клавишей Tab. При клике фокусная обводка не появляется.

Пустой селект в фокусе — вокруг него чёрная рамка

В свёрнутом состоянии клавиши Enter и ↓ раскрывают список и перемещают ховер на первый пункт в списке.

Селект в фокусе с открытым списком: первый пункт «Автоматический режим» подсвечен, ниже «Ручной режим» и «Экономичный режим»

В развёрнутом состоянии клавиши ↑ и ↓ перемещают ховер, а по Enter происходит выбор. После этого фокус переходит на следующий контрол.

Адаптивность

Список раскрывается на всю ширину экрана с отступами 16 px от левого и правого края и 40 px от нижнего.

Вверху списка всегда располагается заголовок.

Телефон с затемнённой страницей: внизу экрана открыт список на всю ширину с отступами от краёв — серый заголовок «Выберите режим работы» и пункты «Автоматический режим», «Ручной режим», «Экономичный режим»

Высота списка зависит от количества пунктов внутри него. При большом количестве пунктов список сохраняет отступ в 40 px от верхнего края экрана.

Телефон: длинный список с серым заголовком «Выберите формат документа» открыт почти на весь экран — сверху видна узкая полоса затемнённой страницы, внизу список уходит за край экрана

Список всегда скроллится вместе с заголовком, поиском и подвалом, даже если они добавлены в него как залипающие элементы для десктопной версии.

Если список длинный и не входит в видимую часть экрана, то он скроллится до крайнего положения с отступом в 80 px от нижней части.

Тот же список прокручен до конца: заголовок и первые пункты ушли за верхний край, последний пункт — «Прочие документы», под ним отступ до низа экрана