Dropdown creates a dropdown menu, with optional sections, headings, icons, checkbox items, radio group items and disabled items. Submenus are supported but should be avoided where possible for usability reasons.
API status: | general |
---|---|
Web resource key: |
com.atlassian.auiplugin:aui-dropdown2
|
AMD Module key: | N/A |
Experimental API: | 5.9 |
General API: | 6 |
Web Component API: | 5.9 |
Associate a button that acts as the dropdown's trigger
(class="aui-dropdown2-trigger"
) to the
dropdown menu (aria-controls
attribute to the id
of the dropown menu.
An
To give a section a heading add the label
attribute:
Use href
attribute specified to add link items to a dropdown.
To add a submenu to a dropdown, create an for
attribute of the
id
of the
Use
Listen to change
events fired by
checked
attribute
to determine whether the item was checked or unchecked:
Similar to checkboxes, use
Listen to change
events fired by the checked
attribute to differentiate between the two:
If you require icons in your dropdown menus then unfortunately, at this time the dropdown web component does not support what you want to achieve. Fortunately you can still use the existing dropdown2 HTML component to achieve this. Documentation for the dropdown2 HTML component can be found here: Dropdown2 HTML componentent documentation
A dropdown will be left-aligned and will extend to the right unless there is no space in its container, in which case it will flip and extend to the left. By default, this container is the viewport.
In order to specify a container for alignment, set the data-aui-alignment-container
attribute
to a selector matching the container element:
The size of the dropdown can be controlled by adding the aui-list-truncate
class to the min-width
and max-width
styles to the
Options will be truncated to a single line matching the specified width:
To apply a disabled style to a dropdown item, set the disabled
attribute on the item.
Disabling an item will prevent links from being followed, and checkboxes and radio buttons from being checked.
To hide a section or menu item in a dropdown, set the hidden
attribute on the item.
Hidden items will not appear when the dropdown menu is displayed.
On some occasions, it may be necessary to create a dropdown trigger without
the arrow which is displayed by default.
If this is required, you can add the aui-dropdown2-trigger-arrowless
class to the trigger.
A dropdown can fetch its contents from a remote source which returns a JSON response matching the given specification.
To load contents from a remote source, set the src
attribute to the URL of the remote endpoint.
The remote endpoint must return a JSON response containing an array of objects representing sections and menu items.
Each object must specify whether it is a section, link, checkbox, or radio button item using the type
property:
Property | Type | Description |
---|---|---|
type |
String |
The type of the dropdown item. Must be one of:
|
You may also provide additional properties, depending on the type of the item. Note that these properties closely mirror the attributes available in the markup API:
Item Type | Property | Type | Description |
---|---|---|---|
section |
label |
String |
The label for a section. The object must have the type property set to section . |
section |
items |
Array |
An array containing the child items of the section. |
link |
for |
String |
The id of the aui-dropdown-menu submenu. |
link |
href |
String |
The target URL of the link item. |
link , checkbox , radio |
content |
String |
The text content of the item. |
link , checkbox , radio |
disabled |
Boolean |
Sets the disabled property for the item. |
link , checkbox , radio |
hidden |
Boolean |
Sets the hidden property for the item. |
link , checkbox , radio |
interactive |
Boolean |
Sets the interactive property for the item. |
checkbox , radio |
checked |
Boolean |
Sets the checked property for the item. |
The core structure of this JSON is a list of sections, each section containing an optional label
property
and a mandatory items
property.
The items
array closely reflects the markup pattern – the type
property corresponds to the
component's tagname, and the attributes are listed as properties of the same name.
Boolean attributes must take a value of either true
or false
,
otherwise the value of each property will be inserted into the corresponding attribute directly.
Name | Attribute | Property | Type | Description |
---|---|---|---|---|
src |
String | The URL of the remote source that returns a JSON response containing the dropdown contents to template. | ||
data-aui-alignment-container |
String | A selector matching the container element to use for alignment. |
Name | Attribute | Property | Type | Description |
---|---|---|---|---|
label |
String | The text that will appear in the heading of a dropdown section. | ||
class="aui-list-truncate" |
String | Add this class to min-width and max-width styles. |
Name | Attribute | Property | Type | Description |
---|---|---|---|---|
for |
Boolean | The id of another dropdown that this link will open as a submenu. |
||
href |
Boolean | The target URL of the link item. | ||
disabled |
Boolean | If set, the dropdown item will not be selectable by the user. | ||
hidden |
Boolean | If set, the dropdown item will not be visible. | ||
interactive |
Boolean | If set, the dropdown item will not close when clicked. |
Name | Attribute | Property | Type | Description |
---|---|---|---|---|
checked |
Boolean | If set, the dropdown item will be selected. | ||
disabled |
Boolean | If set, the dropdown item will not be selectable by the user. | ||
hidden |
Boolean | If set, the dropdown item will not be visible. | ||
interactive |
Boolean | If set, the dropdown item will not close when clicked. |
Name | Attribute | Property | Type | Description |
---|---|---|---|---|
checked |
Boolean | If set, the dropdown item will be selected. | ||
disabled |
Boolean | If set, the dropdown item will not be selectable by the user. | ||
hidden |
Boolean | If set, the dropdown item will not be visible. | ||
interactive |
Boolean | If set, the dropdown item will not close when clicked. |