Skip to content

Select / Multiselect

Components3.6.17

Description

Select is a component for selecting one or more values from the list. Optionally, it may contain search input, titles, buttons, grouping and nesting.

The component consists of:

  • trigger (described in this guide);
  • dropdown.

Trigger

For a select trigger you can use the following BaseTrigger types:

BaseTrigger type Appearance example
BaseTrigger. Has two sizes: M and L.
LinkTrigger (looks like a Link, but it's a button). Use it in two sizes: 14px text and 16px text.
LinkTrigger with the color of text (looks like a Link, but it's a button). Use it in two sizes: 14px text and 16px text.
Size ButtonTrigger LinkTrigger LinkTrigger with the color of text
M
L

Maximum width

If trigger has a maximum width, then collapse long values into the ellipsis. When hovering, show the tooltip with the full value name.

Trigger states

State ButtonTrigger LinkTrigger LinkTrigger with the color of text
Default
Hover, active
Placeholder
Loading
Valid
Invalid
Disabled

Trigger content

The select trigger can contain an icon, flag or other addon before the text.

Badge should be placed to the right of the text. For all sizes, the margin between the badge and the text is 8px.

Dot should be placed in the upper right corner of the trigger.

Button Link as Button Link (as Button) with the color of text
Flag
Icon
Avatar
Badge

You can read about the dropdown list, its content and states in Dropdown-menu.

Multiselect

Multiselect is a select with the functionality to choose several items from a list. Items in such a list are represented by checkboxes.

If the list includes more than 10 values, add a search input. Otherwise, it will be difficult for the user to navigate among all values.

Search input should receive the focus state when user opens the list. It will help the user to avoid extra clicks.

Select all

If you have more than three values, add the "Select all" option at the very beginning of the list. When everything is selected, change it to "Deselect all".

Specific cases for multiselect

In long lists (for example, in the list of countries), the values selected by the user should be pinned to the very top of the list when the user has closed/opened the select.

User opened select and started selecting the values. User closed select. User has reopened select, and the values he selected are pinned at the very top of the list. When unchecking these values, they remain in the same place.

Displaying the selected values in the trigger

Appearance example
If nothing is selected, write Select + the required value.
If everything is selected, write All.
If user selected 1 or 2 values, show them in the trigger listing them with commas. If they do not match, add the text in ellipsis.
The select has a label. If more than 2 values are selected, add them to the Label: N selected construction.
The select does not have a label. If more than 2 values are selected, add them to the N selected construction.

If user searches for something and clicks "Select all" or "Deselect all", all found results will be selected or deselected. Other values, those that have not been searched for, do not change their state.

For example, if the user has selected the "Gunship" and then search for the "A" bands, then clicked "Select all", three more visible bands will be selected. As a result, four values will be marked as selected (three bands that started with "A" and the previously checked "Gunship").

Do not show "Select all" or "Deselect all" at the time when the user has searched and got no results.

Limit on value selection

  • Sometimes user selection can be limited by the number of required values.
  • In this case, once the user has selected the required number, all other values should receive the disabled status.
  • Inform the user that the choice is limited. This can be done, for example, by putting a hint next to the input's label. Also you can add a tooltip to the values in the disabled state that explains why they are in this state.

We recommend hiding the "Select all" and "Deselect all" buttons for the lists with limitations, because for such cases user cannot select or deselect all options due to limitations.