Jetpack Compose ยท Android library

An emoji picker that speaks your user's language.

Compose Emoji Picker drops a full Unicode picker into any screen โ€” search matched to the device's language, recents remembered, colors pulled straight from your Material 3 theme.

2 search locales โ€” EN / ITMIT licensed
The EmojiPicker composable open over an app, showing search, recents, category tabs and the Smileys & People grid
What you get

Everything a picker needs, nothing it doesn't

๐Ÿ˜€Full emoji set

A wide range of emojis compatible with the latest Unicode standards.

๐Ÿ”ŽQuick search

Find emojis fast by category or name, right from the picker.

โŒšRecent emojis

The last emojis a user picked stay one tap away, every time.

๐ŸŒŽMultilingual support

English and Italian, in both the UI and the search โ€” more languages welcome via PR.

๐Ÿ“ฑFull Compose compatibility

Built to drop into any Jetpack Compose screen without friction.

Search, not just display

Search that matches how the device talks

Most pickers translate the emoji labels but still search in English only. This one matches the query against the device's own language, so typing in Italian finds the same emoji typing in English would.

Today: English and Italian โ€” more languages land through pull requests.
In your app

Light and dark, both native

The picker fully supports Light and Dark mode, automatically adapting to the colors defined in your Material 3 theme โ€” no extra wiring required.

Compose Emoji Picker in light mode
Light
Compose Emoji Picker in dark mode
Dark
Install

Three steps, one dependency

1. Add the repository
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven(url = "https://jitpack.io")
    }
}
API reference

Every parameter, every default

The full signature of the EmojiPicker composable โ€” three required callbacks and one optional color set that follows your Material 3 theme unless you override it.

EmojiPicker(...)
PropTypeDefaultDescription
openBooleanrequiredWhether the picker is visible.
onClose() -> UnitrequiredCalled when the picker should close.
onEmojiSelected(emoji: Emoji) -> UnitrequiredCalled when the user taps an emoji.
colorsEmojiPickerColorsEmojiPickerDefaults.emojiPickerColors()Colors used to paint the picker.
EmojiPickerColors fields โ€” defaults read from your MaterialTheme.colorScheme
FieldDefault tokenDescription
backgroundColorMaterialTheme.colorScheme.surfaceContainerLowBackground of the picker's container.
searchBarBackgroundColorMaterialTheme.colorScheme.surfaceVariantFill color of the search field.
searchBarIconTintMaterialTheme.colorScheme.onSurfaceVariantColor of the search icon.
searchBarTextColorMaterialTheme.colorScheme.onSurfaceVariantText and placeholder color inside the search field.
textColorMaterialTheme.colorScheme.onSurfaceVariantColor for category titles and the empty-state message.
activeCategoryTintMaterialTheme.colorScheme.primaryIcon tint for the selected category tab.
inactiveCategoryTintMaterialTheme.colorScheme.onSurfaceIcon tint for unselected category tabs.
Emoji โ€” passed to onEmojiSelected
FieldTypeDescription
idStringUnique key for the emoji.
emojiStringThe emoji glyph itself.
nameStringHuman-readable name, resolved to the matched search language.
slugStringIdentifier-friendly form of the name.
categoryStringThe Unicode category this emoji belongs to.