yuki-api / src /components /StatsCard.tsx
OhMyDitzzy
Feat: add project
6d9f36a
raw
history blame contribute delete
974 Bytes
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>
);
}