diff --git a/apps/web/src/components/dashboard/DashboardClient.tsx b/apps/web/src/components/dashboard/DashboardClient.tsx
index 13154b7..ac02a50 100644
--- a/apps/web/src/components/dashboard/DashboardClient.tsx
+++ b/apps/web/src/components/dashboard/DashboardClient.tsx
@@ -157,6 +157,7 @@ export function DashboardClient() {
removeWidget(widget.id)}
>
{renderWidget(widget.type, widget.config, (update) =>
diff --git a/apps/web/src/components/dashboard/WidgetContainer.tsx b/apps/web/src/components/dashboard/WidgetContainer.tsx
index 91de87c..02e70ef 100644
--- a/apps/web/src/components/dashboard/WidgetContainer.tsx
+++ b/apps/web/src/components/dashboard/WidgetContainer.tsx
@@ -4,31 +4,54 @@ import { motion } from "framer-motion";
interface WidgetContainerProps {
title: string;
+ description?: string;
onRemove: () => void;
children: React.ReactNode;
isDragging?: boolean;
}
-export function WidgetContainer({ title, onRemove, children, isDragging }: WidgetContainerProps) {
+export function WidgetContainer({ title, description, onRemove, children, isDragging }: WidgetContainerProps) {
return (
- {/* Header */}
-
-
{title}
+ {/* Header — clean, no background separation */}
+
+
+
+ {/* Drag grip dots */}
+
+ {title}
+
+ {description && (
+
{description}
+ )}
+
+ {/* Subtle separator */}
+
+
{/* Body */}
{children}