diff --git a/src/components/board/CardThumbnail.tsx b/src/components/board/CardThumbnail.tsx
index 1b769e4..734f4d8 100644
--- a/src/components/board/CardThumbnail.tsx
+++ b/src/components/board/CardThumbnail.tsx
@@ -6,6 +6,7 @@ import { CSS } from "@dnd-kit/utilities";
import type { Card, Label } from "@/types/board";
import { LabelDots } from "@/components/board/LabelDots";
import { ChecklistBar } from "@/components/board/ChecklistBar";
+import { Paperclip, AlignLeft } from "lucide-react";
interface CardThumbnailProps {
card: Card;
@@ -58,6 +59,17 @@ export function CardThumbnail({ card, boardLabels, columnId, onCardClick }: Card
role="article"
aria-label={card.title}
>
+ {/* Cover color bar */}
+ {card.coverColor && (
+
+ )}
+
{/* Label dots */}
{card.labels.length > 0 && (
@@ -69,7 +81,7 @@ export function CardThumbnail({ card, boardLabels, columnId, onCardClick }: Card
{card.title}
{/* Footer row: due date + checklist */}
- {(hasDueDate || card.checklist.length > 0) && (
+ {(hasDueDate || card.checklist.length > 0 || card.attachments.length > 0 || card.description) && (
{dueDate && (
0 && (
)}
+ {card.description && (
+
+ )}
+ {card.attachments.length > 0 && (
+
+
+ {card.attachments.length}
+
+ )}
)}
diff --git a/src/components/card-detail/CardDetailModal.tsx b/src/components/card-detail/CardDetailModal.tsx
index 10679da..d200d94 100644
--- a/src/components/card-detail/CardDetailModal.tsx
+++ b/src/components/card-detail/CardDetailModal.tsx
@@ -57,6 +57,10 @@ export function CardDetailModal({ cardId, onClose }: CardDetailModalProps) {
{/* Right sidebar (40%) */}
+
+
+
+
);
}
+
+/* ---------- Cover color picker ---------- */
+
+function CoverColorPicker({ cardId, coverColor }: { cardId: string; coverColor: string | null }) {
+ const updateCard = useBoardStore((s) => s.updateCard);
+ const presets = [
+ { hue: "160", label: "Teal" }, { hue: "240", label: "Blue" },
+ { hue: "300", label: "Purple" }, { hue: "350", label: "Pink" },
+ { hue: "25", label: "Red" }, { hue: "55", label: "Orange" },
+ { hue: "85", label: "Yellow" }, { hue: "130", label: "Lime" },
+ { hue: "200", label: "Cyan" }, { hue: "0", label: "Slate" },
+ ];
+
+ return (
+
+
+ Cover
+
+
+
+ {presets.map(({ hue, label }) => (
+
+
+ );
+}