Skip to content

Dropdown

Dropdown

A dropdown menu component for displaying a list of actions or options.

Import

import { Dropdown } from '@primitivekit/react';

Basic Usage

<Dropdown>
  <Dropdown.Trigger>
    <Button>Actions</Button>
  </Dropdown.Trigger>
  
  <Dropdown.Menu>
    <Dropdown.Item>Edit</Dropdown.Item>
    <Dropdown.Item>Duplicate</Dropdown.Item>
    <Dropdown.Item>Delete</Dropdown.Item>
  </Dropdown.Menu>
</Dropdown>

With Icons

import { EditIcon, CopyIcon, TrashIcon } from 'your-icon-library';

<Dropdown>
  <Dropdown.Trigger>
    <Button>Actions</Button>
  </Dropdown.Trigger>
  
  <Dropdown.Menu>
    <Dropdown.Item icon={<EditIcon />}>Edit</Dropdown.Item>
    <Dropdown.Item icon={<CopyIcon />}>Duplicate</Dropdown.Item>
    <Dropdown.Item icon={<TrashIcon />}>Delete</Dropdown.Item>
  </Dropdown.Menu>
</Dropdown>

With Divider

<Dropdown>
  <Dropdown.Trigger>
    <Button>Options</Button>
  </Dropdown.Trigger>
  
  <Dropdown.Menu>
    <Dropdown.Item>Profile</Dropdown.Item>
    <Dropdown.Item>Settings</Dropdown.Item>
    <Dropdown.Divider />
    <Dropdown.Item>Logout</Dropdown.Item>
  </Dropdown.Menu>
</Dropdown>

Placement

<Dropdown placement="bottom-start">
  <Dropdown.Trigger>
    <Button>Bottom Start</Button>
  </Dropdown.Trigger>
  <Dropdown.Menu>
    <Dropdown.Item>Item 1</Dropdown.Item>
    <Dropdown.Item>Item 2</Dropdown.Item>
  </Dropdown.Menu>
</Dropdown>

Props

Dropdown Props

PropTypeDefaultDescription
placementstring'bottom'Menu placement
childrenReactNoderequiredDropdown content

Dropdown.Item Props

PropTypeDefaultDescription
iconReactNode-Item icon
disabledbooleanfalseDisable item
onClickfunction-Click handler
childrenReactNoderequiredItem content

Customization

<Dropdown
  style={{
    '--dropdown-bg': 'rgba(255, 255, 255, 1)',
    '--dropdown-border-color': 'rgba(200, 200, 200, 1)',
    '--dropdown-item-hover-bg': 'rgba(230, 240, 255, 1)',
  }}
>
  {/* Dropdown content */}
</Dropdown>

Examples

User Menu

<Dropdown>
  <Dropdown.Trigger>
    <Avatar src="/avatar.jpg" />
  </Dropdown.Trigger>
  
  <Dropdown.Menu>
    <Dropdown.Item icon={<UserIcon />}>Profile</Dropdown.Item>
    <Dropdown.Item icon={<SettingsIcon />}>Settings</Dropdown.Item>
    <Dropdown.Divider />
    <Dropdown.Item icon={<LogoutIcon />}>Logout</Dropdown.Item>
  </Dropdown.Menu>
</Dropdown>

Accessibility

  • ✅ ARIA menu role
  • ✅ Keyboard navigation
  • ✅ Focus management
  • ✅ Escape to close
  • ✅ Screen reader support

Related Components