diff --git a/src/app/api/og/dashboard/route.tsx b/src/app/api/og/dashboard/route.tsx
index 829850a..6145377 100644
--- a/src/app/api/og/dashboard/route.tsx
+++ b/src/app/api/og/dashboard/route.tsx
@@ -25,8 +25,27 @@ export async function GET(req: NextRequest) {
timeZone: 'Asia/Kolkata',
}).format(new Date());
+ // Read theme
+ const theme = searchParams.get('theme') || 'dark';
+ const isDark = theme === 'dark';
+
+ // Theme Variables
+ const bgColor = isDark
+ ? 'linear-gradient(145deg, #050505 0%, #111111 50%, #0a0a0a 100%)'
+ : 'linear-gradient(145deg, #f8fafc 0%, #ffffff 50%, #f1f5f9 100%)';
+ const textColor = isDark ? '#ffffff' : '#0f172a';
+ const gridColor = isDark ? 'rgba(255,255,255,0.05)' : 'rgba(0,0,0,0.05)';
+ const cardBg = isDark
+ ? 'linear-gradient(145deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.01) 100%)'
+ : 'linear-gradient(145deg, #ffffff 0%, #f8fafc 100%)';
+ const cardBorder = isDark ? '1px solid rgba(255,255,255,0.1)' : '1px solid rgba(0,0,0,0.05)';
+ const textSec = isDark ? 'rgba(255,255,255,0.5)' : 'rgba(15,23,42,0.5)';
+ const textTert = isDark ? 'rgba(255,255,255,0.7)' : 'rgba(15,23,42,0.7)';
+ const dividerColor = isDark ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.1)';
+ const logoName = isDark ? 'Rectangular_dark_background.png' : 'Rectangular_light_background.png';
+
// Load logo from disk and convert to base64
- const logoPath = join(process.cwd(), 'public', 'PragatiVeer_Logo', 'PNG_Logos', 'Rectangular_dark_background.png');
+ const logoPath = join(process.cwd(), 'public', 'PragatiVeer_Logo', 'PNG_Logos', logoName);
let logoUrl = '';
try {
const logoData = readFileSync(logoPath);
@@ -45,8 +64,8 @@ export async function GET(req: NextRequest) {
flexDirection: 'column',
justifyContent: 'space-between',
alignItems: 'center',
- background: 'linear-gradient(145deg, #050505 0%, #111111 50%, #0a0a0a 100%)',
- color: '#ffffff',
+ background: bgColor,
+ color: textColor,
fontFamily: '"Inter", sans-serif',
padding: '70px 0',
}}
@@ -59,7 +78,7 @@ export async function GET(req: NextRequest) {
left: 0,
right: 0,
bottom: 0,
- backgroundImage: 'radial-gradient(circle at 2px 2px, rgba(255,255,255,0.05) 1px, transparent 0)',
+ backgroundImage: `radial-gradient(circle at 2px 2px, ${gridColor} 1px, transparent 0)`,
backgroundSize: '40px 40px',
zIndex: 0,
}}
@@ -81,23 +100,23 @@ export async function GET(req: NextRequest) {
{/* Main Content - 2x2 Grid */}
-
-
Today's Score
+
+ Today's Score
{score}
-
-
Accuracy
+
+ Accuracy
{accuracy}
-
-
Qs Attempted
+
+ Qs Attempted
{qs}
-
-
City Rank
+
+ City Rank
{rank}
@@ -106,7 +125,7 @@ export async function GET(req: NextRequest) {
{/* Footer */}
{/* Divider */}
-
+
@@ -116,20 +135,20 @@ export async function GET(req: NextRequest) {
-
{name}
-
Generated: {exportDate}
+
{name}
+
Generated: {exportDate}
{`${target} Aspirant`}
-
•
-
{`${plan} Plan`}
+
•
+
{`${plan} Plan`}
-
pragativeer.com
-
contact@pragativeer.com
-
+91 9079337961
+
pragativeer.com
+
contact@pragativeer.com
+
+91 9079337961
diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx
index a049510..563b682 100644
--- a/src/app/dashboard/page.tsx
+++ b/src/app/dashboard/page.tsx
@@ -4,7 +4,7 @@ import { useRef, useState, useEffect } from "react"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
import { Button } from "@/components/ui/button"
-import { BrainCircuit, Play, ChevronRight, Activity, Target, CheckCircle2, AlertTriangle, TrendingUp, Calendar, Zap, LayoutDashboard, Share2, Trophy, Lock, ArrowRight, Clock, Facebook, Download, MessageCircle } from "lucide-react"
+import { BrainCircuit, Play, ChevronRight, Activity, Target, CheckCircle2, AlertTriangle, TrendingUp, Calendar, Zap, LayoutDashboard, Share2, Trophy, Lock, ArrowRight, Clock, Download } from "lucide-react"
import { MistakeHeatmap } from "@/components/AI/MistakeHeatmap"
import { AdaptiveStudyPlan } from "@/components/AI/AdaptiveStudyPlan"
import { useActiveUser } from "@/hooks/useActiveUser"
@@ -55,7 +55,10 @@ export default function DashboardPage() {
timeZone: 'Asia/Kolkata',
}).format(new Date());
- return `/api/og/dashboard?score=${encodeURIComponent(score)}&accuracy=${encodeURIComponent(accuracy)}&qs=${encodeURIComponent(qs)}&rank=${encodeURIComponent(rank)}&name=${encodeURIComponent(name)}&target=${target}&plan=${encodeURIComponent(plan)}&date=${encodeURIComponent(date)}`
+ const isDark = typeof document !== 'undefined' && document.documentElement.classList.contains('dark');
+ const themeParam = isDark ? 'dark' : 'light';
+
+ return `/api/og/dashboard?score=${encodeURIComponent(score)}&accuracy=${encodeURIComponent(accuracy)}&qs=${encodeURIComponent(qs)}&rank=${encodeURIComponent(rank)}&name=${encodeURIComponent(name)}&target=${target}&plan=${encodeURIComponent(plan)}&date=${encodeURIComponent(date)}&theme=${themeParam}`
}
const handleDownload = async () => {
@@ -131,11 +134,11 @@ export default function DashboardPage() {
{shareMenuOpen && (