flutter_emoji_selector library

A Flutter package for creating Facebook-style emoji selector reactions.

This package provides a customizable emoji selector that can be attached to any widget, displaying a row of emoji reactions with smooth animations.

Features

  • Support for PNG, SVG, and GIF images
  • Customizable styling (colors, sizes, animations)
  • Long press to show, drag to select, release to confirm
  • Zoom and bounce animations on hover
  • Horizontal scrolling for many emojis
  • Programmatic control via controller

Example

// Using default bundled emojis
EmojiSelector(
  emojis: DefaultEmojis.all,
  onEmojiSelected: (emoji) => print('Selected: ${emoji.id}'),
  child: IconButton(
    icon: Icon(Icons.thumb_up_outlined),
    onPressed: () {},
  ),
)

// Or use custom emojis
EmojiSelector(
  emojis: [
    EmojiItem.asset('like', 'assets/emojis/like.png'),
    EmojiItem.asset('love', 'assets/emojis/love.gif'),
  ],
  onEmojiSelected: (emoji) => print('Selected: ${emoji.id}'),
  child: MyButton(),
)

Classes

DefaultEmojis
Default emoji presets bundled with the package.
EmojiItem
Represents a single emoji with its image source and metadata.
EmojiSelector
A widget that wraps a child and displays an emoji selector overlay.
EmojiSelectorController
Controller for programmatically managing the emoji selector.
EmojiSelectorStyle
Comprehensive style configuration for the emoji selector.

Enums

EmojiImageSource
Source type for emoji images.
EmojiImageType
Detected image type based on file extension or content.
EmojiSelectorTrigger
How to trigger the emoji selector.
OverlayPosition
Preferred position for the emoji selector overlay.