32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
|
|
import React from 'react';
|
||
|
|
import { PlusIcon } from './icons';
|
||
|
|
|
||
|
|
interface ApproachCardProps {
|
||
|
|
title: string;
|
||
|
|
description: string;
|
||
|
|
visual: React.ReactNode;
|
||
|
|
}
|
||
|
|
|
||
|
|
const ApproachCard: React.FC<ApproachCardProps> = ({ title, description, visual }) => {
|
||
|
|
return (
|
||
|
|
<div className="border border-slate-200 p-6 rounded-lg group flex flex-col h-full bg-white">
|
||
|
|
<h3 className="text-xl font-semibold font-quicksand text-slate-800">{title}</h3>
|
||
|
|
<div className="mt-4 flex-grow flex items-center justify-center min-h-[12rem]">
|
||
|
|
{visual}
|
||
|
|
</div>
|
||
|
|
<div className="mt-4 flex-grow flex flex-col">
|
||
|
|
<p className="text-slate-600 font-inter text-sm flex-grow">{description}</p>
|
||
|
|
<button
|
||
|
|
type="button"
|
||
|
|
className="mt-4 flex items-center justify-center w-8 h-8 rounded-full bg-slate-100 text-slate-500 hover:bg-slate-200 hover:text-slate-700 transition-colors"
|
||
|
|
aria-label={`Learn more about ${title}`}
|
||
|
|
>
|
||
|
|
<PlusIcon className="w-4 h-4" />
|
||
|
|
</button>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
);
|
||
|
|
};
|
||
|
|
|
||
|
|
export default ApproachCard;
|