File size: 974 Bytes
6d9f36a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import { Card } from "@/components/ui/card";
import { LucideIcon } from "lucide-react";
interface StatsCardProps {
title: string;
value: string | number;
icon: LucideIcon;
color: "purple" | "green" | "red" | "blue";
}
const colorClasses = {
purple: "text-purple-400 bg-purple-500/10 border-purple-500/20",
green: "text-green-400 bg-green-500/10 border-green-500/20",
red: "text-red-400 bg-red-500/10 border-red-500/20",
blue: "text-blue-400 bg-blue-500/10 border-blue-500/20",
};
export function StatsCard({ title, value, icon: Icon, color }: StatsCardProps) {
return (
<Card className={`p-4 backdrop-blur-sm ${colorClasses[color]}`}>
<div className="flex items-center justify-between mb-2">
<Icon className="w-5 h-5" />
</div>
<div className={`text-2xl font-bold ${colorClasses[color].split(" ")[0]}`}>
{value}
</div>
<div className="text-xs text-muted-foreground mt-1">{title}</div>
</Card>
);
} |