diff --git a/config/schema/ctools.schema.yml b/config/schema/ctools.schema.yml
index 11e340f..73a3045 100644
--- a/config/schema/ctools.schema.yml
+++ b/config/schema/ctools.schema.yml
@@ -39,15 +39,6 @@ ctools.block_display_variant:
   type: display_variant.plugin
   label: 'Block display variant'
   mapping:
-    selection_logic:
-      type: string
-      label: 'Selection logic'
-    selection_conditions:
-      type: sequence
-      label: 'Selection Conditions'
-      sequence:
-        - type: condition.plugin.[id]
-          label: 'Selection Condition'
     blocks:
       type: sequence
       label: 'Blocks'
diff --git a/src/Plugin/ConditionVariantInterface.php b/src/Plugin/ConditionVariantInterface.php
deleted file mode 100644
index 242aecc..0000000
--- a/src/Plugin/ConditionVariantInterface.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\ctools\Plugin\ConditionVariantInterface.
- */
-
-namespace Drupal\ctools\Plugin;
-
-use Drupal\Core\Display\VariantInterface;
-
-/**
- * Provides an interface for variant plugins that use condition plugins.
- */
-interface ConditionVariantInterface extends VariantInterface {
-
-  /**
-   * Gets the values for all defined contexts.
-   *
-   * @return \Drupal\Component\Plugin\Context\ContextInterface[]
-   *   An array of set contexts, keyed by context name.
-   */
-  public function getContexts();
-
-  /**
-   * Returns the conditions used for determining if this variant is selected.
-   *
-   * @return \Drupal\Core\Condition\ConditionInterface[]|\Drupal\Core\Condition\ConditionPluginCollection
-   *   An array of configured condition plugins.
-   */
-  public function getSelectionConditions();
-
-  /**
-   * Removes a specific selection condition.
-   *
-   * @param string $condition_id
-   *   The selection condition ID.
-   *
-   * @return $this
-   */
-  public function removeSelectionCondition($condition_id);
-
-  /**
-   * Adds a new selection condition.
-   *
-   * @param array $configuration
-   *   An array of configuration for the new selection condition.
-   *
-   * @return string
-   *   The selection condition ID.
-   */
-  public function addSelectionCondition(array $configuration);
-
-  /**
-   * Returns the logic used to compute selections, either 'and' or 'or'.
-   *
-   * @return string
-   *   The string 'and', or the string 'or'.
-   */
-  public function getSelectionLogic();
-
-  /**
-   * Returns the definition of the plugin implementation.
-   *
-   * @return array
-   *   The plugin definition, as returned by the discovery object used by the
-   *   plugin manager.
-   */
-  public function getPluginDefinition();
-
-  /**
-   * Sets the context values for this display variant.
-   *
-   * @param \Drupal\Component\Plugin\Context\ContextInterface[] $contexts
-   *   An array of contexts, keyed by context name.
-   *
-   * @return $this
-   */
-  public function setContexts(array $contexts);
-
-  /**
-   * Retrieves a specific selection condition.
-   *
-   * @param string $condition_id
-   *   The selection condition ID.
-   *
-   * @return \Drupal\Core\Condition\ConditionInterface
-   *   The selection condition object.
-   */
-  public function getSelectionCondition($condition_id);
-
-}
diff --git a/src/Plugin/ConditionVariantTrait.php b/src/Plugin/ConditionVariantTrait.php
deleted file mode 100644
index 5bb939b..0000000
--- a/src/Plugin/ConditionVariantTrait.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\ctools\Plugin\ConditionVariantTrait.
- */
-
-namespace Drupal\ctools\Plugin;
-
-use Drupal\Core\Condition\ConditionAccessResolverTrait;
-use Drupal\Core\Condition\ConditionPluginCollection;
-use Drupal\Core\Plugin\ContextAwarePluginInterface;
-
-/**
- * Provides methods for \Drupal\ctools\Plugin\ConditionVariantInterface.
- */
-trait ConditionVariantTrait {
-
-  use ConditionAccessResolverTrait;
-
-  /**
-   * The condition plugin manager.
-   *
-   * @var \Drupal\Core\Condition\ConditionManager
-   */
-  protected $conditionManager;
-
-  /**
-   * The plugin collection that holds the selection condition plugins.
-   *
-   * @var \Drupal\Component\Plugin\LazyPluginCollection
-   */
-  protected $selectionConditionCollection;
-
-  /**
-   * Gets the condition plugin manager.
-   *
-   * @return \Drupal\Core\Condition\ConditionManager
-   *   The condition plugin manager.
-   */
-  protected function getConditionManager() {
-    if (!$this->conditionManager) {
-      $this->conditionManager = \Drupal::service('plugin.manager.condition');
-    }
-    return $this->conditionManager;
-  }
-
-  /**
-   * @see \Drupal\ctools\Plugin\ConditionVariantInterface::getSelectionConditions()
-   */
-  public function getSelectionConditions() {
-    if (!$this->selectionConditionCollection) {
-      $this->selectionConditionCollection = new ConditionPluginCollection($this->getConditionManager(), $this->getSelectionConfiguration());
-    }
-    return $this->selectionConditionCollection;
-  }
-
-  /**
-   * @see \Drupal\ctools\Plugin\ConditionVariantInterface::addSelectionCondition()
-   */
-  public function addSelectionCondition(array $configuration) {
-    $configuration['uuid'] = $this->uuidGenerator()->generate();
-    $this->getSelectionConditions()->addInstanceId($configuration['uuid'], $configuration);
-    return $configuration['uuid'];
-  }
-
-  /**
-   * @see \Drupal\ctools\Plugin\ConditionVariantInterface::getSelectionCondition()
-   */
-  public function getSelectionCondition($condition_id) {
-    return $this->getSelectionConditions()->get($condition_id);
-  }
-
-  /**
-   * @see \Drupal\ctools\Plugin\ConditionVariantInterface::removeSelectionCondition()
-   */
-  public function removeSelectionCondition($condition_id) {
-    $this->getSelectionConditions()->removeInstanceId($condition_id);
-    return $this;
-  }
-
-  /**
-   * Determines if the selection conditions will pass given a set of contexts.
-   *
-   * @param \Drupal\Component\Plugin\Context\ContextInterface[] $contexts
-   *   An array of set contexts, keyed by context name.
-   *
-   * @return bool
-   *   TRUE if access is granted, FALSE otherwise.
-   */
-  protected function determineSelectionAccess(array $contexts) {
-    $conditions = $this->getSelectionConditions();
-    foreach ($conditions as $condition) {
-      if ($condition instanceof ContextAwarePluginInterface) {
-        $this->contextHandler()->applyContextMapping($condition, $contexts);
-      }
-    }
-    return $this->resolveConditions($conditions, $this->getSelectionLogic());
-  }
-
-  /**
-   * @see \Drupal\ctools\Plugin\ConditionVariantInterface::getSelectionLogic()
-   */
-  abstract public function getSelectionLogic();
-
-  /**
-   * Returns the configuration for stored selection conditions.
-   *
-   * @return array
-   *   An array of condition configuration, keyed by the unique condition ID.
-   */
-  abstract protected function getSelectionConfiguration();
-
-  /**
-   * Returns the UUID generator.
-   *
-   * @return \Drupal\Component\Uuid\UuidInterface
-   */
-  abstract protected function uuidGenerator();
-
-  /**
-   * Returns the context handler.
-   *
-   * @return \Drupal\Core\Plugin\Context\ContextHandlerInterface
-   */
-  abstract protected function contextHandler();
-
-}
diff --git a/src/Plugin/DisplayVariant/BlockDisplayVariant.php b/src/Plugin/DisplayVariant/BlockDisplayVariant.php
index 5a246ac..0915cfe 100644
--- a/src/Plugin/DisplayVariant/BlockDisplayVariant.php
+++ b/src/Plugin/DisplayVariant/BlockDisplayVariant.php
@@ -10,7 +10,6 @@
 use Drupal\Component\Uuid\UuidInterface;
 use Drupal\Core\Block\BlockManager;
 use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
-use Drupal\Core\Cache\RefinableCacheableDependencyTrait;
 use Drupal\Core\Condition\ConditionManager;
 use Drupal\Core\Display\VariantBase;
 use Drupal\Core\Display\ContextAwareVariantInterface;
@@ -22,18 +21,15 @@
 use Drupal\ctools\Form\AjaxFormTrait;
 use Drupal\ctools\Plugin\BlockVariantInterface;
 use Drupal\ctools\Plugin\BlockVariantTrait;
-use Drupal\ctools\Plugin\ConditionVariantInterface;
-use Drupal\ctools\Plugin\ConditionVariantTrait;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * Provides a base class for a display variant that simply contains blocks.
  */
-abstract class BlockDisplayVariant extends VariantBase implements ContextAwareVariantInterface, ConditionVariantInterface, ContainerFactoryPluginInterface, BlockVariantInterface, RefinableCacheableDependencyInterface {
+abstract class BlockDisplayVariant extends VariantBase implements ContextAwareVariantInterface, ContainerFactoryPluginInterface, BlockVariantInterface, RefinableCacheableDependencyInterface {
 
   use AjaxFormTrait;
   use BlockVariantTrait;
-  use ConditionVariantTrait;
 
   /**
    * The context handler.
@@ -127,19 +123,9 @@ public static function create(ContainerInterface $container, array $configuratio
   /**
    * {@inheritdoc}
    */
-  public function access(AccountInterface $account = NULL) {
-    // Delegate to the conditions.
-    return $this->determineSelectionAccess($this->getContexts());
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function defaultConfiguration() {
     return parent::defaultConfiguration() + [
-      'blocks' => [],
-      'selection_conditions' => [],
-      'selection_logic' => 'and',
+      'blocks' => []
     ];
   }
 
@@ -150,9 +136,6 @@ public function calculateDependencies() {
     foreach ($this->getBlockCollection() as $instance) {
       $this->calculatePluginDependencies($instance);
     }
-    foreach ($this->getSelectionConditions() as $instance) {
-      $this->calculatePluginDependencies($instance);
-    }
     return $this->dependencies;
   }
 
@@ -161,7 +144,6 @@ public function calculateDependencies() {
    */
   public function getConfiguration() {
     return [
-      'selection_conditions' => $this->getSelectionConditions()->getConfiguration(),
       'blocks' => $this->getBlockCollection()->getConfiguration(),
     ] + parent::getConfiguration();
   }
@@ -171,19 +153,11 @@ public function getConfiguration() {
    */
   public function setConfiguration(array $configuration) {
     parent::setConfiguration($configuration);
-    $this->getSelectionConditions()->setConfiguration($this->configuration['selection_conditions']);
     $this->getBlockCollection()->setConfiguration($this->configuration['blocks']);
     return $this;
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public function getSelectionLogic() {
-    return $this->configuration['selection_logic'];
-  }
-
-  /**
    * Gets the contexts.
    *
    * @return \Drupal\Component\Plugin\Context\ContextInterface[]
@@ -216,13 +190,6 @@ protected function contextHandler() {
   /**
    * {@inheritdoc}
    */
-  protected function getSelectionConfiguration() {
-    return $this->configuration['selection_conditions'];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getBlockConfig() {
     return $this->configuration['blocks'];
   }
diff --git a/tests/src/Unit/BlockDisplayVariantTest.php b/tests/src/Unit/BlockDisplayVariantTest.php
index 50d4552..79eeb04 100644
--- a/tests/src/Unit/BlockDisplayVariantTest.php
+++ b/tests/src/Unit/BlockDisplayVariantTest.php
@@ -27,31 +27,6 @@
 class BlockDisplayVariantTest extends UnitTestCase {
 
   /**
-   * Tests the access() method.
-   *
-   * @covers ::access
-   */
-  public function testAccess() {
-    $display_variant = $this->getMockBuilder(TestBlockDisplayVariant::class)
-      ->disableOriginalConstructor()
-      ->setMethods(['determineSelectionAccess'])
-      ->getMock();
-    $display_variant->expects($this->once())
-      ->method('determineSelectionAccess')
-      ->willReturn(FALSE);
-    $this->assertSame(FALSE, $display_variant->access());
-
-    $display_variant = $this->getMockBuilder(TestBlockDisplayVariant::class)
-      ->disableOriginalConstructor()
-      ->setMethods(['determineSelectionAccess'])
-      ->getMock();
-    $display_variant->expects($this->once())
-      ->method('determineSelectionAccess')
-      ->willReturn(TRUE);
-    $this->assertSame(TRUE, $display_variant->access());
-  }
-
-  /**
    * Tests the submitConfigurationForm() method.
    *
    * @covers ::submitConfigurationForm
