diff --git a/src/App.vue b/src/App.vue
index f989ef8..85dfebe 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -8,8 +8,9 @@
\ No newline at end of file
diff --git a/src/components/Navbar/Navbar.vue b/src/components/Navbar/Navbar.vue
index d219698..72ae9b4 100644
--- a/src/components/Navbar/Navbar.vue
+++ b/src/components/Navbar/Navbar.vue
@@ -3,18 +3,26 @@
-
-
-
-
+
+
+
+
+
+
+
+
@@ -23,5 +31,6 @@
diff --git a/src/components/ThemeSwitch/ThemeSwitch.vue b/src/components/ThemeSwitch/ThemeSwitch.vue
new file mode 100644
index 0000000..21792fe
--- /dev/null
+++ b/src/components/ThemeSwitch/ThemeSwitch.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
diff --git a/src/utilities/theme_handler.ts b/src/utilities/theme_handler.ts
new file mode 100644
index 0000000..922c9e2
--- /dev/null
+++ b/src/utilities/theme_handler.ts
@@ -0,0 +1,22 @@
+export function getTheme():string {
+ return localStorage.getItem("theme") ?? "dark";
+}
+
+export function setTheme(theme:string):void {
+ if (theme !== "dark" && theme !== "light") { theme = "dark"; }
+ localStorage.setItem("theme", theme);
+}
+
+export function flipTheme():void {
+ setTheme(getTheme() === "dark" ? "light" : "dark");
+}
+
+export function applyTheme(theme?:string):void {
+ if (!theme) { theme = getTheme(); }
+
+ switch (theme) {
+ case "dark": document.documentElement.classList.add("dark"); break;
+ case "light": document.documentElement.classList.remove("dark"); break;
+ default: document.documentElement.classList.add("dark"); break;
+ }
+}
\ No newline at end of file