diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 454414d373f3a2daf1c47786c9d59f2bf0dfb094..06ba27100373da11b3be47dcfff59620d3071e35 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -959,25 +959,6 @@ function template_preprocess_table(&$variables) {
}
}
-/**
- * Prepares variables for tablesort indicator templates.
- *
- * Default template: tablesort-indicator.html.twig.
- *
- * @param array $variables
- * An associative array containing:
- * - style: Set to either 'asc' or 'desc'. This determines which icon to show.
- */
-function template_preprocess_tablesort_indicator(&$variables) {
- // Provide the image attributes for an ascending or descending image.
- if ($variables['style'] == 'asc') {
- $variables['arrow_asc'] = file_create_url('core/misc/arrow-asc.png');
- }
- else {
- $variables['arrow_desc'] = file_create_url('core/misc/arrow-desc.png');
- }
-}
-
/**
* Prepares variables for item list templates.
*
diff --git a/core/misc/arrow-asc.png b/core/misc/arrow-asc.png
deleted file mode 100644
index 2edbb17d7768f01251d9862ae4c0d093b2e402fc..0000000000000000000000000000000000000000
--- a/core/misc/arrow-asc.png
+++ /dev/null
@@ -1,4 +0,0 @@
-‰PNG
-
-
IHDR
H%v? PLTEÿÿÿ···kR%» tRNS @æØf IDATxœc`@õì0È`ào``g``‚
- KzHƒ“Ï IEND®B`‚
\ No newline at end of file
diff --git a/core/misc/arrow-desc.png b/core/misc/arrow-desc.png
deleted file mode 100644
index a3ccabc556ea22d68c9dacb1337a6e7dcf01f72d..0000000000000000000000000000000000000000
--- a/core/misc/arrow-desc.png
+++ /dev/null
@@ -1,5 +0,0 @@
-‰PNG
-
-
IHDR
H%v? PLTEÿÿÿ···kR%» tRNS @æØf IDATc`@LL¬Œü…LL
-
-Li |q)í© IEND®B`‚
\ No newline at end of file
diff --git a/core/misc/icons/004875/twistie-down.svg b/core/misc/icons/004875/twistie-down.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6cd6a786bbbec522474409f47f7e0d444b0f3b01
--- /dev/null
+++ b/core/misc/icons/004875/twistie-down.svg
@@ -0,0 +1 @@
+
diff --git a/core/misc/icons/004875/twistie-up.svg b/core/misc/icons/004875/twistie-up.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bf3b80ed01ebb6926d1c2622310ac01b995179d6
--- /dev/null
+++ b/core/misc/icons/004875/twistie-up.svg
@@ -0,0 +1 @@
+
diff --git a/core/misc/icons/008ee6/twistie-down.svg b/core/misc/icons/008ee6/twistie-down.svg
new file mode 100644
index 0000000000000000000000000000000000000000..23f6d9ac1b8bfe487bad1a5384bcdb5593e0a41f
--- /dev/null
+++ b/core/misc/icons/008ee6/twistie-down.svg
@@ -0,0 +1 @@
+
diff --git a/core/misc/icons/008ee6/twistie-up.svg b/core/misc/icons/008ee6/twistie-up.svg
new file mode 100644
index 0000000000000000000000000000000000000000..dc9dd8e9f7d84f6d0cedd1aded9433517d0fb8c1
--- /dev/null
+++ b/core/misc/icons/008ee6/twistie-up.svg
@@ -0,0 +1 @@
+
diff --git a/core/misc/icons/ffffff/twistie-down.svg b/core/misc/icons/ffffff/twistie-down.svg
new file mode 100644
index 0000000000000000000000000000000000000000..83c77fd7bb690d4758f26d51e8515488634bdeb6
--- /dev/null
+++ b/core/misc/icons/ffffff/twistie-down.svg
@@ -0,0 +1 @@
+
diff --git a/core/misc/icons/ffffff/twistie-up.svg b/core/misc/icons/ffffff/twistie-up.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7b5502862396b79f082ba98088db6a30e0e4b117
--- /dev/null
+++ b/core/misc/icons/ffffff/twistie-up.svg
@@ -0,0 +1 @@
+
diff --git a/core/modules/system/css/components/tablesort.module.css b/core/modules/system/css/components/tablesort.module.css
new file mode 100644
index 0000000000000000000000000000000000000000..5e0e711e52f3a39bbb3d2053a97af1223b3ce5ae
--- /dev/null
+++ b/core/modules/system/css/components/tablesort.module.css
@@ -0,0 +1,19 @@
+/**
+ * @file
+ * Table sort indicator.
+ *
+ * @see tablesort-indicator.html.twig
+ */
+
+.tablesort {
+ width: 16px;
+ height: 16px;
+ display: inline-block;
+ background-size: 100%;
+}
+.tablesort--asc {
+ background-image: url(../../../../misc/icons/787878/twistie-down.svg);
+}
+.tablesort--desc {
+ background-image: url(../../../../misc/icons/787878/twistie-up.svg);
+}
diff --git a/core/modules/system/system.libraries.yml b/core/modules/system/system.libraries.yml
index 96b2f28099528c10814c70f49bdb5a11c81f052a..4a3bae6e4ca591109760024548b54f1f2f1c6f0a 100644
--- a/core/modules/system/system.libraries.yml
+++ b/core/modules/system/system.libraries.yml
@@ -19,6 +19,7 @@ base:
css/components/resize.module.css: { weight: -10 }
css/components/sticky-header.module.css: { weight: -10 }
css/components/tabledrag.module.css: { weight: -10 }
+ css/components/tablesort.module.css: { weight: -10 }
css/components/tree-child.module.css: { weight: -10 }
admin:
diff --git a/core/modules/system/templates/tablesort-indicator.html.twig b/core/modules/system/templates/tablesort-indicator.html.twig
index 059805f1d41a285f49e18e803dd267248e9e258d..3601c6d190dec3906507479a38f519935081685d 100644
--- a/core/modules/system/templates/tablesort-indicator.html.twig
+++ b/core/modules/system/templates/tablesort-indicator.html.twig
@@ -11,8 +11,18 @@
* @ingroup themeable
*/
#}
-{% if style == 'asc' -%}
-
-{% else -%}
-
-{% endif %}
+{%
+ set classes = [
+ 'tablesort',
+ 'tablesort--' ~ style,
+ ]
+%}
+
+
+ {% if style == 'asc' -%}
+ {{ 'Sort ascending'|t }}
+ {% else -%}
+ {{ 'Sort descending'|t }}
+ {% endif %}
+
+
diff --git a/core/modules/views/src/Tests/Handler/FieldWebTest.php b/core/modules/views/src/Tests/Handler/FieldWebTest.php
index 98fe8afd86d1a50e129f7dbdf8c2e3c8a1518dda..3f9a18456feb473e6657464b2dc062dc321ebe52 100644
--- a/core/modules/views/src/Tests/Handler/FieldWebTest.php
+++ b/core/modules/views/src/Tests/Handler/FieldWebTest.php
@@ -87,7 +87,7 @@ public function testClickSorting() {
$ids = $this->clickSortLoadIdsFromOutput();
$this->assertEqual($ids, range(1, 5));
- $this->clickLink(t('ID'));
+ $this->clickLink(t('ID Sort descending'));
// Check that the output has the expected order (desc).
$ids = $this->clickSortLoadIdsFromOutput();
$this->assertEqual($ids, range(5, 1, -1));
diff --git a/core/themes/bartik/bartik.libraries.yml b/core/themes/bartik/bartik.libraries.yml
index ab90023c9beed3dfaf9455f34b97d001ba6f0b36..3bfa3a6886ff541c29a117ee6e2e475f1ba5847a 100644
--- a/core/themes/bartik/bartik.libraries.yml
+++ b/core/themes/bartik/bartik.libraries.yml
@@ -41,6 +41,7 @@ global-styling:
css/components/site-branding.css: {}
css/components/site-footer.css: {}
css/components/table.css: {}
+ css/components/tablesort-indicator.css: {}
css/components/tabs.css: {}
css/components/toolbar.css: {}
css/components/featured-bottom.css: {}
diff --git a/core/themes/bartik/css/components/tablesort-indicator.css b/core/themes/bartik/css/components/tablesort-indicator.css
new file mode 100644
index 0000000000000000000000000000000000000000..d0ea03b7963d75e0c0cc83ffceb0abe551ace4bd
--- /dev/null
+++ b/core/themes/bartik/css/components/tablesort-indicator.css
@@ -0,0 +1,17 @@
+/**
+ * @file
+ * Tablesort indicator styles.
+ */
+
+.tablesort {
+ width: 14px;
+ height: 14px;
+ vertical-align: top;
+ margin: 1px 0 0 5px;
+}
+.tablesort--asc {
+ background-image: url(../../../../misc/icons/ffffff/twistie-down.svg);
+}
+.tablesort--desc {
+ background-image: url(../../../../misc/icons/ffffff/twistie-up.svg);
+}
diff --git a/core/themes/classy/templates/dataset/tablesort-indicator.html.twig b/core/themes/classy/templates/dataset/tablesort-indicator.html.twig
deleted file mode 100644
index 2b3f90da95551aa46b105cde725fc8d089f36dd8..0000000000000000000000000000000000000000
--- a/core/themes/classy/templates/dataset/tablesort-indicator.html.twig
+++ /dev/null
@@ -1,16 +0,0 @@
-{#
-/**
- * @file
- * Theme override for displaying a tablesort indicator.
- *
- * Available variables:
- * - style: Either 'asc' or 'desc', indicating the sorting direction.
- *
- * @see template_preprocess_tablesort_indicator()
- */
-#}
-{% if style == 'asc' -%}
-
-{% else -%}
-
-{% endif %}
diff --git a/core/themes/seven/css/components/tablesort-indicator.css b/core/themes/seven/css/components/tablesort-indicator.css
new file mode 100644
index 0000000000000000000000000000000000000000..fa49af700c7b49e70d4502b2564552f6ca8702c8
--- /dev/null
+++ b/core/themes/seven/css/components/tablesort-indicator.css
@@ -0,0 +1,26 @@
+/**
+ * @file
+ * Tablesort indicator styles.
+ */
+
+.tablesort {
+ float: right; /* LTR */
+ margin-top: 5px;
+ width: 10px;
+ height: 10px;
+}
+[dir="rtl"] .tablesort {
+ float: left;
+}
+.tablesort--asc {
+ background-image: url(../../../../misc/icons/004875/twistie-down.svg);
+}
+a:hover .tablesort--asc {
+ background-image: url(../../../../misc/icons/008ee6/twistie-down.svg);
+}
+.tablesort--desc {
+ background-image: url(../../../../misc/icons/004875/twistie-up.svg);
+}
+a:hover .tablesort--desc {
+ background-image: url(../../../../misc/icons/008ee6/twistie-up.svg);
+}
diff --git a/core/themes/seven/seven.libraries.yml b/core/themes/seven/seven.libraries.yml
index 0b814b57f4b056d59c9e088df9cecaf596f4f72e..764403b6400c4c94567ebe8b0a52c0ce49f772ab 100644
--- a/core/themes/seven/seven.libraries.yml
+++ b/core/themes/seven/seven.libraries.yml
@@ -26,6 +26,7 @@ global-styling:
css/components/skip-link.css: {}
css/components/tables.css: {}
css/components/search-admin-settings.css: {}
+ css/components/tablesort-indicator.css: {}
css/components/system-status-report.css: {}
css/components/tabs.css: {}
css/components/tour.theme.css: {}
diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme
index 1a44bc4d695cc74709f9096123d6c7efa92ac3d7..9727e15d08b831b1273502a232a9610b4e8ed482 100644
--- a/core/themes/seven/seven.theme
+++ b/core/themes/seven/seven.theme
@@ -94,18 +94,6 @@ function seven_preprocess_admin_block_content(&$variables) {
}
}
-/**
- * Implements hook_preprocess_HOOK() for tablesort indicator templates.
- *
- * Uses Seven's image versions, so the arrows show up as black and not gray on
- * gray.
- */
-function seven_preprocess_tablesort_indicator(&$variables) {
- $theme_path = drupal_get_path('theme', 'seven');
- $variables['arrow_asc'] = file_create_url($theme_path . '/images/arrow-asc.png');
- $variables['arrow_desc'] = file_create_url($theme_path . '/images/arrow-desc.png');
-}
-
/**
* Implements hook_preprocess_HOOK() for menu-local-action templates.
*/
diff --git a/core/themes/seven/templates/tablesort-indicator.html.twig b/core/themes/seven/templates/tablesort-indicator.html.twig
deleted file mode 100644
index b2eadaa4baa9d256fb684b67f573652e002ea6d0..0000000000000000000000000000000000000000
--- a/core/themes/seven/templates/tablesort-indicator.html.twig
+++ /dev/null
@@ -1,16 +0,0 @@
-{#
-/**
- * @file
- * Seven's theme implementation for displaying a tablesort indicator.
- *
- * Available variables:
- * - style: Either 'asc' or 'desc', indicating the sorting direction.
- * - arrow_asc: URL to the image for an ascending arrow.
- * - arrow_desc: URL to the image for a descending arrow.
- */
-#}
-{% if style == 'asc' -%}
-
-{% else -%}
-
-{% endif %}