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

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


Features

  • Contains over 5,000 emojis from Unicode 15.1 đŸ’Ș
  • 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, ...]
↑ Table of contents ↑

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: [...]
                )
               ...
               ] */
↑ Table of contents ↑

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
↑ Table of contents ↑

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
↑ Table of contents ↑

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
↑ Table of contents ↑

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:
↑ Table of contents ↑

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:
↑ Table of contents ↑

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:
↑ Table of contents ↑

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:
↑ Table of contents ↑

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:
↑ Table of contents ↑

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
↑ Table of contents ↑

Emojis.all.values

Emojis.all.values // [😀, 😃, 😄, 😁, 😆, 😅, đŸ€Ł, 😂, 🙂, 🙃, đŸ« , 😉, 😊, 😇, đŸ„°, 😍, ...]
                 .first // 😀
                 .second // 😃
                 .third // 😄
                 .fourth // 😁
                 .fifth // 😆
                 .sixth // 😅
                 .penultimate // 🏮󠁧󠁱󠁳󠁣󠁮󠁿
                 .last // đŸŽó §ó ąó ·ó Źó łó ż
↑ Table of contents ↑

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]
                                            )]
                                     )] */
↑ Table of contents ↑

Emojis.getOneOrNull()

Equivalent of getOne() with null safety:

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

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: 🐈‍⬛, ...), ...]
↑ Table of contents ↑

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: đŸ‘šđŸ»â€đŸŠ°, ...), ...]
↑ Table of contents ↑

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: đŸ€šđŸż, ...), ...]
↑ Table of contents ↑

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: 🍈, ...), ...]
↑ Table of contents ↑

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: 🐔, ...), ...]
↑ Table of contents ↑

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: đŸ©·, ...), ...]
↑ Table of contents ↑

Emojis.byStatus()

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

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

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
↑ Table of contents ↑

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
↑ Table of contents ↑

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
↑ Table of contents ↑

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
↑ Table of contents ↑

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
↑ Table of contents ↑

Emojis.groupsWithSubgroups

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

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
↑ Table of contents ↑

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
↑ Table of contents ↑

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_0
               .last // Version.v15_1
               .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.0
                      .last // 15.1
↑ Table of contents ↑

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
↑ Table of contents ↑

Emoji.name

Emoji('😀').name; // Grinning Face
Emoji('🩊').name; // Fox
↑ Table of contents ↑

Emoji.appleName

Emoji('😀').appleName; // Grinning Face
Emoji('🩊').appleName; // Fox Face
↑ Table of contents ↑

Emoji.alsoKnownAs

Emoji('😀').alsoKnownAs; // [Happy Face, Smiley Face]
Emoji('🩊').alsoKnownAs; // [Fox]
↑ Table of contents ↑

Emoji.color

Emoji('🔮').color; // Color.red
Emoji('😀').color; // null
↑ Table of contents ↑

Emoji.shortcode

Emoji('😀').shortcode; // :grinning_face:
Emoji('🩊').shortcode; // :fox:
↑ Table of contents ↑

Emoji.cldrShortcode

Emoji('😀').cldrShortcode; // :grinning_face:
Emoji('🩊').cldrShortcode; // :fox:
↑ Table of contents ↑

Emoji.discordShortcode

Emoji('😀').discordShortcode; // :grinning:
Emoji('🩊').discordShortcode; // :fox:
↑ Table of contents ↑

Emoji.githubShortcode

Emoji('😀').githubShortcode; // :grinning:
Emoji('🩊').githubShortcode; // :fox_face:
↑ Table of contents ↑

Emoji.slackShortcode

Emoji('😀').slackShortcode; // :grinning:
Emoji('🩊').slackShortcode; // :fox_face:
↑ Table of contents ↑

Emoji.unicode

Emoji('😀').unicode; // 1F600
Emoji('🩊').unicode; // 1F98A
↑ Table of contents ↑

Emoji.version

Emoji('😀').version; // Version.v8_0
Emoji('🩊').version; // Version.v9_0
↑ Table of contents ↑

Emoji.isAnimal

Emoji('🩊').isAnimal; // true
Emoji('😀').isAnimal; // false
↑ Table of contents ↑

Emoji.isFlag

Emoji('🏁').isFlag; // true
Emoji('😀').isFlag; // false
↑ Table of contents ↑

Emoji.isFlower

Emoji('💐').isFlower; // true
Emoji('😀').isFlower; // false
↑ Table of contents ↑

Emoji.isFruit

Emoji('🍇').isFruit; // true
Emoji('😀').isFruit; // false
↑ Table of contents ↑

Emoji.isVegetable

Emoji('🍆').isVegetable; // true
Emoji('😀').isVegetable; // false
↑ Table of contents ↑

Emoji.isGeometric

Emoji('🔮').isGeometric; // true
Emoji('😀').isGeometric; // false
↑ Table of contents ↑

Emoji.isMan

Emoji('👹').isMan; // true
Emoji('đŸ‘©').isMan; // false
Emoji('🔮').isMan; // false
↑ Table of contents ↑

Emoji.isWoman

Emoji('đŸ‘©').isWoman; // true
Emoji('👹').isWoman; // false
Emoji('🔮').isWoman; // false
↑ Table of contents ↑

Emoji.isPerson

Emoji('🙍').isPerson; // true
Emoji('🔮').isPerson; // false
↑ Table of contents ↑

Emoji.isMultiPerson

Emoji('đŸ‘Ș').isMultiPerson; // true
Emoji('👹').isMultiPerson; // false
Emoji('🔮').isMultiPerson; // false
↑ Table of contents ↑

Emoji.isSymbol

Emoji('🏧').isSymbol; // true
Emoji('😀').isSymbol; // false
↑ Table of contents ↑

Emoji.hasBeard

Emoji('🧔').hasBeard; // true
Emoji('🧑').hasBeard; // false
Emoji('😀').hasBeard; // false
↑ Table of contents ↑

Emoji.hasFace

Emoji('😀').hasFace; // true
Emoji('🌚').hasFace; // true
Emoji('🔮').hasFace; // false
↑ Table of contents ↑

Emoji.hasColor

Emoji('🔮').hasColor; // true
Emoji('đŸŸ©').hasColor; // true
Emoji('😀').hasColor; // false
↑ Table of contents ↑

Emoji.hasHairStyle

Emoji('👹‍🩰').hasHairStyle; // true
Emoji('👹').hasHairStyle; // false
Emoji('🔮').hasHairStyle; // false
↑ Table of contents ↑

Emoji.hairStyle

Emoji('👹‍🩳').hairStyle; // HairStyle.white
Emoji('👹').hairStyle; // null
Emoji('🔮').hasHairStyle; // null
↑ Table of contents ↑

Emoji.hasSkinTone

Emoji('đŸ‘©đŸ»').hasSkinTone; // true
Emoji('đŸ‘©').hasSkinTone; // false
Emoji('🔮').hasSkinTone; // false
↑ Table of contents ↑

Emoji.skinTone

Emoji('đŸ‘©đŸ»').skinTone; // SkinTone.light
Emoji('đŸ‘©').skinTone; // null
Emoji('🔮').skinTone; // null
↑ Table of contents ↑

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:
↑ Table of contents ↑

emojis.contains

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.contains; // true
'text'.emojis.contains; // false
↑ Table of contents ↑

emojis.count

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.count; // 2
↑ Table of contents ↑

emojis.extract

'đŸ”ște🟡xtđŸŸ©teđŸ”·xt'.emojis.extract // [đŸ”ș, 🟡, đŸŸ©, đŸ”·]
                                  .first // đŸ”ș
                                  .second // 🟡
                                  .third // đŸŸ©
                                  .fourth // đŸ”·
                                  .fifthOrNull // null
                                  .sixthOrNull // null
                                  .penultimate // đŸŸ©
                                  .last // đŸ”·
↑ Table of contents ↑

emojis.first

'🔮teđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.first // Emoji(value: 🔮, ...)
                                        .value // 🔮
                                        .name // Red Circle
                                        ...
↑ Table of contents ↑

emojis.firstOrNull

'🔮teđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.firstOrNull // Emoji(value: 🔮, ...)

'text'.emojis.firstOrNull; // null
↑ Table of contents ↑

emojis.second

'đŸ‘ïžte🔮xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.second // Emoji(value: 🔮, ...)
                                         .value // 🔮
                                         .name // Red Circle
                                         ...
↑ Table of contents ↑

emojis.secondOrNull

'đŸ‘ïžte🔮xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.secondOrNull // Emoji(value: 🔮, ...)

'text'.emojis.secondOrNull; // null
↑ Table of contents ↑

emojis.third

'đŸ‘ïžte🔮xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.third // Emoji(value: 🔮, ...)
                                        .value // 🔮
                                        .name // Red Circle
                                        ...
↑ Table of contents ↑

emojis.thirdOrNull

'đŸ‘ïžteđŸ‘đŸ»xt🔮teđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.thirdOrNull // Emoji(value: 🔮, ...)

'text'.emojis.thirdOrNull; // null
↑ Table of contents ↑

emojis.fourth

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒte🔮xtđŸ‘đŸŸte👍🏿xt'.emojis.fourth // Emoji(value: 🔮, ...)
                                         .value // 🔮
                                         .name // Red Circle
                                         ...
↑ Table of contents ↑

emojis.fourthOrNull

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒte🔮xtđŸ‘đŸŸte👍🏿xt'.emojis.fourthOrNull // Emoji(value: 🔮, ...)

'text'.emojis.fourthOrNull; // null
↑ Table of contents ↑

emojis.fifth

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxt🔮te👍🏿xt'.emojis.fifth // Emoji(value: 🔮, ...)
                                        .value // 🔮
                                        .name // Red Circle
                                        ...
↑ Table of contents ↑

emojis.fifthOrNull

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxt🔮te👍🏿xt'.emojis.fifthOrNull // Emoji(value: 🔮, ...)

'text'.emojis.fifthOrNull; // null
↑ Table of contents ↑

emojis.sixth

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte🔮xt'.emojis.sixth // Emoji(value: 🔮, ...)
                                        .value // 🔮
                                        .name // Red Circle
                                        ...
↑ Table of contents ↑

emojis.sixthOrNull

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte🔮xt'.emojis.sixthOrNull // Emoji(value: 🔮, ...)

'text'.emojis.sixthOrNull; // null
↑ Table of contents ↑

emojis.penultimate

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxt🔮te👍🏿xt'.emojis.penultimate // Emoji(value: 🔮, ...)
                                              .value // 🔮
                                              .name // Red Circle
                                              ...
↑ Table of contents ↑

emojis.penultimateOrNull

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxt🔮te👍🏿xt'.emojis.penultimateOrNull // Emoji(value: 🔮, ...)

'text'.emojis.penultimateOrNull; // null
↑ Table of contents ↑

emojis.last

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte🔮xt'.emojis.last // Emoji(value: 🔮, ...)
                                       .value // 🔮
                                       .name // Red Circle
                                       ...
↑ Table of contents ↑

emojis.lastOrNull

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte🔮xt'.emojis.lastOrNull // Emoji(value: 🔮, ...)

'text'.emojis.lastOrNull; // null
↑ Table of contents ↑

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]
                              )]
                        )] */
↑ Table of contents ↑

emojis.get.alsoKnownAs

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

emojis.get.appleNames

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.get.appleNames // [Grinning Face]
                                .first // Grinning Face
                                .penultimate // Grinning Face
                                .secondOrNull // null
                                .lastOrNull // null
↑ Table of contents ↑

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
↑ Table of contents ↑

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 
↑ Table of contents ↑

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
↑ Table of contents ↑

emojis.get.shortcodes

// Default (emoji name in snake_case)
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.get.shortcodes; // [:grinning_face:, :woman_facepalming_medium_dark_skin_tone:]
↑ Table of contents ↑

emojis.get.cldrShortcodes

// CLDR
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.get.cldrShortcodes; // [:grinning_face:, :woman_facepalming_tone4:]
↑ Table of contents ↑

emojis.get.discordShortcodes

// Discord
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.get.discordShortcodes; // [:grinning:, :woman_facepalming_tone4:]
↑ Table of contents ↑

emojis.get.githubShortcodes

// Github (no skin-tone shortcodes)
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.get.githubShortcodes; // [:grinning:]
↑ Table of contents ↑

emojis.get.slackShortcodes

// Slack
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.get.slackShortcodes; // [:grinning:, :woman-facepalming::skin-tone-5:]
↑ Table of contents ↑

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
↑ Table of contents ↑

emojis.only

'😀'.emojis.only; // true
'😀 😀 😀'.emojis.only; // true
'text 😀 😀 😀 text'.emojis.only; // false
'text'.emojis.only; // false
↑ Table of contents ↑

emojis.onlyOne

'😀'.emojis.onlyOne; // true
'😀 😀 😀'.emojis.onlyOne; // false
'text 😀 😀 😀 text'.emojis.onlyOne; // false
'text'.emojis.onlyOne; // false
↑ Table of contents ↑

emojis.remove

'😀text đŸ€ŠđŸŸâ€â™€ïž'.emojis.remove; // text
↑ Table of contents ↑

emojis.removeFirst

'🔮teđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.removeFirst; // teđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt
↑ Table of contents ↑

emojis.removeSecond

'đŸ‘ïžte🔮xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.removeSecond; // đŸ‘ïžtextđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt
↑ Table of contents ↑

emojis.removeThird

'đŸ‘ïžteđŸ‘đŸ»xt🔮teđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt'.emojis.removeThird; // đŸ‘ïžteđŸ‘đŸ»xtteđŸ‘đŸœxtđŸ‘đŸŸte👍🏿xt
↑ Table of contents ↑

emojis.removeFourth

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒte🔮xtđŸ‘đŸŸte👍🏿xt'.emojis.removeFourth; // đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒtextđŸ‘đŸŸte👍🏿xt
↑ Table of contents ↑

emojis.removeFifth

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxt🔮te👍🏿xt'.emojis.removeFifth; // đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtte👍🏿xt
↑ Table of contents ↑

emojis.removeSixth

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte🔮xt'.emojis.removeSixth; // đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸtext
↑ Table of contents ↑

emojis.removePenultimate

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxt🔮te👍🏿xt'.emojis.removePenultimate; // đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtte👍🏿xt
↑ Table of contents ↑

emojis.removeLast

'đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸte🔮xt'.emojis.removeLast; // đŸ‘ïžteđŸ‘đŸ»xtđŸ‘đŸŒteđŸ‘đŸœxtđŸ‘đŸŸtext
↑ Table of contents ↑

emojis.split

'text😀text'.emojis.split; // [text, text]
↑ Table of contents ↑

emojis.any()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.any((e) => e.value == '😀'); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.any((e) => e.value == 'đŸ‘đŸ»'); // false

Same as: emojis.some()

↑ Table of contents ↑

emojis.anyOf()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.anyOf(['😀']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.anyOf(['😀', 'đŸ‘đŸ»']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.anyOf(['đŸ‘đŸ»']); // false

Same as: emojis.someOf()

↑ Table of contents ↑

emojis.containsOf()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsOf(['😀']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsOf(['😀', 'đŸ€ŠđŸŸâ€â™€ïž']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsOf(['😀', 'đŸ‘đŸ»']); // false
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsOf(['đŸ‘đŸ»']); // false
↑ Table of contents ↑

emojis.containsExactlyOf()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsExactlyOf(['😀']); // false
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsExactlyOf(['😀', 'đŸ€ŠđŸŸâ€â™€ïž']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.containsExactlyOf(['😀', 'đŸ€ŠđŸŸâ€â™€ïž']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsExactlyOf(['đŸ‘đŸ»']); // false
↑ Table of contents ↑

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
↑ Table of contents ↑

emojis.containsOneOf()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsOneOf({'đŸ€ŠđŸŸâ€â™€ïž'}); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsOneOf({'😀', 'đŸ€ŠđŸŸâ€â™€ïž'}); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsOneOf('😀', 'đŸ€ŠđŸŸâ€â™€ïž', 'đŸ‘đŸ»'}); // false
'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.containsOneOf({'😀'}); // false
↑ Table of contents ↑

emojis.containsExactlyOne()

'😀text'.emojis.containsExactlyOne((e) => e.value == '😀'); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsExactlyOne((e) => e.value == '😀'); // false
'text'.emojis.containsExactlyOne((e) => e.value == '😀'); // false
↑ Table of contents ↑

emojis.containsExactlyOneOf()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsExactlyOneOf({'😀', 'đŸ€ŠđŸŸâ€â™€ïž'}); // true
'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.containsExactlyOneOf({'😀', 'đŸ€ŠđŸŸâ€â™€ïž'}); // false
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsExactlyOneOf({'😀'}); // false
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.containsExactlyOneOf({'😀', 'đŸ‘đŸ»'}); // false
↑ Table of contents ↑

emojis.countWhere()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.countWhere((e) => e.value == '😀'); // 2
↑ Table of contents ↑

emojis.countWhereIndexed()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.countWhereIndexed((i, e) => i == 0 && e.value == '😀'); // 1
↑ Table of contents ↑

emojis.every()

'😀text😀'.emojis.every((e) => e.value == '😀'); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.every((e) => e.value == '😀'); // false
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.every((e) => e.value == 'đŸ‘đŸ»'); // false
↑ Table of contents ↑

emojis.firstWhere()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.firstWhere((e) => e.name.contains('Woman')); // Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...)
↑ Table of contents ↑

emojis.firstWhereIndexed()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.firstWhereIndexed((i, e) => i > 0 && e.name.contains('Woman')); // Emoji(value: đŸ€ŠđŸ»â€â™€ïž, ...)
↑ Table of contents ↑

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
↑ Table of contents ↑

emojis.fold()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.fold('start', (p, c) => p + c.value); // startđŸ˜€đŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.foldIndexed()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.foldIndexed('start', (i, p ,c) => '$p${c.value}$i'); // start😀0đŸ€ŠđŸŸâ€â™€ïž1
↑ Table of contents ↑

emojis.forEach()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.forEach((e) => print(e.value)); // 😀 đŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.forEachIndexed()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.forEachIndexed(i,e) => print('$i:${e.value}')); // 0:😀 1:đŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.forEachWhile()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.forEachWhile((e) {
                                          print(e.value);
                                          return e.value == '😀';
                                          }); // 😀 đŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.forEachIndexedWhile()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.forEachIndexedWhile((i, e) {
                                                    print('$i:${e.value}');
                                                    return e.value == '😀';
                                                    }); // 0:😀 1:đŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.join()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.join((e) => e.value, 
                              separator: '.', 
                              prefix: 'prefix', 
                              suffix: 'suffix'); // 'prefix😀.đŸ€ŠđŸŸâ€â™€ïžsuffix'
↑ Table of contents ↑

emojis.map()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.map((e) => 'Emoji: ${e.name}'); // [Emoji: Grinning Face, Emoji: Woman Facepalming: Medium-Dark Skin Tone]
↑ Table of contents ↑

emojis.mapIndexed()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.mapIndexed((i, e) => '$i: ${e.name}'); // [0: Grinning Face, 1: Woman Facepalming: Medium-Dark Skin Tone]
↑ Table of contents ↑

emojis.none()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.none((e) => e.value == 'đŸ‘đŸ»'); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.none((e) => e.value == '😀'); // false
↑ Table of contents ↑

emojis.noneOf()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.noneOf(['đŸ‘đŸ»']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.noneOf(['đŸ‘đŸ»', 'đŸ€ŠđŸŸâ€â™€ïž']); // false
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.noneOf(['😀', 'đŸ€ŠđŸŸâ€â™€ïž']); // false
↑ Table of contents ↑

emojis.removeAt()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.removeAt(0); // textđŸ€ŠđŸŸâ€â™€ïž
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.removeAt(10); // 😀textđŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.removeFromEnd()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.removeFromEnd(0); // 😀text
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.removeFromEnd(10); // 😀textđŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.removeEveryOf()

'😀textđŸ€ŠđŸŸâ€â™€ïžtextđŸ‘đŸ»text😀'.emojis.removeEveryOf(['😀', 'đŸ‘đŸ»']); // textđŸ€ŠđŸŸâ€â™€ïžtexttext
↑ Table of contents ↑

emojis.removeWhere()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.removeWhere((e) => e.value == '😀'); // textđŸ€ŠđŸŸâ€â™€ïžtext
↑ Table of contents ↑

emojis.removeWhereIndexed()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.removeWhereIndexed((i, e) => i == 0 && e.value == '😀'); // textđŸ€ŠđŸŸâ€â™€ïžtext😀
↑ Table of contents ↑

emojis.replace()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.replace('_'); // _text_
↑ Table of contents ↑

emojis.replaceWith()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.replaceWith({'😀':'ABC', 'đŸ€ŠđŸŸâ€â™€ïž':'123'}); // ABCtext123
↑ Table of contents ↑

emojis.replaceWhere()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.replaceWhere((e) => e.value == 'đŸ€ŠđŸŸâ€â™€ïž' ? '123' : null); // 😀text123

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.replaceWhere((e) => {'😀':'ABC', 'đŸ€ŠđŸŸâ€â™€ïž':'123'}[e.value]); // ABCtext123
↑ Table of contents ↑

emojis.replaceWhereIndexed()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.replaceWhereIndexed((i, e) => i == 1 ? '_123_' : null); // 😀text_123_text😀
↑ Table of contents ↑

emojis.skip()

'😀textđŸ€ŠđŸŸâ€â™€ïžtextđŸ‘đŸ»'.emojis.skip(1); // [Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...), Emoji(value: đŸ‘đŸ», ...)]
↑ Table of contents ↑

emojis.skipLast()

'😀textđŸ€ŠđŸŸâ€â™€ïžtextđŸ‘đŸ»'.emojis.skipLast(1); // [Emoji(value: 😀, ...), Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...)]
↑ Table of contents ↑

emojis.skipWhile()

'😀textđŸ€ŠđŸŸâ€â™€ïžtextđŸ‘đŸ»'.emojis.skipWhile((e) => e.value == '😀'); // [Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...), Emoji(value: đŸ‘đŸ», ...)]
↑ Table of contents ↑

emojis.some()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.some((e) => e.value == '😀'); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.some((e) => e.value == 'đŸ‘đŸ»'); // false

Same as: emojis.any()

↑ Table of contents ↑

emojis.someOf()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.someOf(['😀']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.someOf(['😀', 'đŸ‘đŸ»']); // true
'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.someOf(['đŸ‘đŸ»']); // false

Same as: emojis.anyOf()

↑ Table of contents ↑

emojis.splitMapJoin()

'😀textđŸ€ŠđŸŸâ€â™€ïž'.emojis.splitMapJoin(
onMatch: (_) => '_emoji_',
onNonMatch: (s) => s.toUpperCase(),
); // _emoji_TEXT_emoji_                                
↑ Table of contents ↑

emojis.splitWhere()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.splitWhere((e) => e.value == 'đŸ€ŠđŸŸâ€â™€ïž'); // [😀text, text😀]
↑ Table of contents ↑

emojis.splitWhereIndexed()

'😀textđŸ€ŠđŸŸâ€â™€ïžtext😀'.emojis.splitWhereIndexed((i, e) => i == 1 && e.value == 'đŸ€ŠđŸŸâ€â™€ïž'); // [😀text, text😀]
↑ Table of contents ↑

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:
↑ Table of contents ↑

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đŸ€ŠđŸŸâ€â™€ïž
↑ Table of contents ↑

emojis.lastWhere()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.lastWhere((e) => e.name.contains('Woman')); // Emoji(value: đŸ€ŠđŸ»â€â™€ïž, ...)
↑ Table of contents ↑

emojis.lastWhereIndexed()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.lastWhereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...)
↑ Table of contents ↑

emojis.lastWhereOrNull()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.lastWhereOrNull((e) => e.name.contains('Woman')); // Emoji(value: đŸ€ŠđŸ»â€â™€ïž, ...)

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.lastWhereOrNull((e) => e.value == 'đŸ‘đŸ»'); // null
↑ Table of contents ↑

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
↑ Table of contents ↑

emojis.take()

'😀textđŸ€ŠđŸŸâ€â™€ïžtextđŸ‘đŸ»'.emojis.take(2); // [Emoji(value: 😀, ...), Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...)]
↑ Table of contents ↑

emojis.takeLast()

'😀textđŸ€ŠđŸŸâ€â™€ïžtextđŸ‘đŸ»'.emojis.takeLast(2); // [Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...), Emoji(value: đŸ‘đŸ», ...)]
↑ Table of contents ↑

emojis.takeWhile()

'😀textđŸ€ŠđŸŸâ€â™€ïžtextđŸ‘đŸ»'.emojis.takeWhile((e) => e.value == '😀'); // [Emoji(value: 😀, ...)]
↑ Table of contents ↑

emojis.where()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.where((e) => e.name.contains('Woman')); // [Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...), Emoji(value: đŸ€ŠđŸ»â€â™€ïž, ...)]
↑ Table of contents ↑

emojis.whereIndexed()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.whereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: đŸ€ŠđŸŸâ€â™€ïž, ...)]
↑ Table of contents ↑

emojis.whereNot()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.whereNot((e) => e.name.contains('Woman')); // [Emoji(value: 😀, ...)]
↑ Table of contents ↑

emojis.whereNotIndexed()

'đŸ€ŠđŸŸâ€â™€ïžtext😀textđŸ€ŠđŸ»â€â™€ïž'.emojis.whereNotIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: 😀, ...), Emoji(value: đŸ€ŠđŸ»â€â™€ïž, ...)]
↑ Table of contents ↑

Example Flutter Apps

Emoji Overview App Example

Emoji overview app demo GIF
Emoji Chat App Example

Emoji chat app demo GIF
↑ Table of contents ↑

Libraries

emoji_extension