diff --git a/core/modules/system/templates/system-admin-index.html.twig b/core/modules/system/templates/system-admin-index.html.twig
index 17f8150..881700f 100644
--- a/core/modules/system/templates/system-admin-index.html.twig
+++ b/core/modules/system/templates/system-admin-index.html.twig
@@ -15,10 +15,10 @@
  * @ingroup themeable
  */
 #}
-<div class="admin clearfix">
+<div>
   {{ system_compact_link }}
   {% for position, blocks in containers %}
-    <div class="{{ position }} clearfix">
+    <div>
       {% for block in blocks %}
         {{ block }}
       {% endfor %}
diff --git a/core/modules/system/templates/system-themes-page.html.twig b/core/modules/system/templates/system-themes-page.html.twig
index 6e65d76..41155cd 100644
--- a/core/modules/system/templates/system-themes-page.html.twig
+++ b/core/modules/system/templates/system-themes-page.html.twig
@@ -40,7 +40,7 @@
       ]
     %}
     <div{{ theme_group.attributes.addClass(theme_group_classes) }}>
-      <h2 class="system-themes-list__header">{{ theme_group.title }}</h2>
+      <h2>{{ theme_group.title }}</h2>
       {% for theme in theme_group.themes %}
         {%
           set theme_classes = [
@@ -50,21 +50,21 @@
             'clearfix',
           ]
         %}
-        <div{{ theme.attributes.addClass(theme_classes) }}>
+        <div{{ theme.attributes }}>
           {% if theme.screenshot %}
             {{ theme.screenshot }}
           {% endif %}
-          <div class="theme-info">
-            <h3 class="theme-info__header">
+          <div>
+            <h3>
               {{- theme.name }} {{ theme.version -}}
               {% if theme.notes %}
                 ({{ theme.notes|safe_join(', ') }})
               {%- endif -%}
             </h3>
-            <div class="theme-info__description">{{ theme.description }}</div>
+            <div>{{ theme.description }}</div>
             {# Display operation links if the theme is compatible. #}
             {% if theme.incompatible %}
-              <div class="incompatible">{{ theme.incompatible }}</div>
+              <div>{{ theme.incompatible }}</div>
             {% else %}
               {{ theme.operations }}
             {% endif %}
diff --git a/core/modules/system/templates/table.html.twig b/core/modules/system/templates/table.html.twig
index 3d0252e..c776c8f 100644
--- a/core/modules/system/templates/table.html.twig
+++ b/core/modules/system/templates/table.html.twig
@@ -67,7 +67,7 @@
               cell.active_table_sort ? 'active',
             ]
           %}
-          <{{ cell.tag }}{{ cell.attributes.addClass(cell_classes) }}>
+          <{{ cell.tag }}{{ cell.attributes }}>
             {{- cell.content -}}
           </{{ cell.tag }}>
         {% endfor %}
@@ -83,7 +83,7 @@
             not no_striping ? cycle(['odd', 'even'], loop.index0),
           ]
         %}
-        <tr{{ row.attributes.addClass(row_classes) }}>
+        <tr{{ row.attributes }}>
           {% for cell in row.cells %}
             <{{ cell.tag }}{{ cell.attributes }}>
               {{- cell.content -}}
@@ -94,8 +94,8 @@
     </tbody>
   {% elseif empty %}
     <tbody>
-      <tr class="odd">
-        <td colspan="{{ header_columns }}" class="empty message">{{ empty }}</td>
+      <tr>
+        <td colspan="{{ header_columns }}">{{ empty }}</td>
       </tr>
     </tbody>
   {% endif %}
diff --git a/core/modules/system/templates/textarea.html.twig b/core/modules/system/templates/textarea.html.twig
index 8a8426d..287c8d4 100644
--- a/core/modules/system/templates/textarea.html.twig
+++ b/core/modules/system/templates/textarea.html.twig
@@ -22,6 +22,6 @@
     required ? 'required',
   ]
 %}
-<div{{ wrapper_attributes.addClass('form-textarea-wrapper') }}>
-  <textarea{{ attributes.addClass(classes) }}>{{ value }}</textarea>
+<div{{ wrapper_attributes }}>
+  <textarea{{ attributes }}>{{ value }}</textarea>
 </div>
diff --git a/core/themes/classy/templates/system-admin-index.html.twig b/core/themes/classy/templates/system-admin-index.html.twig
new file mode 100644
index 0000000..17f8150
--- /dev/null
+++ b/core/themes/classy/templates/system-admin-index.html.twig
@@ -0,0 +1,27 @@
+{#
+/**
+ * @file
+ * Default theme implementation for the admin index page.
+ *
+ * Available variables:
+ * - system_compact_link: Themed link to toggle compact view.
+ * - containers: A list of administrative containers keyed by position: left or
+ *   right. Each container in the list contains:
+ *   - blocks: A list of administrative blocks, rendered
+ *     through admin-block.html.twig.
+ *
+ * @see template_preprocess_system_admin_index()
+ *
+ * @ingroup themeable
+ */
+#}
+<div class="admin clearfix">
+  {{ system_compact_link }}
+  {% for position, blocks in containers %}
+    <div class="{{ position }} clearfix">
+      {% for block in blocks %}
+        {{ block }}
+      {% endfor %}
+    </div>
+  {% endfor %}
+</div>
diff --git a/core/themes/classy/templates/system-config-form.html.twig b/core/themes/classy/templates/system-config-form.html.twig
new file mode 100644
index 0000000..51e6fc7
--- /dev/null
+++ b/core/themes/classy/templates/system-config-form.html.twig
@@ -0,0 +1,17 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a system settings form.
+ *
+ * This template will be used when a system config form specifies 'config_form'
+ * as its #theme callback.  Otherwise, by default, system config forms will be
+ * themed by theme_form(). This does not alter the appearance of a form at all,
+ * but is provided as a convenience for themers.
+ *
+ * Available variables:
+ * - form: The confirm form.
+ *
+ * @ingroup themeable
+ */
+#}
+{{ form }}
diff --git a/core/themes/classy/templates/system-themes-page.html.twig b/core/themes/classy/templates/system-themes-page.html.twig
new file mode 100644
index 0000000..6e65d76
--- /dev/null
+++ b/core/themes/classy/templates/system-themes-page.html.twig
@@ -0,0 +1,76 @@
+{#
+/**
+ * @file
+ * Default theme implementation for the Appearance page.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the main container.
+ * - theme_groups: A list of theme groups. Each theme group contains:
+ *   - attributes: HTML attributes specific to this theme group.
+ *   - title: Title for the theme group.
+ *   - state: State of the theme group, e.g. installed or uninstalled.
+ *   - themes: A list of themes within the theme group. Each theme contains:
+ *     - attributes: HTML attributes specific to this theme.
+ *     - screenshot: A screenshot representing the theme.
+ *     - description: Description of the theme.
+ *     - name: Theme name.
+ *     - version: The theme's version number.
+ *     - is_default: Boolean indicating whether the theme is the default theme
+ *       or not.
+ *     - is_admin: Boolean indicating whether the theme is the admin theme or
+ *       not.
+ *     - notes: Identifies what context this theme is being used in, e.g.,
+ *       default theme, admin theme.
+ *     - incompatible: Text describing any compatibility issues.
+ *     - operations: A list of operation links, e.g., Settings, Enable, Disable,
+ *       etc. these links should only be displayed if the theme is compatible.
+ *
+ * @see template_preprocess_system_themes_page()
+ *
+ * @ingroup themeable
+ */
+#}
+<div{{ attributes }}>
+  {% for theme_group in theme_groups %}
+    {%
+      set theme_group_classes = [
+        'system-themes-list',
+        'system-themes-list-' ~ theme_group.state,
+        'clearfix',
+      ]
+    %}
+    <div{{ theme_group.attributes.addClass(theme_group_classes) }}>
+      <h2 class="system-themes-list__header">{{ theme_group.title }}</h2>
+      {% for theme in theme_group.themes %}
+        {%
+          set theme_classes = [
+            theme.is_default ? 'theme-default',
+            theme.is_admin ? 'theme-admin',
+            'theme-selector',
+            'clearfix',
+          ]
+        %}
+        <div{{ theme.attributes.addClass(theme_classes) }}>
+          {% if theme.screenshot %}
+            {{ theme.screenshot }}
+          {% endif %}
+          <div class="theme-info">
+            <h3 class="theme-info__header">
+              {{- theme.name }} {{ theme.version -}}
+              {% if theme.notes %}
+                ({{ theme.notes|safe_join(', ') }})
+              {%- endif -%}
+            </h3>
+            <div class="theme-info__description">{{ theme.description }}</div>
+            {# Display operation links if the theme is compatible. #}
+            {% if theme.incompatible %}
+              <div class="incompatible">{{ theme.incompatible }}</div>
+            {% else %}
+              {{ theme.operations }}
+            {% endif %}
+          </div>
+        </div>
+      {% endfor %}
+    </div>
+  {% endfor %}
+</div>
diff --git a/core/themes/classy/templates/table.html.twig b/core/themes/classy/templates/table.html.twig
new file mode 100644
index 0000000..3d0252e
--- /dev/null
+++ b/core/themes/classy/templates/table.html.twig
@@ -0,0 +1,115 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a table.
+ *
+ * Available variables:
+ * - attributes: HTML attributes to apply to the <table> tag.
+ * - caption: A localized string for the <caption> tag.
+ * - colgroups: Column groups. Each group contains the following properties:
+ *   - attributes: HTML attributes to apply to the <col> tag.
+ *     Note: Drupal currently supports only one table header row, see
+ *     http://drupal.org/node/893530 and
+ *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
+ * - header: Table header cells. Each cell contains the following properties:
+ *   - tag: The HTML tag name to use; either TH or TD.
+ *   - attributes: HTML attributes to apply to the tag.
+ *   - content: A localized string for the title of the column.
+ *   - field: Field name (required for column sorting).
+ *   - sort: Default sort order for this column ("asc" or "desc").
+ * - sticky: A flag indicating whether to use a "sticky" table header.
+ * - rows: Table rows. Each row contains the following properties:
+ *   - attributes: HTML attributes to apply to the <tr> tag.
+ *   - data: Table cells.
+ *   - no_striping: A flag indicating that the row should receive no
+ *     'even / odd' styling. Defaults to FALSE.
+ *   - cells: Table cells of the row. Each cell contains the following keys:
+ *     - tag: The HTML tag name to use; either TH or TD.
+ *     - attributes: Any HTML attributes, such as "colspan", to apply to the
+ *       table cell.
+ *     - content: The string to display in the table cell.
+ *     - active_table_sort: A boolean indicating whether the cell is the active
+         table sort.
+ * - footer: Table footer rows, in the same format as the rows variable.
+ * - empty: The message to display in an extra row if table does not have
+ *   any rows.
+ * - no_striping: A boolean indicating that the row should receive no striping.
+ * - header_columns: The number of columns in the header.
+ *
+ * @see template_preprocess_table()
+ *
+ * @ingroup themeable
+ */
+#}
+<table{{ attributes }}>
+  {% if caption %}
+    <caption>{{ caption }}</caption>
+  {% endif %}
+
+  {% for colgroup in colgroups %}
+    {% if colgroup.cols %}
+      <colgroup{{ colgroup.attributes }}>
+        {% for col in colgroup.cols %}
+          <col{{ col.attributes }} />
+        {% endfor %}
+      </colgroup>
+    {% else %}
+      <colgroup{{ colgroup.attributes }} />
+    {% endif %}
+  {% endfor %}
+
+  {% if header %}
+    <thead>
+      <tr>
+        {% for cell in header %}
+          {%
+            set cell_classes = [
+              cell.active_table_sort ? 'active',
+            ]
+          %}
+          <{{ cell.tag }}{{ cell.attributes.addClass(cell_classes) }}>
+            {{- cell.content -}}
+          </{{ cell.tag }}>
+        {% endfor %}
+      </tr>
+    </thead>
+  {% endif %}
+
+  {% if rows %}
+    <tbody>
+      {% for row in rows %}
+        {%
+          set row_classes = [
+            not no_striping ? cycle(['odd', 'even'], loop.index0),
+          ]
+        %}
+        <tr{{ row.attributes.addClass(row_classes) }}>
+          {% for cell in row.cells %}
+            <{{ cell.tag }}{{ cell.attributes }}>
+              {{- cell.content -}}
+            </{{ cell.tag }}>
+          {% endfor %}
+        </tr>
+      {% endfor %}
+    </tbody>
+  {% elseif empty %}
+    <tbody>
+      <tr class="odd">
+        <td colspan="{{ header_columns }}" class="empty message">{{ empty }}</td>
+      </tr>
+    </tbody>
+  {% endif %}
+  {% if footer %}
+    <tfoot>
+      {% for row in footer %}
+        <tr{{ row.attributes }}>
+          {% for cell in row.cells %}
+            <{{ cell.tag }}{{ cell.attributes }}>
+              {{- cell.content -}}
+            </{{ cell.tag }}>
+          {% endfor %}
+        </tr>
+      {% endfor %}
+    </tfoot>
+  {% endif %}
+</table>
diff --git a/core/themes/classy/templates/tablesort-indicator.html.twig b/core/themes/classy/templates/tablesort-indicator.html.twig
new file mode 100644
index 0000000..059805f
--- /dev/null
+++ b/core/themes/classy/templates/tablesort-indicator.html.twig
@@ -0,0 +1,18 @@
+{#
+/**
+ * @file
+ * Default theme implementation for displaying a tablesort indicator.
+ *
+ * Available variables:
+ * - style: Either 'asc' or 'desc', indicating the sorting direction.
+ *
+ * @see template_preprocess_tablesort_indicator()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if style == 'asc' -%}
+  <img src="{{ arrow_asc }}" width="13" height="13" alt="{{ 'sort ascending'|t }}" title="{{ 'sort ascending'|t }}" />
+{% else -%}
+  <img src="{{ arrow_desc }}" width="13" height="13" alt="{{ 'sort descending'|t }}" title="{{ 'sort descending'|t }}" />
+{% endif %}
diff --git a/core/themes/classy/templates/textarea.html.twig b/core/themes/classy/templates/textarea.html.twig
new file mode 100644
index 0000000..8a8426d
--- /dev/null
+++ b/core/themes/classy/templates/textarea.html.twig
@@ -0,0 +1,27 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a 'textarea' #type form element.
+ *
+ * Available variables
+ * - wrapper_attributes: A list of HTML attributes for the wrapper element.
+ * - attributes: A list of HTML attributes for the textarea element.
+ * - resizable: An indicator for whether the textarea is resizable.
+ * - required: An indicator for whether the textarea is required.
+ * - value: The textarea content.
+ *
+ * @see template_preprocess_textarea()
+ *
+ * @ingroup themeable
+ */
+#}
+{%
+  set classes = [
+    'form-textarea',
+    resizable ? 'resize-' ~ resizable,
+    required ? 'required',
+  ]
+%}
+<div{{ wrapper_attributes.addClass('form-textarea-wrapper') }}>
+  <textarea{{ attributes.addClass(classes) }}>{{ value }}</textarea>
+</div>
