diff --git a/components/addComponents.js b/components/addComponents.js
new file mode 100644
index 0000000..8699376
--- /dev/null
+++ b/components/addComponents.js
@@ -0,0 +1,3 @@
+import {NavBar} from "./navBar";
+
+document.querySelector("body").append(new NavBar());
diff --git a/components/navBar.js b/components/navBar.js
new file mode 100644
index 0000000..cfd5973
--- /dev/null
+++ b/components/navBar.js
@@ -0,0 +1,41 @@
+/**
+ * Class used to create a navbar to navigate between demo pages
+ * @extends HTMLElement
+ */
+export class NavBar extends HTMLElement {
+ constructor() {
+ super();
+
+ const pathname = window.location.pathname.split("/");
+ const page = pathname[pathname.length - 1];
+
+ this.innerHTML = ``;
+
+ const demoPages = {
+ "../index.html": "Home",
+ "wms-image-custom-proj.html": "Single Image WMS",
+ "reprojection-image.html": "Image reprojection",
+ "reprojection.html": "Raster reprojection",
+ "sphere-mollweide.html": "Sphere Mollweide",
+ "vector-projections.html": "Vector projections",
+ "bundeslander-3044.html": "Bundeslander EPSG:3044"
+ };
+
+ let i = 0;
+
+ for (const [key, value] of Object.entries(demoPages)) {
+
+ let tag = `${value}${i === Object.keys(demoPages).length - 1 ? `` : `
`}`;
+ this.innerHTML += tag;
+
+ i++;
+ }
+ }
+}
+
+customElements.define("nav-bar", NavBar);
diff --git a/demo-pages/bundeslander-3044.html b/demo-pages/bundeslander-3044.html
index 38725ac..8f35af8 100644
--- a/demo-pages/bundeslander-3044.html
+++ b/demo-pages/bundeslander-3044.html
@@ -57,6 +57,7 @@