diff --git a/core/modules/views/config/schema/views.row.schema.yml b/core/modules/views/config/schema/views.row.schema.yml
index 3eae0c9..f91ff09 100644
--- a/core/modules/views/config/schema/views.row.schema.yml
+++ b/core/modules/views/config/schema/views.row.schema.yml
@@ -14,6 +14,9 @@ views.row.fields:
     default_field_elements:
       type: boolean
       label: 'Provide default field wrapper elements'
+    add_active_class:
+      type: boolean
+      label: 'Add "active" class on links'
     inline:
       type: sequence
       label: 'Inline'
diff --git a/core/modules/views/src/Plugin/views/field/FieldPluginBase.php b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php
index 48c59ef..b3c39b8 100644
--- a/core/modules/views/src/Plugin/views/field/FieldPluginBase.php
+++ b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php
@@ -1154,6 +1154,11 @@ public function advancedRender(ResultRow $values) {
       if ($this instanceof MultiItemsFieldHandlerInterface) {
         $items = [];
         foreach ($raw_items as $count => $item) {
+          // Setting the active class on a link is now an opt-in feature, so
+          // we need to check if the features is activated for this view.
+          if (!empty($this->view->rowPlugin->options['add_active_class']) && !empty($item['rendered']['#url'])) {
+            $item['rendered']['#url']->setOptions(['set_active_class' => TRUE]);
+          }
           $value = $this->render_item($count, $item);
           if (is_array($value)) {
             $value = (string) $this->getRenderer()->render($value);
@@ -1383,6 +1388,7 @@ protected function renderAsLink($alter, $text, $tokens) {
       'fragment' => NULL,
       'language' => NULL,
       'query' => [],
+      'set_active_class' => isset($this->view->rowPlugin) ? $this->view->rowPlugin->options['add_active_class'] : FALSE,
     ];
 
     $alter += [
diff --git a/core/modules/views/src/Plugin/views/row/Fields.php b/core/modules/views/src/Plugin/views/row/Fields.php
index 711704e..09d8d8c 100644
--- a/core/modules/views/src/Plugin/views/row/Fields.php
+++ b/core/modules/views/src/Plugin/views/row/Fields.php
@@ -36,6 +36,7 @@ protected function defineOptions() {
     $options['separator'] = ['default' => ''];
     $options['hide_empty'] = ['default' => FALSE];
     $options['default_field_elements'] = ['default' => TRUE];
+    $options['add_active_class'] = ['default' => FALSE];
     return $options;
   }
 
@@ -57,6 +58,13 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#description' => $this->t('If not checked, fields that are not configured to customize their HTML elements will get no wrappers at all for their field, label and field + label wrappers. You can use this to quickly reduce the amount of markup the view provides by default, at the cost of making it more difficult to apply CSS.'),
     ];
 
+    $form['add_active_class'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Add active class on links'),
+      '#default_value' => $this->options['add_active_class'],
+      '#description' => $this->t('If checked, if the fields link to the current page, an "is-active" class will be added on the link.'),
+    ];
+
     $form['inline'] = [
       '#type' => 'checkboxes',
       '#title' => $this->t('Inline fields'),
