Add complete project files
This commit is contained in:
51
components/service-card.tsx
Executable file
51
components/service-card.tsx
Executable file
@@ -0,0 +1,51 @@
|
||||
import Link from 'next/link';
|
||||
import Image from 'next/image';
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { ArrowRight } from 'lucide-react';
|
||||
|
||||
interface ServiceCardProps {
|
||||
title: string;
|
||||
description: string;
|
||||
image: string;
|
||||
imageAlt: string;
|
||||
href: string;
|
||||
features?: string[];
|
||||
}
|
||||
|
||||
export function ServiceCard({ title, description, image, imageAlt, href, features }: ServiceCardProps) {
|
||||
return (
|
||||
<Card className="overflow-hidden hover:shadow-lg transition-shadow">
|
||||
<div className="aspect-square relative">
|
||||
<Image
|
||||
src={image}
|
||||
alt={imageAlt}
|
||||
fill
|
||||
className="object-cover"
|
||||
/>
|
||||
</div>
|
||||
<CardHeader>
|
||||
<CardTitle className="text-xl">{title}</CardTitle>
|
||||
<CardDescription className="text-base">{description}</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
{features && (
|
||||
<ul className="space-y-2 mb-6">
|
||||
{features.slice(0, 3).map((feature, index) => (
|
||||
<li key={index} className="flex items-center text-sm text-slate">
|
||||
<div className="w-1.5 h-1.5 bg-teal rounded-full mr-2" />
|
||||
{feature}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
)}
|
||||
<Button asChild className="w-full">
|
||||
<Link href={href}>
|
||||
Learn More
|
||||
<ArrowRight className="ml-2 h-4 w-4" />
|
||||
</Link>
|
||||
</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user