diff --git a/core/modules/views_ui/templates/views-ui-style-plugin-table.html.twig b/core/modules/views_ui/templates/views-ui-style-plugin-table.html.twig
new file mode 100644
index 0000000..734802a
--- /dev/null
+++ b/core/modules/views_ui/templates/views-ui-style-plugin-table.html.twig
@@ -0,0 +1,19 @@
+{#
+/**
+ * @file
+ * Default template for the settings of a table style Views display.
+ *
+ * Available variables:
+ * - description: An overview for the settings of this display.
+ * - table: A table of options for each field in this display.
+ * - form: Any remaining form fields not included in the table.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_views_ui_style_plugin_table()
+ *
+ * @ingroup themeable
+ */
+#}
+{{ description }}
+{{ table }}
+{{ form }}
diff --git a/core/modules/views_ui/views_ui.module b/core/modules/views_ui/views_ui.module
index 0d461be..5a47833 100644
--- a/core/modules/views_ui/views_ui.module
+++ b/core/modules/views_ui/views_ui.module
@@ -160,6 +160,7 @@ function views_ui_theme() {
     'views_ui_style_plugin_table' => array(
       'render element' => 'form',
       'file' => 'views_ui.theme.inc',
+      'template' => 'views-ui-style-plugin-table',
     ),
 
     // When previewing a view.
diff --git a/core/modules/views_ui/views_ui.theme.inc b/core/modules/views_ui/views_ui.theme.inc
index 0377ff5..5c33551 100644
--- a/core/modules/views_ui/views_ui.theme.inc
+++ b/core/modules/views_ui/views_ui.theme.inc
@@ -370,12 +370,19 @@ function theme_views_ui_rearrange_filter_form(&$vars) {
 }
 
 /**
- * Theme the form for the table style plugin
- */
-function theme_views_ui_style_plugin_table($variables) {
+ * Prepares variables for style plugin table templates.
+ *
+ * Default template: views-ui-style-plugin-table.html.twig.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - form: A render element representing the form.
+*/
+function template_preprocess_views_ui_style_plugin_table(&$variables) {
   $form = $variables['form'];
 
-  $output = drupal_render($form['description_markup']);
+  $variables['description'] = $form['description_markup'];
+  unset($form['description_markup']);
 
   $header = array(
     t('Field'),
@@ -406,23 +413,32 @@ function theme_views_ui_style_plugin_table($variables) {
   $rows = array();
   foreach (element_children($form['columns']) as $id) {
     $row = array();
-    $row[] = drupal_render($form['info'][$id]['name']);
-    $row[] = drupal_render($form['columns'][$id]);
-    $row[] = drupal_render($form['info'][$id]['align']);
-    $row[] = drupal_render($form['info'][$id]['separator']);
+    $row[]['data'] = $form['info'][$id]['name'];
+    $row[]['data'] = $form['columns'][$id];
+    $row[]['data'] = $form['info'][$id]['align'];
+    $row[]['data'] = $form['info'][$id]['separator'];
+
+    // Unset so they don't get rendered in drupal_render_children.
+    unset($form['info'][$id]['name']);
+    unset($form['columns'][$id]);
+    unset($form['info'][$id]['align']);
+    unset($form['info'][$id]['separator']);
     if (!empty($form['info'][$id]['sortable'])) {
       $row[] = array(
-        'data' => drupal_render($form['info'][$id]['sortable']),
+        'data' => $form['info'][$id]['sortable'],
         'align' => 'center',
       );
       $row[] = array(
-        'data' => drupal_render($form['info'][$id]['default_sort_order']),
+        'data' => $form['info'][$id]['default_sort_order'],
         'align' => 'center',
       );
       $row[] = array(
-        'data' => drupal_render($form['default'][$id]),
+        'data' => $form['default'][$id],
         'align' => 'center',
       );
+      // Unset so they don't get rendered in drupal_render_children.
+      unset($form['info'][$id]['sortable']);
+      unset($form['info'][$id]['default_sort_order']);
     }
     else {
       $row[] = '';
@@ -430,22 +446,29 @@ function theme_views_ui_style_plugin_table($variables) {
       $row[] = '';
     }
     $row[] = array(
-      'data' => drupal_render($form['info'][$id]['empty_column']),
+      'data' => $form['info'][$id]['empty_column'],
       'align' => 'center',
     );
     $row[] = array(
-      'data' => drupal_render($form['info'][$id]['responsive']),
+      'data' => $form['info'][$id]['responsive'],
       'align' => 'center',
     );
     $rows[] = $row;
+    // Unset so they don't get rendered in drupal_render_children.
+    unset($form['info'][$id]['empty_column']);
+    unset($form['info'][$id]['responsive']);
   }
 
   // Add the special 'None' row.
-  $rows[] = array(t('None'), '', '', '', '', '', array('align' => 'center', 'data' => drupal_render($form['default'][-1])), '', '');
-
-  $output .= theme('table', array('header' => $header, 'rows' => $rows));
-  $output .= drupal_render_children($form);
-  return $output;
+  $rows[] = array(array('data' => t('None'), 'colspan' => 6), array('align' => 'center', 'data' => $form['default'][-1]), array('colspan' => 2));
+  unset($form['default']);
+  $variables['table'] = array(
+    '#type' => 'table',
+    '#theme' => 'table__views_ui_style_plugin_table',
+    '#header' => $header,
+    '#rows' => $rows
+  );
+  $variables['form'] = $form;
 }
 
 /**
