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

Раскрывающийся список позволяет выбрать значение из заранее известного набора вариантов.

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

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

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

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

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

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

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

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

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

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

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

Название

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

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

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

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

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

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

Ширина списка должна быть не меньше ширины кнопки. Красиво, когда список шире кнопки на 30−40 px.

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

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

Список раскрывается вниз. Минимальная высота списка со скроллингом 200 px. При наличии места список стремится отобразить максимум вариантов и расширяется до высоты 450 px. Исключение — если раскрывающийся список находится на панели, закрепленной у нижней границы окна. В таком случае он открывается вверх.

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

Фокус и работа с клавиатурой

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

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

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

Валидация

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

Дизайн

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

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

Выпадающий блок раскрытого списка имеет тень.

В момент нажатия:

В списке выбранный вариант выделяется серым фоном, фон пункта под курсором — светло-серым. 

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

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

Список можно разделить на группы с заголовком или без. При наведении заголовок не подсвечивается, курсор превращается в стрелку.

Состояния:

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

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

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

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

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

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

Поиск

При наличии поля поиска, раскрытие списка автоматически ставит фокус в это поле.

При вводе в поле поиска список фильтруется, количество пунктов уменьшается, сокращая высоту списка.