diff --git a/config/install/core.entity_form_display.paragraph.pcb_progress.default.yml b/config/install/core.entity_form_display.paragraph.pcb_progress.default.yml
new file mode 100644
index 0000000..11b61ce
--- /dev/null
+++ b/config/install/core.entity_form_display.paragraph.pcb_progress.default.yml
@@ -0,0 +1,32 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.paragraph.pcb_progress.field_pcb_progress_bar
+    - paragraphs.paragraphs_type.pcb_progress
+  module:
+    - paragraphs
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.pcb_progress.default
+targetEntityType: paragraph
+bundle: pcb_progress
+mode: default
+content:
+  field_pcb_progress_bar:
+    type: paragraphs
+    weight: 0
+    settings:
+      title: Paragraph
+      title_plural: Paragraphs
+      edit_mode: open
+      add_mode: dropdown
+      form_display_mode: default
+      default_paragraph_type: ''
+    third_party_settings: {  }
+    region: content
+hidden:
+  created: true
+  status: true
+  uid: true
diff --git a/config/install/core.entity_form_display.paragraph.pcb_progress_bar.default.yml b/config/install/core.entity_form_display.paragraph.pcb_progress_bar.default.yml
new file mode 100644
index 0000000..cbe513a
--- /dev/null
+++ b/config/install/core.entity_form_display.paragraph.pcb_progress_bar.default.yml
@@ -0,0 +1,33 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_height
+    - field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_width
+    - paragraphs.paragraphs_type.pcb_progress_bar
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.pcb_progress_bar.default
+targetEntityType: paragraph
+bundle: pcb_progress_bar
+mode: default
+content:
+  field_pcb_progress_bar_height:
+    weight: 1
+    settings:
+      placeholder: '16'
+    third_party_settings: {  }
+    type: number
+    region: content
+  field_pcb_progress_bar_width:
+    weight: 0
+    settings:
+      placeholder: '25'
+    third_party_settings: {  }
+    type: number
+    region: content
+hidden:
+  created: true
+  status: true
+  uid: true
diff --git a/config/install/core.entity_view_display.paragraph.pcb_progress.default.yml b/config/install/core.entity_view_display.paragraph.pcb_progress.default.yml
new file mode 100644
index 0000000..2797e3d
--- /dev/null
+++ b/config/install/core.entity_view_display.paragraph.pcb_progress.default.yml
@@ -0,0 +1,26 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.paragraph.pcb_progress.field_pcb_progress_bar
+    - paragraphs.paragraphs_type.pcb_progress
+  module:
+    - entity_reference_revisions
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.pcb_progress.default
+targetEntityType: paragraph
+bundle: pcb_progress
+mode: default
+content:
+  field_pcb_progress_bar:
+    type: entity_reference_revisions_entity_view
+    weight: 0
+    label: hidden
+    settings:
+      view_mode: default
+      link: ''
+    third_party_settings: {  }
+    region: content
+hidden: {  }
diff --git a/config/install/core.entity_view_display.paragraph.pcb_progress_bar.default.yml b/config/install/core.entity_view_display.paragraph.pcb_progress_bar.default.yml
new file mode 100644
index 0000000..600cdf2
--- /dev/null
+++ b/config/install/core.entity_view_display.paragraph.pcb_progress_bar.default.yml
@@ -0,0 +1,26 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_height
+    - field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_width
+    - paragraphs.paragraphs_type.pcb_progress_bar
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.pcb_progress_bar.default
+targetEntityType: paragraph
+bundle: pcb_progress_bar
+mode: default
+content:
+  field_pcb_progress_bar_width:
+    type: number_integer
+    weight: 0
+    region: content
+    label: hidden
+    settings:
+      thousand_separator: ''
+      prefix_suffix: true
+    third_party_settings: {  }
+hidden:
+  field_pcb_progress_bar_height: true
diff --git a/config/install/field.field.paragraph.pcb_progress.field_pcb_progress_bar.yml b/config/install/field.field.paragraph.pcb_progress.field_pcb_progress_bar.yml
new file mode 100644
index 0000000..8477dad
--- /dev/null
+++ b/config/install/field.field.paragraph.pcb_progress.field_pcb_progress_bar.yml
@@ -0,0 +1,33 @@
+uuid: ff4f0c24-b4c5-487e-8151-06e35d2a1d8e
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.paragraph.field_pcb_progress_bar
+    - paragraphs.paragraphs_type.pcb_progress
+    - paragraphs.paragraphs_type.pcb_progress_bar
+  module:
+    - entity_reference_revisions
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.pcb_progress.field_pcb_progress_bar
+field_name: field_pcb_progress_bar
+entity_type: paragraph
+bundle: pcb_progress
+label: 'Progress Bar'
+description: 'Paragraphs Collection Progress Bar field.'
+required: false
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings:
+  handler: 'default:paragraph'
+  handler_settings:
+    target_bundles:
+      pcb_progress_bar: pcb_progress_bar
+    target_bundles_drag_drop:
+      pcb_progress_bar:
+        enabled: true
+        weight: 20
+field_type: entity_reference_revisions
diff --git a/config/install/field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_height.yml b/config/install/field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_height.yml
new file mode 100644
index 0000000..4b2529c
--- /dev/null
+++ b/config/install/field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_height.yml
@@ -0,0 +1,27 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.paragraph.field_pcb_progress_bar_height
+    - paragraphs.paragraphs_type.pcb_progress_bar
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.pcb_progress_bar.field_pcb_progress_bar_height
+field_name: field_pcb_progress_bar_height
+entity_type: paragraph
+bundle: pcb_progress_bar
+label: 'Progress Bar Height'
+description: 'Paragraphs Collection Progress Bar Height. Default value is 16px.'
+required: false
+translatable: false
+default_value:
+  -
+    value: 16
+default_value_callback: ''
+settings:
+  min: 1
+  max: 100
+  prefix: ''
+  suffix: px
+field_type: integer
diff --git a/config/install/field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_width.yml b/config/install/field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_width.yml
new file mode 100644
index 0000000..ad3fa55
--- /dev/null
+++ b/config/install/field.field.paragraph.pcb_progress_bar.field_pcb_progress_bar_width.yml
@@ -0,0 +1,27 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.paragraph.field_pcb_progress_bar_width
+    - paragraphs.paragraphs_type.pcb_progress_bar
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.pcb_progress_bar.field_pcb_progress_bar_width
+field_name: field_pcb_progress_bar_width
+entity_type: paragraph
+bundle: pcb_progress_bar
+label: 'Progress Bar Width'
+description: 'Paragraphs Collection Bootstrap Progress Bar Width. Default value is 25%.'
+required: false
+translatable: false
+default_value:
+  -
+    value: 25
+default_value_callback: ''
+settings:
+  min: 0
+  max: 100
+  prefix: ''
+  suffix: '%'
+field_type: integer
diff --git a/config/install/field.storage.paragraph.field_pcb_progress_bar.yml b/config/install/field.storage.paragraph.field_pcb_progress_bar.yml
new file mode 100644
index 0000000..803dcb6
--- /dev/null
+++ b/config/install/field.storage.paragraph.field_pcb_progress_bar.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - entity_reference_revisions
+    - paragraphs
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.field_pcb_progress_bar
+field_name: field_pcb_progress_bar
+entity_type: paragraph
+type: entity_reference_revisions
+settings:
+  target_type: paragraph
+module: entity_reference_revisions
+locked: false
+cardinality: -1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/install/field.storage.paragraph.field_pcb_progress_bar_height.yml b/config/install/field.storage.paragraph.field_pcb_progress_bar_height.yml
new file mode 100644
index 0000000..8c150cd
--- /dev/null
+++ b/config/install/field.storage.paragraph.field_pcb_progress_bar_height.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - paragraphs
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.field_pcb_progress_bar_height
+field_name: field_pcb_progress_bar_height
+entity_type: paragraph
+type: integer
+settings:
+  unsigned: false
+  size: normal
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/install/field.storage.paragraph.field_pcb_progress_bar_width.yml b/config/install/field.storage.paragraph.field_pcb_progress_bar_width.yml
new file mode 100644
index 0000000..8246433
--- /dev/null
+++ b/config/install/field.storage.paragraph.field_pcb_progress_bar_width.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - paragraphs
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: paragraph.field_pcb_progress_bar_width
+field_name: field_pcb_progress_bar_width
+entity_type: paragraph
+type: integer
+settings:
+  unsigned: false
+  size: normal
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/install/paragraphs.paragraphs_type.pcb_progress.yml b/config/install/paragraphs.paragraphs_type.pcb_progress.yml
new file mode 100644
index 0000000..d8fbe95
--- /dev/null
+++ b/config/install/paragraphs.paragraphs_type.pcb_progress.yml
@@ -0,0 +1,22 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - paragraphs_collection
+    - paragraphs_collection_bootstrap
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: pcb_progress
+label: 'Progress'
+icon_uuid: null
+description: 'Use <i>Progress</i> to add Bootstrap 4 framework progress component.'
+behavior_plugins:
+  grid_layout:
+    paragraph_reference_field: ''
+    available_grid_layouts: {  }
+  style:
+    group: ''
+  lockable: {  }
+  pcb_progress_bar:
+    paragraph_progress_field: ''
diff --git a/config/install/paragraphs.paragraphs_type.pcb_progress_bar.yml b/config/install/paragraphs.paragraphs_type.pcb_progress_bar.yml
new file mode 100644
index 0000000..2fe3127
--- /dev/null
+++ b/config/install/paragraphs.paragraphs_type.pcb_progress_bar.yml
@@ -0,0 +1,24 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - paragraphs_collection
+    - paragraphs_collection_bootstrap
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap
+id: pcb_progress_bar
+label: 'Progress Bar'
+icon_uuid: null
+description: 'Use <i>Progress Bar</i> to add Bootstrap 4 progress bar inside <i> Bootstrap Progress</i> container.'
+behavior_plugins:
+  grid_layout:
+    paragraph_reference_field: ''
+    available_grid_layouts: {  }
+  style:
+    enabled: true
+    group: 'Progress Bar Group'
+  lockable: {  }
+  pcb_progress_bar:
+    enabled: true
+    paragraph_progress_field: field_pcb_progress_bar_height
diff --git a/config/schema/paragraphs_collection_bootstrap.schema.yml b/config/schema/paragraphs_collection_bootstrap.schema.yml
new file mode 100644
index 0000000..4b05347
--- /dev/null
+++ b/config/schema/paragraphs_collection_bootstrap.schema.yml
@@ -0,0 +1,6 @@
+paragraphs.behavior.settings.pcb_progress_bar:
+  type: paragraphs.behavior.settings_base
+  mapping:
+    paragraph_progress_field:
+      type: string
+      label: 'Progress field'
diff --git a/css/progress.css b/css/progress.css
new file mode 100644
index 0000000..483d842
--- /dev/null
+++ b/css/progress.css
@@ -0,0 +1,2 @@
+.progress {
+  margin-bottom: 1rem; }
diff --git a/css/progress.scss b/css/progress.scss
new file mode 100644
index 0000000..a7a348b
--- /dev/null
+++ b/css/progress.scss
@@ -0,0 +1,3 @@
+.progress {
+  margin-bottom: 1rem;
+}
diff --git a/modules/paragraphs_collection_bootstrap_demo/config/install/core.entity_form_display.node.bootstrap_paragraphed_content.default.yml b/modules/paragraphs_collection_bootstrap_demo/config/install/core.entity_form_display.node.bootstrap_paragraphed_content.default.yml
new file mode 100644
index 0000000..0bfc4f3
--- /dev/null
+++ b/modules/paragraphs_collection_bootstrap_demo/config/install/core.entity_form_display.node.bootstrap_paragraphed_content.default.yml
@@ -0,0 +1,73 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.node.bootstrap_paragraphed_content.field_bootstrap_paragraphs_demo
+    - node.type.bootstrap_paragraphed_content
+  module:
+    - paragraphs
+    - path
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap_demo
+id: node.bootstrap_paragraphed_content.default
+targetEntityType: node
+bundle: bootstrap_paragraphed_content
+mode: default
+content:
+  created:
+    type: datetime_timestamp
+    weight: 10
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  field_bootstrap_paragraphs_demo:
+    type: paragraphs
+    weight: 31
+    settings:
+      title: Paragraph
+      title_plural: Paragraphs
+      edit_mode: open
+      add_mode: dropdown
+      form_display_mode: default
+      default_paragraph_type: ''
+    third_party_settings: {  }
+    region: content
+  path:
+    type: path
+    weight: 30
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  promote:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 15
+    region: content
+    third_party_settings: {  }
+  sticky:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 16
+    region: content
+    third_party_settings: {  }
+  title:
+    type: string_textfield
+    weight: -5
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+  uid:
+    type: entity_reference_autocomplete
+    weight: 5
+    settings:
+      match_operator: CONTAINS
+      size: 60
+      placeholder: ''
+    region: content
+    third_party_settings: {  }
+hidden: {  }
diff --git a/modules/paragraphs_collection_bootstrap_demo/config/install/core.entity_view_display.node.bootstrap_paragraphed_content.default.yml b/modules/paragraphs_collection_bootstrap_demo/config/install/core.entity_view_display.node.bootstrap_paragraphed_content.default.yml
new file mode 100644
index 0000000..e39b649
--- /dev/null
+++ b/modules/paragraphs_collection_bootstrap_demo/config/install/core.entity_view_display.node.bootstrap_paragraphed_content.default.yml
@@ -0,0 +1,32 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.node.bootstrap_paragraphed_content.field_bootstrap_paragraphs_demo
+    - node.type.bootstrap_paragraphed_content
+  module:
+    - entity_reference_revisions
+    - user
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap_demo
+id: node.bootstrap_paragraphed_content.default
+targetEntityType: node
+bundle: bootstrap_paragraphed_content
+mode: default
+content:
+  field_bootstrap_paragraphs_demo:
+    type: entity_reference_revisions_entity_view
+    weight: 101
+    label: hidden
+    settings:
+      view_mode: default
+      link: ''
+    third_party_settings: {  }
+    region: content
+  links:
+    weight: 100
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+hidden: {  }
diff --git a/modules/paragraphs_collection_bootstrap_demo/config/install/field.field.node.bootstrap_paragraphed_content.field_bootstrap_paragraphs_demo.yml b/modules/paragraphs_collection_bootstrap_demo/config/install/field.field.node.bootstrap_paragraphed_content.field_bootstrap_paragraphs_demo.yml
new file mode 100644
index 0000000..c10590d
--- /dev/null
+++ b/modules/paragraphs_collection_bootstrap_demo/config/install/field.field.node.bootstrap_paragraphed_content.field_bootstrap_paragraphs_demo.yml
@@ -0,0 +1,27 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_bootstrap_paragraphs_demo
+    - node.type.bootstrap_paragraphed_content
+  module:
+    - entity_reference_revisions
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap_demo
+id: node.bootstrap_paragraphed_content.field_bootstrap_paragraphs_demo
+field_name: field_bootstrap_paragraphs_demo
+entity_type: node
+bundle: bootstrap_paragraphed_content
+label: 'Bootstrap Paragraphs Demo'
+description: ''
+required: false
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings:
+  handler: 'default:paragraph'
+  handler_settings:
+    target_bundles: null
+    target_bundles_drag_drop: { }
+field_type: entity_reference_revisions
diff --git a/modules/paragraphs_collection_bootstrap_demo/config/install/field.storage.node.field_bootstrap_paragraphs_demo.yml b/modules/paragraphs_collection_bootstrap_demo/config/install/field.storage.node.field_bootstrap_paragraphs_demo.yml
new file mode 100644
index 0000000..47fe46c
--- /dev/null
+++ b/modules/paragraphs_collection_bootstrap_demo/config/install/field.storage.node.field_bootstrap_paragraphs_demo.yml
@@ -0,0 +1,23 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - entity_reference_revisions
+    - node
+    - paragraphs
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap_demo
+id: node.field_bootstrap_paragraphs_demo
+field_name: field_bootstrap_paragraphs_demo
+entity_type: node
+type: entity_reference_revisions
+settings:
+  target_type: paragraph
+module: entity_reference_revisions
+locked: false
+cardinality: -1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/modules/paragraphs_collection_bootstrap_demo/config/install/node.type.bootstrap_paragraphed_content.yml b/modules/paragraphs_collection_bootstrap_demo/config/install/node.type.bootstrap_paragraphed_content.yml
new file mode 100644
index 0000000..35e5704
--- /dev/null
+++ b/modules/paragraphs_collection_bootstrap_demo/config/install/node.type.bootstrap_paragraphed_content.yml
@@ -0,0 +1,20 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - menu_ui
+  enforced:
+    module:
+      - paragraphs_collection_bootstrap_demo
+third_party_settings:
+  menu_ui:
+    available_menus:
+      - main
+    parent: 'main:'
+name: 'Bootstrap Paragraphed Content'
+type: bootstrap_paragraphed_content
+description: 'Demo content type used for paragraphed content.'
+help: ''
+new_revision: true
+preview_mode: 1
+display_submitted: true
diff --git a/modules/paragraphs_collection_bootstrap_demo/paragraphs_collection_bootstrap_demo.info.yml b/modules/paragraphs_collection_bootstrap_demo/paragraphs_collection_bootstrap_demo.info.yml
index fcec38a..b8931c3 100644
--- a/modules/paragraphs_collection_bootstrap_demo/paragraphs_collection_bootstrap_demo.info.yml
+++ b/modules/paragraphs_collection_bootstrap_demo/paragraphs_collection_bootstrap_demo.info.yml
@@ -5,4 +5,9 @@ core: 8.x
 package: Paragraphs
 
 dependencies:
+  - paragraphs:paragraphs
+  - paragraphs_collection:paragraphs_collection
   - paragraphs_collection_bootstrap:paragraphs_collection_bootstrap
+  - drupal:image
+test_dependencies:
+  - image
diff --git a/modules/paragraphs_collection_bootstrap_demo/paragraphs_collection_bootstrap_demo.install b/modules/paragraphs_collection_bootstrap_demo/paragraphs_collection_bootstrap_demo.install
new file mode 100644
index 0000000..722b649
--- /dev/null
+++ b/modules/paragraphs_collection_bootstrap_demo/paragraphs_collection_bootstrap_demo.install
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * @file
+ * Installation hooks for paragraphs_collection_bootstrap_demo module.
+ */
+
+use Drupal\node\Entity\Node;
+use Drupal\paragraphs\Entity\Paragraph;
+
+/**
+ * Implements hook_install().
+ */
+function paragraphs_collection_bootstrap_demo_install() {
+  $node = _paragraphs_collection_bootstrap_demo_create_demo_article();
+  \Drupal::configFactory()->getEditable('system.site')->set('page.front', '/node/' . $node->id())->save();
+}
+
+/**
+ * Create demo article example.
+ *
+ * @return \Drupal\Core\Entity\EntityInterface|static
+ *   Returns node.
+ */
+function _paragraphs_collection_bootstrap_demo_create_demo_article() {
+  $paragraphs = [];
+  $default_progress_bar = _paragraphs_collection_bootstrap_demo_create_progress_bar_paragraph();
+  $danger_progress_bar = _paragraphs_collection_bootstrap_demo_create_progress_bar_paragraph('bg-danger', TRUE, FALSE, FALSE, 15);
+  $success_progres_bar = _paragraphs_collection_bootstrap_demo_create_progress_bar_paragraph('bg-success', TRUE, FALSE, TRUE, 10);
+  $info_progress_bar = _paragraphs_collection_bootstrap_demo_create_progress_bar_paragraph('bg-info');
+  $warning_progress_bar = _paragraphs_collection_bootstrap_demo_create_progress_bar_paragraph('bg-warning', TRUE, TRUE);
+  $paragraphs[] = _paragraphs_collection_bootstrap_demo_create_progress_paragraph([$default_progress_bar]);
+  $paragraphs[] = _paragraphs_collection_bootstrap_demo_create_progress_paragraph([$danger_progress_bar]);
+  $paragraphs[] = _paragraphs_collection_bootstrap_demo_create_progress_paragraph([$info_progress_bar]);
+  $paragraphs[] = _paragraphs_collection_bootstrap_demo_create_progress_paragraph([
+    $success_progres_bar,
+    $default_progress_bar,
+    $warning_progress_bar,
+  ]);
+  return _paragraphs_collection_bootstrap_demo_create_node('Paragraphs Collection Bootstrap demo example', $paragraphs);
+}
+
+/**
+ * Create demo node of a type paragraphed_content_demo.
+ *
+ * @param string $title
+ *   Node title.
+ * @param array $paragraphs
+ *   Array of paragraphs entites.
+ *
+ * @return \Drupal\Core\Entity\EntityInterface|static
+ *   Saved node entity.
+ */
+function _paragraphs_collection_bootstrap_demo_create_node($title, array $paragraphs) {
+  $node = Node::create([
+    'type' => 'bootstrap_paragraphed_content',
+    'title' => $title,
+    'langcode' => 'en',
+    'uid' => '0',
+    'status' => 1,
+    'field_bootstrap_paragraphs_demo' => $paragraphs,
+  ]);
+  $node->save();
+  return $node;
+}
+
+/**
+ * Helper function to create progress paragraph.
+ *
+ * @param array $items
+ *   Progress bar items.
+ *
+ * @return \Drupal\Core\Entity\EntityInterface|static
+ *   Paragraphs progress entity.
+ */
+function _paragraphs_collection_bootstrap_demo_create_progress_paragraph(array $items) {
+  $progress_paragraph = Paragraph::create([
+    'type' => 'pcb_progress',
+    'field_pcb_progress_bar' => $items,
+  ]);
+  $progress_paragraph->save();
+  return $progress_paragraph;
+}
+
+/**
+ * Helper function to create progress bar paragraph.
+ *
+ * @param string $style
+ *   Progress Bar style.
+ * @param bool $striped
+ *   Striped Progress Bar.
+ * @param bool $animated
+ *   Animated Progress Bar.
+ * @param bool $label
+ *   Progress Bar label.
+ * @param int $width
+ *   Progress Bar width.
+ * @param int $height
+ *   Progress Bar height.
+ *
+ * @return \Drupal\Core\Entity\EntityInterface|static
+ *   Paragraphs progress bar entity.
+ */
+function _paragraphs_collection_bootstrap_demo_create_progress_bar_paragraph($style = '', $striped = FALSE, $animated = FALSE, $label = TRUE, $width = 25, $height = 16) {
+  $progress_bar_paragraph = Paragraph::create([
+    'type' => 'pcb_progress_bar',
+    'field_pcb_progress_bar_height' => $height,
+    'field_pcb_progress_bar_width' => $width,
+  ]);
+  $progress_bar_paragraph->setBehaviorSettings('pcb_progress_bar', [
+    'striped' => $striped,
+    'animated' => $animated,
+    'label' => $label,
+  ]);
+  $progress_bar_paragraph->setBehaviorSettings('style', ['style' => $style]);
+  $progress_bar_paragraph->save();
+  return $progress_bar_paragraph;
+}
diff --git a/modules/paragraphs_collection_bootstrap_demo/tests/src/Functional/ParagraphsCollectionBootstrapDemoTest.php b/modules/paragraphs_collection_bootstrap_demo/tests/src/Functional/ParagraphsCollectionBootstrapDemoTest.php
new file mode 100644
index 0000000..d2ccf0a
--- /dev/null
+++ b/modules/paragraphs_collection_bootstrap_demo/tests/src/Functional/ParagraphsCollectionBootstrapDemoTest.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace Drupal\Tests\paragraphs_collection_bootstrap_demo\Functional;
+
+use Drupal\Tests\BrowserTestBase;
+
+/**
+ * Tests the demo module for Paragraphs Collection Bootstrap.
+ *
+ * @group paragraphs_collection_bootstrap_demo
+ */
+class ParagraphsCollectionBootstrapDemoTest extends BrowserTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var string[]
+   */
+  public static $modules = [
+    'paragraphs_collection_bootstrap_demo',
+    'link',
+    'text',
+    'node',
+    'menu_ui',
+  ];
+
+  /**
+   * Asserts demo content have been created.
+   */
+  public function testDemoCreation() {
+    $account = $this->drupalCreateUser();
+    $this->drupalLogin($account);
+    // Assert we have node created and we can visit node page.
+    $node = $this->getNodeByTitle('Paragraphs Collection Bootstrap demo example');
+    $this->drupalGet('node/' . $node->id());
+    // Assert we have progress bars created.
+    $this->assertSession()->responseContains('class="progress-bar progress-bar-striped bg-danger paragraph paragraph--type--pcb-progress-bar paragraph--view-mode--default"');
+    $this->assertSession()->responseContains('class="progress-bar bg-info paragraph paragraph--type--pcb-progress-bar paragraph--view-mode--default"');
+    $this->assertSession()->responseContains('class="progress-bar progress-bar-striped progress-bar-animated bg-warning paragraph paragraph--type--pcb-progress-bar paragraph--view-mode--default"');
+    $this->assertSession()->responseContains('class="progress-bar paragraph paragraph--type--pcb-progress-bar paragraph--view-mode--default"');
+  }
+
+}
diff --git a/paragraphs_collection_bootstrap.info.yml b/paragraphs_collection_bootstrap.info.yml
index 9bf31ad..d3dadba 100644
--- a/paragraphs_collection_bootstrap.info.yml
+++ b/paragraphs_collection_bootstrap.info.yml
@@ -5,9 +5,8 @@ core: 8.x
 package: Paragraphs
 
 dependencies:
-  - paragraphs
-  - paragraphs_collection
+  - paragrahps:paragraphs
+  - paragraphs_collection:paragraphs_collection
   - drupal:image
 test_dependencies:
   - image
-
diff --git a/paragraphs_collection_bootstrap.libraries.yml b/paragraphs_collection_bootstrap.libraries.yml
new file mode 100644
index 0000000..6f787a7
--- /dev/null
+++ b/paragraphs_collection_bootstrap.libraries.yml
@@ -0,0 +1,10 @@
+bootstrap:
+  version: VERSION
+  css:
+    component:
+      /libraries/bootstrap/dist/css/bootstrap.min.css: {}
+
+progress:
+  css:
+    component:
+      css/progress.css: {}
diff --git a/paragraphs_collection_bootstrap.module b/paragraphs_collection_bootstrap.module
new file mode 100644
index 0000000..8b451a3
--- /dev/null
+++ b/paragraphs_collection_bootstrap.module
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * @file
+ * Contains paragraphs_collection_bootstrap.module.
+ */
+
+/**
+ * Implements hook_theme().
+ */
+function paragraphs_collection_bootstrap_theme() {
+  return [
+    'field__paragraph__pcb_progress' => [
+      'base hook' => 'field',
+    ],
+  ];
+}
diff --git a/paragraphs_collection_bootstrap.paragraphs.style.yml b/paragraphs_collection_bootstrap.paragraphs.style.yml
new file mode 100644
index 0000000..a57b906
--- /dev/null
+++ b/paragraphs_collection_bootstrap.paragraphs.style.yml
@@ -0,0 +1,23 @@
+bg-success:
+  title: 'Success Progress Bar'
+  description: 'Bootstrap success background utility class to change the appearance of progress bar.'
+  groups:
+    - 'Progress Bar Group'
+
+bg-info:
+  title: 'Info Progress Bar'
+  description: 'Bootstrap info background utility class to change the appearance of progress bar.'
+  groups:
+    - 'Progress Bar Group'
+
+bg-warning:
+  title: 'Warning Progress Bar'
+  description: 'Bootstrap warning background utility class to change the appearance of progress bar.'
+  groups:
+    - 'Progress Bar Group'
+
+bg-danger:
+  title: 'Danger Progress Bar'
+  description: 'Bootstrap danger background utility class to change the appearance of progress bar.'
+  groups:
+    - 'Progress Bar Group'
diff --git a/src/Plugin/paragraphs/Behavior/ParagraphsBootstrapProgressBarPlugin.php b/src/Plugin/paragraphs/Behavior/ParagraphsBootstrapProgressBarPlugin.php
new file mode 100644
index 0000000..b558aaa
--- /dev/null
+++ b/src/Plugin/paragraphs/Behavior/ParagraphsBootstrapProgressBarPlugin.php
@@ -0,0 +1,111 @@
+<?php
+
+namespace Drupal\paragraphs_collection_bootstrap\Plugin\paragraphs\Behavior;
+
+use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\paragraphs\Entity\Paragraph;
+use Drupal\paragraphs\ParagraphInterface;
+use Drupal\paragraphs\ParagraphsBehaviorBase;
+
+/**
+ * Provides a Paragraphs Bootstrap Progress Bar plugin.
+ *
+ * @ParagraphsBehavior(
+ *   id = "pcb_progress_bar",
+ *   label = @Translation("Progress Bar"),
+ *   description = @Translation("Sets Bootstrap 4 Progress Bar behavior to paragraph."),
+ *   weight = 3
+ * )
+ */
+class ParagraphsBootstrapProgressBarPlugin extends ParagraphsBehaviorBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function view(array &$build, Paragraph $paragraph, EntityViewDisplayInterface $display, $view_mode) {
+    if ($paragraph->hasField('field_pcb_progress_bar_height')) {
+      $height = $paragraph->field_pcb_progress_bar_height->value ?: $paragraph->getFieldDefinition('field_pcb_progress_bar_height')->getDefaultValueLiteral()[0]['value'];
+    }
+    else {
+      $height = 16;
+    }
+    if ($paragraph->hasField('field_pcb_progress_bar_width')) {
+      $width = $paragraph->field_pcb_progress_bar_width->value ?: $paragraph->getFieldDefinition('field_pcb_progress_bar_width')->getDefaultValueLiteral()[0]['value'];
+      $min = $paragraph->getFieldDefinition('field_pcb_progress_bar_width')->getSetting('min');
+      $max = $paragraph->getFieldDefinition('field_pcb_progress_bar_width')->getSetting('max');
+    }
+    else {
+      $width = 25;
+      $min = 0;
+      $max = 100;
+    }
+    $build['#attached']['library'] = [
+      'paragraphs_collection_bootstrap/bootstrap',
+      'paragraphs_collection_bootstrap/progress',
+    ];
+    $build['#attributes'] = [
+      'class' => [
+        'progress-bar',
+      ],
+      'role' => 'progressbar',
+      'aria-valuenow' => $width,
+      'aria-valuemin' => $min,
+      'aria-valuemax' => $max,
+      'style' => 'width: ' . $width . '%; height: ' . $height . 'px;',
+    ];
+    if ($paragraph->getBehaviorSetting($this->getPluginId(), 'striped')) {
+      $build['#attributes']['class'][] = 'progress-bar-striped';
+    }
+    if ($paragraph->getBehaviorSetting($this->getPluginId(), 'animated')) {
+      $build['#attributes']['class'][] = 'progress-bar-animated';
+    }
+    if (!$paragraph->getBehaviorSetting($this->getPluginId(), 'label')) {
+      unset($build['field_pcb_progress_bar_width']);
+    }
+    if ($style = $paragraph->getBehaviorSetting('style', 'style')) {
+      $build['#attributes']['class'][] = $style;
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildBehaviorForm(ParagraphInterface $paragraph, array &$form, FormStateInterface $form_state) {
+    $form['striped'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Striped'),
+      '#description' => $this->t('Apply a stripe via CSS gradient over the progress bar’s background color.'),
+      '#default_value' => $paragraph->getBehaviorSetting($this->getPluginId(), 'striped'),
+    ];
+
+    $form['animated'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Animated'),
+      '#description' => $this->t('The striped gradient can also be animated. Animate the stripes right to left via CSS3 animations.'),
+      '#default_value' => $paragraph->getBehaviorSetting($this->getPluginId(), 'animated'),
+    ];
+
+    $form['label'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Label'),
+      '#description' => $this->t('Add/remove label to your progress bar.'),
+      '#default_value' => $paragraph->getBehaviorSetting($this->getPluginId(), 'label', TRUE),
+    ];
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsSummary(Paragraph $paragraph) {
+    return [
+      $this->t('Striped: @striped, Animated: @animated, Label: @label', [
+        '@striped' => $paragraph->getBehaviorSetting($this->getPluginId(), 'striped') ? 'YES' : 'NO',
+        '@animated' => $paragraph->getBehaviorSetting($this->getPluginId(), 'animated') ? 'YES' : 'NO',
+        '@label' => $paragraph->getBehaviorSetting($this->getPluginId(), 'label') ? 'YES' : 'NO',
+      ]),
+    ];
+  }
+
+}
diff --git a/templates/field--paragraph--pcb-progress.html.twig b/templates/field--paragraph--pcb-progress.html.twig
new file mode 100644
index 0000000..2abfe78
--- /dev/null
+++ b/templates/field--paragraph--pcb-progress.html.twig
@@ -0,0 +1,43 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a pcb progress field.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - label_hidden: Whether to show the field label or not.
+ * - title_attributes: HTML attributes for the title.
+ * - label: The label for the field.
+ * - multiple: TRUE if a field can contain multiple items.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item's content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ * @see template_preprocess_field()
+ */
+#}
+
+{% if label_hidden %}
+  {% if multiple %}
+    <div{{ attributes.addClass('progress') }}>
+      {% for item in items %}
+        {{ item.content }}
+      {% endfor %}
+    </div>
+  {% else %}
+    {% for item in items %}
+      {{ item.content }}
+    {% endfor %}
+  {% endif %}
+{% else %}
+  <div{{ attributes.addClass('progress') }}>
+    <div{{ title_attributes }}>{{ label }}</div>
+    {% for item in items %}
+      {{ item.content }}
+    {% endfor %}
+  </div>
+{% endif %}
diff --git a/tests/src/FunctionalJavascript/ParagraphsBootstrapJavascriptTestBase.php b/tests/src/FunctionalJavascript/ParagraphsBootstrapJavascriptTestBase.php
new file mode 100644
index 0000000..f98580a
--- /dev/null
+++ b/tests/src/FunctionalJavascript/ParagraphsBootstrapJavascriptTestBase.php
@@ -0,0 +1,86 @@
+<?php
+
+namespace Drupal\Tests\paragraphs_collection_bootstrap\FunctionalJavascript;
+
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
+use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
+use Drupal\Tests\paragraphs\FunctionalJavascript\LoginAdminTrait;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\node\Entity\NodeType;
+
+/**
+ * Base class for paragraphs collection bootstrap Javascript functional tests.
+ *
+ * @package Drupal\Tests\paragraphs_collection_bootstrap\FunctionalJavascript
+ */
+abstract class ParagraphsBootstrapJavascriptTestBase extends JavascriptTestBase {
+
+  use LoginAdminTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = [
+    'node',
+    'field',
+    'field_ui',
+    'block',
+    'link',
+    'paragraphs_collection_bootstrap',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $node_type = NodeType::create([
+      'type' => 'paragraphed_test',
+      'name' => 'paragraphed_test',
+    ]);
+    $node_type->save();
+
+    // Add paragraph field to the paragraphed_test.
+    $field_storage = FieldStorageConfig::create([
+      'field_name' => 'field_paragraphs',
+      'entity_type' => 'node',
+      'type' => 'entity_reference_revisions',
+      'cardinality' => '-1',
+      'settings' => [
+        'target_type' => 'paragraph',
+      ],
+    ]);
+    $field_storage->save();
+
+    $field = FieldConfig::create([
+      'field_storage' => $field_storage,
+      'bundle' => 'paragraphed_test',
+      'settings' => [
+        'handler' => 'default:paragraph',
+        'handler_settings' => ['target_bundles' => NULL],
+      ],
+    ]);
+    $field->save();
+
+    $form_display = EntityFormDisplay::create([
+      'targetEntityType' => 'node',
+      'bundle' => 'paragraphed_test',
+      'mode' => 'default',
+      'edit_mode' => 'open',
+      'status' => TRUE,
+    ])->setComponent('field_paragraphs', ['type' => 'paragraphs']);
+    $form_display->save();
+
+    $view_display = EntityViewDisplay::create([
+      'targetEntityType' => 'node',
+      'bundle' => 'paragraphed_test',
+      'mode' => 'default',
+      'status' => TRUE,
+    ])->setComponent('field_paragraphs', ['type' => 'entity_reference_revisions_entity_view']);
+    $view_display->save();
+  }
+
+}
diff --git a/tests/src/FunctionalJavascript/ParagraphsBootstrapProgressBarPluginTest.php b/tests/src/FunctionalJavascript/ParagraphsBootstrapProgressBarPluginTest.php
new file mode 100644
index 0000000..e63e309
--- /dev/null
+++ b/tests/src/FunctionalJavascript/ParagraphsBootstrapProgressBarPluginTest.php
@@ -0,0 +1,60 @@
+<?php
+
+namespace Drupal\Tests\paragraphs_collection_bootstrap\FunctionalJavascript;
+
+/**
+ * Progress Bar plugin test class.
+ *
+ * @see \Drupal\paragraphs_collection_bootstrap\Plugin\paragraphs\Behavior\ParagraphsBootstrapProgressBarPlugin
+ * @group paragraphs_collection_bootstrap
+ */
+class ParagraphsBootstrapProgressBarPluginTest extends ParagraphsBootstrapJavascriptTestBase {
+
+  /**
+   * Test Progress Bar.
+   */
+  public function testProgressBar() {
+    $this->loginAsAdmin([
+      'edit behavior plugin settings',
+    ]);
+    $this->drupalGet('node/add/paragraphed_test');
+
+    $this->getSession()->getPage()->fillField('edit-title-0-value', 'Progress Bar Test');
+    $toggle_button_xpath = '//ul/li[contains(@class, "dropbutton-toggle")]/button';
+    $this->getSession()->getPage()->find('xpath', $toggle_button_xpath)->click();
+
+    $progress_button_xpath = '//li[contains(@class, "dropbutton-action")]/input[@id="field-paragraphs-pcb-progress-add-more"]';
+    $this->getSession()->getPage()->find('xpath', $progress_button_xpath)->click();
+    $this->assertSession()->assertWaitOnAjaxRequest();
+
+    $this->assertSession()->pageTextContains('Paragraphs Collection Bootstrap Progress Bar Width. Default value is 25%.');
+    $this->assertSession()->pageTextContains('Paragraphs Collection Progress Bar Height. Default value is 16px.');
+    $this->assertSession()->fieldValueEquals('field_paragraphs[0][subform][field_pcb_progress_bar][0][subform][field_pcb_progress_bar_width][0][value]', 25);
+    $this->assertSession()->fieldValueEquals('field_paragraphs[0][subform][field_pcb_progress_bar][0][subform][field_pcb_progress_bar_height][0][value]', 16);
+
+    $this->getSession()->getPage()->clickLink('Behavior');
+
+    $this->assertSession()->checkboxChecked('field_paragraphs[0][subform][field_pcb_progress_bar][0][behavior_plugins][pcb_progress_bar][label]');
+    $this->assertSession()->checkboxNotChecked('field_paragraphs[0][subform][field_pcb_progress_bar][0][behavior_plugins][pcb_progress_bar][striped]');
+    $this->assertSession()->checkboxNotChecked('field_paragraphs[0][subform][field_pcb_progress_bar][0][behavior_plugins][pcb_progress_bar][animated]');
+
+    $this->assertSession()->pageTextContains('Apply a stripe via CSS gradient over the progress bar’s background color.');
+    $this->assertSession()->pageTextContains('The striped gradient can also be animated. Animate the stripes right to left via CSS3 animations.');
+    $this->assertSession()->pageTextContains('Add/remove label to your progress bar.');
+
+    $this->getSession()->getPage()->checkField('field_paragraphs[0][subform][field_pcb_progress_bar][0][behavior_plugins][pcb_progress_bar][animated]');
+    $this->getSession()->getPage()->checkField('field_paragraphs[0][subform][field_pcb_progress_bar][0][behavior_plugins][pcb_progress_bar][striped]');
+
+    $collapse_button_xpath = '//li[contains(@class, "dropbutton-action")]/input[@name="field_paragraphs_0_collapse"]';
+    $this->getSession()->getPage()->find('xpath', $collapse_button_xpath)->click();
+    $this->assertSession()->assertWaitOnAjaxRequest();
+    $this->assertSession()->pageTextContains('1 child, Striped: YES, Animated: YES, Label: YES');
+    $this->getSession()->getPage()->pressButton('Save');
+
+    $this->assertSession()->pageTextContains('Progress Bar Test');
+    $this->assertSession()->pageTextContains('25%');
+    $progress_xpath = '//div[contains(@class, "progress")]/div[contains(@class, "progress-bar") and contains(@class, "striped") and contains(@class, "animated")]';
+    $this->assertSession()->elementExists('xpath', $progress_xpath);
+  }
+
+}
