All Projects → Fintasys → emoji_picker_flutter

Fintasys / emoji_picker_flutter

Licence: BSD-2-Clause License
A Flutter package that provides an Emoji picker widget with 1500+ emojis in 8 categories.

Programming Languages

dart
5743 projects
ruby
36898 projects - #4 most used programming language
swift
15916 projects
kotlin
9241 projects
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to emoji picker flutter

rm-emoji-picker
A modern, ES2015 emoji picker and editor.
Stars: ✭ 76 (+38.18%)
Mutual labels:  emoji, emoji-picker
ngx-emoj
A simple, theme-able emoji mart/picker for angular 4+
Stars: ✭ 18 (-67.27%)
Mutual labels:  emoji, emoji-picker
Emoji Keyboard
Type emoji easily! Virtual keyboard-like emoji palette for Linux with lots of features.
Stars: ✭ 231 (+320%)
Mutual labels:  emoji, emoji-picker
Jquery Emoji
😄 Let textarea or editable div has ability to insert emoji. 让文本框或div具备插入表情功能。
Stars: ✭ 125 (+127.27%)
Mutual labels:  emoji, emoji-picker
mr-emoji
Lightweight emoji picker like SLACK
Stars: ✭ 23 (-58.18%)
Mutual labels:  emoji, emoji-picker
Emojipanel
😀 A customisable Javascript emoji picker
Stars: ✭ 129 (+134.55%)
Mutual labels:  emoji, emoji-picker
rn-emoji-keyboard
Super performant, lightweight, fully customizable emoji picker 🚀
Stars: ✭ 228 (+314.55%)
Mutual labels:  emoji, emoji-picker
Uni
Query the Unicode database from the commandline, with good support for emojis
Stars: ✭ 633 (+1050.91%)
Mutual labels:  emoji, emoji-picker
EmojiRunner
Search for emojis in Krunner and copy/paste them
Stars: ✭ 33 (-40%)
Mutual labels:  emoji, emoji-picker
ermoji
🤷‍♂️ RStudio Addin to Search and Copy Emoji
Stars: ✭ 26 (-52.73%)
Mutual labels:  emoji, emoji-picker
Awesome Emoji Picker
Add-on/WebExtension that provides a modern emoji picker that you can use to find and copy/insert emoji into the active web page.
Stars: ✭ 54 (-1.82%)
Mutual labels:  emoji, emoji-picker
vuemoji-picker
Vue 2 and 3 lightweight emoji picker.
Stars: ✭ 53 (-3.64%)
Mutual labels:  emoji, emoji-picker
Vanilla Emoji Picker
Modern emoji picker. Super light 2kb gzipped, simple and no frameworks 😻
Stars: ✭ 20 (-63.64%)
Mutual labels:  emoji, emoji-picker
Vue Twemoji Picker
Vue Twemoji Picker - A fast plug-n-play Twemoji Picker (+textarea for Twemoji rendering) for Vue. Support Unicode Emoji 13.0.
Stars: ✭ 154 (+180%)
Mutual labels:  emoji, emoji-picker
Emoji Button
Vanilla JavaScript emoji picker component
Stars: ✭ 646 (+1074.55%)
Mutual labels:  emoji, emoji-picker
AllGithubEmojis
A list of all supported github emojis updated weekly. https://jzeferino.github.io/AllGithubEmojis/
Stars: ✭ 82 (+49.09%)
Mutual labels:  emoji, emoji-picker
Interweave
🌀 React library to safely render HTML, filter attributes, autowrap text with matchers, render emoji characters, and much more.
Stars: ✭ 467 (+749.09%)
Mutual labels:  emoji, emoji-picker
Emoji Picker Element
A lightweight emoji picker for the modern web
Stars: ✭ 587 (+967.27%)
Mutual labels:  emoji, emoji-picker
discord-emoji
[Library/Deno] A near exact emoji tables of Discord for string-based insertion of emotes without having to escape Unicode.
Stars: ✭ 37 (-32.73%)
Mutual labels:  emoji, emoji-picker
winmoji
Emoji lookup for Windows 😉 https://www.winmoji.com https://twitter.com/winmoji
Stars: ✭ 79 (+43.64%)
Mutual labels:  emoji, emoji-picker

platform flutter build Star on Github License: BSD-2-Clause

emoji_picker_flutter

Yet another Emoji Picker for Flutter 🤩

Note: This package is based on emoji_picker which has been deprecated and not maintained anymore. Therefore I decided to create a modernized version of it and fixing existing issues.

Key features

  • Lightweight Package
  • Faster Loading
  • Null-safety
  • Completely customizable
  • Material Design and Cupertino mode
  • Emojis that cannot be displayed are filtered out (Android Only)
  • Optional recently used emoji tab
  • Skin Tone Support

Getting Started

EmojiPicker(
    onEmojiSelected: (category, emoji) {
        // Do something when emoji is tapped
    },
    onBackspacePressed: () {
        // Backspace-Button tapped logic
        // Remove this line to also remove the button in the UI
    },
    config: Config(
        columns: 7,
        emojiSizeMax: 32 * (Platform.isIOS ? 1.30 : 1.0), // Issue: https://github.com/flutter/flutter/issues/28894
        verticalSpacing: 0,
        horizontalSpacing: 0,
        initCategory: Category.RECENT,
        bgColor: Color(0xFFF2F2F2),
        indicatorColor: Colors.blue,
        iconColor: Colors.grey,
        iconColorSelected: Colors.blue,
        progressIndicatorColor: Colors.blue,
        backspaceColor: Colors.blue,
        skinToneDialogBgColor: Colors.white,
        skinToneIndicatorColor: Colors.grey,
        enableSkinTones: true,
        showRecentsTab: true,
        recentsLimit: 28,
        noRecentsText: "No Recents",
        noRecentsStyle:
            const TextStyle(fontSize: 20, color: Colors.black26),
        tabIndicatorAnimDuration: kTabScrollDuration,    
        categoryIcons: const CategoryIcons(),
        buttonMode: ButtonMode.MATERIAL
    ),
)

See the demo for more detailed sample project.

Config

property description default
columns Number of emojis per row 7
emojiSizeMax Width and height the emoji will be maximal displayed 32.0
verticalSpacing Verical spacing between emojis 0
horizontalSpacing Horizontal spacing between emojis 0
initCategory The initial Category that will be selected Category.RECENT
bgColor The background color of the Widget Color(0xFFF2F2F2)
indicatorColor The color of the category indicator Colors.blue
iconColor The color of the category icons Colors.grey
iconColorSelected The color of the category icon when selected Colors.blue
progressIndicatorColor The color of the loading indicator during initalization Colors.blue
backspaceColor The color of the backspace icon button Colors.blue
skinToneDialogBgColor The background color of the skin tone dialog Colors.white
skinToneIndicatorColor Color of the small triangle next to multiple skin tone emoji Colors.grey
enableSkinTones Enable feature to select a skin tone of certain emoji's true
showRecentsTab Show extra tab with recently used emoji true
recentsLimit Limit of recently used emoji that will be saved 28
noRecentsText The text to be displayed if no recent emojis to display "No Recents"
noRecentsStyle The text style for [noRecentsText] TextStyle(fontSize: 20, color: Colors.black26)
tabIndicatorAnimDuration Duration of tab indicator to animate to next category Duration(milliseconds: 300)
categoryIcons Determines the icon to display for each Category. You can change icons by setting them in the constructor. CategoryIcons()
buttonMode Choose between Material and Cupertino button style ButtonMode.MATERIAL

Backspace-Button

You can add an Backspace-Button to the end category list by adding the callback method onBackspacePressed: () { } to the EmojiPicker-Widget. This will make it easier for your user to remove an added Emoji without showing the keyboard. Check out the example for more details about usage.

Custom view

The appearance is completely customizable by setting customWidget property. If properties in Config are not enough you can inherit from EmojiPickerBuilder (recommended but not necessary) to make further adjustments.

class CustomView extends EmojiPickerBuilder {
    CustomView(Config config, EmojiViewState state) : super(config, state);

    @override
    _CustomViewState createState() => _CustomViewState();
}

class _CustomViewState extends State<CustomView> {
    @override
    Widget build(BuildContext context) {
        // TODO: implement build
        // Access widget.config and widget.state
        return Container();
    }
}

EmojiPicker(
    onEmojiSelected: (category, emoji) { /* ...*/ },
    config: Config( /* ...*/ ),
    customWidget: (config, state) => CustomView(config, state),
)

Extended usage with EmojiPickerUtils

// Get recently used emoji
final recentEmojis = await EmojiPickerUtils().getRecentEmojis();

// Search for related emoticons based on keywords
final filterEmojiEntities = await EmojiPickerUtils().searchEmoji("face");

// Add an emoji to recently used list or increase its counter
final newRecentEmojis = await EmojiPickerUtils().addEmojiToRecentlyUsed(key: key, emoji: emoji);
// Important: Needs same key instance of type GlobalKey<EmojiPickerState> here and for the EmojiPicker-Widget in order to work properly

Feel free to contribute to this package!! 🙇‍♂️

Always happy if anyone wants to help to improve this package !

If you need any features

Please open an issue so that we can discuss your feature request 🙏


Made with 💙 in Tokyo
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].