ecommerce / components / product-lists
With Tall Images And Cta Link
07-with-tall-images-and-cta-link.jsx
const products = [
{
id: 1,
name: 'Black Basic Tee',
price: '$32',
href: '#',
imageSrc: 'https://tailwindcss.com/plus-assets/img/ecommerce-images/home-page-03-favorite-01.jpg',
imageAlt: "Model wearing women's black cotton crewneck tee.",
},
{
id: 2,
name: 'Off-White Basic Tee',
price: '$32',
href: '#',
imageSrc: 'https://tailwindcss.com/plus-assets/img/ecommerce-images/home-page-03-favorite-02.jpg',
imageAlt: "Model wearing women's off-white cotton crewneck tee.",
},
{
id: 3,
name: 'Mountains Artwork Tee',
price: '$36',
href: '#',
imageSrc: 'https://tailwindcss.com/plus-assets/img/ecommerce-images/home-page-03-favorite-03.jpg',
imageAlt:
"Model wearing women's burgundy red crewneck artwork tee with small white triangle overlapping larger black triangle.",
},
]
export default function Example() {
return (
<div className="bg-white">
<div className="mx-auto max-w-7xl px-4 py-16 sm:px-6 sm:py-24 lg:px-8">
<div className="sm:flex sm:items-baseline sm:justify-between">
<h2 className="text-2xl font-bold tracking-tight text-gray-900">Our Favorites</h2>
<a href="#" className="hidden text-sm font-semibold text-indigo-600 hover:text-indigo-500 sm:block">
Browse all favorites
<span aria-hidden="true"> →</span>
</a>
</div>
<div className="mt-6 grid grid-cols-1 gap-y-10 sm:grid-cols-3 sm:gap-x-6 sm:gap-y-0 lg:gap-x-8">
{products.map((product) => (
<div key={product.id} className="group relative">
<img
alt={product.imageAlt}
src={product.imageSrc}
className="h-96 w-full rounded-lg object-cover group-hover:opacity-75 sm:aspect-2/3 sm:h-auto"
/>
<h3 className="mt-4 text-base font-semibold text-gray-900">
<a href={product.href}>
<span className="absolute inset-0" />
{product.name}
</a>
</h3>
<p className="mt-1 text-sm text-gray-500">{product.price}</p>
</div>
))}
</div>
<div className="mt-6 sm:hidden">
<a href="#" className="block text-sm font-semibold text-indigo-600 hover:text-indigo-500">
Browse all favorites
<span aria-hidden="true"> →</span>
</a>
</div>
</div>
</div>
)
}