diff --git a/at_core/includes/preprocess.inc b/at_core/includes/preprocess.inc
index 64ece5e..923e64e 100644
--- a/at_core/includes/preprocess.inc
+++ b/at_core/includes/preprocess.inc
@@ -439,6 +439,15 @@ function at_core_preprocess_comment(&$variables) {
  * @param $variables
  */
 function at_core_preprocess_block(&$variables) {
+  // Variable for custom block bundle.
+  if (isset($variables['elements']['content']['#block_content'])) {
+    $variables['bundle'] = $variables['elements']['content']['#block_content']->bundle();
+    // Variable for custom block view mode.
+    if (isset($variables['elements']['#configuration']['view_mode'])) {
+      $variables['view_mode'] = $variables['elements']['#configuration']['view_mode'];
+    }
+  }
+
   // Plugin ID variables for block class and shortcodes.
   if (isset($variables['base_plugin_id']) && !empty($variables['base_plugin_id'])) {
     $variables['plugin_id_clean'] = $variables['base_plugin_id'];
diff --git a/at_core/templates/block/block.html.twig b/at_core/templates/block/block.html.twig
index 4af1900..5ef5ae3 100644
--- a/at_core/templates/block/block.html.twig
+++ b/at_core/templates/block/block.html.twig
@@ -21,6 +21,8 @@
  *   displayed in front of the main title tag that appears in the template.
  * - title_suffix: Additional output populated by modules, intended to be
  *   displayed after the main title tag that appears in the template.
+ * - bundle: The bundle of a custom block.
+ * - view_mode: The view mode a custom block was rendered in.
  *
  * @see template_preprocess_block()
  */
@@ -31,6 +33,8 @@
     'block-config-provider--' ~ configuration.provider|clean_class,
     'block-plugin-id--' ~ plugin_id_clean|clean_class,
     label ? 'has-title',
+    bundle ? 'block--type-' ~ bundle|clean_class,
+    view_mode ? 'block--view-mode-' ~ view_mode|clean_class,
   ]
 -%}
 {%- set heading_id = attributes.id ~ '-title'|clean_id -%}
