diff --git a/core/modules/views/templates/views-view-summary.html.twig b/core/modules/views/templates/views-view-summary.html.twig
new file mode 100644
index 0000000..54d9bbc
--- /dev/null
+++ b/core/modules/views/templates/views-view-summary.html.twig
@@ -0,0 +1,30 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a list of summary lines.
+ *
+ * Available variables:
+ * - rows: The rows contained in this view.
+ *   - row.attributes: The summary link HTML attributes.
+ *   - row.url: The summary link URL.
+ *   - row.link: The summary link text.
+ *   - row.count: The number of items under this grouping.
+ * - options.count: A views option for whether to show the count.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_views_view_summary()
+ *
+ * @ingroup themeable
+ */
+#}
+<div class="item-list">
+  <ul class="views-summary">
+  {% for row in rows %}
+    <li><a href="{{ row.url }}"{{ row.attributes }}>{{ row.link }}</a>
+      {% if options.count %}
+        ({{ row.count }})
+      {% endif %}
+    </li>
+  {% endfor %}
+  </ul>
+</div>
diff --git a/core/modules/views/templates/views-view-summary.tpl.php b/core/modules/views/templates/views-view-summary.tpl.php
deleted file mode 100644
index ce51e70..0000000
--- a/core/modules/views/templates/views-view-summary.tpl.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @file
- * Default simple view template to display a list of summary lines.
- *
- * @ingroup views_templates
- */
-?>
-<div class="item-list">
-  <ul class="views-summary">
-  <?php foreach ($rows as $id => $row): ?>
-    <li><a href="<?php print $row->url; ?>"<?php print $row_classes[$id]; ?>><?php print $row->link; ?></a>
-      <?php if (!empty($options['count'])): ?>
-        (<?php print $row->count?>)
-      <?php endif; ?>
-    </li>
-  <?php endforeach; ?>
-  </ul>
-</div>
diff --git a/core/modules/views/views.theme.inc b/core/modules/views/views.theme.inc
index 0bae0fc..3d266a0 100644
--- a/core/modules/views/views.theme.inc
+++ b/core/modules/views/views.theme.inc
@@ -344,12 +344,17 @@ function template_preprocess_views_view_field(&$vars) {
 }
 
 /**
- * Preprocess theme function to print a single record from a row, with fields
+ * Prepares variables for printing a single record from a row, with fields.
+ *
+ * Default template: views-view-summary.html.twig.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - view: The view object.
  */
-function template_preprocess_views_view_summary(&$vars) {
-  $view     = $vars['view'];
+function template_preprocess_views_view_summary(&$variables) {
+  $view = $variables['view'];
   $argument = $view->argument[$view->build_info['summary_level']];
-  $vars['row_classes'] = array();
 
   $url_options = array();
 
@@ -366,14 +371,13 @@ function template_preprocess_views_view_summary(&$vars) {
   // This is not done per single argument value, because this could cause performance problems.
   $row_args = array();
 
-  foreach ($vars['rows'] as $id => $row) {
+  foreach ($variables['rows'] as $id => $row) {
     $row_args[$id] = $argument->summary_argument($row);
   }
   $argument->process_summary_arguments($row_args);
 
-  foreach ($vars['rows'] as $id => $row) {
-
-    $vars['rows'][$id]->link = $argument->summary_name($row);
+  foreach ($variables['rows'] as $id => $row) {
+    $variables['rows'][$id]->link = $argument->summary_name($row);
     $args = $view->args;
     $args[$argument->position] = $row_args[$id];
 
@@ -381,14 +385,13 @@ function template_preprocess_views_view_summary(&$vars) {
     if (!empty($argument->options['summary_options']['base_path'])) {
       $base_path = $argument->options['summary_options']['base_path'];
     }
-    $vars['rows'][$id]->url = url($view->getUrl($args, $base_path), $url_options);
-    $vars['rows'][$id]->count = intval($row->{$argument->count_alias});
-
-    $vars['row_classes'][$id] = array();
-    if (isset($active_urls[$vars['rows'][$id]->url])) {
-      $vars['row_classes'][$id]['class'][] = 'active';
+    $variables['rows'][$id]->url = url($view->getUrl($args, $base_path), $url_options);
+    $variables['rows'][$id]->count = intval($row->{$argument->count_alias});
+    $attributes = array();
+    if (isset($active_urls[$variables['rows'][$id]->url])) {
+      $attributes['class'][] = 'active';
     }
-    $vars['row_classes'][$id] = new Attribute($vars['row_classes'][$id]);
+    $variables['rows'][$id]->attributes = new Attribute($attributes);
   }
 }
 
