Contextual menu
A contextual menu can be applied to any button, link or navigation item that requires a secondary menu. To interact with the menu it will require some javascript to hide/show each pattern. This is achieved by finding the toggle element p-contextual-menu__toggle
and what it controls aria-controls
.
The target element will be hidden or shown with aria-hidden="true"
or false
. The control element will change to aria-expanded
so screen readers will know it's active.
Using direction modifiers will change the placement of the drop-down menu. By default alignment is to the right of the parent pattern.
.p-contextual-menu
.p-contextual-menu--left
.p-contextual-menu--center
Indicator
If you require a drop-down button with a state indicator then the p-contextual-menu__toggle
class can be used alongside the p-icon
and p-button
components.
Information:
Functionality
Please ensure the aria-control
attribute matches an ID of an element. If aria-expanded
is true, then the contextual menu will be open by default. When clicking on the p-contextual-menu__toggle
, you must toggle the aria-expanded
attribute on the toggle and the aria-hidden
attribute on the drop-down.
Theming
The contextual menu uses Vanilla's light theme by default. There are two ways to switch between the light and the dark themes:
- Change the default: go to
_settings_themes.scss
and set$theme-default-p-contextual-menu
todark
- Override the default by adding a state to
p-contextual-menu
:is-dark
when the default navigation is light, oris-light
when the default has been changed to dark:
Import
To import just this component into your project, copy the snippet below and include it in your main Sass file.
// import Vanilla and include base mixins
// this only needs to happen once in a given project
@import 'vanilla-framework';
@include vf-base;
@include vf-p-contextual-menu;
// when using the menu with dropdown button you need to include buttons and icon as well
@include vf-p-buttons;
@include vf-p-icons-common;
@include vf-p-icon-chevron;
For more information see Customising Vanilla in your projects, which includes overrides and importing instructions.
React
You can use contextual menu in React by installing our react-component library and importing ContextualMenu
component.
See the documentation for our React ContextualMenu
component
Related
For more interactive elements that hide/show contentview the tooltips component.