diff --git a/core/modules/field_ui/src/Form/FieldStorageAddForm.php b/core/modules/field_ui/src/Form/FieldStorageAddForm.php
index 97e3ce7..c5f783d 100644
--- a/core/modules/field_ui/src/Form/FieldStorageAddForm.php
+++ b/core/modules/field_ui/src/Form/FieldStorageAddForm.php
@@ -104,7 +104,8 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t
 
     // Gather valid field types.
     $field_type_options = [];
-    foreach ($this->fieldTypePluginManager->getGroupedDefinitions($this->fieldTypePluginManager->getUiDefinitions()) as $category => $field_types) {
+    $ui_definitions = $this->fieldTypePluginManager->getGroupedDefinitions($this->fieldTypePluginManager->getUiDefinitions());
+    foreach ($ui_definitions as $category => $field_types) {
       foreach ($field_types as $name => $field_type) {
         $field_type_options[$category][$name] = $field_type['label'];
       }
@@ -145,6 +146,36 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t
       ];
     }
 
+    // Show the field description, if it exists.
+    $form['description_wrapper'] = [
+      '#type' => 'container',
+      '#states' => [
+        '!visible' => [
+          ':input[name="new_storage_type"]' => ['value' => ''],
+        ],
+      ],
+    ];
+    $i = 0;
+    foreach ($ui_definitions as $category => $field_types) {
+      foreach ($field_types as $name => $field_type) {
+        if (empty($field_type['description'])) {
+          continue;
+        }
+        $form['description_wrapper']["description_{$name}_{$i}"] = [
+          '#type' => 'container',
+          '#states' => [
+            'visible' => [
+              ':input[name="new_storage_type"]' => ['value' => $name],
+            ],
+          ],
+        ];
+        $form['description_wrapper']["description_{$name}_{$i}"]['description'] = [
+          '#markup' => $field_type['description'],
+        ];
+        $i++;
+      }
+    }
+
     // Field label and field_name.
     $form['new_storage_wrapper'] = [
       '#type' => 'container',
diff --git a/core/modules/file/src/Plugin/Field/FieldType/FileItem.php b/core/modules/file/src/Plugin/Field/FieldType/FileItem.php
index 542be12..838b189 100644
--- a/core/modules/file/src/Plugin/Field/FieldType/FileItem.php
+++ b/core/modules/file/src/Plugin/Field/FieldType/FileItem.php
@@ -18,8 +18,8 @@
  * @FieldType(
  *   id = "file",
  *   label = @Translation("File"),
- *   description = @Translation("This field stores the ID of a file as an integer value."),
- *   category = @Translation("Reference"),
+ *   description = @Translation("This field stores the ID of a file as an integer value. Use a file field when you want to upload an arbitrary file to an entity, generally without re-usability needs. If in doubt, 'Media' field types should be preferred instead."),
+ *   category = @Translation("[Non-reusable assets]"),
  *   default_widget = "file_generic",
  *   default_formatter = "file_default",
  *   list_class = "\Drupal\file\Plugin\Field\FieldType\FileFieldItemList",
diff --git a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
index 14335d8..72e90d5 100644
--- a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
+++ b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
@@ -18,8 +18,8 @@
  * @FieldType(
  *   id = "image",
  *   label = @Translation("Image"),
- *   description = @Translation("This field stores the ID of an image file as an integer value."),
- *   category = @Translation("Reference"),
+ *   description = @Translation("This field stores the ID of an image file as an integer value. Use an image field when you want to upload an image to on entity, generally without re-usability needs. If in doubt, 'Media' field types should be preferred instead."),
+ *   category = @Translation("[Non-reusable assets]"),
  *   default_widget = "image_image",
  *   default_formatter = "image",
  *   column_groups = {
