diff --git a/core/misc/states.js b/core/misc/states.js
index 680e86e..3957445 100644
--- a/core/misc/states.js
+++ b/core/misc/states.js
@@ -509,7 +509,7 @@
     if (e.trigger) {
       $(e.target)
         .prop('disabled', e.value)
-        .closest('.form-item, .form-submit, .form-wrapper').toggleClass('form-disabled', e.value)
+        .closest('.form-item, .form-submit, .form-wrapper').toggleClass('js-form-disabled', e.value)
         .find('select, input, textarea').prop('disabled', e.value);
 
       // Note: WebKit nightlies don't reflect that change correctly.
diff --git a/core/modules/system/templates/feed-icon.html.twig b/core/modules/system/templates/feed-icon.html.twig
index b3c10d1..a9e0f03 100644
--- a/core/modules/system/templates/feed-icon.html.twig
+++ b/core/modules/system/templates/feed-icon.html.twig
@@ -15,4 +15,4 @@
  * @ingroup themeable
  */
 #}
-<a href="{{ url }}"{{ attributes.addClass('feed-icon') }}>{{ icon }}</a>
+<a href="{{ url }}"{{ attributes }}>{{ icon }}</a>
diff --git a/core/modules/system/templates/field-multiple-value-form.html.twig b/core/modules/system/templates/field-multiple-value-form.html.twig
index f18a853..e9370e9 100644
--- a/core/modules/system/templates/field-multiple-value-form.html.twig
+++ b/core/modules/system/templates/field-multiple-value-form.html.twig
@@ -20,13 +20,13 @@
  */
 #}
 {% if multiple %}
-  <div class="form-item">
+  <div>
     {{ table }}
     {% if description %}
-      <div class="description">{{ description }}</div>
+      <div>{{ description }}</div>
     {% endif %}
     {% if button %}
-      <div class="clearfix">{{ button }}</div>
+      <div>{{ button }}</div>
     {% endif %}
   </div>
 {% else %}
diff --git a/core/modules/system/templates/field.html.twig b/core/modules/system/templates/field.html.twig
index 0745f84..fd41c13 100644
--- a/core/modules/system/templates/field.html.twig
+++ b/core/modules/system/templates/field.html.twig
@@ -38,30 +38,18 @@
  * @ingroup themeable
  */
 #}
-{% set field_name_class = field_name|clean_class %}
-{%
-  set classes = [
-    'field',
-    'field-' ~ entity_type|clean_class ~ '--' ~ field_name_class,
-    'field-name-' ~ field_name_class,
-    'field-type-' ~ field_type|clean_class,
-    'field-label-' ~ label_display,
-    label_display == 'inline' ? 'clearfix',
-  ]
-%}
 {%
   set title_classes = [
-    'field-label',
     label_display == 'visually_hidden' ? 'visually-hidden',
   ]
 %}
-<div{{ attributes.addClass(classes) }}>
+<div{{ attributes }}>
   {% if not label_hidden %}
     <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
   {% endif %}
-  <div{{ content_attributes.addClass('field-items') }}>
+  <div{{ content_attributes }}>
     {% for item in items %}
-      <div{{ item.attributes.addClass('field-item') }}>{{ item.content }}</div>
+      <div{{ item.attributes }}>{{ item.content }}</div>
     {% endfor %}
   </div>
 </div>
diff --git a/core/modules/system/templates/fieldset.html.twig b/core/modules/system/templates/fieldset.html.twig
index ab6796c..e830d2c 100644
--- a/core/modules/system/templates/fieldset.html.twig
+++ b/core/modules/system/templates/fieldset.html.twig
@@ -21,27 +21,21 @@
  * @ingroup themeable
  */
 #}
-<fieldset{{ attributes.addClass('form-item', 'form-wrapper') }}>
-  {%
-    set legend_span_classes = [
-      'fieldset-legend',
-      required ? 'form-required',
-    ]
-  %}
+<fieldset{{ attributes }}>
   {#  Always wrap fieldset legends in a SPAN for CSS positioning. #}
   <legend{{ legend.attributes }}>
-    <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
+    <span{{ legend_span.attributes }}>{{ legend.title }}</span>
   </legend>
-  <div class="fieldset-wrapper">
+  <div>
     {% if prefix %}
-      <span class="field-prefix">{{ prefix }}</span>
+      <span>{{ prefix }}</span>
     {% endif %}
     {{ children }}
     {% if suffix %}
-      <span class="field-suffix">{{ suffix }}</span>
+      <span>{{ suffix }}</span>
     {% endif %}
     {% if description.content %}
-      <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div>
+      <div{{ description.attributes }}>{{ description.content }}</div>
     {% endif %}
   </div>
 </fieldset>
diff --git a/core/modules/system/templates/form-element-label.html.twig b/core/modules/system/templates/form-element-label.html.twig
index 6ececd9..2bfd74a 100644
--- a/core/modules/system/templates/form-element-label.html.twig
+++ b/core/modules/system/templates/form-element-label.html.twig
@@ -16,7 +16,6 @@
 #}
 {%
   set classes = [
-    title_display == 'after' ? 'option',
     title_display == 'invisible' ? 'visually-hidden',
     required ? 'form-required',
   ]
diff --git a/core/modules/system/templates/form-element.html.twig b/core/modules/system/templates/form-element.html.twig
index a961801..54a4ade 100644
--- a/core/modules/system/templates/form-element.html.twig
+++ b/core/modules/system/templates/form-element.html.twig
@@ -47,16 +47,11 @@
 #}
 {%
   set classes = [
-    'form-item',
-    'form-type-' ~ type|clean_class,
-    'form-item-' ~ name|clean_class,
-    title_display not in ['after', 'before'] ? 'form-no-label',
-    disabled == 'disabled' ? 'form-disabled',
+    disabled == 'disabled' ? 'js-form-disabled',
   ]
 %}
 {%
   set description_classes = [
-    'description',
     description_display == 'invisible' ? 'visually-hidden',
   ]
 %}
@@ -65,7 +60,7 @@
     {{ label }}
   {% endif %}
   {% if prefix is not empty %}
-    <span class="field-prefix">{{ prefix }}</span>
+    <span>{{ prefix }}</span>
   {% endif %}
   {% if description_display == 'before' and description.content %}
     <div{{ description.attributes }}>
@@ -74,7 +69,7 @@
   {% endif %}
   {{ children }}
   {% if suffix is not empty %}
-    <span class="field-suffix">{{ suffix }}</span>
+    <span>{{ suffix }}</span>
   {% endif %}
   {% if label_display == 'after' %}
     {{ label }}
diff --git a/core/themes/bartik/css/components/form.css b/core/themes/bartik/css/components/form.css
index 69a0a72..518fff8 100644
--- a/core/themes/bartik/css/components/form.css
+++ b/core/themes/bartik/css/components/form.css
@@ -169,9 +169,9 @@ input.form-submit:focus {
 }
 
 /* Disabled form elements */
-.form-disabled input,
-.form-disabled select,
-.form-disabled textarea,
+.js-form-disabled input,
+.js-form-disabled select,
+.js-form-disabled textarea,
 .form-button-disabled,
 .form-button-disabled:hover,
 .form-button-disabled:active,
@@ -189,7 +189,7 @@ input.form-submit:focus {
   filter: alpha(opacity=50);
   opacity: .5;
 }
-.form-disabled label {
+.js-form-disabled label {
   color: #717171;
 }
 
diff --git a/core/themes/classy/templates/form/form-element.html.twig b/core/themes/classy/templates/form/form-element.html.twig
index a961801..f4aa071 100644
--- a/core/themes/classy/templates/form/form-element.html.twig
+++ b/core/themes/classy/templates/form/form-element.html.twig
@@ -51,7 +51,7 @@
     'form-type-' ~ type|clean_class,
     'form-item-' ~ name|clean_class,
     title_display not in ['after', 'before'] ? 'form-no-label',
-    disabled == 'disabled' ? 'form-disabled',
+    disabled == 'disabled' ? 'js-form-disabled',
   ]
 %}
 {%
diff --git a/core/themes/seven/css/components/form.css b/core/themes/seven/css/components/form.css
index 79b342e..7e49f64 100644
--- a/core/themes/seven/css/components/form.css
+++ b/core/themes/seven/css/components/form.css
@@ -40,20 +40,20 @@ label[for] {
 .form-item label.option input {
   vertical-align: middle;
 }
-.form-disabled label {
+.js-form-disabled label {
   color: #737373;
 }
 
-.form-disabled input.form-text,
-.form-disabled input.form-tel,
-.form-disabled input.form-email,
-.form-disabled input.form-url,
-.form-disabled input.form-search,
-.form-disabled input.form-number,
-.form-disabled input.form-color,
-.form-disabled input.form-file,
-.form-disabled textarea.form-textarea,
-.form-disabled select.form-select {
+.js-form-disabled input.form-text,
+.js-form-disabled input.form-tel,
+.js-form-disabled input.form-email,
+.js-form-disabled input.form-url,
+.js-form-disabled input.form-search,
+.js-form-disabled input.form-number,
+.js-form-disabled input.form-color,
+.js-form-disabled input.form-file,
+.js-form-disabled textarea.form-textarea,
+.js-form-disabled select.form-select {
   border-color: #d4d4d4;
   background-color: hsla(0, 0%, 0%, .08);
   box-shadow: none;
