diff --git a/core/misc/ajax.js b/core/misc/ajax.js
index 4dba53e..7c36d98 100644
--- a/core/misc/ajax.js
+++ b/core/misc/ajax.js
@@ -16,6 +16,39 @@
   "use strict";
 
   /**
+   * An animated progress throbber and container element for AJAX operations.
+   *
+   * @return
+   *   The HTML markup for the throbber.
+   */
+  Drupal.theme.ajaxProgressThrobber = function(message) {
+    return '<div class="ajax-progress ajax-progress--throbber"><div class="ajax-progress__throbber">&nbsp;</div>' +
+      Drupal.theme('ajaxProgressMessage', message) + '</div>';
+  };
+
+  /**
+   * An animated progress throbber and container element for AJAX operations.
+   *
+   * @return
+   *   The HTML markup for the throbber.
+   */
+  Drupal.theme.ajaxProgressIndicatorFullscreen = function() {
+    return '<div class="ajax-progress ajax-progress--fullscreen">&nbsp;</div>';
+  };
+
+  /**
+   * Formats optional text accompanying the AJAX progress throbber.
+   *
+   * @return
+   *   The HTML markup for the throbber.
+   */
+  Drupal.theme.ajaxProgressMessage = function(message) {
+    if (message) {
+      return '<div class="ajax-progress__message">' + message + '</div>';
+    }
+  };
+
+  /**
    * Attaches the Ajax behavior to each Ajax form element.
    *
    * @type {Drupal~behavior}
@@ -695,7 +728,7 @@
     if (this.progress.url) {
       progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
     }
-    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress-bar');
+    this.progress.element = $(progressBar.element).addClass('ajax-progress ajax-progress--bar');
     this.progress.object = progressBar;
     $(this.element).after(this.progress.element);
   };
@@ -704,10 +737,7 @@
    * Sets the throbber progress indicator.
    */
   Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
-    this.progress.element = $('<div class="ajax-progress ajax-progress-throbber"><div class="throbber">&nbsp;</div></div>');
-    if (this.progress.message) {
-      this.progress.element.find('.throbber').after('<div class="message">' + this.progress.message + '</div>');
-    }
+    this.progress.element = $(Drupal.theme('ajaxProgressThrobber', this.progress.message));
     $(this.element).after(this.progress.element);
   };
 
@@ -715,7 +745,7 @@
    * Sets the fullscreen progress indicator.
    */
   Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
-    this.progress.element = $('<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>');
+    this.progress.element = $(Drupal.theme('ajaxProgressIndicatorFullscreen'));
     $('body').after(this.progress.element);
   };
 
diff --git a/core/misc/dialog.theme.css b/core/misc/dialog.theme.css
index 837e49f..44560df 100644
--- a/core/misc/dialog.theme.css
+++ b/core/misc/dialog.theme.css
@@ -48,7 +48,7 @@
   padding: 0;
   margin: 0;
 }
-.ui-dialog .ajax-progress-throbber {
+.ui-dialog .ajax-progress--throbber {
   /* Can't do center:50% middle: 50%, so approximate it for a typical window size. */
   left: 49%;
   position: fixed;
@@ -64,8 +64,8 @@
   padding: 4px;
   width: 24px;
 }
-.ui-dialog .ajax-progress-throbber .throbber,
-.ui-dialog .ajax-progress-throbber .message {
+.ui-dialog .ajax-progress__throbber,
+.ui-dialog .ajax-progress__message {
   display: none;
 }
 
diff --git a/core/modules/system/css/components/ajax-progress.module.css b/core/modules/system/css/components/ajax-progress.module.css
index ee56efa..885292a 100644
--- a/core/modules/system/css/components/ajax-progress.module.css
+++ b/core/modules/system/css/components/ajax-progress.module.css
@@ -10,16 +10,16 @@
 [dir="rtl"] .ajax-progress {
   float: right;
 }
-.ajax-progress-throbber .throbber {
+.ajax-progress__throbber {
   background: transparent url(../../../../misc/throbber-active.gif) no-repeat 0px center;
   display: inline;
   padding: 1px 5px 2px;
 }
-.ajax-progress-throbber .message {
+.ajax-progress__message {
   display: inline;
   padding: 1px 5px 2px;
 }
-tr .ajax-progress-throbber .throbber {
+tr .ajax-progress__throbber {
   margin: 0 2px;
 }
 .ajax-progress-bar {
@@ -27,7 +27,7 @@ tr .ajax-progress-throbber .throbber {
 }
 
 /* Full screen throbber */
-.ajax-progress-fullscreen {
+.ajax-progress--fullscreen {
   /* Can't do center:50% middle: 50%, so approximate it for a typical window size. */
   left: 49%;
   position: fixed;
