Menu

A menu component for displaying a list of options.

import {
Menu,
MenuTrigger,
MenuContent,
MenuItem,
MenuItemGroup,
MenuGroupLabel,
MenuSeparator,
} from '@cerberus/react'

Usage

NextJS Usage

To create a nav menu with NextJS, you should use the Link component from next/link combined with the asChild prop.

Grouped Menu

You can group menu items by using the MenuItemGroup component.

Positions

The Menu component accepts a positioning prop to determine where the menu will be positioned relative to the trigger. See available positions.

Primitives

You can utilize the primitive components or the css prop to customize the menu.

ComponentDescription
MenuRootThe context provider for the menu parts
MenuTriggerThe trigger that opens the menu content
MenuTriggerItemThe item that triggers a nested menu content
MenuIndicatorThe indicator for the selected menu item
MenuPositionerThe positioning container for the menu content
MenuContentThe content of the menu
MenuItemA single item of the menu
MenuItemGroupA container for a group of menu items
MenuItemGroupLabelThe label for a group of menu items
MenuSeparatorA separator between menu items

API

export interface MenuProps {
positioning?: {
placement: 'left' | 'right' | 'top' | 'bottom'
}
}
NameDefaultDescription
positioningnullUsed to position the menu content.
export interface MenuTriggerProps {
children: React.ReactNode
}
NameDefaultDescription
childrennullThe trigger element.
export interface MenuItemProps {
children: React.ReactNode
value: string
asChild?: boolean
}
NameDefaultDescription
childrennullThe content of the menu item.
valuenullThe value of the menu item used for selection.
asChildfalseUsed to render the children as a child component.