diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx
index 694234d0d..d3c05cbcc 100644
--- a/src/components/Navbar.tsx
+++ b/src/components/Navbar.tsx
@@ -1,4 +1,4 @@
-import React from 'react'
+import React, { useState, useEffect } from 'react'
import Search from './Search'
import '../styles/SearchBarDesktopView.scss'
import { pageNames } from '../util/pageNames'
@@ -12,6 +12,30 @@ const Navbar = ({
mapOrHomeTitle,
shufflePeopleOnClick,
}: any) => {
+ const [isDarkMode, setIsDarkMode] = useState(false)
+
+ // Check if dark mode is already set in localStorage
+ useEffect(() => {
+ const savedTheme = localStorage.getItem('theme')
+ if (savedTheme === 'dark') {
+ setIsDarkMode(true)
+ document.body.classList.add('dark-mode')
+ }
+ }, [])
+
+ // Toggle dark mode
+ const handleDarkModeToggle = () => {
+ const newMode = !isDarkMode
+ setIsDarkMode(newMode)
+ if (newMode) {
+ document.body.classList.add('dark-mode')
+ localStorage.setItem('theme', 'dark')
+ } else {
+ document.body.classList.remove('dark-mode')
+ localStorage.setItem('theme', 'light')
+ }
+ }
+
return (
)}
+ {/* Dark mode toggle button */}
+
)
diff --git a/src/styles/SearchBarDesktopView.scss b/src/styles/SearchBarDesktopView.scss
index 54718d104..59ff99370 100644
--- a/src/styles/SearchBarDesktopView.scss
+++ b/src/styles/SearchBarDesktopView.scss
@@ -9,3 +9,41 @@
display: none;
}
}
+/* Light mode (default) */
+body {
+ background-color: #f5f5f5;
+ color: #212121;
+}
+
+.header-items {
+ background-color: #212121;
+ color: #ffffff;
+}
+
+/* Dark mode */
+body.dark-mode {
+ background-color: #212121;
+ color: #212121;
+}
+
+.header-items.dark-mode {
+ background-color: #333333;
+ color: #fff;
+}
+
+button {
+ background-color: var(--primary-color);
+ color: white;
+ border: none;
+ cursor: pointer;
+ padding: 0.5rem 1rem;
+ border-radius: 4px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-size: 24px;
+}
+
+/* Dark mode button styles */
+body.dark-mode button {
+ background-color: var(--secondary-color);
+ color: white;
+}
diff --git a/src/styles/SearchBarMobileView.scss b/src/styles/SearchBarMobileView.scss
index f72fc5310..b4154a32c 100644
--- a/src/styles/SearchBarMobileView.scss
+++ b/src/styles/SearchBarMobileView.scss
@@ -14,3 +14,41 @@
top: 80%;
}
}
+/* Light mode (default) */
+body {
+ background-color: #f5f5f5;
+ color: #212121;
+}
+
+.header-items {
+ background-color: #212121;
+ color: #ffffff;
+}
+
+/* Dark mode */
+body.dark-mode {
+ background-color: #212121;
+ color: #212121;
+}
+
+.header-items.dark-mode {
+ background-color: #333333;
+ color: #fff;
+}
+
+button {
+ background-color: var(--primary-color);
+ color: red;
+ border: none;
+ cursor: pointer;
+ padding: 0.5rem 1rem;
+ border-radius: 4px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-size: 24px;
+}
+
+/* Dark mode button styles */
+body.dark-mode button {
+ background-color: var(--secondary-color);
+ color: blue;
+}