Skip to content
Components
@app-studio/components

EmojiPicker

A user-friendly tool for selecting and inserting emojis into text inputs or forms.

View component source

Import

ts
import { EmojiPicker } from '@app-studio/components';

New to the library? Complete installation and provider setup first.

Interactive examples

Try the component, then open Code to copy the complete example.

INTERACTIVE EXAMPLE

Loading preview…

Props

Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.

Scroll horizontally to see every column.

EmojiPicker
PropTypeDefaultDescription
mode"picker" | "reaction"
"picker""reaction"
'picker'See the type and source declaration for this property.Source
trigger
View typestring | number | bigint | boolean | import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement<unknown, string | import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").JSXElementConstructor<any>> | Iterable<import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactNode> | import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal | Promise<string | number | bigint | boolean | import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal | import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement<unknown, string | import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").JSXElementConstructor<any>> | Iterable<import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactNode> | null | undefined> | null
—See the type and source declaration for this property.Source
quickEmojisstring[]—See the type and source declaration for this property.Source
selectedEmojisstring[][]See the type and source declaration for this property.Source
labels
View typePartial<{ select: string; reaction: string; search: string; more: string; empty: string; categoryEmpty: string; recent: string; smileys: string; people: string; animals: string; food: string; activities: string; travel: string; objects: string; symbols: string; flags: string; }>
—See the type and source declaration for this property.Source
idstring—See the type and source declaration for this property.Source
namestring—Field name used by forms and Formik bindings.Source
labelstring—Visible label describing this control.Source
placeholderstring—Hint displayed while the field is empty.Source
helperTextstring—Additional guidance displayed with the field.Source
valuestring—Current controlled value. Update it from the matching change callback.Source
defaultValuestring—Initial value for uncontrolled usage.Source
onChange((emoji: string) => void)—Called with the new field value. Check the signature for the exact payload.Source
onEmojiSelect((emoji: Emoji) => void)—See the type and source declaration for this property.Source
viewsEmojiPickerStyles{}Style overrides for the named internal parts.Source
sizeSize
"sm""md""lg""xs""xl"
'md'Size preset for the component.Source
shapeShape
"square""rounded""pill""default"
'default'Shape preset for the component.Source
variantVariant
"outline""default""filled"
'default'Visual treatment of the component.Source
errorbooleanfalseValidation error displayed for the field.Source
isDisabledbooleanfalseDisables user interaction.Source
isReadOnlybooleanfalseKeeps the value visible without allowing edits.Source
showSearchbooleantrueSee the type and source declaration for this property.Source
showCategoriesbooleantrueSee the type and source declaration for this property.Source
showRecentEmojisbooleantrueSee the type and source declaration for this property.Source
maxRecentEmojisnumber—See the type and source declaration for this property.Source
enabledCategoriesEmojiCategory[][ 'recent', 'smileys', 'people', 'animals', 'food', 'activities', 'travel', 'objects', 'symbols', 'flags', ]See the type and source declaration for this property.Source
customEmojisEmoji[]—See the type and source declaration for this property.Source
isOpenboolean—Controls whether the component is open.Source
onOpen(() => void)—See the type and source declaration for this property.Source
onClose(() => void)—Called when the user requests dismissal.Source
closeOnSelectboolean—See the type and source declaration for this property.Source
aria-labelstring—Defines a string value that labels the current element.Source
aria-describedbystring—Identifies the element (or elements) that describes the object.Source
Common inherited styling props (7)

Scroll horizontally to see every column.

EmojiPicker inherited
PropTypeDefaultDescription
onClickany—Called when the user activates the component.
mediaRecord<string, CssProps>—See the type and source declaration for this property.
askeyof JSX.IntrinsicElements
"symbol""object""slot""style""title""pattern""form""animate""clipPath""filter""marker""mask""a""abbr""address""area""article""aside""audio""b""base""bdi""bdo""big""blockquote""body""br""button""canvas""caption""center""cite""code""col""colgroup""data""datalist""dd""del""details""dfn""dialog""div""dl""dt""em""embed""fieldset""figcaption""figure""footer""h1""h2""h3""h4""h5""h6""head""header""hgroup""hr""html""i""iframe""img""input""ins""kbd""keygen""label""legend""li""link""main""map""mark""menu""menuitem""meta""meter""nav""noindex""noscript""ol""optgroup""option""output""p""param""picture""pre""progress""q""rp""rt""ruby""s""samp""search""script""section""select""small""source""span""strong""sub""summary""sup""table""template""tbody""td""textarea""tfoot""th""thead""time""tr""track""u""ul""var""video""wbr""webview""svg""animateMotion""animateTransform""circle""defs""desc""ellipse""feBlend""feColorMatrix""feComponentTransfer""feComposite""feConvolveMatrix""feDiffuseLighting""feDisplacementMap""feDistantLight""feDropShadow""feFlood""feFuncA""feFuncB""feFuncG""feFuncR""feGaussianBlur""feImage""feMerge""feMergeNode""feMorphology""feOffset""fePointLight""feSpecularLighting""feSpotLight""feTile""feTurbulence""foreignObject""g""image""line""linearGradient""metadata""mpath""path""polygon""polyline""radialGradient""rect""set""stop""switch""text""textPath""tspan""use""view"
—See the type and source declaration for this property.
themeMode"light" | "dark"
"light""dark"
—See the type and source declaration for this property.
_hoverstring | CssProps—See the type and source declaration for this property.
_activestring | CssProps—See the type and source declaration for this property.
_focusstring | CssProps—See the type and source declaration for this property.

For shared layout, color, and responsive properties, read Styling & composition and Responsive layouts. Additional native element attributes depend on the target platform.

Usage guidance

  • Give controls a visible label or an accessible name, and verify keyboard interaction. See Accessibility.
  • For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
  • These previews run in the browser. Check React Native setup for platform requirements and differences.
Browse documentation source