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
12
likes
160
points
1.58k
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