Product category browsing with image cards, product counts, and featured badges. Responsive grid layout with hover effects. Perfect for storefront navigation and collection showcases.
Storefront category browser: full-bleed photo tiles with a dark scrim for text legibility, a name, an optional description and product count, and an optional "Featured" badge, each tile a single clickable link to the category page.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/ecommerce4"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/ecommerce4"This installs the block to components/beste/block/ecommerce4.tsx and the Badge shadcn/ui primitive it uses.
The installed file exports ecommerce4Demo alongside the block: the exact props behind the preview above. Spread it to get a working category grid in one line.
import { Ecommerce4, ecommerce4Demo } from "@/components/beste/block/ecommerce4";
export default function ShopPage() {
return <Ecommerce4 {...ecommerce4Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Ecommerce4 } from "@/components/beste/block/ecommerce4";
export default function ShopPage() {
return (
<Ecommerce4
heading="Browse our collections"
categories={[
{
name: "Living Room",
description: "Sofas, tables and decor",
image: "https://images.unsplash.com/photo-1555041469-a586c61ea9bc?w=600&h=400&fit=crop",
href: "/categories/living-room",
productCount: "124 products",
featured: true,
},
{
name: "Kitchen",
image: "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=600&h=400&fit=crop",
href: "/categories/kitchen",
productCount: "156 products",
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Optional pill badge above the heading |
heading | string | – | Section heading |
description | string | – | Section intro text |
categories | Category[] | [] | Category tiles rendered in the grid |
className | string | – | Extra classes for the outer <section> |
type Category = {
name: string;
description?: string;
image: string;
href: string;
productCount?: string;
featured?: boolean;
};sm:grid-cols-2 as the mobile baseline).Link covering the whole card (image, name, description, and product count), not a card with a separate "shop now" sub-link.bg-gradient-to-t from-black/90 via-black/40 to-transparent scrim sits over the image so the white overlay text stays legible regardless of the underlying photo's brightness.featured only adds a secondary "Featured" badge above the title, it has no effect on tile size or grid position.md breakpoint: aspect-[3/2] on mobile, aspect-square from md up.null outright when categories is empty, rather than rendering the header alone.ecommerce1
Responsive product grid with ratings, sale badges, and add to cart buttons. Perfect for shop pages and product catalogs.
ecommerce32
Brand logo cards with product counts and hover effects linking to brand pages. Perfect for multi-brand stores and brand discovery.
ecommerce27
Category collection grid with overlay images, item counts, and shop now links. Perfect for homepage category navigation and collection pages.
ecommerce28
Product cards with hover wishlist buttons, quick add to cart overlay, and star ratings. Perfect for featured sections and bestsellers.
ecommerce33
Featured collection card with supporting collection tiles, image overlays, and product counts. Perfect for homepage collection highlights.
ecommerce14
Product recommendations grid with images, prices, and add to cart buttons. Perfect for cross-selling and upselling on product pages.