Dropdown New Dropdown menu displays a list of actions or selectable options for a user. Dropdown uses popout component internally to create the overlay functionality.
Example: Basic Example: Clinic switcher Example: Complex Example: Grouping Example: Position and alignment Example: Position Theme: Nord light Theme: Nord dark View RTL < nord-stack direction = " horizontal" justify-content = " center" style = " margin-bottom : calc ( var ( --n-space-xxl) * 3) " > < nord-dropdown> < nord-button slot = " toggle" > Menu</ nord-button> < nord-dropdown-item href = " #" > View profile</ nord-dropdown-item> < nord-dropdown-item> Settings</ nord-dropdown-item> < nord-dropdown-item> Show keyboard shortcuts</ nord-dropdown-item> < nord-dropdown-item> Help & Support</ nord-dropdown-item> < nord-dropdown-item> API</ nord-dropdown-item> < nord-dropdown-item> Sign out</ nord-dropdown-item> </ nord-dropdown> </ nord-stack>
< nord-dropdown> < nord-button slot = " toggle" expand variant = " switch" > < span slot = " start" aria-hidden = " true" class = " n-clinic-icon" > B</ span> Bath Clinic < nord-icon slot = " end" class = " n-margin-i-s" color = " var(--n-color-icon)" name = " interface-dropdown-small" size = " s" > </ nord-icon> </ nord-button> < nord-dropdown-group style = " min-inline-size : 270px" heading = " laura.williams@nordhealth.com" > < nord-dropdown-item> < span aria-hidden = " true" slot = " start" style = " --n-icon-size : calc ( var ( --n-size-icon-l) / 1.2) " class = " n-clinic-icon" > B </ span> Bath Clinic < nord-icon slot = " end" name = " interface-checked" size = " s" > </ nord-icon> </ nord-dropdown-item> < nord-dropdown-item> < span aria-hidden = " true" style = " --n-icon-color : var ( --n-color-status-success) ; --n-icon-size : calc ( var ( --n-size-icon-l) / 1.2) " slot = " start" class = " n-clinic-icon" > O </ span> Ocean Beach Clinic </ nord-dropdown-item> < nord-dropdown-item> < span aria-hidden = " true" style = " --n-icon-color : var ( --n-color-status-info) ; --n-icon-size : calc ( var ( --n-size-icon-l) / 1.2) " slot = " start" class = " n-clinic-icon" > P </ span> Park Animal Hospital </ nord-dropdown-item> < nord-dropdown-item> < span aria-hidden = " true" style = " --n-icon-color : var ( --n-color-status-danger) ; --n-icon-size : calc ( var ( --n-size-icon-l) / 1.2) " slot = " start" class = " n-clinic-icon" > B </ span> Balboa Pet Hospital </ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-group> < nord-dropdown-item> Add another clinic</ nord-dropdown-item> < nord-dropdown-item> Customize style</ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-item> Sign out from all clinics</ nord-dropdown-item> </ nord-dropdown>
< nord-stack direction = " horizontal" justify-content = " center" style = " margin-bottom : calc ( var ( --n-space-xxl) * 4) " > < nord-dropdown> < nord-button size = " s" slot = " toggle" > < nord-visually-hidden> Menu</ nord-visually-hidden> < nord-icon size = " s" name = " interface-menu-small" style = " transform : translateY ( 1px) ; color : var ( --n-color-icon) " > </ nord-icon> </ nord-button> < nord-dropdown-group heading = " Account" > < nord-dropdown-item href = " #" > < nord-icon slot = " start" name = " user-single" size = " s" > </ nord-icon> View profile < nord-icon slot = " end" name = " interface-checked" size = " s" > </ nord-icon> </ nord-dropdown-item> < nord-dropdown-item> < nord-icon slot = " start" name = " navigation-settings" size = " s" > </ nord-icon> Settings </ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-group> < nord-dropdown-item> < nord-icon slot = " start" name = " generic-keyboard" size = " s" > </ nord-icon> Show keyboard shortcuts </ nord-dropdown-item> < nord-dropdown-item> < nord-icon slot = " start" name = " interface-help" size = " s" > </ nord-icon> Help & Support </ nord-dropdown-item> < nord-dropdown-item> < nord-icon slot = " start" name = " file-script" size = " s" > </ nord-icon> API </ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-item> Sign out < nord-icon slot = " end" name = " interface-logout" size = " s" > </ nord-icon> </ nord-dropdown-item> </ nord-dropdown> </ nord-stack>
< nord-stack direction = " horizontal" justify-content = " center" style = " margin-bottom : calc ( var ( --n-space-xxl) * 4) " > < nord-dropdown> < nord-button slot = " toggle" > Menu</ nord-button> < nord-dropdown-group heading = " Account" > < nord-dropdown-item href = " #" > View profile</ nord-dropdown-item> < nord-dropdown-item> Settings</ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-group> < nord-dropdown-item> Show keyboard shortcuts</ nord-dropdown-item> < nord-dropdown-item> Help & Support</ nord-dropdown-item> < nord-dropdown-item> API</ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-item> Sign out</ nord-dropdown-item> </ nord-dropdown> </ nord-stack>
< nord-dropdown expand > < nord-button slot = " toggle" expand > Default</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " start" > < nord-button slot = " toggle" expand > align="start"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " end" > < nord-button slot = " toggle" expand > align="end"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand position = " block-end" > < nord-button slot = " toggle" expand > position="block-end"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand position = " block-start" > < nord-button slot = " toggle" expand > position="block-start"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand position = " inline-start" > < nord-button slot = " toggle" expand > position="inline-start"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand position = " inline-end" > < nord-button slot = " toggle" expand > position="inline-end"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " start" position = " block-end" > < nord-button slot = " toggle" expand > align="start" position="block-end"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " start" position = " block-start" > < nord-button slot = " toggle" expand > align="start" position="block-start"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " start" position = " inline-start" > < nord-button slot = " toggle" expand > align="start" position="inline-start"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " start" position = " inline-end" > < nord-button slot = " toggle" expand > align="start" position="inline-end"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " end" position = " block-end" > < nord-button slot = " toggle" expand > align="end" position="block-end"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " end" position = " block-start" > < nord-button slot = " toggle" expand > align="end" position="block-start"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " end" position = " inline-start" > < nord-button slot = " toggle" expand > align="end" position="inline-start"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < nord-dropdown expand align = " end" position = " inline-end" > < nord-button slot = " toggle" expand > align="end" position="inline-end"</ nord-button> < nord-dropdown-item> View profile</ nord-dropdown-item> < nord-dropdown-item> Save changes</ nord-dropdown-item> </ nord-dropdown> < style> body { display : grid; grid-template-columns : repeat ( auto-fit, minmax ( 30ch, max-content) ) ; justify-content : center; gap : var ( --n-space-m) ; } </ style>
< nord-stack direction = " horizontal" justify-content = " center" style = " margin-top : calc ( var ( --n-space-xxl) * 3) " > < nord-dropdown position = " inline-end" align = " end" > < nord-button slot = " toggle" > Open top right</ nord-button> < nord-dropdown-group heading = " Account" > < nord-dropdown-item href = " #" > View profile</ nord-dropdown-item> < nord-dropdown-item> Settings</ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-group> < nord-dropdown-item> Show keyboard shortcuts</ nord-dropdown-item> < nord-dropdown-item> Help & Support</ nord-dropdown-item> </ nord-dropdown-group> < nord-dropdown-item> Sign out</ nord-dropdown-item> </ nord-dropdown> </ nord-stack>
Properties Property Attribute Description Type Default align
align
Set the alignment of the dropdown in relation to the toggle depending on the position. start
will align the left of the dropdown to the left of the toggle. end
will align the right of the dropdown to the right of the toggle. A dropdown with a set position of inline-start
or inline-end
will switch start
and end
to the top and bottom of the dropdown respectively.
Popout["align"] | undefined
undefined
position
position
Set the position of the dropdown in relation to the toggle. Options follow logical properties. block-start
and block-end
referring to top and bottom respectively, inline-start
and inline-end
referring to left and right respectively.
Popout["position"] | undefined
undefined
expand
expand
Controls whether the toggle slot expands to fill the width of its container.
boolean
false
Slots Slot name Description Default slot The dropdown content. toggle
Used to place the toggle for dropdown.
Usage # This section includes guidelines for designers and developers about the usage of this component in different contexts.
Do # Dropdown menus are typically used when you have 5-15 items to choose from. They’re used for navigation or commands, where an action is initiated based on the selection. When organizing dropdown menu items, sort the list in a logical order by putting the most selected option at the top. Use for a “more” menu, where the control contains an icon. Use for user profiles, where the control is an avatar. Use in conjunction with the dropdown item and dropdown group components. Don’t # Don’t use for hiding primary actions since they should be visible by default. Don’t use for selecting an option from a list of options, use the select component instead. Don’t nest elements or components other than the dropdown item and dropdown group components. Consider using the popout component when creating custom UI. Content guidelines # Dropdown items should be always written in sentence case, not title case. The first word should be capitalized and the rest lowercase (unless a proper noun):
Create user
Create User
Dropdown items should always lead with a strong verb that encourages action. Use the {verb}+{noun}
format except in the case of common actions like Save, Close or Cancel:
Edit row
Editing options
Avoid unnecessary words and articles in dropdown items, such as “the”, “an” or “a”:
Change theme
Change the theme
Avoid ending dropdown items in punctuation:
Switch user
Switch user.
Avoud all caps for dropdown items:
Rename
RENAME
Keep dropdown items to a single line of text:
Change theme
Change the theme of the veterinary application.
Integration For integration guidelines, please see Web Components documentation . This documentation explains how to implement and use Nord Web Components across different technologies such as Vue.js, React, or Vanilla JavaScript.
Integration Guidelines
Localization Nord provides a lightweight solution for localizing its components. Not all components need localizing, as for the most part snippets of text are set per instance. For full localization guidelines, please see Localization documentation .
Localization Guidelines
Troubleshooting If you experience any issues while using Nord Web Components, please head over to the Support page for more guidelines and ways to contact us.