diff --git a/js/dialog.js b/js/dialog.js
deleted file mode 100644
index 49e50a2a08e44d84f8f404a9e3a3dd6cd8631afe..0000000000000000000000000000000000000000
--- a/js/dialog.js
+++ /dev/null
@@ -1,37 +0,0 @@
-function createDialogImage(url) {
-    createDialogHTML(`<img src="${url}">`, "imageDialog");
-}
-
-function createDialogHTML(html, customClasses = "") {
-    let dialog = document.createElement("div");
-    dialog.classList.add("dialog");
-
-    dialog.innerHTML = `
-    <span class="close">&times;</span>
-    <div class="dialogContent ${customClasses}">
-        ${html}
-    </div>`;
-
-    document.body.appendChild(dialog);
-    fade(dialog, 0.04);
-
-    dialog.querySelector(".close").onclick = function (){
-        fade(dialog, -0.04, true);
-    }
-}
-
-function fade(element, value = 0.1, deleteAfterwards = false) {
-    let opacity = +(element.style.opacity) + value;
-
-    element.style.opacity = String(opacity);
-
-    if ((opacity < 1 && value > 0) || (opacity >= 0 && value < 0)) {
-        setTimeout(function () {
-            fade(element, value, deleteAfterwards);
-        }, 10);
-    } else if (deleteAfterwards) {
-        setTimeout(function () {
-            element.parentNode.removeChild(element);
-        }, 10);
-    }
-}
\ No newline at end of file
diff --git a/js/imgPreview.js b/js/imgPreview.js
index f9cb3502b3998dd4544ac6fe054830e2dd80c36e..a167585277884af658f81c741e593096d47fed66 100644
--- a/js/imgPreview.js
+++ b/js/imgPreview.js
@@ -1,7 +1,15 @@
+import * as basicLightbox from 'basiclightbox'
+
 let images = document.getElementsByTagName("img");
 for(let i = 0; i < images.length; i++){
     let element = images[i];
     if(!(element.getAttribute("data-noPreview") === "true")) {
-        element.onclick = () => createDialogImage(element.src);
+        element.onclick = () => {
+            console.log("render");
+            const instance = basicLightbox.create(`
+            <img src="${element.src}">
+            `);
+            instance.show(() => console.log('lightbox now visible'))
+        }
     }
 }
\ No newline at end of file
diff --git a/js/script.js b/js/script.js
index f1dcf14c2974ff1e801d8b1cd325262d7869dae8..7ca5a4a741eff17c6bebd532f527d00cd793bcd5 100644
--- a/js/script.js
+++ b/js/script.js
@@ -1,6 +1,5 @@
 require("./cookie");
 require("./burgerMenu");
-require("./dialog");
 require("./error");
 require("./imgPreview");
 require("./includeHTML");
diff --git a/package.json b/package.json
index f34f0615425d7135182c5080ea9238ac24cc4d78..b72a4803ca8724ab7593fcdc148a9ee74dccfef2 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
     "webpack-cli": "^4.5.0"
   },
   "dependencies": {
+    "basiclightbox": "^5.0.4",
     "plotly.js-dist": "^1.58.4",
     "sass": "^1.32.8",
     "webpack": "^5.28.0"
diff --git a/scss/style.scss b/scss/style.scss
index dc143e838036509278ba53588315676fd35986e4..3321faf465c3e6c9529aa85997b67a72762b2c61 100644
--- a/scss/style.scss
+++ b/scss/style.scss
@@ -14,4 +14,5 @@
 @import "mobile";
 @import "menuMobile";
 @import "mobileSmall";
-@import "dialog";
\ No newline at end of file
+@import "dialog";
+@import "../node_modules/basiclightbox/src/styles/main";
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index ac9e98a062d0d693d265b9b913fb0f7d0ead475e..3a3550b61411112f86e9f10395eeb259fbad0b01 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -796,6 +796,11 @@ base@^0.11.1:
     mixin-deep "^1.2.0"
     pascalcase "^0.1.1"
 
+basiclightbox@^5.0.4:
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/basiclightbox/-/basiclightbox-5.0.4.tgz#5367d6d468ae44406e51b8486cfb8751f36f1fb2"
+  integrity sha512-EsuNWmfcFXWZOe0txKXsllYOC7bDpoaVLc4HHHlYKB/roymlZs+FBdLUU6rx2yPpnJZhulwheKdPjqr2k0+NGQ==
+
 binary-extensions@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"