Identify different Dropdown implementations in the GitLab code base
This issue aims to document the current state of Pajamas-compliant dropdowns.
History
Existing legacy dropdown implementations were identified a while ago, and were categorised for #346804 (closed) into one of five types:
-
dropdownlistbox
- For selecting one or more predefined options (e.g., sort field). See https://design.gitlab.com/components/dropdown-listbox/.
-
dropdowndisclosure
- For a list of links/other controls (e.g. navigation). See https://design.gitlab.com/components/dropdown-disclosure/
-
dropdowncombobox
- For selecting one or more options, some predefined (e.g., labels). See https://design.gitlab.com/components/dropdown-combobox/
- ~"dropdown::menu"
- For replicating a desktop application's main menu bar (very rare). See https://design.gitlab.com/components/dropdown-menu/
- ~"dropdown::unknown"
- Uncategorised. Probably shouldn't even be a dropdown.
Click on the labels to list issues which identify instances which should be implemented by Pajamas-compliant components of that type.
Links
Status table
| Type | Pajamas-compliant implementation(s) | Semgrep issue(s)/MR(s) | Notes |
|---|---|---|---|
| dropdownlistbox |
|
~80% of dropdowns will be this type. | |
| dropdowndisclosure |
|
~15% of dropdowns will be this type. | |
| dropdowncombobox |
|
The existing GlFormCombobox lacks various features, so
it's not yet fit for purpose.
~5% of dropdowns will be this type. |
|
| ~"dropdown::menu" |
|
|
~0% of dropdowns will be this type. |
| ~"dropdown::unknown" | n/a | n/a: too ad hoc to identify automatically | These probably shouldn't be dropdowns at all. |
Edited by Mark Florian