Table of Contents |
---|
Description
Status | ||||
---|---|---|---|---|
|
A drop-down menu consists of related content grouped together and organized vertically.
It allows users to search and select a single one or multiple values from a list of predefined values. An optional search field can help the user to find values easily.
Example:
Types
Type | Visual Image |
---|---|
Regular dropdown Menudrop-down | |
Multi Select searchable Dropdown-select searchable drop-down |
Usage & Behavior
General guidelines
...
Structure
A The drop down menu can have a preceding label, or not (see example below).
When exists, the label informs the users what to expect in the options list.
Structure
The drop-down consists of:
...
Select trigger: opens the option list and presents the selected value/s.
...
-down consists of:
Select trigger. Selecting the closed drop-down field should open the options list.
Options list. Displays the list of available values. Each option:
must have a short text label
can also have an associated icon
(Optional) Action icons
...
can add extra functionality
...
for each option when hovered.
...
These icons
...
should display a tooltip describing the action
...
Text vs. icons and text
...
on hover.
(Optional) A preceding label can inform the user about the options included in the drop-down.
Selection indicator. Where an option has already been selected, it should be shown in the options list with a blue check mark on the left side.
Text labels | |
Icons and text labels | |
Action icons Selection indicator |
Order
Choose one of the following styles to order the content:
...
Logical: Sort items into a meaningful order. Group related options together and show the most common options first, followed by less common options.
...
Preceding label |
Default State
The drop-down consists of a text box showing a default value, if one exists. For example:
...
If not:
Where a preceding label is used, the default text will be "Select".
...
Where there is no label, the default text will be "Select a {NameOfEntity}". For example, "Select a queue".
...
Content
The options should be ordered using one of these patterns:
Logical. Sort options into a meaningful order. For example, group related options together, and order by the most common to least common.
Alphabetical. If there are more than 8 options available, sort them alphabetically. This helps the user to find the right option quickly. Sort currencies, names, and similar content alphabetically.
Numeric:. Sort numeric values into in a sequential order, with the lowest number first.
Chronological:. Sort time-related information into chronological order, with the most recent first.
Default Values
The drop down consists of a text box showing a default value, if exists. For example:
...
If not:
If a label exists, the default text will be "Select".
...
If there is no label, the default text will be "Select a {NameOfEntity}". For example, "Select a queue".
...
Internal Logic
...
recent first.
Internal Logic
Users need to select one option exclusively from a short list.
There should be a minimum of 3 options.
The user may select an item either by using the mouse and clicking, or by using the Up and Down keys to navigate between options and Enter to select.
On selection, the options list will close.
The selected item will be presented in the select trigger area.
States
State | Visual | Visual- searchable | Visual- multi select | Visual- multi select searchable |
---|---|---|---|---|
Regular | ||||
Hover | ||||
Active | ||||
Selected | ||||
Disabled | ||||
Error | ||||
Warning | ||||
Focused, Regular | ||||
Focused, Hover | ||||
Focused, Active | ||||
Focused, Disabled |
Interaction
Description | Visual | |
---|---|---|
Regular state | The Select field always displays either
See the Default State section above. | |
Hover | ||
Click (anywhere in the dropdown area)a closed drop-down |
| |
Select an item | Once the user selects On selecting an option, :
| |
Clicking Click a dropdown drop-down with an existing selection |
|
Additional Types
...
Searchable drop-down
A search Search field should be added to options list lists with more than over 15 items, and when users are expected likely to know what they are looking for.
Internal Logic
The search field will be auto-focused when clicking the select trigger areathe options list opens, so that the user may start searching immediately.
The search field will operate as a Live Search.
The user may select an item either by using the mouse and clicking, or by using the ‘up’ Up and ‘down’ Down keys to navigate between items options and ‘Enter’ Enter to selectSelected .
On selection, the options list will close.
The selected item will be presented in the select trigger area and the option list will close trigger area.
Interaction
Description | Visual | |
---|---|---|
Click (anywhere in the dropdown area)a closed drop-down |
| |
Enter search |
| |
Selection of Select an item | Once | the user selects On selecting an option, :
|
Clicking Click a dropdown drop-down with an existing selection |
|
Multi Select
...
drop-down
A multi selection dropdown drop-down allows users to easily search and select multiple values from a menu predefined list.
Internal Logic
Selected items
The selected items are presented in the select trigger area as read-only.
2 or more items are presented one after the other, separated by a comma.
When the selection of selected items exceeds exceed the size of the containertrigger area, the names labels will be replaced by the total number of selections.
When space is a constraint and/or the user is expected to select many items, a Select All option can be added:
Select All (optional)
...
“All” may is a master type checkbox, which controls the state of all the other checkboxes in the list. See Check Box for the full behaviour).
“All” should be presented at the top of the list, operates as a master type checkbox (see full behaviour on Check Box)options list.
When all items are selected, the select trigger area shows “All”should show “All” instead of a number.
Use the “All” option when:
The user is expected to select all or most of the items.
The list is very long (so it will allow the user to easily clear all selections).
Interaction
Step | Visual | Description | ||||
---|---|---|---|---|---|---|
Click (anywhere in the dropdown area) | Selection of item | The item a closed drop-down |
| |||
Select an item |
More than 1 item is selected - Regular vs. exceeds the container space
| |||||
Multiple items selected |
| |||||
Click on the select trigger area or outside the control |
|
Multi
...
-select Searchable drop-down
Interaction
Step | Visual | Description | |||||
---|---|---|---|---|---|---|---|
Click (anywhere in the dropdown area) |
| Search- the user enters a search string | Selection of a closed drop-down |
| |||
Enter Search |
| ||||||
Select an item |
| Delete of searched string (manually or by clicking the “x” button) |
| ||||
Delete search string |
|
Validations and errors
Please refer to Field validation page for more information.
An example for a drop-down menu with a warning:
An example for a drop-down menu with an error:
Best practices
Use when:
The options list is small-medium in size and space .
Space is constrained.
Use the searchable type when:
there are more than 15 item and the user knows what he’s looking for (and aware, to some extent, how it's named in the option list) options.
when users are expected to know what they are looking for, and are likely to be aware of how the option is labelled.
Don’t use when:
The list has less fewer than 3 options.
The list has fewer than 7 options and the user needs to see them all at once. Use radio buttons or Check boxboxes instead.
The user needs to enter a value which is not in the list. Use a combo box instead.
The list is large. Use Dual List Selector or List instead.
General:
Only show a scrollbar when the list with has over 8 items should show a scrollbar.
Keep the text values as short as possible, because the list uses single lines only.
The option list should adapt its length to the longest entry by default, but values that are too long may be truncated, having with a tooltip displaying their the full text (not recommended) - There is no horizontal scrolling in the . The option list may not have a horizontal scroll.
Place options that represent All or None at the beginning of the list, regardless of the sort order of the remaining items.
Do not allow the control to auto-adjust based on the selection.
If there’s no label, or if the label is not indicative enough, the selected item type should be indicated within the dropdown:
added within the drop-down, after the number of selections:
Design
Zeplin Link | Screen Thumbnail |
---|---|
...
New LUX design
Html macro | ||
---|---|---|
| ||
<link rel="stylesheet" href="https://ux.verint.com/fonts/css/verint_lux.css"> <link rel="stylesheet" href="https://ux.verint.com/bootstrap-4.0.0/dist/css/bootstrap.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://ux.verint.com/bootstrap-4.0.0/dist/js/bootstrap.bundle.js"></script> <script src="https://ux.verint.com/bootstrap-4.0.0/dist/other/accessibility.js"></script> <script src="https://ux.verint.com/bootstrap-4.0.0/dist/other/prism.min.js"></script> <link rel="stylesheet" href="https://ux.verint.com/bootstrap-4.0.0/dist/other/prism-coy.min.css"> <div class="card"> <div class="card-header">Menu Button <button id="toggleMarkup" type="button" class="btn btn-sm btn-outline-primary btn btn-fixed-width float-right m-0" onclick="$('pre' ).toggle()">Toggle Markup</button></div> <div class="card-body"> <form> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Regular</label> <div class="col-lg-4"> <button class="btn btn-outline-light btn-sm btn-fixed-width dropdown-toggle menu-dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Menu</button> <div class="dropdown-menu dropdown-menu-sm"> <a class="dropdown-item" href="#">First Option</a> <a class="dropdown-item" href="#">Second Option</a> <a class="dropdown-item" href="#">Third Option</a> <a class="dropdown-item" href="#">Fourth Option</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Fifth Option</a> </div> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button class="btn btn-outline-light btn-sm btn-fixed-width dropdown-toggle menu-dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Menu</button> <div class="dropdown-menu dropdown-menu-sm"> <a class="dropdown-item" href="#">First Option</a> <a class="dropdown-item" href="#">Second Option</a> <a class="dropdown-item" href="#">Third Option</a> <a class="dropdown-item" href="#">Fourth Option</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Fifth Option</a> </div></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Disabled</label> <div class="col-lg-4"> <button class="btn btn-outline-light btn-sm btn-fixed-width dropdown-toggle menu-dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>Menu</button> <div class="dropdown-menu dropdown-menu-sm"> <a class="dropdown-item" href="#">First Option</a> <a class="dropdown-item" href="#">Second Option</a> <a class="dropdown-item" href="#">Third Option</a> <a class="dropdown-item" href="#">Fourth Option</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Fifth Option</a> </div> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button class="btn btn-outline-light btn-sm btn-fixed-width dropdown-toggle menu-dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>Menu</button> <div class="dropdown-menu dropdown-menu-sm"> <a class="dropdown-item" href="#">First Option</a> <a class="dropdown-item" href="#">Second Option</a> <a class="dropdown-item" href="#">Third Option</a> <a class="dropdown-item" href="#">Fourth Option</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Fifth Option</a> </div></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Error</label> <div class="col-lg-4"> <button class="btn btn-outline-light btn-sm btn-fixed-width dropdown-toggle menu-dropdown-toggle is-invalid" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Menu</button> <div class="dropdown-menu dropdown-menu-sm"> <a class="dropdown-item" href="#">First Option</a> <a class="dropdown-item" href="#">Second Option</a> <a class="dropdown-item" href="#">Third Option</a> <a class="dropdown-item" href="#">Fourth Option</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Fourth Option</a> </div> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button class="btn btn-outline-light btn-sm btn-fixed-width dropdown-toggle menu-dropdown-toggle is-invalid" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Menu</button> <div class="dropdown-menu dropdown-menu-sm"> <a class="dropdown-item" href="#">First Option</a> <a class="dropdown-item" href="#">Second Option</a> <a class="dropdown-item" href="#">Third Option</a> <a class="dropdown-item" href="#">Fourth Option</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Fifth Option</a> </div></script></code></pre> </div> </div> </form> </div> </div> |
...