diff --git a/src/App.vue b/src/App.vue
index 2f0b073..ef2db36 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -2,7 +2,7 @@
+
@@ -22,23 +23,47 @@
import Navbar from "@/components/Navbar/index.vue"
import Footer from "@/components/Footer.vue"
import ArchiveBanner from "./components/ArchiveBanner.vue"
+import BackToTop from "@/components/BackToTop.vue"
export default {
name: "App",
components: {
Navbar,
Footer,
- ArchiveBanner
+ ArchiveBanner,
+ BackToTop
},
data() {
return {
showBanner: true,
+ darkMode: localStorage.getItem('darkMode') === 'true',
footer: [
{ text: "Home", url: "/" },
{ text: "Promises", url: "/promises" },
{ text: "Politicians", url: "/politicians" },
],
}
+ },
+ watch: {
+ darkMode(val) {
+ localStorage.setItem('darkMode', val)
+ this.applyTheme()
+ }
+ },
+ mounted() {
+ this.applyTheme()
+ },
+ methods: {
+ toggleDarkMode() {
+ this.darkMode = !this.darkMode
+ },
+ applyTheme() {
+ if (this.darkMode) {
+ document.body.classList.add('dark')
+ } else {
+ document.body.classList.remove('dark')
+ }
+ }
}
};
@@ -60,4 +85,15 @@ export default {
.title {
font-size: 36px;
}
+
+body.dark {
+ background-color: #121212;
+ color: #e0e0e0;
+}
+
+body.dark #navbar,
+body.dark #footer {
+ background-color: #1e1e1e;
+ color: #e0e0e0;
+}
diff --git a/src/components/BackToTop.vue b/src/components/BackToTop.vue
new file mode 100644
index 0000000..76cbe2b
--- /dev/null
+++ b/src/components/BackToTop.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Footer.vue b/src/components/Footer.vue
index 8c62a34..574d56c 100644
--- a/src/components/Footer.vue
+++ b/src/components/Footer.vue
@@ -63,6 +63,9 @@ export default {
padding: 10px 5px 20px;
color: white
}
+body.dark #footer {
+ background-color: #1e1e1e;
+}
.footer-link {
color: white;
text-decoration: none;
diff --git a/src/components/Navbar/Desktop.vue b/src/components/Navbar/Desktop.vue
index 5d616be..b1b05a4 100644
--- a/src/components/Navbar/Desktop.vue
+++ b/src/components/Navbar/Desktop.vue
@@ -52,6 +52,14 @@
Submit A Promise
+
+
+
@@ -59,7 +67,7 @@