Pickers
Emoji Picker
Emoji and icon picker panel with search, category jumps and an upload tab. Put it in a Popover.
Installation
Install the package (React 19):
terminal
terminal
terminal
Import the styles once, in your app entry or root layout:
/src/main.tsx
Use it anywhere inside your app's <Theme> (see Installation):
/src/EmojiPickerExample.tsx
Examples
In a popover
API Reference
EmojiPicker
| Prop | Type | Default |
|---|---|---|
onSelect | (emoji: string) => void | |
onSelectIcon | (icon: IconName) => void | |
onRemove | () => void | |
onUpload | () => void | |
defaultTab | "emoji""icons""upload" | "emoji" |
categories | EmojiCategory[] | emojiCategories |
highlighted | string | |
autoFocus | boolean | false |
Accessibility
- Tabs (Emoji / Icons / Upload) follow the WAI-ARIA tabs pattern.
- The search field is labelled "Search emoji"; each category is a labelled group of buttons named by the emoji (or icon name).
- The footer is a "Emoji categories" navigation whose buttons scroll to each category.
- Every control has a visible focus ring; Tab moves through the grid.
Usage
- Use to pick a page, project or reaction icon.
- Give the Popover content an
aria-label("Choose an icon"). - Pass
onRemoveto offer "Remove" for an existing icon.
© 2026 Motion. Internal documentation.