diff --git a/android/gradle.properties b/android/gradle.properties
index c2a871af8ab063d06f9d9304e63850ba93031951..357cef39a7f1619a4f0ba1c191a85a0dd10b7266 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.24
-app.versionCode=24
+app.versionName=0.0.25
+app.versionCode=25
diff --git a/fastlane/metadata/android/en-US/changelogs/25.txt b/fastlane/metadata/android/en-US/changelogs/25.txt
new file mode 100644
index 0000000000000000000000000000000000000000..85b2fff9941561938db5e053e8882a19e5fed36e
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/25.txt
@@ -0,0 +1 @@
+Add emojis to categories.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/25.txt b/fastlane/metadata/android/fr-FR/changelogs/25.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ae9f8c0148c0c883e55438a8fd97b244a4f6c027
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/25.txt
@@ -0,0 +1 @@
+Ajout d'emojis aux catégories.
diff --git a/lib/data/fetch_data_helper.dart b/lib/data/fetch_data_helper.dart
index 9904c8bd319da185eac0194522624123f5773402..7585817d83de7532471009f4afbb5badc38163b3 100644
--- a/lib/data/fetch_data_helper.dart
+++ b/lib/data/fetch_data_helper.dart
@@ -20,22 +20,37 @@ class FetchDataHelper {
 
   final List<GameItem> _mapping = [];
 
+  Category getCategory(String code) {
+    return _categories.firstWhere((category) => (category.key == code));
+  }
+
   void init() {
     try {
       const gameData = GameData.data;
 
+      final Map<String, String> emojis = {};
+      final Map<String, dynamic> rawResources = gameData['resources'] as Map<String, dynamic>;
+      final Map<String, String> rawEmojis = rawResources['categories'] as Map<String, String>;
+      rawEmojis.forEach((categoryCode, emoji) {
+        emojis[categoryCode] = emoji;
+      });
+
       final List<dynamic> rawCategories = gameData['categories'] as List<dynamic>;
       for (var rawElement in rawCategories) {
-        final element = rawElement.toString();
-        _categories.add(Category(key: element, text: element));
+        final categoryCode = rawElement.toString();
+        _categories.add(Category(
+          key: categoryCode,
+          text: categoryCode,
+          emoji: emojis[categoryCode] ?? '',
+        ));
       }
 
       final Map<String, dynamic> rawThemes = gameData['themes'] as Map<String, dynamic>;
       rawThemes.forEach((code, rawCategories) {
         final List<Category> categories = [];
         for (var rawElement in rawCategories) {
-          final element = rawElement.toString();
-          categories.add(Category(key: element, text: element));
+          final category = getCategory(rawElement.toString());
+          categories.add(category);
         }
         _themes.add(GameTheme(code: code, categories: categories));
       });
@@ -65,12 +80,8 @@ class FetchDataHelper {
               key: itemName,
               text: itemName,
             ),
-            isCategory: rawIsCategories
-                .map((String category) => Category(key: category, text: category))
-                .toList(),
-            isNotCategory: rawIsNotCategories
-                .map((String category) => Category(key: category, text: category))
-                .toList(),
+            isCategory: rawIsCategories.map((String code) => getCategory(code)).toList(),
+            isNotCategory: rawIsNotCategories.map((String code) => getCategory(code)).toList(),
           ));
         },
       );
@@ -94,9 +105,9 @@ class FetchDataHelper {
       final GameTheme gameTheme = _themes[theme];
       for (GameItem item in items) {
         item.isCategory.removeWhere((Category category) =>
-            (!gameTheme.categories.map((c) => c.key).contains(category.key)));
+            (!gameTheme.categories.map((Category c) => c.key).contains(category.key)));
         item.isNotCategory.removeWhere((Category category) =>
-            (!gameTheme.categories.map((c) => c.key).contains(category.key)));
+            (!gameTheme.categories.map((Category c) => c.key).contains(category.key)));
       }
     }
 
diff --git a/lib/data/game_data.dart b/lib/data/game_data.dart
index 2cea22a68e0d46cb565469a58fb26ce9be994410..8def8fec11bd1dceaca00d535735385976261993 100644
--- a/lib/data/game_data.dart
+++ b/lib/data/game_data.dart
@@ -10,6 +10,18 @@ class GameData {
       "solide",
       "végétal"
     ],
+    "resources": {
+      "categories": {
+        "animal": "🐈",
+        "artificiel": "✨",
+        "gazeux": "☁️",
+        "inerte": "🪨",
+        "liquide": "💧",
+        "naturel": "🏞️",
+        "solide": "💎",
+        "végétal": "🌿"
+      }
+    },
     "exclusions": [
       ["liquide", "solide", "gazeux"],
       ["inerte", "animal", "végétal"],
diff --git a/lib/models/data/category.dart b/lib/models/data/category.dart
index 9e561ecf1da7c9b7a417c58027e316f69b3ba25f..ca3d2cc0ca6bc2a9ee716ebfa19b485e0e04866f 100644
--- a/lib/models/data/category.dart
+++ b/lib/models/data/category.dart
@@ -1,16 +1,19 @@
 class Category {
   final String key;
   final String text;
+  final String emoji;
 
   const Category({
     required this.key,
     required this.text,
+    required this.emoji,
   });
 
   Map<String, dynamic> toJson() {
     return {
       'key': key,
       'text': text,
+      'emoji': emoji,
     };
   }
 
diff --git a/lib/ui/widgets/games/buttons_yes_no.dart b/lib/ui/widgets/games/buttons_yes_no.dart
index 3efd687d692c3cf97ace1a1c7e0ac1c5bd7e129a..0a72653cc3e3efb2f08f366295166e7ff3031f6b 100644
--- a/lib/ui/widgets/games/buttons_yes_no.dart
+++ b/lib/ui/widgets/games/buttons_yes_no.dart
@@ -49,6 +49,14 @@ class GameButtonsYesNo extends StatelessWidget {
               },
               icon: const Icon(UniconsLine.thumbs_up),
             ),
+            Text(
+              category.emoji,
+              style: TextStyle(
+                color: Theme.of(context).colorScheme.onSurface,
+                fontSize: 40,
+                fontWeight: FontWeight.bold,
+              ),
+            ),
             IconButton(
               color: Theme.of(context).colorScheme.onSurface,
               iconSize: 80,
diff --git a/pubspec.yaml b/pubspec.yaml
index 0453b562a393af1e5f46a45ce5c81cc5ce5d2050..9300eb730e2a35463fbb43074b8834f6fb7c24f8 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: A sorting game application.
 
 publish_to: 'none'
 
-version: 0.0.24+24
+version: 0.0.25+25
 
 environment:
   sdk: '^3.0.0'
diff --git a/scripts/data.json b/scripts/data.json
index 12afbd2cd64323cda527c4f1347ddc947b9d999f..f817fc0d2d3aa4bcd72c6e7810ca0a091dbd333e 100644
--- a/scripts/data.json
+++ b/scripts/data.json
@@ -9,6 +9,18 @@
     "solide",
     "végétal"
   ],
+  "resources": {
+    "categories": {
+      "animal": "🐈",
+      "artificiel": "✨",
+      "gazeux": "☁️",
+      "inerte": "🪨",
+      "liquide": "💧",
+      "naturel": "🏞️",
+      "solide": "💎",
+      "végétal": "🌿"
+    }
+  },
   "exclusions": [
     [
       "liquide",
diff --git a/scripts/manage_data.php b/scripts/manage_data.php
index fd16dc0542e4bc5331445209dac2cd53dc04814f..f45e985f2e56b1f2286e0e92d7a203ddc3c914ab 100644
--- a/scripts/manage_data.php
+++ b/scripts/manage_data.php
@@ -122,11 +122,13 @@ $categories = array_clean($categories);
 $items = array_clean($items);
 
 $themes = (\array_key_exists('themes', $data) && \is_array($data['themes'])) ? $data['themes'] : [];
+$resources = (\array_key_exists('resources', $data) && \is_array($data['resources'])) ? $data['resources'] : [];
 
 $data['categories'] = $categories;
 $data['items'] = $items;
 $data['exclusions'] = $exclusions;
 $data['themes'] = $themes;
+$data['resources'] = $resources;
 
 dump('');
 dump('Found ' . \count($categories) . ' unique categories.');