diff --git a/config/install/diff.settings.yml b/config/install/diff.settings.yml
index f9571a6..bd4cbaa 100644
--- a/config/install/diff.settings.yml
+++ b/config/install/diff.settings.yml
@@ -13,3 +13,4 @@ general_settings:
     unified_fields:
       enabled: true
       weight: 2
+  theme: standard
diff --git a/config/schema/diff.schema.yml b/config/schema/diff.schema.yml
index d0ebbe7..dc26e5e 100644
--- a/config/schema/diff.schema.yml
+++ b/config/schema/diff.schema.yml
@@ -31,6 +31,9 @@ diff.settings:
               weight:
                 type: integer
                 label: 'Weight'
+        theme:
+          type: string
+          label: 'Theme'
     entity:
       type: sequence
       label: 'Entities'
diff --git a/diff.services.yml b/diff.services.yml
index 16ff140..7ee6b53 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.visual_diff:
+    class: Drupal\diff\VisualDiffThemeNegotiator
+    arguments: ['@current_user', '@config.factory', '@entity.manager', '@router.admin_context']
+    tags:
+      - { name: theme_negotiator, priority: 0}
diff --git a/src/Form/GeneralSettingsForm.php b/src/Form/GeneralSettingsForm.php
index 0710ae6..4e1d86b 100644
--- a/src/Form/GeneralSettingsForm.php
+++ b/src/Form/GeneralSettingsForm.php
@@ -137,6 +137,21 @@ class GeneralSettingsForm extends ConfigFormBase {
       ];
     }
 
+    $form['theme'] = [
+      '#type' => 'select',
+      '#title' => $this->t('Theme'),
+      '#options' => [
+        'standard' => $this->t('Standard'),
+        'admin' => $this->t('Admin'),
+      ],
+      '#description' => $this->t('Theme used for Visual inline layout when comparing revisions.'),
+      '#default_value' => $config->get('general_settings')['theme'],
+      '#states' => [
+        'visible' => [
+          ':input[name="layout_plugins[visual_inline][enabled]"]' => ['checked' => TRUE]
+        ]
+      ],
+    ];
     return parent::buildForm($form, $form_state);
   }
 
@@ -166,6 +181,7 @@ class GeneralSettingsForm extends ConfigFormBase {
       'context_lines_leading',
       'context_lines_trailing',
       'layout_plugins',
+      'theme'
     );
     foreach ($keys as $key) {
       $config->set('general_settings.' . $key, $form_state->getValue($key));
diff --git a/src/Plugin/diff/Layout/VisualInlineDiffLayout.php b/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
index 15a80cc..6471a13 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;
@@ -148,6 +147,7 @@ class VisualInlineDiffLayout extends DiffLayoutBase {
       '#prefix' => '<div class="diff-layout">',
       '#suffix' => '</div>',
     ];
+
     $build['view_mode']['filter'] = [
       '#type' => 'operations',
       '#links' => $options,
diff --git a/src/Tests/AdminFormsTest.php b/src/Tests/AdminFormsTest.php
index 9dfc3cc..0a10846 100644
--- a/src/Tests/AdminFormsTest.php
+++ b/src/Tests/AdminFormsTest.php
@@ -33,12 +33,15 @@ class AdminFormsTest extends DiffTestBase {
    * Tests the Settings tab.
    */
   public function testSettingsTab() {
+    $this->drupalGet('admin/config/content/diff/general');
     $edit = [
       'radio_behavior' => 'linear',
       'context_lines_leading' => 10,
       'context_lines_trailing' => 5,
+      'theme' => 'standard',
     ];
-    $this->drupalPostForm('admin/config/content/diff/general', $edit, t('Save configuration'));
+    $this->assertText('Theme');
+    $this->drupalPostForm(NULL, $edit, t('Save configuration'));
     $this->assertText('The configuration options have been saved.');
   }
 
diff --git a/src/VisualDiffThemeNegotiator.php b/src/VisualDiffThemeNegotiator.php
new file mode 100644
index 0000000..fda926a
--- /dev/null
+++ b/src/VisualDiffThemeNegotiator.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Drupal\diff;
+
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\user\Theme\AdminNegotiator;
+
+/**
+ * Custom front end theme.
+ *
+ * @package Drupal\diff
+ */
+class VisualDiffThemeNegotiator extends AdminNegotiator {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function applies(RouteMatchInterface $route_match) {
+    if ($route_match->getRouteName() === 'diff.revisions_diff') {
+      if ($route_match->getParameter('filter') === 'visual_inline') {
+        if ('standard' === \Drupal::config('diff.settings')->get('general_settings.theme')) {
+          return TRUE;
+        }
+      }
+    }
+
+   return FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function determineActiveTheme(RouteMatchInterface $route_match) {
+    return $this->configFactory->get('system.theme')->get('default');
+  }
+
+}
diff --git a/tests/src/Unit/VisualDiffThemeNegotiatorTest.php b/tests/src/Unit/VisualDiffThemeNegotiatorTest.php
new file mode 100644
index 0000000..229ce17
--- /dev/null
+++ b/tests/src/Unit/VisualDiffThemeNegotiatorTest.php
@@ -0,0 +1,86 @@
+<?php
+
+namespace Drupal\Tests\diff\Unit;
+
+use Drupal\Core\Config\ConfigFactory;
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Config\ImmutableConfig;
+use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Routing\AdminContext;
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\diff\VisualDiffThemeNegotiator;
+use Drupal\Tests\UnitTestCase;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Class VisualDiffThemeNegotiatorTest
+ * @coversDefaultClass \Drupal\diff\VisualDiffThemeNegotiator
+ *
+ * @group diff
+ */
+class VisualDiffThemeNegotiatorTest extends UnitTestCase  {
+
+  /**
+   * The current user.
+   *
+   * @var \Drupal\Core\Session\AccountInterface
+   */
+  protected $user;
+
+  /**
+   * The config factory.
+   *
+   * @var \Drupal\Core\Config\ConfigFactoryInterface
+   */
+  protected $configFactory;
+
+  /**
+   * The entity manager.
+   *
+   * @var \Drupal\Core\Entity\EntityManagerInterface
+   */
+  protected $entityManager;
+
+  /**
+   * The route admin context to determine whether a route is an admin one.
+   *
+   * @var \Drupal\Core\Routing\AdminContext
+   */
+  protected $adminContext;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->user = $this->prophesize(AccountInterface::class);
+    $this->configFactory = $this->prophesize(ConfigFactoryInterface::class);
+    $this->entityManager = $this->prophesize(EntityManagerInterface::class);
+    $this->adminContext = $this->prophesize(AdminContext::class);
+  }
+
+  /**
+   * Testing if applies method return true.
+   */
+  public function testNegotiator() {
+    $theme = new VisualDiffThemeNegotiator($this->user->reveal(),
+      $this->configFactory->reveal(),
+      $this->entityManager->reveal(),
+      $this->adminContext->reveal());
+
+    $route_match = $this->prophesize(RouteMatchInterface::class);
+    $route_match->getRouteName()->willReturn('diff.revisions_diff');
+    $route_match->getParameter('filter')->willReturn('visual_inline');
+    $container = $this->prophesize(ContainerInterface::class);
+    $config_factory = $this->prophesize(ConfigFactory::class);
+    $container->get('config.factory')->willReturn($config_factory);
+    $diff_config = $this->prophesize(ImmutableConfig::class);
+    $config_factory->get('diff.settings')->willReturn($diff_config);
+    $diff_config->get('general_settings.theme')->willReturn('standard');
+    \Drupal::setContainer($container->reveal());
+    $this->assertTrue($theme->applies($route_match->reveal()));
+  }
+
+}
