diff --git a/src/app/ThemeProvider.tsx b/src/app/ThemeProvider.tsx
new file mode 100644
index 0000000..7c1420b
--- /dev/null
+++ b/src/app/ThemeProvider.tsx
@@ -0,0 +1,33 @@
+"use client";
+
+import { useState, useEffect, createContext, useContext } from "react";
+
+const ThemeContext = createContext<{
+ theme: "light" | "dark";
+ toggle: () => void;
+}>({ theme: "light", toggle: () => {} });
+
+export function ThemeProvider({ children }: { children: React.ReactNode }) {
+ const [theme, setTheme] = useState<"light" | "dark">("light");
+
+ useEffect(() => {
+ const saved = localStorage.getItem("tia_theme") as "light" | "dark";
+ if (saved) setTheme(saved);
+ }, []);
+
+ const toggle = () => {
+ const next = theme === "light" ? "dark" : "light";
+ setTheme(next);
+ localStorage.setItem("tia_theme", next);
+ };
+
+ return (
+
+ {children}
+
+ );
+}
+
+export function useTheme() {
+ return useContext(ThemeContext);
+}
\ No newline at end of file
diff --git a/src/app/globals.css b/src/app/globals.css
index a2dc41e..c04ece7 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -1,10 +1,17 @@
@import "tailwindcss";
+@custom-variant dark (&:where(.dark, .dark *));
+
:root {
- --background: #ffffff;
+ --background: #fdf2f2;
--foreground: #171717;
}
+.dark {
+ --background: #111827;
+ --foreground: #f9fafb;
+}
+
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
@@ -12,13 +19,6 @@
--font-mono: var(--font-geist-mono);
}
-@media (prefers-color-scheme: dark) {
- :root {
- --background: #0a0a0a;
- --foreground: #ededed;
- }
-}
-
body {
background: var(--background);
color: var(--foreground);
diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx
new file mode 100644
index 0000000..b591fa4
--- /dev/null
+++ b/src/app/settings/page.tsx
@@ -0,0 +1,83 @@
+"use client";
+
+import { useState, useEffect } from "react";
+import Link from "next/link";
+import { useRouter } from "next/navigation";
+
+export default function SettingsPage() {
+ const router = useRouter();
+ const [darkMode, setDarkMode] = useState(false);
+
+ useEffect(() => {
+ const saved = localStorage.getItem("tia_theme");
+ setDarkMode(saved === "dark");
+ if (saved === "dark") {
+ document.documentElement.classList.add("dark");
+ }
+ }, []);
+
+ const toggleDarkMode = () => {
+ const next = !darkMode;
+ setDarkMode(next);
+ localStorage.setItem("tia_theme", next ? "dark" : "light");
+ if (next) {
+ document.documentElement.classList.add("dark");
+ } else {
+ document.documentElement.classList.remove("dark");
+ }
+ };
+
+ return (
+
+
+
+
Settings
+
+
+
+ {/* Dark Mode Toggle */}
+
+
+
Dark Mode
+
Switch to dark theme
+
+
+
+
+ {/* Other Settings */}
+
+
Profile
+
→
+
+
+
+
Notifications
+
→
+
+
+
+
Family Members
+
→
+
+
+
+
App Version
+
Tia v1.0.0
+
+
+
+ );
+}
\ No newline at end of file