diff --git a/diff.module b/diff.module
index 867206f..6b6d4c9 100644
--- a/diff.module
+++ b/diff.module
@@ -78,11 +78,14 @@ function diff_help($route_name, RouteMatchInterface $route_match) {
       $output .= '</dl>';
       return $output;
 
+    case 'diff.general_settings':
+      return '<p>' . t('Configurations for the revision comparison functionality and diff layout plugins.') . '</p>';
+
     case 'diff.revision_overview':
       return '<p>' . t('Revisions allow you to track differences between multiple versions of your content, and revert to older versions.') . '</p>';
 
     case 'diff.fields_list':
-      return '<p>' . t('This table provides a summary of the field support found on the system. For every field a diff plugin can be selected and configured.') . '</p>';
+      return '<p>' . t('This table provides a summary of the field support found on the system. For every field a diff plugin can be selected and configured. This settings are applied to Unified and Split fields layouts.') . '</p>';
   }
 }
 
diff --git a/src/Annotation/DiffLayoutBuilder.php b/src/Annotation/DiffLayoutBuilder.php
index 4240724..8f45939 100644
--- a/src/Annotation/DiffLayoutBuilder.php
+++ b/src/Annotation/DiffLayoutBuilder.php
@@ -30,4 +30,11 @@ class DiffLayoutBuilder extends Plugin {
    */
   public $label;
 
+  /**
+   * The plugin description.
+   *
+   * @var string
+   */
+  public $description;
+
 }
diff --git a/src/Form/GeneralSettingsForm.php b/src/Form/GeneralSettingsForm.php
index 1ce50da..b91e51b 100644
--- a/src/Form/GeneralSettingsForm.php
+++ b/src/Form/GeneralSettingsForm.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\diff\Form;
 
+use Drupal\Component\Utility\Xss;
 use Drupal\Core\Form\ConfigFormBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\diff\DiffLayoutManager;
@@ -69,23 +70,6 @@ class GeneralSettingsForm extends ConfigFormBase {
       '#description' => $this->t('<em>Simple exclusion</em> means that users will not be able to select the same revision, <em>Linear restrictions</em> means that users can only select older or newer revisions of the current selections.'),
     );
 
-    $context_lines = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-    $options = array_combine($context_lines, $context_lines);
-    $form['context_lines_leading'] = array(
-      '#type' => 'select',
-      '#title' => $this->t('Leading context lines'),
-      '#description' => $this->t('This governs the number of unchanged leading context "lines" to preserve.'),
-      '#default_value' => $config->get('general_settings' . '.' . 'context_lines_leading'),
-      '#options' => $options,
-    );
-    $form['context_lines_trailing'] = array(
-      '#type' => 'select',
-      '#title' => $this->t('Trailing context lines'),
-      '#description' => $this->t('This governs the number of unchanged trailing context "lines" to preserve.'),
-      '#default_value' => $config->get('general_settings' . '.' . 'context_lines_trailing'),
-      '#options' => $options,
-    );
-
     $layout_plugins = $this->diffLayoutManager->getDefinitions();
     $weight = count($layout_plugins) + 1;
     $layout_plugins_order = [];
@@ -98,11 +82,12 @@ class GeneralSettingsForm extends ConfigFormBase {
       $weight++;
     }
 
+
     $form['layout_plugins'] = [
       '#type' => 'table',
-      '#header' => [t('Layout'), t('Weight')],
+      '#header' => [t('Layout'), t('Description'), t('Weight')],
       '#empty' => t('There are no items yet. Add an item.'),
-      '#suffix' => '<div class="description">' . $this->t('The layout plugins that are enabled for displaying the diff comparison.') .'</div>',
+      '#suffix' => '<div class="description">' . $this->t('The layout plugins that are enabled to display the revision comparison.') .'</div>',
       '#tabledrag' => [
         [
           'action' => 'order',
@@ -115,6 +100,7 @@ class GeneralSettingsForm extends ConfigFormBase {
     uasort($layout_plugins_order, 'Drupal\Component\Utility\SortArray::sortByWeightElement');
 
     foreach ($layout_plugins_order as $id => $layout_plugin) {
+      $description = $this->diffLayoutManager->getDefinition($id)['description'];
       $form['layout_plugins'][$id]['#attributes']['class'][] = 'draggable';
       $form['layout_plugins'][$id]['enabled'] = [
         '#type' => 'checkbox',
@@ -122,6 +108,10 @@ class GeneralSettingsForm extends ConfigFormBase {
         '#title_display' => 'after',
         '#default_value' => $layout_plugin['enabled'],
       ];
+      $form['layout_plugins'][$id]['description'] = [
+        '#type' => 'markup',
+        '#markup' => isset($description) ? Xss::filter($description) : '',
+      ];
       $form['layout_plugins'][$id]['weight'] = [
         '#type' => 'weight',
         '#title' => t('Weight for @title', ['@title' => $layout_plugin['label']]),
@@ -137,9 +127,49 @@ class GeneralSettingsForm extends ConfigFormBase {
       ];
     }
 
+    $form['field_based_settings'] = [
+      '#type' => 'details',
+      '#title' => $this->t('Field based layout settings'),
+      '#open' => TRUE,
+      '#states' => [
+        'visible' => [
+          [':input[name="layout_plugins[split_fields][enabled]"]' => ['checked' => TRUE]],
+          [':input[name="layout_plugins[unified_fields][enabled]"]' => ['checked' => TRUE]],
+        ]
+      ],
+    ];
+
+    $context_lines = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+    $options = array_combine($context_lines, $context_lines);
+    $form['field_based_settings']['context_lines_leading'] = array(
+      '#type' => 'select',
+      '#title' => $this->t('Leading context lines'),
+      '#description' => $this->t('This governs the number of unchanged leading context "lines" to preserve.'),
+      '#default_value' => $config->get('general_settings' . '.' . 'context_lines_leading'),
+      '#options' => $options,
+    );
+    $form['field_based_settings']['context_lines_trailing'] = array(
+      '#type' => 'select',
+      '#title' => $this->t('Trailing context lines'),
+      '#description' => $this->t('This governs the number of unchanged trailing context "lines" to preserve.'),
+      '#default_value' => $config->get('general_settings' . '.' . 'context_lines_trailing'),
+      '#options' => $options,
+    );
+
     // Check if Visual inline layout is installed.
     if ($this->diffLayoutManager->hasDefinition('visual_inline')) {
-      $form['visual_inline_theme'] = [
+      $form['visual_inline_settings'] = [
+        '#type' => 'details',
+        '#title' => $this->t('Visual inline layout settings'),
+        '#open' => TRUE,
+        '#states' => [
+          'visible' => [
+            ':input[name="layout_plugins[visual_inline][enabled]"]' => ['checked' => TRUE]
+          ]
+        ],
+      ];
+
+      $form['visual_inline_settings']['visual_inline_theme'] = [
         '#type' => 'select',
         '#title' => $this->t('Theme'),
         '#options' => [
@@ -148,11 +178,6 @@ class GeneralSettingsForm extends ConfigFormBase {
         ],
         '#description' => $this->t('Theme used for Visual inline layout when comparing revisions.'),
         '#default_value' => $config->get('general_settings')['visual_inline_theme'],
-        '#states' => [
-          'visible' => [
-            ':input[name="layout_plugins[visual_inline][enabled]"]' => ['checked' => TRUE]
-          ]
-        ],
       ];
     }
 
diff --git a/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php b/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php
index 742370d..291331b 100644
--- a/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php
+++ b/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php
@@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
  * @DiffLayoutBuilder(
  *   id = "split_fields",
  *   label = @Translation("Split fields"),
+ *   description = @Translation("Field based layout, revision comparison is made side by side."),
  * )
  */
 class SplitFieldsDiffLayout extends DiffLayoutBase {
diff --git a/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php b/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php
index 00bb7e4..302c395 100644
--- a/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php
+++ b/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php
@@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
  * @DiffLayoutBuilder(
  *   id = "unified_fields",
  *   label = @Translation("Unified fields"),
+ *   description = @Translation("Field based layout, revision comparison is made line by line."),
  * )
  */
 class UnifiedFieldsDiffLayout extends DiffLayoutBase {
diff --git a/src/Plugin/diff/Layout/VisualInlineDiffLayout.php b/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
index 3c101aa..e3b5c3b 100644
--- a/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
+++ b/src/Plugin/diff/Layout/VisualInlineDiffLayout.php
@@ -25,6 +25,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
  * @DiffLayoutBuilder(
  *   id = "visual_inline",
  *   label = @Translation("Visual Inline"),
+ *   description = @Translation("Visual layout, revision comparison is made as the content is rendered for the user."),
  * )
  */
 class VisualInlineDiffLayout extends DiffLayoutBase {
diff --git a/src/Tests/AdminFormsTest.php b/src/Tests/AdminFormsTest.php
index 17ddfbc..9834aad 100644
--- a/src/Tests/AdminFormsTest.php
+++ b/src/Tests/AdminFormsTest.php
@@ -18,7 +18,10 @@ class AdminFormsTest extends DiffTestBase {
    *
    * @var array
    */
-  public static $modules = ['field_ui'];
+  public static $modules = [
+    'field_ui',
+    'help',
+  ];
 
   /**
    * {@inheritdoc}
@@ -30,6 +33,30 @@ class AdminFormsTest extends DiffTestBase {
   }
 
   /**
+   * Tests the descriptions in the Settings UI.
+   */
+  public function testSettingsUI() {
+    // Enable the help block.
+    $this->drupalPlaceBlock('help_block', ['region' => 'help']);
+
+    // Create a user with administer permissions.
+    $permissions = [
+      'administer site configuration',
+      'access administration pages',
+      'administer blocks',
+    ];
+    $admin_user = $this->drupalCreateUser($permissions);
+    $this->drupalLogin($admin_user);
+
+    $this->drupalGet('admin/config/content/diff/general');
+    // Check the settings introduction text.
+    $this->assertText('Configurations for the revision comparison functionality and diff layout plugins.');
+    // Check the layout plugins descriptions.
+    $this->assertText('Field based layout, revision comparison is made side by side.');
+    $this->assertText('Field based layout, revision comparison is made line by line.');
+  }
+
+  /**
    * Tests the Settings tab.
    */
   public function testSettingsTab() {
