diff --git a/css/dropzone.widget.css b/css/dropzone.widget.css
new file mode 100644
index 0000000..01604de
--- /dev/null
+++ b/css/dropzone.widget.css
@@ -0,0 +1,24 @@
+/**
+ * @file file_browser.dropzone.css
+ */
+
+.dropzone .dz-preview .dropzonejs-remove-icon {
+  width: 24px;
+  height: 24px;
+  cursor: pointer;
+  position: absolute;
+  top: -8px;
+  right: -8px;
+  z-index: 500;
+  background-image: url("../icons/remove.svg");
+  background-size: cover;
+}
+
+.dropzone .dz-preview .dropzonejs-remove-icon:hover {
+  background-image: url("../icons/remove-hover.svg");
+  background-size: cover;
+}
+
+.dropzone .dz-preview.dz-file-preview .dz-image, .dropzone .dz-preview .dz-image {
+  border-radius: 0;
+}
\ No newline at end of file
diff --git a/dropzonejs.libraries.yml b/dropzonejs.libraries.yml
index b585f29..8090a14 100644
--- a/dropzonejs.libraries.yml
+++ b/dropzonejs.libraries.yml
@@ -11,6 +11,11 @@ dropzonejs:
   css:
     component:
       /libraries/dropzone/dist/min/dropzone.min.css: {}
+widget:
+  version: VERSION
+  css:
+    theme:
+      css/dropzone.widget.css: {}
 integration:
   version: VERSION
   js:
diff --git a/icons/remove-hover.svg b/icons/remove-hover.svg
new file mode 100644
index 0000000..c440309
--- /dev/null
+++ b/icons/remove-hover.svg
@@ -0,0 +1,17 @@
+<svg width="105" height="105" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <circle opacity="0.3" filter="url(#svg_3_blur)" r="51.5" cy="52.7" cx="52.49244" fill="#7f7f7f" id="svg_3"/>
+  <circle opacity="0.7" id="svg_1" r="50" cy="50.7" cx="52.49244" fill="#ca1000"/>
+  <rect transform="rotate(-45 52.49243927001951,50.70000457763671) " stroke="null" id="svg_5" height="15" width="63" y="43.2" x="20.99244" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="null" fill="#ffffff"/>
+  <rect transform="rotate(45 52.49243927001953,50.70000076293945) " id="svg_7" stroke="null" height="15" width="63" y="43.2" x="20.99244" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="null" fill="#ffffff"/>
+ </g>
+ <defs>
+  <filter id="svg_3_blur" x="-50%" y="-50%" width="200%" height="200%">
+   <feGaussianBlur stdDeviation="1.8"/>
+  </filter>
+ </defs>
+ <filter id="drop-shadow">
+  <feGaussianBlur stdDeviation="2.2"/>
+ </filter>
+</svg>
\ No newline at end of file
diff --git a/icons/remove.svg b/icons/remove.svg
new file mode 100644
index 0000000..ede9dde
--- /dev/null
+++ b/icons/remove.svg
@@ -0,0 +1,17 @@
+<svg width="105" height="105" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <circle opacity="0.3" filter="url(#svg_3_blur)" r="51.5" cy="52.7" cx="52.49244" fill="#7f7f7f" id="svg_3"/>
+  <circle opacity="0.7" id="svg_1" r="50" cy="50.7" cx="52.49244" fill="#ffffff"/>
+  <rect transform="rotate(-45 52.49243927001951,50.70000457763671) " stroke="null" id="svg_5" height="15" width="63" y="43.2" x="20.99244" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="null" fill="#3f3f3f"/>
+  <rect transform="rotate(45 52.49243927001953,50.70000076293945) " id="svg_7" stroke="null" height="15" width="63" y="43.2" x="20.99244" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="null" fill="#3f3f3f"/>
+ </g>
+ <defs>
+  <filter id="svg_3_blur" x="-50%" y="-50%" width="200%" height="200%">
+   <feGaussianBlur stdDeviation="1.8"/>
+  </filter>
+ </defs>
+ <filter id="drop-shadow">
+  <feGaussianBlur stdDeviation="2.2"/>
+ </filter>
+</svg>
\ No newline at end of file
diff --git a/js/dropzone.integration.js b/js/dropzone.integration.js
index b0b718e..a2e6100 100644
--- a/js/dropzone.integration.js
+++ b/js/dropzone.integration.js
@@ -21,7 +21,7 @@
       // Initiate dropzonejs.
       var config = {
         url: input.attr('data-upload-path'),
-        addRemoveLinks: true
+        addRemoveLinks: false
       };
       var instanceConfig = drupalSettings.dropzonejs.instances[selector.attr('id')];
       if (instanceConfig.instance !== undefined) {
@@ -32,6 +32,14 @@
       // Other modules might need instances.
       drupalSettings["dropzonejs"]["instances"][selector.attr("id")]["instance"] = dropzoneInstance;
 
+      dropzoneInstance.on("addedfile", function (file) {
+        file._removeIcon = Dropzone.createElement("<div class='dropzonejs-remove-icon' title='Remove'></div>");
+        file.previewElement.appendChild(file._removeIcon);
+        file._removeIcon.addEventListener("click", function () {
+          dropzoneInstance.removeFile(file);
+        });
+      });
+
       // React on add file. Add only accepted files.
       dropzoneInstance.on("success", function (file, response) {
         var uploadedFilesElement = selector.siblings(':hidden');
diff --git a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
index 5bc8136..3d0cdbe 100644
--- a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
+++ b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
@@ -127,6 +127,7 @@ class DropzoneJsEbWidget extends WidgetBase {
       '#extensions' => $config['settings']['extensions'],
     ];
 
+    $form['#attached']['library'][] = 'dropzonejs/widget';
     // Disable the submit button until the upload sucesfully completed.
     $form['#attached']['library'][] = 'dropzonejs_eb_widget/common';
     $original_form['#attributes']['class'][] = 'dropzonejs-disable-submit';
