iWeb / src /pages /Home.jsx
ronylu's picture
Upload 4 files
851da48 verified
Raw
History Blame Contribute Delete
2.95 kB
import React from "react";
import { Link } from "react-router-dom";
import { products } from "../data/products.js";
export default function Home() {
const featured = products[0];
return (
<div className="space-y-12">
<section className="overflow-hidden rounded-3xl border border-neutral-200 bg-gradient-to-b from-neutral-50 to-white">
<div className="grid items-center gap-10 p-8 md:grid-cols-2 md:p-12">
<div className="space-y-4">
<p className="text-xs font-semibold uppercase tracking-wider text-neutral-500">New</p>
<h1 className="text-4xl font-semibold tracking-tight md:text-5xl">
{featured.name}
</h1>
<p className="text-lg text-neutral-600">{featured.tagline}</p>
<div className="flex flex-wrap gap-3 pt-2">
<Link
to={`/product/${featured.slug}`}
className="rounded-full bg-neutral-900 px-5 py-2.5 text-sm font-semibold text-white hover:bg-neutral-800"
>
Learn more
</Link>
<Link
to="/store"
className="rounded-full border border-neutral-300 bg-white px-5 py-2.5 text-sm font-semibold text-neutral-900 hover:bg-neutral-50"
>
Shop all
</Link>
</div>
<p className="text-xs text-neutral-500 pt-2">
Tip: Replace placeholder images/specs with your own licensed assets & data.
</p>
</div>
<div className="relative">
<img
src={featured.heroImage}
alt={featured.name}
className="w-full rounded-2xl border border-neutral-200 object-cover"
loading="lazy"
/>
</div>
</div>
</section>
<section className="grid gap-4 md:grid-cols-3">
{products.map((p) => (
<Link
key={p.slug}
to={`/product/${p.slug}`}
className="group rounded-3xl border border-neutral-200 bg-white p-5 hover:shadow-sm"
>
<div className="overflow-hidden rounded-2xl border border-neutral-200">
<img
src={p.heroImage}
alt={p.name}
className="h-44 w-full object-cover transition-transform duration-300 group-hover:scale-[1.03]"
loading="lazy"
/>
</div>
<div className="pt-4">
<p className="text-xs font-semibold uppercase tracking-wider text-neutral-500">{p.category}</p>
<h3 className="pt-1 text-lg font-semibold tracking-tight">{p.name}</h3>
<p className="pt-1 text-sm text-neutral-600">{p.tagline}</p>
<p className="pt-3 text-sm font-semibold text-neutral-900">From ${p.priceFrom}</p>
</div>
</Link>
))}
</section>
</div>
);
}