diff --git a/themable_forms.module b/themable_forms.module
index 69445fa..be88721 100644
--- a/themable_forms.module
+++ b/themable_forms.module
@@ -13,6 +13,10 @@ use Drupal\Core\Render\Element;
  */
 function themable_forms_theme_suggestions_form_element(array $variables) {
   $suggestions = ['form_element__type__' . $variables['element']['#type']];
+  if (isset($variables['element']['#base_form_id'])) {
+    $suggestions[] = 'form_element__form_id__' . $variables['element']['#base_form_id'];
+    $suggestions[] = 'form_element__' . $variables['element']['#base_form_id'] . '__' . $variables['element']['#type'];
+  }
   if (isset($variables['element']['#form_id'])) {
     $suggestions[] = 'form_element__form_id__' . $variables['element']['#form_id'];
     $suggestions[] = 'form_element__' . $variables['element']['#form_id'] . '__' . $variables['element']['#type'];
@@ -29,6 +33,12 @@ function themable_forms_theme_suggestions_form_element_label(array $variables) {
   if (isset($variables['element']['#form_element_type'])) {
     $suggestions[] = 'form_element_label__type__' . $variables['element']['#form_element_type'];
   }
+  if (isset($variables['element']['#base_form_id'])) {
+    $suggestions[] = 'form_element_label__form-id__' . $variables['element']['#base_form_id'];
+  }
+  if (isset($variables['element']['#form_element_type']) && isset($variables['element']['#base_form_id'])) {
+    $suggestions[] = 'form_element_label__' . $variables['element']['#base_form_id'] . '__' . $variables['element']['#form_element_type'];
+  }
   if (isset($variables['element']['#form_id'])) {
     $suggestions[] = 'form_element_label__form-id__' . $variables['element']['#form_id'];
   }
@@ -47,6 +57,9 @@ function themable_forms_preprocess_form_element(array &$variables) {
     return;
   }
 
+  if (isset($variables['element']['#base_form_id'])) {
+    $variables['label']['#base_form_id'] = $variables['element']['#base_form_id'];
+  }
   if (isset($variables['element']['#form_id'])) {
     $variables['label']['#form_id'] = $variables['element']['#form_id'];
   }
@@ -59,7 +72,11 @@ function themable_forms_preprocess_form_element(array &$variables) {
  * Implements hook_form_alter().
  */
 function themable_forms_form_alter(&$form, FormStateInterface $form_state, $form_id) {
-  themable_forms_attach_form_id($form, $form_id);
+  themable_forms_attach_form_id($form, 'form_id', $form_id);
+
+  if (isset($form_state->getBuildInfo()['base_form_id'])) {
+    themable_forms_attach_form_id($form, 'base_form_id', $form_state->getBuildInfo()['base_form_id']);
+  }
 }
 
 /**
@@ -67,17 +84,18 @@ function themable_forms_form_alter(&$form, FormStateInterface $form_state, $form
  *
  * @param $form
  *   The form or form element which children should have form id attached.
+ * @param $form_id_key
+ *   The array key to store the form id in.
  * @param $form_id
  *   The form id attached to form elements.
  *
  * @return array
  */
-function themable_forms_attach_form_id(&$form, $form_id) {
+function themable_forms_attach_form_id(&$form, $form_id_key, $form_id) {
   foreach (Element::children($form) as $child) {
-    if (!isset($form[$child]['#form_id'])) {
-      $form[$child]['#form_id'] = $form_id;
+    if (!isset($form[$child]['#' . $form_id_key])) {
+      $form[$child]['#' . $form_id_key] = $form_id;
     }
-    themable_forms_attach_form_id($form[$child], $form_id);
+    themable_forms_attach_form_id($form[$child], $form_id_key, $form_id);
   }
 }
-
