这是indexloc提供的服务,不要输入任何密码

emoji_extension 1.2.0 copy "emoji_extension: ^1.2.0" to clipboard
emoji_extension: ^1.2.0 copied to clipboard

Emojis for Flutter & Dart (Unicode 16.0) + one, yet powerful emojis String extension

Emojis for Dart Unicode 16.0
+
One, yet powerful emojis String extension

Pub Package Build Status Code Coverage MIT License Unicode 16.0 YouTube Tutorial


Features #

  • Contains over 5,000 emojis from Unicode 16.0 💪
  • Supports:
    • shorcodes: Discord, Github, Slack 🫡
    • skin tone variations: 👍 👍🏻 👍🏼 👍🏽 👍🏾 👍🏿
    • hair style variations: 🦰 🦱 🦳 🦲
    • multi-person: 👨‍👩‍👧‍👦
  • Provides Emojis collection that has all the info about each emoji:
    • value: 😆
    • unicode: 1F606
    • name: Grinning Squinting Face
    • apple name: Grinning Face with Squinting Eyes
    • also known as: ><, Closed-Eyes Smile, Big Grin, Laughing, XD
    • group: Smileys & Emotion
    • subgroup: face-smiling
    • version: 6.0
    • status: fully-qualified
    • shortcodes:
      • CLDR: grinning_squinting_face
      • Discord: laughing, satisfied
      • Github: laughing, satisfied
      • Slack: laughing, satisfied
  • Provides emojis extension to interact with emojis within any text. Quick overview of just a few possibilities:
'text😀text🤦🏾‍♀️text'.emojis 
                         .contains // true
                         .only // false
                         .onlyOne // false
                         .count // 2
                         .split // [text, text, text]
                         .remove // texttexttext
                         .extract // [😀, 🤦🏾‍♀️]
                         .replace('-') // text-text-text
                         .first
                               .value // 😀
                               .unicode // 1F600
                               .name // Grinning Face
                         ... // and many more
                          
// to Slack shortcodes:
'😀text🤦🏾‍♀️'.emojis.toSlackShortcodes(); // :grinning:text:woman-facepalming::skin-tone-5:

// from Slack shortcodes:
':grinning:text:woman-facepalming::skin-tone-5:'.emojis.fromShortcodes(); // 😀text🤦🏾‍♀️
  • Provides Emoji class equipped with numerous properties and getters for your convenience:
Emoji('❤️').shortcode; // :red_heart:

Emoji('🦊').isAnimal; // true

Emoji('👪').isMultiPerson; // true

Emoji('👍🏻').hasSkinTone; // true

Emoji('😃').hasFace; // true

... // and many more

YouTube Video Tutorial

Table of contents #

Import import 'package:emoji_extension/emoji_extension.dart'; and you've got 2 benefits:

1️⃣ Emojis collection

______________________________________

______________________________________

2️⃣ Emojis extension

______________________________________________________

Emojis collection #

Full Emojis collection with unicodes, names, apple names, "also known as", groups, subgroups, shortcodes:

Emojis
      .all // [Emoji(value: 😀, ...), Emoji(value: 😃, ...), ...]
          .values // [😀, 😃, 😄, 😁, 😆, 😅, 🤣, 😂, 🙂, 🙃, 🫠, 😉, 😊, 😇, 🥰, 😍, ...]
          .unicodes // [1F600, 1F603, 1F604, 1F601, 1F606, 1F605, 1F923, 1F602, 1F642, ...]
          .names // [Grinning Face, Grinning Face with Big Eyes, ...]
          .appleNames // [Grinning Face, Grinning Face with Big Eyes, ...]
          .alsoKnownAs // [Happy Face, Smiley Face, Grinning Face, ...]
          .shortcodes // [:grinning_face:, :grinning_face_with_big_eyes:, ...]
      .groups // [Group.smileysAndEmotion, Group.peopleAndBody, Group.component, ...]
             .values // [Smileys & Emotion, People & Body, Component, Animals & Nature, ...]
      .subgroups // [Subgroup.faceSmiling, Subgroup.faceAffection, Subgroup.faceTongue, ...]
                .values // [face-smiling, face-affection, face-tongue, face-hand, ...]
      .groupsWithSubgroups // {Group.smileysAndEmotion: [Subgroup.faceSmiling, ...], ...}
                          .values // {Smileys & Emotion: [face-smiling, ...], ...}
      .shortcodePlatforms // [Default, CLDR, Discord, Github, Slack]
      .versions // [Version.v6_0, Version.v7_0, Version.v8_0, Version.v9_0, ...]
               .values // [6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, ...]
      .statuses // [Status.fullyQualified, Status.minimallyQualified, ...]
               .values // [fully-qualified, minimally-qualified, unqualified, ...]

Emojis.all #

Emojis.all  /* [
                Emoji(
                 value: 😀,
                 unicode: 1F600,
                 name: Grinning Face,
                 appleName: Grinning Face,
                 alsoKnownAs: [Happy Face, Smiley Face],
                 group: Smileys & Emotion,
                 subgroup: face-smiling,
                 version: 8.0,
                 status: fully-qualified,
                 shortcodes: [
                          Shortcode(
                          platform: Default,
                          values: [grinning_face]
                        ),
                          Shortcode(
                          platform: CLDR,
                          values: [grinning_face]
                        ),
                          Shortcode(
                          platform: Discord,
                          values: [grinning]
                        ),
                          Shortcode(
                          platform: Github,
                          values: [grinning]
                        ),
                          Shortcode(
                          platform: Slack,
                          values: [grinning]
                        )]
                ), 
                Emoji(
                 value: 😃,
                 unicode: 1F603,
                 name: Grinning Face with Big Eyes,
                 appleName: Grinning Face with Big Eyes,
                 alsoKnownAs: [Grinning Face, Happy Face, Happy, Smiley Face]
                 group: Smileys & Emotion,
                 subgroup: face-smiling,
                 version: 6.0,
                 status: fully-qualified
                 shortcodes: [...]
                )
               ...
               ] */

Emojis.all.names

Emojis.all.names // [Grinning Face, Grinning Face with Big Eyes, ...]
                .first // Grinning Face
                .second // Grinning Face with Big Eyes
                .third // Grinning Face with Smiling Eyes
                .fourth // Beaming Face with Smiling Eyes
                .fifth // Grinning Squinting Face
                .sixth // Grinning Face with Sweat
                .penultimate // Flag: Scotland
                .last // Flag: Wales

Emojis.all.appleNames

Emojis.all.appleNames // [Grinning Face, Grinning Face with Big Eyes, ...]
                     .first // Grinning Face
                     .second // Grinning Face with Big Eyes
                     .third // Grinning Face with Smiling Eyes
                     .fourth // Beaming Face with Smiling Eyes
                     .fifth // Grinning Face with Squinting Eyes
                     .sixth // Grinning Face with Sweat
                     .penultimate // Flag of Scotland
                     .last // Flag of Wales

Emojis.all.alsoKnownAs

Emojis.all.alsoKnownAs // [Happy Face, Smiley Face, Grinning Face, ...]
                      .first // Happy Face
                      .second // Smiley Face
                      .third // Grinning Face
                      .fourth // Happy Face
                      .fifth // Happy
                      .sixth // Smiley Face
                      .penultimate // Welsh Flag
                      .last // Y Ddraig Goch

Emojis.all.shortcodes

// Default (emoji name in snake_case)
Emojis.all.shortcodes // [:grinning_face:, :grinning_face_with_big_eyes:, ...]
                     .first // :grinning_face:
                     .second // :grinning_face_with_big_eyes:
                     .third // :grinning_face_with_smiling_eyes:
                     .fourth // :beaming_face_with_smiling_eyes:
                     .fifth // :grinning_squinting_face:
                     .sixth // :grinning_face_with_sweat:
                     .penultimate // :flag_scotland:
                     .last // :flag_wales:

Emojis.all.cldrShortcodes

// CLDR
Emojis.all.cldrShortcodes // [:grinning_face:, :grinning_face_with_big_eyes:, ...]
                         .first // :grinning_face:
                         .second // :grinning_face_with_big_eyes:
                         .third // :grinning_face_with_smiling_eyes:
                         .fourth // :beaming_face_with_smiling_eyes:
                         .fifth // :grinning_squinting_face:
                         .sixth // :grinning_face_with_sweat:
                         .penultimate // :flag_scotland:
                         .last // :flag_wales:

Emojis.all.discordShortcodes

// Discord
Emojis.all.discordShortcodes // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]
                            .first // :grinning:
                            .second // :smiley:
                            .third // :smile:
                            .fourth // :grin:
                            .fifth // :laughing:
                            .sixth // :sweat_smile:
                            .penultimate // :scotland:
                            .last // :wales:

Emojis.all.githubShortcodes

// Github (no skin-tone shortcodes)
Emojis.all.githubShortcodes // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]
                           .first // :grinning:
                           .second // :smiley:
                           .third // :smile:
                           .fourth // :grin:
                           .fifth // :laughing:
                           .sixth // :sweat_smile:
                           .penultimate // :scotland:
                           .last // :wales:

Emojis.all.slackShortcodes

// Slack
Emojis.all.slackShortcodes // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]
                          .first // :grinning:
                          .second // :smiley:
                          .third // :smile:
                          .fourth // :grin:
                          .fifth // :laughing:
                          .sixth // :sweat_smile:
                          .penultimate // :flag-scotland:
                          .last // :flag-wales:

Emojis.all.unicodes

Emojis.all.unicodes // [1F600, 1F603, 1F604, 1F601, 1F606, 1F605, 1F923, 1F602, 1F642, ...]
                   .first // 1F600
                   .second // 1F603
                   .third // 1F604
                   .fourth // 1F601
                   .fifth // 1F606
                   .sixth // 1F605
                   .penultimate // 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F
                   .last // 1F3F4 E0067 E0062 E0077 E006C E0073 E007F

Emojis.all.values

Emojis.all.values // [😀, 😃, 😄, 😁, 😆, 😅, 🤣, 😂, 🙂, 🙃, 🫠, 😉, 😊, 😇, 🥰, 😍, ...]
                 .first // 😀
                 .second // 😃
                 .third // 😄
                 .fourth // 😁
                 .fifth // 😆
                 .sixth // 😅
                 .penultimate // 🏴󠁧󠁢󠁳󠁣󠁴󠁿
                 .last // 🏴󠁧󠁢󠁷󠁬󠁳󠁿

Emojis.getOne() #

// By value
Emojis.getOne('😀'); // or

// By unicode
Emojis.getOne('1F600'); // or

// By name or apple name (ignore-case)
Emojis.getOne('Grinning Face'); // or
Emojis.getOne('grinning face'); // or

// By also known as (ignore-case)
Emojis.getOne('Happy Face'); // or
Emojis.getOne('happy face'); // or
Emojis.getOne('Smiley Face'); // or
Emojis.getOne('smiley face'); // or

// By shortcode (ignore-colons)
Emojis.getOne(':grinning:'); // or
Emojis.getOne('grinning'); // or
Emojis.getOne('grinning_face'); /* [Emoji(
                                       value: 😀,
                                       unicode: 1F600,
                                       name: Grinning Face,
                                       appleName: Grinning Face,
                                       alsoKnownAs: [Happy Face, Smiley Face],
                                       group: Smileys & Emotion,
                                       subgroup: face-smiling,
                                       version: 8.0,
                                       status: fully-qualified,
                                       shortcodes: [
                                              Shortcode(
                                              platform: Default,
                                              values: [grinning_face]
                                            ),
                                              Shortcode(
                                              platform: CLDR,
                                              values: [grinning_face]
                                            ),
                                              Shortcode(
                                              platform: Discord,
                                              values: [grinning]
                                            ),
                                              Shortcode(
                                              platform: Github,
                                              values: [grinning]
                                            ),
                                              Shortcode(
                                              platform: Slack,
                                              values: [grinning]
                                            )]
                                     )] */

Emojis.getOneOrNull() #

Equivalent of getOne() with null safety:

Emojis.getOneOrNull('😀')?.name; // Grinning face
Emojis.getOneOrNull('some unknown value')?.name; // null

Emojis.byColor() #

Emojis.byColor(Color.blue); // [Emoji(value: 😰, ...), Emoji(value: 💙, ...), ...]
Emojis.byColor(Color.black); // [Emoji(value: 🖤, ...), Emoji(value: 🐈‍⬛, ...), ...]

//or use convenient getters:
Emojis.blue; // [Emoji(value: 😰, ...), Emoji(value: 💙, ...), ...]
Emojis.black; // [Emoji(value: 🖤, ...), Emoji(value: 🐈‍⬛, ...), ...]

Emojis.byHairStyle() #

Emojis.byHairStyle(HairStyle.white); // [Emoji(value: 👨‍🦳, ...), Emoji(value: 👨🏻‍🦳, ...), ...]
Emojis.byHairStyle(HairStyle.red); // [Emoji(value: 👨‍🦰, ...), Emoji(value: 👨🏻‍🦰, ...), ...]

//or use convenient getters:
Emojis.whiteHairStyle; // [Emoji(value: 👨‍🦳, ...), Emoji(value: 👨🏻‍🦳, ...), ...]
Emojis.redHairStyle; // [Emoji(value: 👨‍🦰, ...), Emoji(value: 👨🏻‍🦰, ...), ...]

Emojis.bySkinTone() #

Emojis.bySkinTone(SkinTone.light); // [Emoji(value: 👋🏻, ...), Emoji(value: 🤚🏻, ...), ...]
Emojis.bySkinTone(SkinTone.dark); // [Emoji(value: 👋🏿, ...), Emoji(value: 🤚🏿, ...), ...]

//or use convenient getters:
Emojis.lightSkinTone; // [Emoji(value: 👋🏻, ...), Emoji(value: 🤚🏻, ...), ...]
Emojis.darkSkinTone; // [Emoji(value: 👋🏿, ...), Emoji(value: 🤚🏿, ...), ...]

Emojis.byGroup() #

Emojis.byGroup(Group.smileysAndEmotion); // [Emoji(value: 😀, ...), Emoji(value: 😃, ...), ...]
Emojis.byGroup(Group.foodAndDrink); // [Emoji(value: 🍇, ...), Emoji(value: 🍈, ...), ...]

//or use convenient getters:
Emojis.smileysAndEmotion; // [Emoji(value: 😀, ...), Emoji(value: 😃, ...), ...]
Emojis.foodAndDrink; // [Emoji(value: 🍇, ...), Emoji(value: 🍈, ...), ...]

Emojis.bySubgroup() #

Emojis.bySubgroup(Subgroup.faceSmiling); // [Emoji(value: 😀, ...), Emoji(value: 😃, ...), ...]
Emojis.bySubgroup(Subgroup.animalBird); // [Emoji(value: 🦃, ...), Emoji(value: 🐔, ...), ...]

//or use convenient getters:
Emojis.faceSmiling; // [Emoji(value: 😀, ...), Emoji(value: 😃, ...), ...]
Emojis.animalBird; // [Emoji(value: 🦃, ...), Emoji(value: 🐔, ...), ...]

Emojis.byVersion() #

Emojis.byVersion(Version.v6_0); // [Emoji(value: 😃, ...), Emoji(value: 😄, ...), ...]
Emojis.byVersion(Version.v15_0); // [Emoji(value: 🫨, ...), Emoji(value: 🩷, ...), ...]

//or use convenient getters:
Emojis.v6_0; // [Emoji(value: 😃, ...), Emoji(value: 😄, ...), ...]
Emojis.v15_0; // [Emoji(value: 🫨, ...), Emoji(value: 🩷, ...), ...]

Emojis.byStatus() #

Emojis.byStatus(Status.fullyQualified); // [Emoji(value: 😃, ...), Emoji(value: 😄, ...), ...]

//or use convenient getters:
Emojis.fullyQualified; // [Emoji(value: 😃, ...), Emoji(value: 😄, ...), ...]

Emojis.colors #

Emojis.colors // [Color.red, Color.pink, Color.orange, Color.yellow, ...]
             .first // Color.red
             .second // Color.pink
             .third // Color.orange
             .fourth // Color.yellow
             .fifth // Color.green
             .sixth // Color.blue
             .penultimate // Color.grey
             .last // Color.white
             .values // [red, pink, orange, yellow, green, blue, light blue, ...]
                    .first // red
                    .second // pink
                    .third // orange
                    .fourth // yellow
                    .fifth // green
                    .sixth // blue
                    .penultimate // grey
                    .last // white

Emojis.hairStyles #

Emojis.hairStyles // [HairStyle.blond, HairStyle.red, HairStyle.curly, ...]
                 .first // HairStyle.blond
                 .second // HairStyle.red
                 .third // HairStyle.curly
                 .fourth // HairStyle.white
                 .fifth // HairStyle.bald
                 .sixthOrNull // null
                 .penultimate // HairStyle.white
                 .last // HairStyle.bald
                 .values // [1F471, 1F9B0, 1F9B1, 1F9B3, 1F9B2]
                        .first // 1F471
                        .second // 1F9B0
                        .third // 1F9B1
                        .fourth // 1F9B3
                        .fifth // 1F9B2
                        .sixthOrNull // null
                        .penultimate // 1F9B3
                        .last // 1F9B2

Emojis.skinTones #

Emojis.skinTones // [SkinTone.light, SkinTone.mediumLight, ...]
                .first // SkinTone.blond
                .second // SkinTone.mediumLight
                .third // SkinTone.medium
                .fourth // SkinTone.mediumDark
                .fifth // SkinTone.dark
                .sixthOrNull // null
                .penultimate // SkinTone.mediumDark
                .last // SkinTone.dark
                .values // [1F3FB, 1F3FC, 1F3FD, 1F3FE, 1F3FF]
                       .first // 1F3FB
                       .second // 1F3FC
                       .third // 1F3FD
                       .fourth // 1F3FE
                       .fifth // 1F3FF
                       .sixthOrNull // null
                       .penultimate // 1F3FE
                       .last // 1F3FF

Emojis.groups #

Emojis.groups // [Group.smileysAndEmotion, Group.peopleAndBody, Group.component, ...]
             .first // Group.smileysAndEmotion
             .second // Group.peopleAndBody
             .third // Group.component
             .fourth // Group.animalsAndNature
             .fifth // Group.foodAndDrink
             .sixth // Group.travelAndPlaces
             .penultimate // Group.symbols
             .last // Group.flags
             .values // [Smileys & Emotion, People & Body, Component, Animals & Nature, ...]
                    .first // Smileys & Emotion
                    .second // People & Body
                    .third // Component
                    .fourth // Animals & Nature
                    .fifth // Food & Drink
                    .sixth // Travel & Places
                    .penultimate // Symbols
                    .last // Flags

Emojis.subgroups #

Emojis.subgroups // [Subgroup.faceSmiling, Subgroup.faceAffection, Subgroup.faceTongue, ...]
                .first // Subgroup.faceSmiling
                .second // Subgroup.faceAffection
                .third // Subgroup.faceTongue
                .fourth // Subgroup.faceHand
                .fifth // Subgroup.faceNeutralSkeptical
                .sixth // Subgroup.faceSleepy
                .penultimate // Subgroup.countryFlag
                .last // Subgroup.subdivisionFlag
                .values // [face-smiling, face-affection, face-tongue, face-hand, ...]
                       .first // face-smiling
                       .second // face-affection
                       .third // face-tongue
                       .fourth // face-hand
                       .fifth // face-neutral-skeptical
                       .sixth // face-sleepy
                       .penultimate // country-flag
                       .last // subdivision-flag

Emojis.groupsWithSubgroups #

Emojis.groupsWithSubgroups; // {Group.smileysAndEmotion: [Subgroup.faceSmiling, ...], ...}
Emojis.groupsWithSubgroupsValues; // {Smileys & Emotion: [face-smiling, ...], ...}

Emojis.shortcodePlatforms #

Emojis.shortcodePlatforms // [Default, CLDR, Discord, Github, Slack]
                         .first // Default
                         .second // CLDR
                         .third // Discord
                         .fourth // Github
                         .fifth // Slack
                         .sixthOrNull // null
                         .penultimate // Github
                         .last // Slack

Emojis.statuses #

Emojis.statuses // [Status.fullyQualified, Status.minimallyQualified, ...]
               .first // Status.fullyQualified
               .second // Status.minimallyQualified
               .third // Status.unqualified
               .fourth // Status.component
               .fifthOrNull // null
               .sixthOrNull // null
               .penultimate // Status.unqualified
               .last // Status.component
               .values // [fully-qualified, minimally-qualified, unqualified, ...]
                      .first // fully-qualified
                      .second // minimally-qualified
                      .third // unqualified
                      .fourth // component
                      .fifthOrNull // null
                      .sixthOrNull // null
                      .penultimate // unqualified
                      .last // component

Emojis.versions #

Emojis.versions // [Version.v6_0, Version.v7_0, Version.v8_0, Version.v9_0, ...]
               .first // Version.v6_0
               .second // Version.v7_0
               .third // Version.v8_0
               .fourth // Version.v9_0
               .fifth // Version.v10_0
               .sixth // Version.v11_0
               .penultimate // Version.v15_1
               .last // Version.v16_0
               .values // [6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, ...]
                      .first // 6.0
                      .second // 7.0
                      .third // 8.0
                      .fourth // 9.0
                      .fifth // 10.0
                      .sixth // 11.0
                      .penultimate // 15.1
                      .last // 16.0

Emoji class #

Emoji class equipped with numerous properties and getters for your convenience:

Emoji('🦊')
           .name // Fox
           .appleName // Fox Face
           .unicode // 1F98A
           .shortcode // :fox:
           .discordShortcode // :fox:
           .discordShortcodes // [:fox:, :fox_face:]
                             .first // :fox:
                             .second // :fox_face:
           .version // Version.v9_0
           .value // 9.0
           .isAnimal // true
           .isFlag // false
           .isFlower // false
           .isFruit // false
           .isGeometric // false
           .isMan // false
           .isWoman // false
           .isVegetable // false
           .isPerson // false
           .isMultiPerson // false
           .isSymbol // false
           .isV9_0 // true
           .hasBeard // false
           .hasFace // true
           .hasHairStyle // false
           .hasSkinTone // false
           .hasColor // false
           .color // null
           .skinTone // null
           .hairStyle // null

Emoji.name #

Emoji('😀').name; // Grinning Face
Emoji('🦊').name; // Fox

Emoji.appleName #

Emoji('😀').appleName; // Grinning Face
Emoji('🦊').appleName; // Fox Face

Emoji.alsoKnownAs #

Emoji('😀').alsoKnownAs; // [Happy Face, Smiley Face]
Emoji('🦊').alsoKnownAs; // [Fox]

Emoji.color #

Emoji('🔴').color; // Color.red
Emoji('😀').color; // null

Emoji.shortcode #

Emoji('😀').shortcode; // :grinning_face:
Emoji('🦊').shortcode; // :fox:

Emoji.cldrShortcode #

Emoji('😀').cldrShortcode; // :grinning_face:
Emoji('🦊').cldrShortcode; // :fox:

Emoji.discordShortcode #

Emoji('😀').discordShortcode; // :grinning:
Emoji('🦊').discordShortcode; // :fox:

Emoji.githubShortcode #

Emoji('😀').githubShortcode; // :grinning:
Emoji('🦊').githubShortcode; // :fox_face:

Emoji.slackShortcode #

Emoji('😀').slackShortcode; // :grinning:
Emoji('🦊').slackShortcode; // :fox_face:

Emoji.unicode #

Emoji('😀').unicode; // 1F600
Emoji('🦊').unicode; // 1F98A

Emoji.version #

Emoji('😀').version; // Version.v8_0
Emoji('🦊').version; // Version.v9_0

Emoji.isAnimal #

Emoji('🦊').isAnimal; // true
Emoji('😀').isAnimal; // false

Emoji.isFlag #

Emoji('🏁').isFlag; // true
Emoji('😀').isFlag; // false

Emoji.isFlower #

Emoji('💐').isFlower; // true
Emoji('😀').isFlower; // false

Emoji.isFruit #

Emoji('🍇').isFruit; // true
Emoji('😀').isFruit; // false

Emoji.isVegetable #

Emoji('🍆').isVegetable; // true
Emoji('😀').isVegetable; // false

Emoji.isGeometric #

Emoji('🔴').isGeometric; // true
Emoji('😀').isGeometric; // false

Emoji.isMan #

Emoji('👨').isMan; // true
Emoji('👩').isMan; // false
Emoji('🔴').isMan; // false

Emoji.isWoman #

Emoji('👩').isWoman; // true
Emoji('👨').isWoman; // false
Emoji('🔴').isWoman; // false

Emoji.isPerson #

Emoji('🙍').isPerson; // true
Emoji('🔴').isPerson; // false

Emoji.isMultiPerson #

Emoji('👪').isMultiPerson; // true
Emoji('👨').isMultiPerson; // false
Emoji('🔴').isMultiPerson; // false

Emoji.isSymbol #

Emoji('🏧').isSymbol; // true
Emoji('😀').isSymbol; // false

Emoji.hasBeard #

Emoji('🧔').hasBeard; // true
Emoji('🧑').hasBeard; // false
Emoji('😀').hasBeard; // false

Emoji.hasFace #

Emoji('😀').hasFace; // true
Emoji('🌚').hasFace; // true
Emoji('🔴').hasFace; // false

Emoji.hasColor #

Emoji('🔴').hasColor; // true
Emoji('🟩').hasColor; // true
Emoji('😀').hasColor; // false

Emoji.hasHairStyle #

Emoji('👨‍🦰').hasHairStyle; // true
Emoji('👨').hasHairStyle; // false
Emoji('🔴').hasHairStyle; // false

Emoji.hairStyle #

Emoji('👨‍🦳').hairStyle; // HairStyle.white
Emoji('👨').hairStyle; // null
Emoji('🔴').hasHairStyle; // null

Emoji.hasSkinTone #

Emoji('👩🏻').hasSkinTone; // true
Emoji('👩').hasSkinTone; // false
Emoji('🔴').hasSkinTone; // false

Emoji.skinTone #

Emoji('👩🏻').skinTone; // SkinTone.light
Emoji('👩').skinTone; // null
Emoji('🔴').skinTone; // null

emojis extension #

One emojis extension that you can use to interact with emojis within any text:

'text😀text🤦🏾‍♀️text'.emojis 
                         .contains // true
                         .only // false
                         .onlyOne // false
                         .count // 2
                         .split // [text, text, text]
                         .remove // texttexttext
                         .removeFirst // texttext🤦🏾‍♀️text
                         .removeSecond // text😀texttext
                         .removePenultimate // texttext🤦🏾‍♀️text
                         .removeLast // text😀texttext
                         .extract // [😀, 🤦🏾‍♀️]
                                 .first // 😀
                                 .second // 🤦🏾‍♀️
                                 .thirdOrNull // null
                                 .penultimate // 😀
                                 .last // 🤦🏾‍♀️
                         .any((e) => e.value == '😀') // true
                         // or
                         .some((e) => e.value == '😀') // true
                         .anyOf(['😀', '👍🏻']) // true
                         // or
                         .someOf(['😀', '👍🏻']) // true
                         .every((e) => e.value == '😀') // false
                         .containsOf(['😀', '👍🏻']) // false
                         .containsOne((e) => e.value == '😀') // true
                         .none((e) => e.value == '👍🏻') // true
                         .noneOf(['😀', '👍🏻']) // false
                         .countWhere((e) => e.value == '🤦🏾‍♀️') // 1
                         .removeAt(0) // texttext🤦🏾‍♀️text
                         .removeFromEnd(0) // text😀texttext
                         .removeEveryOf(['😀', '🤦🏾‍♀️']) // texttexttext
                         .removeWhere((e) => e.value == '🤦🏾‍♀️') // text😀texttext
                         .replace('-') // text-text-text
                         .replaceWith({'😀':'ABC' , '🤦🏾‍♀️':'123'}) // textABCtext123text
                         .replaceWhere((e) => e.value == '🤦🏾‍♀️' ? '123' : null) // text😀text123text
                         .splitWhere((e) => e.value == '😀'); // [text, text🤦🏾‍♀️text]
                         .splitMapJoin(
                                       onMatch: (_) => '_emoji_',
                                       onNonMatch: (s) => s.toUpperCase(),
                                      ) // TEXT_emoji_TEXT_emoji_TEXT
                         .forEach((e) => print(e.value)) // 😀 🤦🏾‍♀️
                         .map((e) => e.value) // [😀, 🤦🏾‍♀️]
                         .where((e) => e.value == '😀') // Emoji(value: 😀, ...)
                         .take(1) // [Emoji(value: 😀, ...)]
                         .takeLast(1) // [Emoji(value: 🤦🏾‍♀️, ...)]
                         .skip(1) // [Emoji(value: 🤦🏾‍♀️, ...)]
                         .skipLast(1) // [Emoji(value: 😀, ...)]
                         .join((e) => e.value, separator: '.', prefix: 'prefix', suffix: 'suffix') // prefix😀.🤦🏾‍♀️suffix
                         .get // [Emoji(value: 😀, ...), Emoji(value: 🤦🏾‍♀️, ...)]
                             .values // [😀, 🤦🏾‍♀️]
                             .unicodes // [1F600, 1F926 1F3FE 200D 2640 FE0F]
                                      .first // 1F600
                                      .second // 1F926 1F3FE 200D 2640 FE0F
                             .names // [Grinning Face, Woman Facepalming: Medium-Dark Skin Tone]
                             .appleNames // [Grinning Face]
                             .alsoKnownAs // [Happy Face, Smiley Face]
                             .groups // [Group.smileysAndEmotion, Group.peopleAndBody]
                                    .values // [Smileys & Emotion, People & Body]
                             .subgroups // [Subgroup.faceSmiling, Subgroup.personGesture]
                                       .values // [face-smiling, person-gesture]
                             .shortcodes // [:grinning_face:, :woman_facepalming_medium_dark_skin_tone:]
                             .cldrShortcodes // [:grinning_face:, :woman_facepalming_tone4:]
                             .discordShortcodes // [:grinning:, :woman_facepalming_tone4:]
                             .githubShortcodes // [:grinning:]
                             .slackShortcodes // [:grinning:, :woman-facepalming::skin-tone-5:]
                         .first // Emoji(value: 😀, ...)
                             .value // 😀
                             .unicode // 1F600
                             .name // Grinning Face
                             .appleName // Grinning Face
                             .alsoKnownAs // [Happy Face, Smiley Face]
                             .group // Group.smileysAndEmotion
                                   .value // Smileys & Emotion
                             .subgroup // Subgroup.faceSmiling
                                      .value // face-smiling
                             .shortcode // :grinning_face:
                             .cldrShortcode // :grinning_face:
                             .discordShortcode // :grinning:
                             .githubShortcode // :grinning:
                             .slackShortcode // :grinning:

emojis.contains #

'😀text🤦🏾‍♀️'.emojis.contains; // true
'text'.emojis.contains; // false

emojis.count #

'😀text🤦🏾‍♀️'.emojis.count; // 2

emojis.extract #

'🔺️te🟡xt🟩te🔷xt'.emojis.extract // [🔺, 🟡, 🟩, 🔷]
                                  .first // 🔺
                                  .second // 🟡
                                  .third // 🟩
                                  .fourth // 🔷
                                  .fifthOrNull // null
                                  .sixthOrNull // null
                                  .penultimate // 🟩
                                  .last // 🔷

emojis.first #

'🔴te👍🏻xt👍🏼te👍🏽xt👍🏾te👍🏿xt'.emojis.first // Emoji(value: 🔴, ...)
                                        .value // 🔴
                                        .name // Red Circle
                                        ...

emojis.firstOrNull #

'🔴te👍🏻xt👍🏼te👍🏽xt👍🏾te👍🏿xt'.emojis.firstOrNull // Emoji(value: 🔴, ...)

'text'.emojis.firstOrNull; // null

emojis.second #

'👍️te🔴xt👍🏼te👍🏽xt👍🏾te👍🏿xt'.emojis.second // Emoji(value: 🔴, ...)
                                         .value // 🔴
                                         .name // Red Circle
                                         ...

emojis.secondOrNull #

'👍️te🔴xt👍🏼te👍🏽xt👍🏾te👍🏿xt'.emojis.secondOrNull // Emoji(value: 🔴, ...)

'text'.emojis.secondOrNull; // null

emojis.third #

'👍️te🔴xt👍🏼te👍🏽xt👍🏾te👍🏿xt'.emojis.third // Emoji(value: 🔴, ...)
                                        .value // 🔴
                                        .name // Red Circle
                                        ...

emojis.thirdOrNull #

'👍️te👍🏻xt🔴te👍🏽xt👍🏾te👍🏿xt'.emojis.thirdOrNull // Emoji(value: 🔴, ...)

'text'.emojis.thirdOrNull; // null

emojis.fourth #

'👍️te👍🏻xt👍🏼te🔴xt👍🏾te👍🏿xt'.emojis.fourth // Emoji(value: 🔴, ...)
                                         .value // 🔴
                                         .name // Red Circle
                                         ...

emojis.fourthOrNull #

'👍️te👍🏻xt👍🏼te🔴xt👍🏾te👍🏿xt'.emojis.fourthOrNull // Emoji(value: 🔴, ...)

'text'.emojis.fourthOrNull; // null

emojis.fifth #

'👍️te👍🏻xt👍🏼te👍🏽xt🔴te👍🏿xt'.emojis.fifth // Emoji(value: 🔴, ...)
                                        .value // 🔴
                                        .name // Red Circle
                                        ...

emojis.fifthOrNull #

'👍️te👍🏻xt👍🏼te👍🏽xt🔴te👍🏿xt'.emojis.fifthOrNull // Emoji(value: 🔴, ...)

'text'.emojis.fifthOrNull; // null

emojis.sixth #

'👍️te👍🏻xt👍🏼te👍🏽xt👍🏾te🔴xt'.emojis.sixth // Emoji(value: 🔴, ...)
                                        .value // 🔴
                                        .name // Red Circle
                                        ...

emojis.sixthOrNull #

'👍️te👍🏻xt👍🏼te👍🏽xt👍🏾te🔴xt'.emojis.sixthOrNull // Emoji(value: 🔴, ...)

'text'.emojis.sixthOrNull; // null

emojis.penultimate #

'👍️te👍🏻xt👍🏼te👍🏽xt🔴te👍🏿xt'.emojis.penultimate // Emoji(value: 🔴, ...)
                                              .value // 🔴
                                              .name // Red Circle
                                              ...

emojis.penultimateOrNull #

'👍️te👍🏻xt👍🏼te👍🏽xt🔴te👍🏿xt'.emojis.penultimateOrNull // Emoji(value: 🔴, ...)

'text'.emojis.penultimateOrNull; // null

emojis.last #

'👍️te👍🏻xt👍🏼te👍🏽xt👍🏾te🔴xt'.emojis.last // Emoji(value: 🔴, ...)
                                       .value // 🔴
                                       .name // Red Circle
                                       ...

emojis.lastOrNull #

'👍️te👍🏻xt👍🏼te👍🏽xt👍🏾te🔴xt'.emojis.lastOrNull // Emoji(value: 🔴, ...)

'text'.emojis.lastOrNull; // null

emojis.get #

'😀text'.emojis.get; /* [Emoji(
                          value: 😀,
                          unicode: 1F600,
                          name: Grinning Face,
                          appleName: Grinning Face,
                          alsoKnownAs: [Happy Face, Smiley Face],
                          group: Smileys & Emotion,
                          subgroup: face-smiling,
                          version: 8.0,
                          status: fully-qualified,
                          shortcodes: [
                                Shortcode(
                                platform: Default,
                                values: [grinning_face]
                              ),
                                Shortcode(
                                platform: CLDR,
                                values: [grinning_face]
                              ),
                                Shortcode(
                                platform: Discord,
                                values: [grinning]
                              ),
                                Shortcode(
                                platform: Github,
                                values: [grinning]
                              ),
                                Shortcode(
                                platform: Slack,
                                values: [grinning]
                              )]
                        )] */

emojis.get.alsoKnownAs

'😀text'.emojis.get.alsoKnownAs // [Happy Face, Smiley Face]
                               .first // Happy Face
                               .penultimate // Happy Face
                               .second // Smiley Face
                               .last // Smiley Face

emojis.get.appleNames

'😀text🤦🏾‍♀️'.emojis.get.appleNames // [Grinning Face]
                                .first // Grinning Face
                                .penultimate // Grinning Face
                                .secondOrNull // null
                                .lastOrNull // null

emojis.get.names

'😀text🤦🏾‍♀️'.emojis.get.names // [Grinning Face, Woman Facepalming: Medium-Dark Skin Tone]
                           .first // Grinning Face
                           .penultimate // Grinning Face
                           .second // Woman Facepalming: Medium-Dark Skin Tone
                           .last // Woman Facepalming: Medium-Dark Skin Tone

emojis.get.groups

'😀text🤦🏾‍♀️'.emojis.get.groups // [Group.smileysAndEmotion, Group.peopleAndBody]
                            .first // Group.smileysAndEmotion
                            .penultimate // Group.smileysAndEmotion
                            .second // Group.peopleAndBody
                            .last // Group.peopleAndBody
                            .values // [Smileys & Emotion, People & Body]
                                   .first // Smileys & Emotion
                                   .penultimate // Smileys & Emotion
                                   .second // People & Body
                                   .last // People & Body 

emojis.get.subgroups

'😀text🤦🏾‍♀️'.emojis.get.subgroups // [Subgroup.faceSmiling, Subgroup.personGesture]
                               .first // Subgroup.faceSmiling
                               .penultimate // Subgroup.faceSmiling
                               .second // Subgroup.personGesture
                               .last // Subgroup.personGesture
                               .values // [face-smiling, person-gesture]
                                      .first // face-smiling
                                      .penultimate // face-smiling
                                      .second // person-gesture
                                      .last // person-gesture

emojis.get.shortcodes

// Default (emoji name in snake_case)
'😀text🤦🏾‍♀️'.emojis.get.shortcodes; // [:grinning_face:, :woman_facepalming_medium_dark_skin_tone:]

emojis.get.cldrShortcodes

// CLDR
'😀text🤦🏾‍♀️'.emojis.get.cldrShortcodes; // [:grinning_face:, :woman_facepalming_tone4:]

emojis.get.discordShortcodes

// Discord
'😀text🤦🏾‍♀️'.emojis.get.discordShortcodes; // [:grinning:, :woman_facepalming_tone4:]

emojis.get.githubShortcodes

// Github (no skin-tone shortcodes)
'😀text🤦🏾‍♀️'.emojis.get.githubShortcodes; // [:grinning:]

emojis.get.slackShortcodes

// Slack
'😀text🤦🏾‍♀️'.emojis.get.slackShortcodes; // [:grinning:, :woman-facepalming::skin-tone-5:]

emojis.get.unicodes

'😀text🤦🏾‍♀️'.emojis.get.unicodes // [1F600, 1F926 1F3FE 200D 2640 FE0F]
                              .first // 1F600
                              .penultimate // 1F600
                              .second // 1F926 1F3FE 200D 2640 FE0F
                              .last // 1F926 1F3FE 200D 2640 FE0F

emojis.only #

'😀'.emojis.only; // true
'😀 😀 😀'.emojis.only; // true
'text 😀 😀 😀 text'.emojis.only; // false
'text'.emojis.only; // false

emojis.onlyOne #

'😀'.emojis.onlyOne; // true
'😀 😀 😀'.emojis.onlyOne; // false
'text 😀 😀 😀 text'.emojis.onlyOne; // false
'text'.emojis.onlyOne; // false

emojis.remove #

'😀text 🤦🏾‍♀️'.emojis.remove; // text

emojis.removeFirst #

'🔴te👍🏻xt👍🏼te👍🏽xt👍🏾te👍🏿xt'.emojis.removeFirst; // te👍🏻xt👍🏼te👍🏽xt👍🏾te👍🏿xt

emojis.removeSecond #

'👍️te🔴xt👍🏼te👍🏽xt👍🏾te👍🏿xt'.emojis.removeSecond; // 👍️text👍🏼te👍🏽xt👍🏾te👍🏿xt

emojis.removeThird #

'👍️te👍🏻xt🔴te👍🏽xt👍🏾te👍🏿xt'.emojis.removeThird; // 👍️te👍🏻xtte👍🏽xt👍🏾te👍🏿xt

emojis.removeFourth #

'👍️te👍🏻xt👍🏼te🔴xt👍🏾te👍🏿xt'.emojis.removeFourth; // 👍️te👍🏻xt👍🏼text👍🏾te👍🏿xt

emojis.removeFifth #

'👍️te👍🏻xt👍🏼te👍🏽xt🔴te👍🏿xt'.emojis.removeFifth; // 👍️te👍🏻xt👍🏼te👍🏽xtte👍🏿xt

emojis.removeSixth #

'👍️te👍🏻xt👍🏼te👍🏽xt👍🏾te🔴xt'.emojis.removeSixth; // 👍️te👍🏻xt👍🏼te👍🏽xt👍🏾text

emojis.removePenultimate #

'👍️te👍🏻xt👍🏼te👍🏽xt🔴te👍🏿xt'.emojis.removePenultimate; // 👍️te👍🏻xt👍🏼te👍🏽xtte👍🏿xt

emojis.removeLast #

'👍️te👍🏻xt👍🏼te👍🏽xt👍🏾te🔴xt'.emojis.removeLast; // 👍️te👍🏻xt👍🏼te👍🏽xt👍🏾text

emojis.split #

'text😀text'.emojis.split; // [text, text]

emojis.any() #

'😀text🤦🏾‍♀️'.emojis.any((e) => e.value == '😀'); // true
'😀text🤦🏾‍♀️'.emojis.any((e) => e.value == '👍🏻'); // false

Same as: emojis.some()

emojis.anyOf() #

'😀text🤦🏾‍♀️'.emojis.anyOf(['😀']); // true
'😀text🤦🏾‍♀️'.emojis.anyOf(['😀', '👍🏻']); // true
'😀text🤦🏾‍♀️'.emojis.anyOf(['👍🏻']); // false

Same as: emojis.someOf()

emojis.containsOf() #

'😀text🤦🏾‍♀️'.emojis.containsOf(['😀']); // true
'😀text🤦🏾‍♀️'.emojis.containsOf(['😀', '🤦🏾‍♀️']); // true
'😀text🤦🏾‍♀️'.emojis.containsOf(['😀', '👍🏻']); // false
'😀text🤦🏾‍♀️'.emojis.containsOf(['👍🏻']); // false

emojis.containsExactlyOf() #

'😀text🤦🏾‍♀️'.emojis.containsExactlyOf(['😀']); // false
'😀text🤦🏾‍♀️'.emojis.containsExactlyOf(['😀', '🤦🏾‍♀️']); // true
'😀text🤦🏾‍♀️text😀'.emojis.containsExactlyOf(['😀', '🤦🏾‍♀️']); // true
'😀text🤦🏾‍♀️'.emojis.containsExactlyOf(['👍🏻']); // false

emojis.containsOne() #

'😀text🤦🏾‍♀️text😀'.emojis.containsOne((e) => e.value == '🤦🏾‍♀️'); // true
'😀text🤦🏾‍♀️text😀'.emojis.containsOne((e) => e.value == '👍🏻'); // false
'😀text🤦🏾‍♀️text😀'.emojis.containsOne((e) => e.value == '😀'); // false

emojis.containsOneOf() #

'😀text🤦🏾‍♀️'.emojis.containsOneOf({'🤦🏾‍♀️'}); // true
'😀text🤦🏾‍♀️'.emojis.containsOneOf({'😀', '🤦🏾‍♀️'}); // true
'😀text🤦🏾‍♀️'.emojis.containsOneOf('😀', '🤦🏾‍♀️', '👍🏻'}); // false
'😀text🤦🏾‍♀️text😀'.emojis.containsOneOf({'😀'}); // false

emojis.containsExactlyOne() #

'😀text'.emojis.containsExactlyOne((e) => e.value == '😀'); // true
'😀text🤦🏾‍♀️'.emojis.containsExactlyOne((e) => e.value == '😀'); // false
'text'.emojis.containsExactlyOne((e) => e.value == '😀'); // false

emojis.containsExactlyOneOf() #

'😀text🤦🏾‍♀️'.emojis.containsExactlyOneOf({'😀', '🤦🏾‍♀️'}); // true
'😀text🤦🏾‍♀️text😀'.emojis.containsExactlyOneOf({'😀', '🤦🏾‍♀️'}); // false
'😀text🤦🏾‍♀️'.emojis.containsExactlyOneOf({'😀'}); // false
'😀text🤦🏾‍♀️'.emojis.containsExactlyOneOf({'😀', '👍🏻'}); // false

emojis.countWhere() #

'😀text🤦🏾‍♀️text😀'.emojis.countWhere((e) => e.value == '😀'); // 2

emojis.countWhereIndexed() #

'😀text🤦🏾‍♀️text😀'.emojis.countWhereIndexed((i, e) => i == 0 && e.value == '😀'); // 1

emojis.every() #

'😀text😀'.emojis.every((e) => e.value == '😀'); // true
'😀text🤦🏾‍♀️'.emojis.every((e) => e.value == '😀'); // false
'😀text🤦🏾‍♀️'.emojis.every((e) => e.value == '👍🏻'); // false

emojis.firstWhere() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.firstWhere((e) => e.name.contains('Woman')); // Emoji(value: 🤦🏾‍♀️, ...)

emojis.firstWhereIndexed() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.firstWhereIndexed((i, e) => i > 0 && e.name.contains('Woman')); // Emoji(value: 🤦🏻‍♀️, ...)

emojis.firstWhereOrNull() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.firstWhereOrNull((e) => e.name.contains('Woman')); // Emoji(value: 🤦🏾‍♀️, ...)

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.firstWhereOrNull((e) => e.value == '👍🏻'); // null

emojis.firstWhereIndexedOrNull() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.firstWhereIndexedOrNull((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: 🤦🏾‍♀️, ...)

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.firstWhereIndexedOrNull((i, e) => i == 0 && e.value == '😀'); // null

emojis.fold() #

'😀text🤦🏾‍♀️'.emojis.fold('start', (p, c) => p + c.value); // start😀🤦🏾‍♀️

emojis.foldIndexed() #

'😀text🤦🏾‍♀️'.emojis.foldIndexed('start', (i, p ,c) => '$p${c.value}$i'); // start😀0🤦🏾‍♀️1

emojis.forEach() #

'😀text🤦🏾‍♀️'.emojis.forEach((e) => print(e.value)); // 😀 🤦🏾‍♀️

emojis.forEachIndexed() #

'😀text🤦🏾‍♀️'.emojis.forEachIndexed(i,e) => print('$i:${e.value}')); // 0:😀 1:🤦🏾‍♀️

emojis.forEachWhile() #

'😀text🤦🏾‍♀️text😀'.emojis.forEachWhile((e) {
                                          print(e.value);
                                          return e.value == '😀';
                                          }); // 😀 🤦🏾‍♀️

emojis.forEachIndexedWhile() #

'😀text🤦🏾‍♀️text😀'.emojis.forEachIndexedWhile((i, e) {
                                                    print('$i:${e.value}');
                                                    return e.value == '😀';
                                                    }); // 0:😀 1:🤦🏾‍♀️

emojis.join() #

'😀text🤦🏾‍♀️'.emojis.join((e) => e.value, 
                              separator: '.', 
                              prefix: 'prefix', 
                              suffix: 'suffix'); // 'prefix😀.🤦🏾‍♀️suffix'

emojis.map() #

'😀text🤦🏾‍♀️'.emojis.map((e) => 'Emoji: ${e.name}'); // [Emoji: Grinning Face, Emoji: Woman Facepalming: Medium-Dark Skin Tone]

emojis.mapIndexed() #

'😀text🤦🏾‍♀️'.emojis.mapIndexed((i, e) => '$i: ${e.name}'); // [0: Grinning Face, 1: Woman Facepalming: Medium-Dark Skin Tone]

emojis.none() #

'😀text🤦🏾‍♀️'.emojis.none((e) => e.value == '👍🏻'); // true
'😀text🤦🏾‍♀️'.emojis.none((e) => e.value == '😀'); // false

emojis.noneOf() #

'😀text🤦🏾‍♀️'.emojis.noneOf(['👍🏻']); // true
'😀text🤦🏾‍♀️'.emojis.noneOf(['👍🏻', '🤦🏾‍♀️']); // false
'😀text🤦🏾‍♀️'.emojis.noneOf(['😀', '🤦🏾‍♀️']); // false

emojis.removeAt() #

'😀text🤦🏾‍♀️'.emojis.removeAt(0); // text🤦🏾‍♀️
'😀text🤦🏾‍♀️'.emojis.removeAt(10); // 😀text🤦🏾‍♀️

emojis.removeFromEnd() #

'😀text🤦🏾‍♀️'.emojis.removeFromEnd(0); // 😀text
'😀text🤦🏾‍♀️'.emojis.removeFromEnd(10); // 😀text🤦🏾‍♀️

emojis.removeEveryOf() #

'😀text🤦🏾‍♀️text👍🏻text😀'.emojis.removeEveryOf(['😀', '👍🏻']); // text🤦🏾‍♀️texttext

emojis.removeWhere() #

'😀text🤦🏾‍♀️text😀'.emojis.removeWhere((e) => e.value == '😀'); // text🤦🏾‍♀️text

emojis.removeWhereIndexed() #

'😀text🤦🏾‍♀️text😀'.emojis.removeWhereIndexed((i, e) => i == 0 && e.value == '😀'); // text🤦🏾‍♀️text😀

emojis.replace() #

'😀text🤦🏾‍♀️'.emojis.replace('_'); // _️text_

emojis.replaceWith() #

'😀text🤦🏾‍♀️'.emojis.replaceWith({'😀':'ABC', '🤦🏾‍♀️':'123'}); // ABCtext123

emojis.replaceWhere() #

'😀text🤦🏾‍♀️'.emojis.replaceWhere((e) => e.value == '🤦🏾‍♀️' ? '123' : null); // 😀text123

'😀text🤦🏾‍♀️'.emojis.replaceWhere((e) => {'😀':'ABC', '🤦🏾‍♀️':'123'}[e.value]); // ABCtext123

emojis.replaceWhereIndexed() #

'😀text🤦🏾‍♀️text😀'.emojis.replaceWhereIndexed((i, e) => i == 1 ? '_123_' : null); // 😀text_123_text😀

emojis.skip() #

'😀text🤦🏾‍♀️text👍🏻'.emojis.skip(1); // [Emoji(value: 🤦🏾‍♀️, ...), Emoji(value: 👍🏻, ...)]

emojis.skipLast() #

'😀text🤦🏾‍♀️text👍🏻'.emojis.skipLast(1); // [Emoji(value: 😀, ...), Emoji(value: 🤦🏾‍♀️, ...)]

emojis.skipWhile() #

'😀text🤦🏾‍♀️text👍🏻'.emojis.skipWhile((e) => e.value == '😀'); // [Emoji(value: 🤦🏾‍♀️, ...), Emoji(value: 👍🏻, ...)]

emojis.some() #

'😀text🤦🏾‍♀️'.emojis.some((e) => e.value == '😀'); // true
'😀text🤦🏾‍♀️'.emojis.some((e) => e.value == '👍🏻'); // false

Same as: emojis.any()

emojis.someOf() #

'😀text🤦🏾‍♀️'.emojis.someOf(['😀']); // true
'😀text🤦🏾‍♀️'.emojis.someOf(['😀', '👍🏻']); // true
'😀text🤦🏾‍♀️'.emojis.someOf(['👍🏻']); // false

Same as: emojis.anyOf()

emojis.splitMapJoin() #

'😀text🤦🏾‍♀️'.emojis.splitMapJoin(
onMatch: (_) => '_emoji_',
onNonMatch: (s) => s.toUpperCase(),
); // _emoji_TEXT_emoji_                                

emojis.splitWhere() #

'😀text🤦🏾‍♀️text😀'.emojis.splitWhere((e) => e.value == '🤦🏾‍♀️'); // [😀text, text😀]

emojis.splitWhereIndexed() #

'😀text🤦🏾‍♀️text😀'.emojis.splitWhereIndexed((i, e) => i == 1 && e.value == '🤦🏾‍♀️'); // [😀text, text😀]

emojis.toShortcodes() #

// Default (emoji name in snake_case)
'😀text🤦🏾‍♀️'.emojis.toShortcodes(); // :grinning_face:text:woman_facepalming_medium_dark_skin_tone:

// CLDR
'😀text🤦🏾‍♀️'.emojis.toCLDRShortcodes(); // :grinning_face:text:woman_facepalming_tone4:

// Discord
'😀text🤦🏾‍♀️'.emojis.toDiscordShortcodes(); // :grinning:text:woman_facepalming_tone4:

// Github (no skin-tone shortcodes)
'😀text🤦🏾‍♀️'.emojis.toGithubShortcodes(); // :grinning:text🤦🏾‍♀️

// Slack
'😀text🤦🏾‍♀️'.emojis.toSlackShortcodes(); // :grinning:text:woman-facepalming::skin-tone-5:

emojis.fromShortcodes() #

// Default 
':grinning_face:text:woman_facepalming_medium_dark_skin_tone:'.emojis.fromShortcodes(); // 😀text🤦🏾‍♀️

// CLDR
':grinning_face:text:woman_facepalming_tone4:'.emojis.fromShortcodes(); // 😀text🤦🏾‍♀️

// Discord
':grinning:text:woman_facepalming_tone4:'.emojis.fromShortcodes(); // 😀text🤦🏾‍♀️

// Github (no skin-tone shortcodes)
':grinning:text:woman_facepalming:'.emojis.fromShortcodes(); // 😀text🤦‍♀

// Slack
':grinning:text:woman-facepalming::skin-tone-5:'.emojis.fromShortcodes(); // 😀text🤦🏾‍♀️

emojis.lastWhere() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.lastWhere((e) => e.name.contains('Woman')); // Emoji(value: 🤦🏻‍♀️, ...)

emojis.lastWhereIndexed() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.lastWhereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: 🤦🏾‍♀️, ...)

emojis.lastWhereOrNull() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.lastWhereOrNull((e) => e.name.contains('Woman')); // Emoji(value: 🤦🏻‍♀️, ...)

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.lastWhereOrNull((e) => e.value == '👍🏻'); // null

emojis.lastWhereIndexedOrNull() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.lastWhereIndexedOrNull((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: 🤦🏾‍♀️, ...)

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.lastWhereIndexedOrNull((i, e) => i == 0 && e.value == '😀'); // null

emojis.take() #

'😀text🤦🏾‍♀️text👍🏻'.emojis.take(2); // [Emoji(value: 😀, ...), Emoji(value: 🤦🏾‍♀️, ...)]

emojis.takeLast() #

'😀text🤦🏾‍♀️text👍🏻'.emojis.takeLast(2); // [Emoji(value: 🤦🏾‍♀️, ...), Emoji(value: 👍🏻, ...)]

emojis.takeWhile() #

'😀text🤦🏾‍♀️text👍🏻'.emojis.takeWhile((e) => e.value == '😀'); // [Emoji(value: 😀, ...)]

emojis.where() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.where((e) => e.name.contains('Woman')); // [Emoji(value: 🤦🏾‍♀️, ...), Emoji(value: 🤦🏻‍♀️, ...)]

emojis.whereIndexed() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.whereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: 🤦🏾‍♀️, ...)]

emojis.whereNot() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.whereNot((e) => e.name.contains('Woman')); // [Emoji(value: 😀, ...)]

emojis.whereNotIndexed() #

'🤦🏾‍♀️text😀text🤦🏻‍♀️'.emojis.whereNotIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: 😀, ...), Emoji(value: 🤦🏻‍♀️, ...)]

Example Flutter Apps

Emoji Overview App Example

Emoji overview app demo GIF
Emoji Chat App Example

Emoji chat app demo GIF
8
likes
160
points
1.05k
downloads
screenshot

Publisher

verified publisherdominikkrajcer.com

Weekly Downloads

Emojis for Flutter & Dart (Unicode 16.0) + one, yet powerful emojis String extension

Repository (GitHub)
View/report issues

Topics

#emoji #emojis #collection #unicode

Documentation

API reference

License

MIT (license)

Dependencies

collection

More

Packages that depend on emoji_extension