diff --git a/core/modules/views/templates/views-mini-pager.html.twig b/core/modules/views/templates/views-mini-pager.html.twig
new file mode 100644
index 0000000..ae84fa7
--- /dev/null
+++ b/core/modules/views/templates/views-mini-pager.html.twig
@@ -0,0 +1,16 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a views mini-pager.
+ *
+ * Available variables:
+ * - items: List of pager items.
+ *
+ * @see template_preprocess_views_mini_pager()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if items %}
+  {{ items }}
+{% endif %}
diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index 4740442..d0a6fc0 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -91,6 +91,7 @@ function views_theme($existing, $type, $theme, $path) {
   // Our extra version of pager from pager.inc
   $hooks['views_mini_pager'] = $base + array(
     'variables' => array('tags' => array(), 'quantity' => 10, 'element' => 0, 'parameters' => array()),
+    'template' => 'views-mini-pager',
   );
 
   $variables = array(
diff --git a/core/modules/views/views.theme.inc b/core/modules/views/views.theme.inc
index 82d2c78..b60d478 100644
--- a/core/modules/views/views.theme.inc
+++ b/core/modules/views/views.theme.inc
@@ -1071,9 +1071,18 @@ function template_preprocess_views_exposed_form(&$variables) {
 }
 
 /**
- * Theme function for the Mini pager.
+ * Prepares variables for views mini-pager templates.
+ *
+ * Default template: views-mini-pager.html.twig.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - tags: Provides link text for the next/previous links.
+ *   - element: The pager's id.
+ *   - parameters: Any extra GET parameters that should be retained, such as
+ *     exposed input.
  */
-function theme_views_mini_pager($variables) {
+function template_preprocess_views_mini_pager(&$variables) {
   global $pager_page_array, $pager_total;
 
   $tags = &$variables['tags'];
@@ -1140,9 +1149,10 @@ function theme_views_mini_pager($variables) {
   // link, which means that we are on the first page and there is no next page
   // available/wanted.
   if (empty($li_next) && empty($li_previous)) {
-    return '';
+    return;
   }
 
+  $items = array();
   $items[] = array(
     '#wrapper_attributes' => array('class' => array('pager-previous')),
   ) + $li_previous;
@@ -1156,16 +1166,11 @@ function theme_views_mini_pager($variables) {
     '#wrapper_attributes' => array('class' => array('pager-next')),
   ) + $li_next;
 
-  $item_list = array(
+  $variables['items'] = array(
     '#theme' => 'item_list__pager',
     '#items' => $items,
-    '#title' => NULL,
-    '#list_type' => 'ul',
-    '#attributes' => array(
-      'class' => array('pager'),
-    ),
+    '#attributes' => array('class' => array('pager')),
   );
-  return drupal_render($item_list);
 }
 
 /**
