An arrow-key navigable Menu
which consists of MenuItems
. A Menu
can be employed to produce its common variants, including dropdown menus, select menus, and others. Menus
are keyboard navigable with both tab and arrow keys.
MenuItem
A MenuItem
is its own distinct component that is used by any kind of menu overlays i.e. dropdown menu and navigation menu.
Any Paragon component or export may be added to the code example.
With Form
A Menu
can include things like forms.
Any Paragon component or export may be added to the code example.
With Modal
A Menu
can be implemented to appear inside a modalpopup
for a wide variety of use cases. The Modal
brings focus to the first menu element upon the click of the trigger, and can be escaped on click away or key press.
Any Paragon component or export may be added to the code example.
Theme Variables (SCSS)#
$menu-box-shadow: $box-shadow !default;$menu-border-radius: .25em !default;$menu-bg: $white !default;$menu-max-height: 16.813rem !default;$menu-item-height: 3rem !default;$menu-item-width: 19rem !default;$menu-item-width-xs: 13.438rem !default;$menu-item-color: $body-color !default;$menu-item-bg: transparent !default;$menu-item-border-color: $menu-item-bg !default;$menu-item-border-width: $btn-border-width !default;$menu-item-hover-border: $menu-item-bg !default;$menu-item-padding-x: $btn-padding-x !default;$menu-item-padding-y: $btn-padding-y !default;$menu-item-hover-color: $btn-tertiary-color !default;$menu-item-hover-border-color: $menu-item-bg !default;$menu-item-hover-bg: $btn-tertiary-hover-bg !default;$menu-item-icon-margin-left: .25em !default;$menu-item-icon-margin-right: $menu-item-icon-margin-left !default;$menu-item-focus-bg: $btn-tertiary-active-bg !default;$menu-item-border: $menu-item-border-width solid $menu-item-border-color !default;$menu-select-btn-link-color: $primary-500 !default;$menu-select-btn-link-text-decoration-line: underline !default;$menu-select-btn-link-text-decoration-thickness: .125rem !default;
Props API#
- className
string
Specifies class name to append to the base element
- arrowKeyNavigationSelector
string
Default'a:not(:disabled),button:not(:disabled),input:not(:disabled)'Specifies the CSS selector string that indicates to which elements the user can navigate using the arrow keys
- as
elementType
Default'div'Specifies the base element
- children
node
DefaultnullSpecifies the content of the menu
- defaultSelected
bool
DefaultfalseSpecifies that this
MenuItem
is selected inside theSelectMenu
- className
string
Specifies class name to append to the base element
- children
node
DefaultnullSpecifies the content of the
MenuItem
- as
elementType
Default'button'Specifies the base element
- iconBefore
element
|func
Specifies the jsx before the content of the
MenuItem
- iconAfter
element
|func
Specifies the jsx after the content of the
MenuItem
Usage Insights#
Menu
Project Name | Paragon Version | Instance Count | |
---|---|---|---|
frontend-app-course-authoring | 20.46.2 | 1 | |
frontend-app-learning | 20.46.0 | 1 | |
prospectus | 20.46.2 | 2 |
MenuItem
Project Name | Paragon Version | Instance Count | |
---|---|---|---|
frontend-app-course-authoring | 20.46.2 | 7 | |
frontend-lib-content-components | 21.5.6 | 1 | |
prospectus | 20.46.2 | 2 |