From b0dcbe8a13df85f9b1d88ccd3baf3db5cfe0f902 Mon Sep 17 00:00:00 2001 From: Jayam Srivastava Date: Fri, 4 Sep 2026 20:31:58 +0530 Subject: [PATCH 1/2] feat(ui): redesign light mode feature chooser --- src/app/components/FeatureChooser.tsx | 81 +++++++++++++++++++-------- 1 file changed, 57 insertions(+), 24 deletions(-) diff --git a/src/app/components/FeatureChooser.tsx b/src/app/components/FeatureChooser.tsx index 8811483..377d683 100644 --- a/src/app/components/FeatureChooser.tsx +++ b/src/app/components/FeatureChooser.tsx @@ -1,4 +1,4 @@ -import { FileText, Image, Video, Link as LinkIcon, History, ArrowRight, Users } from "lucide-react"; +import { FileText, Image, Video, Link as LinkIcon, History, ArrowRight, Users, Sparkles } from "lucide-react"; import { motion } from "motion/react"; import { useNavigate } from "react-router"; @@ -8,42 +8,48 @@ const features = [ description: "Analyze articles and statements for misinformation patterns.", path: "/dashboard/text-analysis", icon: FileText, - accent: "from-cyan-500 to-blue-600", + iconShell: "bg-sky-50 text-sky-600 ring-sky-100 dark:bg-sky-500/10 dark:text-sky-300 dark:ring-sky-500/20", + hover: "hover:border-sky-200 hover:shadow-sky-100/80 dark:hover:border-sky-500/30 dark:hover:shadow-sky-950/30", }, { title: "Image Detection", description: "Detect manipulated or synthetic image content.", path: "/dashboard/image-detection", icon: Image, - accent: "from-emerald-500 to-teal-600", + iconShell: "bg-emerald-50 text-emerald-600 ring-emerald-100 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-500/20", + hover: "hover:border-emerald-200 hover:shadow-emerald-100/80 dark:hover:border-emerald-500/30 dark:hover:shadow-emerald-950/30", }, { title: "Video Detection", description: "Run face-based deepfake checks on sampled video frames.", path: "/dashboard/video-detection", icon: Video, - accent: "from-orange-500 to-amber-600", + iconShell: "bg-amber-50 text-amber-600 ring-amber-100 dark:bg-amber-500/10 dark:text-amber-300 dark:ring-amber-500/20", + hover: "hover:border-amber-200 hover:shadow-amber-100/80 dark:hover:border-amber-500/30 dark:hover:shadow-amber-950/30", }, { title: "URL Checker", description: "Evaluate source credibility and suspicious URL signals.", path: "/dashboard/url-checker", icon: LinkIcon, - accent: "from-violet-500 to-fuchsia-600", + iconShell: "bg-violet-50 text-violet-600 ring-violet-100 dark:bg-violet-500/10 dark:text-violet-300 dark:ring-violet-500/20", + hover: "hover:border-violet-200 hover:shadow-violet-100/80 dark:hover:border-violet-500/30 dark:hover:shadow-violet-950/30", }, { title: "History", description: "Review previous analyses and confidence trends.", path: "/dashboard/history", icon: History, - accent: "from-rose-500 to-pink-600", + iconShell: "bg-rose-50 text-rose-600 ring-rose-100 dark:bg-rose-500/10 dark:text-rose-300 dark:ring-rose-500/20", + hover: "hover:border-rose-200 hover:shadow-rose-100/80 dark:hover:border-rose-500/30 dark:hover:shadow-rose-950/30", }, { title: "VeritasConnect", description: "Share suspicious content so the community can react and comment.", path: "/dashboard/veritas-connect", icon: Users, - accent: "from-sky-500 to-cyan-600", + iconShell: "bg-cyan-50 text-cyan-600 ring-cyan-100 dark:bg-cyan-500/10 dark:text-cyan-300 dark:ring-cyan-500/20", + hover: "hover:border-cyan-200 hover:shadow-cyan-100/80 dark:hover:border-cyan-500/30 dark:hover:shadow-cyan-950/30", }, ]; @@ -51,21 +57,33 @@ export default function FeatureChooser() { const navigate = useNavigate(); return ( -
+
+
+
+
+
+
+ -
-

Choose Analysis Type

-

- Select one module to start. You will be navigated directly to the selected analysis workspace. +

+
+ + VERIFICATION WORKSPACE +
+

+ Choose your analysis. +

+

+ Six focused tools for checking text, media, links, and the signals behind them.

-
+ -
+
{features.map((feature, index) => { const Icon = feature.icon; return ( @@ -73,22 +91,37 @@ export default function FeatureChooser() { key={feature.path} initial={{ opacity: 0, y: 18 }} animate={{ opacity: 1, y: 0 }} - transition={{ delay: index * 0.05, duration: 0.3 }} + transition={{ delay: index * 0.06, duration: 0.35, ease: "easeOut" }} onClick={() => navigate(feature.path)} - className="group rounded-2xl border border-gray-700/60 bg-gradient-to-br from-gray-900/70 to-gray-800/30 p-6 text-left shadow-xl transition-all hover:-translate-y-1 hover:border-cyan-500/40 hover:shadow-cyan-500/10" + className={`group relative min-h-52 overflow-hidden rounded-2xl border border-slate-200/80 bg-white/85 p-6 text-left shadow-[0_12px_40px_rgba(30,55,90,0.06)] backdrop-blur-xl transition-all duration-300 hover:-translate-y-1 hover:bg-white hover:shadow-[0_20px_50px_rgba(30,55,90,0.11)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-400/60 dark:border-slate-800/80 dark:bg-slate-900/70 dark:shadow-[0_18px_60px_rgba(0,0,0,0.22)] dark:hover:bg-slate-900/90 ${feature.hover}`} > -
-
- +
+ +
+
+
- + + + +
+ +
+

+ {feature.title} +

+

+ {feature.description} +

-

{feature.title}

-

{feature.description}

); })}
+ +

+ Select a workspace to begin a verification session. +

); From cb16796419c389f3e499389b5a33014b4f5fb83d Mon Sep 17 00:00:00 2001 From: Jayam Srivastava Date: Fri, 4 Sep 2026 20:33:25 +0530 Subject: [PATCH 2/2] style: polish light mode feature chooser --- src/app/components/FeatureChooser.tsx | 103 ++++++-------------------- 1 file changed, 24 insertions(+), 79 deletions(-) diff --git a/src/app/components/FeatureChooser.tsx b/src/app/components/FeatureChooser.tsx index 377d683..9d1ebb3 100644 --- a/src/app/components/FeatureChooser.tsx +++ b/src/app/components/FeatureChooser.tsx @@ -3,87 +3,37 @@ import { motion } from "motion/react"; import { useNavigate } from "react-router"; const features = [ - { - title: "Text Analysis", - description: "Analyze articles and statements for misinformation patterns.", - path: "/dashboard/text-analysis", - icon: FileText, - iconShell: "bg-sky-50 text-sky-600 ring-sky-100 dark:bg-sky-500/10 dark:text-sky-300 dark:ring-sky-500/20", - hover: "hover:border-sky-200 hover:shadow-sky-100/80 dark:hover:border-sky-500/30 dark:hover:shadow-sky-950/30", - }, - { - title: "Image Detection", - description: "Detect manipulated or synthetic image content.", - path: "/dashboard/image-detection", - icon: Image, - iconShell: "bg-emerald-50 text-emerald-600 ring-emerald-100 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-500/20", - hover: "hover:border-emerald-200 hover:shadow-emerald-100/80 dark:hover:border-emerald-500/30 dark:hover:shadow-emerald-950/30", - }, - { - title: "Video Detection", - description: "Run face-based deepfake checks on sampled video frames.", - path: "/dashboard/video-detection", - icon: Video, - iconShell: "bg-amber-50 text-amber-600 ring-amber-100 dark:bg-amber-500/10 dark:text-amber-300 dark:ring-amber-500/20", - hover: "hover:border-amber-200 hover:shadow-amber-100/80 dark:hover:border-amber-500/30 dark:hover:shadow-amber-950/30", - }, - { - title: "URL Checker", - description: "Evaluate source credibility and suspicious URL signals.", - path: "/dashboard/url-checker", - icon: LinkIcon, - iconShell: "bg-violet-50 text-violet-600 ring-violet-100 dark:bg-violet-500/10 dark:text-violet-300 dark:ring-violet-500/20", - hover: "hover:border-violet-200 hover:shadow-violet-100/80 dark:hover:border-violet-500/30 dark:hover:shadow-violet-950/30", - }, - { - title: "History", - description: "Review previous analyses and confidence trends.", - path: "/dashboard/history", - icon: History, - iconShell: "bg-rose-50 text-rose-600 ring-rose-100 dark:bg-rose-500/10 dark:text-rose-300 dark:ring-rose-500/20", - hover: "hover:border-rose-200 hover:shadow-rose-100/80 dark:hover:border-rose-500/30 dark:hover:shadow-rose-950/30", - }, - { - title: "VeritasConnect", - description: "Share suspicious content so the community can react and comment.", - path: "/dashboard/veritas-connect", - icon: Users, - iconShell: "bg-cyan-50 text-cyan-600 ring-cyan-100 dark:bg-cyan-500/10 dark:text-cyan-300 dark:ring-cyan-500/20", - hover: "hover:border-cyan-200 hover:shadow-cyan-100/80 dark:hover:border-cyan-500/30 dark:hover:shadow-cyan-950/30", - }, + { title: "Text Analysis", description: "Analyze articles and statements for misinformation patterns.", path: "/dashboard/text-analysis", icon: FileText, iconShell: "bg-sky-50 text-sky-600 ring-sky-100 dark:bg-sky-500/10 dark:text-sky-300 dark:ring-sky-500/20", hover: "hover:border-sky-200 hover:shadow-sky-100/80 dark:hover:border-sky-500/30 dark:hover:shadow-sky-950/30" }, + { title: "Image Detection", description: "Detect manipulated or synthetic image content.", path: "/dashboard/image-detection", icon: Image, iconShell: "bg-emerald-50 text-emerald-600 ring-emerald-100 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-500/20", hover: "hover:border-emerald-200 hover:shadow-emerald-100/80 dark:hover:border-emerald-500/30 dark:hover:shadow-emerald-950/30" }, + { title: "Video Detection", description: "Run face-based deepfake checks on sampled video frames.", path: "/dashboard/video-detection", icon: Video, iconShell: "bg-amber-50 text-amber-600 ring-amber-100 dark:bg-amber-500/10 dark:text-amber-300 dark:ring-amber-500/20", hover: "hover:border-amber-200 hover:shadow-amber-100/80 dark:hover:border-amber-500/30 dark:hover:shadow-amber-950/30" }, + { title: "URL Checker", description: "Evaluate source credibility and suspicious URL signals.", path: "/dashboard/url-checker", icon: LinkIcon, iconShell: "bg-violet-50 text-violet-600 ring-violet-100 dark:bg-violet-500/10 dark:text-violet-300 dark:ring-violet-500/20", hover: "hover:border-violet-200 hover:shadow-violet-100/80 dark:hover:border-violet-500/30 dark:hover:shadow-violet-950/30" }, + { title: "History", description: "Review previous analyses and confidence trends.", path: "/dashboard/history", icon: History, iconShell: "bg-rose-50 text-rose-600 ring-rose-100 dark:bg-rose-500/10 dark:text-rose-300 dark:ring-rose-500/20", hover: "hover:border-rose-200 hover:shadow-rose-100/80 dark:hover:border-rose-500/30 dark:hover:shadow-rose-950/30" }, + { title: "VeritasConnect", description: "Share suspicious content so the community can react and comment.", path: "/dashboard/veritas-connect", icon: Users, iconShell: "bg-cyan-50 text-cyan-600 ring-cyan-100 dark:bg-cyan-500/10 dark:text-cyan-300 dark:ring-cyan-500/20", hover: "hover:border-cyan-200 hover:shadow-cyan-100/80 dark:hover:border-cyan-500/30 dark:hover:shadow-cyan-950/30" }, ]; export default function FeatureChooser() { const navigate = useNavigate(); return ( -
+
-
-
-
+
+
+
+
- +
-
+
VERIFICATION WORKSPACE
-

- Choose your analysis. -

-

- Six focused tools for checking text, media, links, and the signals behind them. -

+

Choose your analysis.

+

Six focused tools for checking text, media, links, and the signals behind them.

-
+
{features.map((feature, index) => { const Icon = feature.icon; return ( @@ -93,35 +43,30 @@ export default function FeatureChooser() { animate={{ opacity: 1, y: 0 }} transition={{ delay: index * 0.06, duration: 0.35, ease: "easeOut" }} onClick={() => navigate(feature.path)} - className={`group relative min-h-52 overflow-hidden rounded-2xl border border-slate-200/80 bg-white/85 p-6 text-left shadow-[0_12px_40px_rgba(30,55,90,0.06)] backdrop-blur-xl transition-all duration-300 hover:-translate-y-1 hover:bg-white hover:shadow-[0_20px_50px_rgba(30,55,90,0.11)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-400/60 dark:border-slate-800/80 dark:bg-slate-900/70 dark:shadow-[0_18px_60px_rgba(0,0,0,0.22)] dark:hover:bg-slate-900/90 ${feature.hover}`} + className={`group relative min-h-52 overflow-hidden rounded-[1.35rem] border border-slate-200/90 bg-white/95 p-6 text-left shadow-[0_10px_35px_rgba(30,55,90,0.055)] backdrop-blur-xl transition-all duration-300 hover:-translate-y-1.5 hover:bg-white hover:shadow-[0_24px_55px_rgba(30,55,90,0.11)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-400/60 dark:border-slate-800/80 dark:bg-slate-900/70 dark:shadow-[0_18px_60px_rgba(0,0,0,0.22)] dark:hover:bg-slate-900/90 ${feature.hover}`} > -
+
+
-
+
- +
-

- {feature.title} -

-

- {feature.description} -

+

{feature.title}

+

{feature.description}

); })}
-

- Select a workspace to begin a verification session. -

+

Select a workspace to begin a verification session.

);