diff --git a/src/Form/PanelsBlockConfigureFormBase.php b/src/Form/PanelsBlockConfigureFormBase.php
index 6d29fe1..036edda 100644
--- a/src/Form/PanelsBlockConfigureFormBase.php
+++ b/src/Form/PanelsBlockConfigureFormBase.php
@@ -127,6 +127,17 @@ public function buildForm(array $form, FormStateInterface $form_state, $tempstor
       '#type' => 'value',
       '#value' => $this->block->getPluginId(),
     ];
+    $settings = $this->block->getConfiguration();
+    $form['attribute_id'] = [
+      '#title' => $this->t('Block ID'),
+      '#type' => 'textfield',
+      '#default_value' => !empty($settings['attribute_id']) ? $settings['attribute_id'] : NULL,
+    ];
+    $form['attribute_classes'] = [
+      '#title' => $this->t('Classes'),
+      '#type' => 'textfield',
+      '#default_value' => !empty($settings['attribute_classes']) ? $settings['attribute_classes'] : NULL,
+    ];
     $form['region'] = [
       '#title' => $this->t('Region'),
       '#type' => 'select',
@@ -175,6 +186,8 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
 
     $configuration = $this->block->getConfiguration();
     $configuration['region'] = $form_state->getValue('region');
+    $configuration['attribute_id'] = $form_state->getValue('attribute_id');
+    $configuration['attribute_classes'] = $form_state->getValue('attribute_classes');
     $this->getVariantPlugin()->updateBlock($this->block->getConfiguration()['uuid'], $configuration);
 
     $cached_values = $this->getCachedValues($this->tempstore, $this->tempstore_id, $form_state->get('machine_name'));
diff --git a/src/Plugin/DisplayBuilder/StandardDisplayBuilder.php b/src/Plugin/DisplayBuilder/StandardDisplayBuilder.php
index 5ba0952..d5cb8ac 100644
--- a/src/Plugin/DisplayBuilder/StandardDisplayBuilder.php
+++ b/src/Plugin/DisplayBuilder/StandardDisplayBuilder.php
@@ -130,6 +130,17 @@ protected function buildRegions(array $regions, array $contexts) {
             }
           }
 
+          // Add id.
+          $attribute_id = !empty($this->configuration['blocks'][$block_id]['attributes_id']) ? $this->configuration['blocks'][$block_id]['attributes_id'] : '';
+          if (!empty($attribute_id)) {
+            $block_render_array['#attributes']['id'] = Html::getId($attribute_id);
+          }
+          // Add CSS classes.
+          $attribute_classes = !empty($this->configuration['blocks'][$block_id]['attribute_classes']) ? $this->configuration['blocks'][$block_id]['attribute_classes'] : '';
+          $classes_array = explode(' ', $attribute_classes);
+          foreach ($classes_array as $class) {
+            $block_render_array['#attributes']['class'][] = Html::cleanCssIdentifier($class);
+          }
           // If the block is empty, instead of trying to render the block
           // correctly return just #cache, so that the render system knows the
           // reasons (cache contexts & tags) why this block is empty.
