diff --git a/diff.services.yml b/diff.services.yml
index 16ff140..38c2b4e 100755
--- a/diff.services.yml
+++ b/diff.services.yml
@@ -27,4 +27,10 @@ services:
     arguments: ['@config.factory', '@diff.diff.formatter','@plugin.manager.field.field_type', '@diff.entity_parser', '@plugin.manager.diff.builder']
 
   diff.html_diff:
-    class: HtmlDiffAdvanced
\ No newline at end of file
+    class: HtmlDiffAdvanced
+
+  theme.negotiator.front_end_theme:
+    class: Drupal\diff\FrontEndNegotiator
+    arguments: ['@current_user', '@config.factory', '@entity.manager', '@router.admin_context']
+    tags:
+      - { name: theme_negotiator, priority: 0}
diff --git a/src/FrontEndNegotiator.php b/src/FrontEndNegotiator.php
new file mode 100644
index 0000000..6914e02
--- /dev/null
+++ b/src/FrontEndNegotiator.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace Drupal\diff;
+
+use Drupal\Component\Utility\UrlHelper;
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\user\Theme\AdminNegotiator;
+
+/**
+ * Custom front end theme.
+ *
+ * @package Drupal\diff
+ */
+class FrontEndNegotiator extends AdminNegotiator {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function applies(RouteMatchInterface $route_match) {
+   if ($route_match->getParameter('filter') === 'visual_inline') {
+     if ($this->getTheme() === 'front_end' || $this->getTheme() === NULL) {
+       return $route_match->getRouteName() === 'diff.revisions_diff';
+     }
+   }
+
+   return FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function determineActiveTheme(RouteMatchInterface $route_match) {
+    return $this->configFactory->get('system.theme')->get('default');
+  }
+
+  /**
+   * Return the selected theme.
+   *
+   * @return string
+   *   Selected theme.
+   */
+  public function getTheme() {
+    $request = \Drupal::request();
+    $query = UrlHelper::filterQueryParameters($request->query->all(), ['page']);
+    if (isset($query['theme'])) {
+      return $query['theme'];
+    }
+  }
+}
diff --git a/src/Plugin/diff/Layout/VisualInlineDiffLayout.php b/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
index 15a80cc..2fc440f 100644
--- a/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
+++ b/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
@@ -8,7 +8,6 @@ use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\PhpStorage\PhpStorageFactory;
 use Drupal\Core\Render\RendererInterface;
-use Drupal\Core\Url;
 use Drupal\diff\Controller\PluginRevisionController;
 use Drupal\diff\DiffEntityComparison;
 use Drupal\diff\DiffEntityParser;
@@ -154,7 +153,52 @@ class VisualInlineDiffLayout extends DiffLayoutBase {
       '#prefix' => '<div class="diff-filter">',
       '#suffix' => '</div>',
     ];
+    $links['front_end'] = [
+      'title' => $this->t('Front end'),
+      'url' => PluginRevisionController::diffRoute(
+        $entity,
+        $left_revision->getRevisionId(),
+        $right_revision->getRevisionId(),
+        'visual_inline',
+        [
+          'view_mode' => $active_view_mode,
+          'theme' => 'front_end',
+        ]
+      )
+    ];
+    $links['back_end'] = [
+      'title' => $this->t('Back end'),
+      'url' => PluginRevisionController::diffRoute(
+        $entity,
+        $left_revision->getRevisionId(),
+        $right_revision->getRevisionId(),
+        'visual_inline',
+        [
+          'view_mode' => $active_view_mode,
+          'theme' => 'back_end',
+        ]
+      ),
+    ];
+
+    $build['theme'] = [
+      '#type' => 'item',
+      '#title' => $this->t('Theme'),
+      '#weigth' => 1,
+      '#prefix' => '<div class="diff-layout">',
+      '#suffix' => '</div>',
+    ];
+    $build['theme']['filter'] = [
+      '#type' => 'operations',
+      '#links' => $links,
+      '#prefix' => '<div class"diff-filter">',
+      '#suffix' => '</div>',
+    ];
 
+    $theme_keys = array_keys($links);
+    $active_theme = $this->requestStack->getCurrentRequest()->query->get('theme') ?: reset($theme_keys);
+    $theme = $links[$active_theme];
+    unset($links[$active_theme]);
+    array_unshift($links, $theme);
     $view_builder = $this->entityTypeManager->getViewBuilder($entity->getEntityTypeId());
     // Trigger exclusion of interactive items like on preview.
     $left_revision->in_preview = TRUE;
