# Shop-the-Look Grid block

> Apparel 2x2 product grid with hover lifestyle image cross-fade and expanding color swatch pill

Fashion ecommerce 2x2 product grid where tiles cross-fade product to on-model shots on hover, revealing Add to List and Add to Cart, plus a corner Badge and fan-out swatch pill. ReUI Badge, shadcn Button, Item. Catalog, collection, shop pages.

- Type: Pro block
- Category: [Product Grid](https://web.dev.reui.io/blocks/ecommerce/product-grid.md)
- Page: https://web.dev.reui.io/blocks/ecommerce/product-grid/product-grid-6
- MCP: `get_block("product-grid-6")`
- Built with: Badge, Button, Item, Popover
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

A product shot that fades to an on model photo on hover, plus a stacked swatch pill and a Shop The Look link

## Agent notes

- Every product needs a `primaryImage` and a `lifestyleImage`; the second one is hidden from assistive tech and only fades in on hover
- The overlay with the wishlist and cart buttons is hidden below the sm breakpoint, so phones get no `onAddToCart` or `onLikedChange` control
- `handleAddToCart` only dispatches a `CustomEvent` named reui:add-to-cart with the `productId`; wire your cart store there

## When not to use

- A swipeable row of related items at the foot of a single item page: use [Related Products](https://web.dev.reui.io/blocks/ecommerce/product-card/product-card-4.md) (`get_block("product-card-4")`)

## Install

```bash
npx shadcn@latest add @reui/product-grid-6
```

## About Product Grid blocks

### When to use

- A collection or category page body of photo tiles with prices, sale strikethroughs and a wishlist save
- Comparing colorways through swatches, or buying from the listing with a hover size picker or cart button
- Editorial or lookbook edits whose tiles add a story and specs, or fade to an on model photo on hover

### When not to use

- Dashboard tiles for KPIs, people or records in an app, with no price or buy control: use the [Card blocks](https://web.dev.reui.io/blocks/application/card.md)
- A bordered panel surface with header, body and footer slots for content not for sale: use [Frame](https://web.dev.reui.io/components/frame.md) (`get_component("frame")`)
- A listing with its own heading, sort and filter toolbar, breadcrumb or carousel rail: use the [Product Card blocks](https://web.dev.reui.io/blocks/ecommerce/product-card.md)

### Agent notes

- `ProductGrid` takes no props and maps `PRODUCTS` from data.ts, where each `price` is a preformatted string and every `href` is a hash placeholder
- The wishlist toggle only flips the local `likedProducts` set seeded from `DEFAULT_LIKED_PRODUCT_IDS`; persist it to your own wishlist store
- Each page.tsx adds a `min-h-svh` main and `ProductGrid` sets `max-w-6xl` with its own padding; drop both inside your storefront layout

Every ReUI item has a twin like this one; the index is https://web.dev.reui.io/llms.txt. Agents with the ReUI MCP (https://web.dev.reui.io/docs/mcp) get the same guidance from the getters named above.
