diff --git a/config/schema/paragraphs_type.schema.yml b/config/schema/paragraphs_type.schema.yml
index 7a47f9c..a04120d 100644
--- a/config/schema/paragraphs_type.schema.yml
+++ b/config/schema/paragraphs_type.schema.yml
@@ -88,6 +88,8 @@ field.widget.settings.paragraphs:
       type: string
     autocollapse:
       type: string
+    closed_mode_threshold:
+      type: integer
     add_mode:
       type: string
     form_display_mode:
diff --git a/src/Plugin/Field/FieldWidget/ParagraphsWidget.php b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php
index 3fe0106..89b8e3f 100644
--- a/src/Plugin/Field/FieldWidget/ParagraphsWidget.php
+++ b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php
@@ -125,6 +125,7 @@ class ParagraphsWidget extends WidgetBase {
       'edit_mode' => 'open',
       'closed_mode' => 'summary',
       'autocollapse' => 'none',
+      'closed_mode_threshold' => 0,
       'add_mode' => 'dropdown',
       'form_display_mode' => 'default',
       'default_paragraph_type' => '',
@@ -186,6 +187,19 @@ class ParagraphsWidget extends WidgetBase {
       ],
     ];
 
+    $elements['closed_mode_threshold'] = [
+      '#type' => 'number',
+      '#title' => $this->t('Closed mode threshold'),
+      '#default_value' => $this->getSetting('closed_mode_threshold'),
+      '#description' => $this->t('Number of items considered to leave paragraphs open e.g the threshold is 3, if a paragraph has 3 items or less, leave it open.'),
+      '#min' => 0,
+      '#states' => [
+        'invisible' => [
+          'select[name="fields[' . $this->fieldDefinition->getName() .  '][settings_edit_form][settings][edit_mode]"]' => ['value' => 'open'],
+        ],
+      ],
+    ];
+
     $elements['add_mode'] = array(
       '#type' => 'select',
       '#title' => $this->t('Add mode'),
@@ -311,6 +325,9 @@ class ParagraphsWidget extends WidgetBase {
       $autocollapse = $this->getSettingOptions('autocollapse')[$this->getSetting('autocollapse')];
       $summary[] = $this->t('Autocollapse: @autocollapse', ['@autocollapse' => $autocollapse]);
     }
+    if ($this->getSetting('edit_mode') == 'closed' || $this->getSetting('edit_mode') == 'closed_expand_nested') {
+      $summary[] = $this->t('Closed mode threshold: @mode_limit', ['@mode_limit' => $this->getSetting('closed_mode_threshold')]);
+    }
     $summary[] = $this->t('Add mode: @add_mode', ['@add_mode' => $add_mode]);
 
     $summary[] = $this->t('Form display mode: @form_display_mode', [
@@ -352,6 +369,7 @@ class ParagraphsWidget extends WidgetBase {
 
     $closed_mode_setting = isset($widget_state['closed_mode']) ? $widget_state['closed_mode'] : $this->getSetting('closed_mode');
     $autocollapse_setting = isset($widget_state['autocollapse']) ? $widget_state['autocollapse'] : $this->getSetting('autocollapse');
+    $closed_mode_threshold_setting = isset($widget_state['closed_mode_threshold']) ? $widget_state['closed_mode_threshold'] : $this->getSetting('closed_mode_threshold');
 
     $show_must_be_saved_warning = !empty($widget_state['paragraphs'][$delta]['show_warning']);
 
@@ -369,15 +387,28 @@ class ParagraphsWidget extends WidgetBase {
         }
         elseif ($default_edit_mode == 'closed') {
           $item_mode = 'closed';
+
+          // Force the paragraph to be open, if it contains less than or equal
+          // items as the threshold.
+          if ($widget_state['items_count'] <= $closed_mode_threshold_setting) {
+            $item_mode = 'edit';
+          }
         }
         elseif ($default_edit_mode == 'closed_expand_nested') {
-          $item_mode = 'closed';
           $field_definitions = $paragraphs_entity->getFieldDefinitions();
 
-          foreach ($field_definitions as $field_definition) {
-            if ($field_definition->getType() == 'entity_reference_revisions' && $field_definition->getSetting('target_type') == 'paragraph') {
-              $item_mode = 'edit';
-              break;
+          if ($widget_state['items_count'] <= $closed_mode_threshold_setting) {
+            $item_mode = 'edit';
+          }
+          else {
+            $item_mode = 'closed';
+
+            // If the paragraph contains other paragraphs, then open it.
+            foreach ($field_definitions as $field_definition) {
+              if ($field_definition->getType() == 'entity_reference_revisions' && $field_definition->getSetting('target_type') == 'paragraph') {
+                $item_mode = 'edit';
+                break;
+              }
             }
           }
         }
diff --git a/tests/src/Functional/ParagraphsExperimentalWidgetButtonsTest.php b/tests/src/Functional/ParagraphsExperimentalWidgetButtonsTest.php
index 3e4e3a6..90c761c 100644
--- a/tests/src/Functional/ParagraphsExperimentalWidgetButtonsTest.php
+++ b/tests/src/Functional/ParagraphsExperimentalWidgetButtonsTest.php
@@ -349,6 +349,149 @@ class ParagraphsExperimentalWidgetButtonsTest extends BrowserTestBase {
     $this->checkParagraphInMode('field_paragraphs_0_subform_field_paragraphs_1', 'edit');
   }
 
+  /**
+   * Tests the closed mode threshold.
+   */
+  public function testClosedModeThreshold() {
+    $this->addParagraphedContentType('paragraphed_test');
+
+    $permissions = [
+      'administer content types',
+      'administer node fields',
+      'administer paragraphs types',
+      'administer node form display',
+      'administer paragraph fields',
+      'administer paragraph form display',
+      'create paragraphed_test content',
+      'edit any paragraphed_test content',
+    ];
+    $this->loginAsAdmin($permissions, TRUE);
+
+    $this->addParagraphsType('text_paragraph');
+    $this->addFieldtoParagraphType('text_paragraph', 'field_text', 'text_long');
+
+    // Add a container Paragraph type.
+    $this->addParagraphsType('container_paragraph');
+    $this->addParagraphsField('container_paragraph', 'field_paragraphs', 'paragraph', 'paragraphs');
+
+    // Set the edit mode to "Closed".
+    $settings = [
+      'edit_mode' => 'closed',
+      'closed_mode' => 'summary',
+    ];
+
+    $this->setParagraphsWidgetSettings('container_paragraph', 'field_paragraphs', $settings, 'paragraphs', 'paragraph');
+
+    // Check that the paragraphs field uses the experimental widget on the
+    // container_paragraph paragraph type.
+    $this->drupalGet('admin/structure/paragraphs_type/container_paragraph/form-display');
+    $option = $this->assertSession()->optionExists('fields[field_paragraphs][type]', 'paragraphs');
+    $this->assertTrue($option->isSelected());
+
+    // Check if the edit mode is set to "Closed".
+    $this->assertSession()->pageTextContains('Edit mode: Closed');
+
+    // Set the edit mode to "Closed" on the  paragraphed_test content type.
+    $settings = [
+      'edit_mode' => 'closed',
+      'closed_mode' => 'summary',
+    ];
+
+    $this->setParagraphsWidgetSettings('paragraphed_test', 'field_paragraphs', $settings);
+
+    // Check that the paragraphs field uses the experimental widget on the
+    // paragraphed_test content type.
+    $this->drupalGet('admin/structure/types/manage/paragraphed_test/form-display');
+    $option = $this->assertSession()->optionExists('fields[field_paragraphs][type]', 'paragraphs');
+    $this->assertTrue($option->isSelected());
+
+    // Check if the edit mode is set to "Closed" and the threshold to 0.
+    $this->assertSession()->pageTextContains('Edit mode: Closed');
+    $this->assertSession()->pageTextContains('Closed mode threshold: 0');
+
+    // Create a text paragraph
+    $text_paragraph_1 = Paragraph::create([
+      'type' => 'text_paragraph',
+      'field_text' => [
+        'value' => 'Test text 1',
+        'format' => 'plain_text',
+      ],
+    ]);
+    $text_paragraph_1->save();
+
+    // Create a node referencing to the text paragraph.
+    $node = Node::create([
+      'type' => 'paragraphed_test',
+      'title' => 'Paragraphs Test',
+      'field_paragraphs' => [$text_paragraph_1],
+    ]);
+    $node->save();
+
+    $this->drupalGet('/node/' . $node->id() . '/edit');
+
+    // Check if the text paragraph is closed.
+    $this->checkParagraphInMode('field_paragraphs_0', 'closed');
+
+    // Set the closed mode threshold to 1.
+    $settings = [
+      'closed_mode_threshold' => 1,
+    ];
+
+    $this->setParagraphsWidgetSettings('paragraphed_test', 'field_paragraphs', $settings);
+
+    $this->drupalGet('/node/' . $node->id() . '/edit');
+
+    // Check if the text paragraph is now open.
+    $this->checkParagraphInMode('field_paragraphs_0', 'edit');
+
+    // Set the edit mode to "Closed, show nested".
+    $settings = [
+      'edit_mode' => 'closed_expand_nested',
+    ];
+
+    $this->setParagraphsWidgetSettings('paragraphed_test', 'field_paragraphs', $settings);
+
+    // Create a second text paragraph.
+    $text_paragraph_2 = Paragraph::create([
+      'type' => 'text_paragraph',
+      'field_text' => [
+        'value' => 'Test text 2',
+        'format' => 'plain_text',
+      ],
+    ]);
+    $text_paragraph_2->save();
+
+    // Create a container paragraph referencing to the second text paragraph.
+    $paragraph_1 = Paragraph::create([
+      'type' => 'container_paragraph',
+      'field_paragraphs' => [$text_paragraph_2],
+    ]);
+    $paragraph_1->save();
+
+    // Add the container paragraph to the node.
+    $node->set('field_paragraphs', [$text_paragraph_1, $paragraph_1]);
+    $node->save();
+
+    $this->drupalGet('/node/' . $node->id() . '/edit');
+
+    // Check if the text paragraph is closed and the container is opened.
+    $this->checkParagraphInMode('field_paragraphs_0', 'closed');
+    $this->checkParagraphInMode('field_paragraphs_1', 'edit');
+
+    // Set the closed mode threshold to 3.
+    $settings = [
+      'closed_mode_threshold' => 3,
+    ];
+
+    $this->setParagraphsWidgetSettings('paragraphed_test', 'field_paragraphs', $settings);
+
+    $this->drupalGet('/node/' . $node->id() . '/edit');
+
+    // Check if the text paragraph is opened and the container is also opened.
+    $this->checkParagraphInMode('field_paragraphs_0', 'edit');
+    $this->checkParagraphInMode('field_paragraphs_1', 'edit');
+  }
+
   /**
    * Asserts that a paragraph is in a particular mode.
    *
