EmojiPicker
Search and pick emojis with categories, skin tone selector, and virtualized grid
Source
LLM docs
Docs
Package
License
Usage
EmojiPicker displays a searchable emoji grid with category navigation, skin tone selector,
and emoji preview. Emoji data is passed with the data prop, see the
Getting started page for setup instructions.
Size
Use the size prop to change the size of all inner elements:
Without search
Set withSearch={false} to hide the search input:
Without preview
Set withPreview={false} and withSkinToneSelector={false} to hide the footer area:
Custom columns
Use the columns prop to change the number of emojis per row. The picker width
adjusts automatically based on the number of columns and emoji size.
Emoji size
Use the emojiSize prop to change the size of emoji buttons. Emoji font size is derived from
this value.
Skin tone
The skin tone selector is displayed in the preview area. Click it to open a popover
with all skin tone options. Use skinTone and onSkinToneChange props to control the value:
Current skin tone: 0
Scroll area
Use the scrollAreaProps prop to pass props to the internal ScrollArea, for example
to change its height. The default height is 300px.
Category labels and localization
Override category labels with the categoryLabels prop (keyed by canonical category ID),
and UI strings with the labels prop:
Search icon
Customize the search input with the searchInputProps prop. For example, you can add a
search icon to the left section:
Empty search content
Customize the content shown when search yields no results with the emptySearchContent prop:
Toggle sections
Use these boolean props to toggle individual sections:
Controlled search
Use searchValue and onSearchChange props to control the search input value:
Unsupported emoji detection
Set withUnsupportedDetection to hide emojis that are not supported by the current browser
or operating system. To detect support, each emoji is drawn on a canvas.
This feature is disabled by default because canvas-based detection has edge cases across platforms.
Keyboard navigation
The category navigation and the emoji grid are single tab stops. ArrowDown, ArrowUp and Enter keys also work
when the search input is focused: Enter selects the first search result.