diff --git a/config/schema/video_embed_field.schema.yml b/config/schema/video_embed_field.schema.yml
index 8229b1e..d34f5bc 100644
--- a/config/schema/video_embed_field.schema.yml
+++ b/config/schema/video_embed_field.schema.yml
@@ -5,6 +5,9 @@ field.formatter.settings.video_embed_field_thumbnail:
     image_style:
       type: string
       label: 'Image Style'
+    responsive_image_style:
+      type: string
+      label: 'Responsive image Style'
     link_image_to:
       type: string
       label: 'Link image to'
diff --git a/src/Plugin/Field/FieldFormatter/Thumbnail.php b/src/Plugin/Field/FieldFormatter/Thumbnail.php
index 543db3f..be97178 100644
--- a/src/Plugin/Field/FieldFormatter/Thumbnail.php
+++ b/src/Plugin/Field/FieldFormatter/Thumbnail.php
@@ -41,6 +41,13 @@ class Thumbnail extends FormatterBase implements ContainerFactoryPluginInterface
   protected $imageStyleStorage;

   /**
+   * The responsive image style entity storage.
+   *
+   * @var \Drupal\Core\Entity\EntityStorageInterface
+   */
+  protected $responsiveImageStyleStorage;
+
+  /**
    * Class constant for linking to content.
    */
   const LINK_CONTENT = 'content';
@@ -70,10 +77,11 @@ class Thumbnail extends FormatterBase implements ContainerFactoryPluginInterface
    * @param \Drupal\video_embed_field\ProviderManagerInterface $provider_manager
    *   The video embed provider manager.
    */
-  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, $settings, $label, $view_mode, $third_party_settings, ProviderManagerInterface $provider_manager, EntityStorageInterface $image_style_storage) {
+  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, $settings, $label, $view_mode, $third_party_settings, ProviderManagerInterface $provider_manager, EntityStorageInterface $image_style_storage, EntityStorageInterface $responsive_image_style_storage) {
     parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $view_mode, $third_party_settings);
     $this->providerManager = $provider_manager;
     $this->imageStyleStorage = $image_style_storage;
+    $this->responsiveImageStyleStorage = $responsive_image_style_storage;
   }

   /**
@@ -89,7 +97,8 @@ class Thumbnail extends FormatterBase implements ContainerFactoryPluginInterface
       $configuration['view_mode'],
       $configuration['third_party_settings'],
       $container->get('video_embed_field.provider_manager'),
-      $container->get('entity_type.manager')->getStorage('image_style')
+      $container->get('entity_type.manager')->getStorage('image_style'),
+      $container->get('entity_type.manager')->getStorage('responsive_image_style')
     );
   }

@@ -113,7 +122,12 @@ class Thumbnail extends FormatterBase implements ContainerFactoryPluginInterface
           $url = Url::fromUri($item->value);
         }
         $provider->downloadThumbnail();
-        $element[$delta] = $provider->renderThumbnail($this->getSetting('image_style'), $url);
+        if ($this->getSetting('image_type') === 'responsive') {
+          $element[$delta] = $provider->renderThumbnail($this->getSetting('responsive_image_style'), $url, TRUE);
+        }
+        else {
+          $element[$delta] = $provider->renderThumbnail($this->getSetting('image_style'), $url, FALSE);
+        }
       }

     }
@@ -125,7 +139,9 @@ class Thumbnail extends FormatterBase implements ContainerFactoryPluginInterface
    */
   public static function defaultSettings() {
     return [
+      'image_type' => 'thumbnail',
       'image_style' => '',
+      'responsive_image_style' => '',
       'link_image_to' => '',
     ];
   }
@@ -135,12 +151,52 @@ class Thumbnail extends FormatterBase implements ContainerFactoryPluginInterface
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element = parent::settingsForm($form, $form_state);
+    $element['image_type'] = [
+      '#title' => $this->t('Image Type'),
+      '#type' => 'select',
+      '#default_value' => $this->getSetting('image_type'),
+      '#options' => [
+        'thumbnail' => $this->t('Thumbnail image style'),
+        'responsive' => $this->t('Responsive image style'),
+      ],
+    ];
     $element['image_style'] = [
       '#title' => $this->t('Image Style'),
       '#type' => 'select',
       '#default_value' => $this->getSetting('image_style'),
       '#required' => FALSE,
       '#options' => image_style_options(),
+      '#states' => [
+        'visible' => [
+          'select[name="fields[' . $this->fieldDefinition->getName() . '][settings_edit_form][settings][image_type]"]' => [
+            'value' => 'thumbnail',
+          ],
+        ],
+      ],
+    ];
+
+    $responsive_image_options = [];
+    $responsive_image_styles = $this->responsiveImageStyleStorage->loadMultiple();
+    if ($responsive_image_styles && !empty($responsive_image_styles)) {
+      foreach ($responsive_image_styles as $machine_name => $responsive_image_style) {
+        if ($responsive_image_style->hasImageStyleMappings()) {
+          $responsive_image_options[$machine_name] = $responsive_image_style->label();
+        }
+      }
+    }
+    $element['responsive_image_style'] = [
+      '#title' => $this->t('Responsive Image Style'),
+      '#type' => 'select',
+      '#default_value' => $this->getSetting('responsive_image_style'),
+      '#required' => FALSE,
+      '#options' => $responsive_image_options,
+      '#states' => [
+        'visible' => [
+          'select[name="fields[' . $this->fieldDefinition->getName() . '][settings_edit_form][settings][image_type]"]' => [
+            'value' => 'responsive',
+          ],
+        ],
+      ],
     ];
     $element['link_image_to'] = [
       '#title' => $this->t('Link image to'),
@@ -163,8 +219,15 @@ class Thumbnail extends FormatterBase implements ContainerFactoryPluginInterface
     if (!empty($this->getSetting('link_image_to'))) {
       $linked = $this->getSetting('link_image_to') == static::LINK_CONTENT ? $this->t(', linked to content') : $this->t(', linked to provider');
     }
+    $image_type = $this->getSetting('image_type');
+    if ($image_type == 'responsive') {
+      $style = $this->getSetting('image_style') ? $this->t('Thumbnail:') . ' ' . $this->getSetting('image_style') : $this->t('no image style');
+    }
+    else {
+      $style = $this->getSetting('responsive_image_style') ? $this->t('Responsive image:') . ' ' . $this->getSetting('responsive_image_style') : $this->t('no responsive image style');
+    }
     $summary[] = $this->t('Video thumbnail (@style@linked).', [
-      '@style' => $this->getSetting('image_style') ? $this->getSetting('image_style') : $this->t('no image style'),
+      '@style' => $style,
       '@linked' => $linked,
     ]);
     return $summary;
diff --git a/src/ProviderPluginBase.php b/src/ProviderPluginBase.php
index aeb82a5..e23fa35 100644
--- a/src/ProviderPluginBase.php
+++ b/src/ProviderPluginBase.php
@@ -95,15 +95,21 @@ abstract class ProviderPluginBase extends PluginBase implements ProviderPluginIn
   /**
    * {@inheritdoc}
    */
-  public function renderThumbnail($image_style, $link_url) {
+  public function renderThumbnail($image_style, $link_url, $responsive = FALSE) {
     $output = [
       '#theme' => 'image',
       '#uri' => $this->getLocalThumbnailUri(),
     ];

     if (!empty($image_style)) {
-      $output['#theme'] = 'image_style';
-      $output['#style_name'] = $image_style;
+      if ($responsive) {
+        $output['#theme'] = 'responsive_image';
+        $output['#responsive_image_style_id'] = $image_style;
+      }
+      else {
+        $output['#theme'] = 'image_style';
+        $output['#style_name'] = $image_style;
+      }
     }

     if ($link_url) {
diff --git a/src/ProviderPluginInterface.php b/src/ProviderPluginInterface.php
index 863feeb..8f72926 100644
--- a/src/ProviderPluginInterface.php
+++ b/src/ProviderPluginInterface.php
@@ -26,11 +26,13 @@ interface ProviderPluginInterface extends PluginInspectionInterface {
    *   The quality of the thumbnail to render.
    * @param string $link_url
    *   Where the thumbnail should be linked to.
+   * @param bool $responsive
+   *   Whether we are using a responsive image style.
    *
    * @return array
    *   A renderable array of a thumbnail.
    */
-  public function renderThumbnail($image_style, $link_url);
+  public function renderThumbnail($image_style, $link_url, $responsive);

   /**
    * Get the URL of the remote thumbnail.
