BlocksProduct Card

Blocks

Product Card

Mirrors the PDP tile used across Clean Cosmetics grids and carousels. Hover the image to reveal Quick View.

Configurator

BestsellerHyaluronic Acid 2% + B5 (with Ceramides)
TEAM FAVOURITE · TEAM FAVOURITE ·

Hyaluronic Acid 2% + B5 (with Ceramides)

4.4(1,881)

Plumps, Smooths

$9.90 USD

Usage

<ProductCard
  eyebrowBadge="Bestseller"
  title="Hyaluronic Acid 2% + B5 (with Ceramides)"
  rating={4.4}
  reviewCount={1881}
  benefits="Plumps, Smooths"
  price="$9.90 USD"
  sizes={["30ml", "60ml"]}
  defaultSize="30ml"
  imageSrc="/products/hyaluronic-acid-2-b5-with-ceramides.png"
  quickView={{ /* ... */ }}
/>

Props

PropTypeDefaultDescription
eyebrowBadgestringTag shown top-left of the image (e.g. "Bestseller").
stampLabelstringCircular Badge label overlapping the image's bottom edge.
titlestringProduct name.
ratingnumber0–5 rating, passed to Rating.
reviewCountnumberReview count shown next to the rating.
benefitsstringShort benefit line under the title.
pricestringFormatted price string.
sizesstring[]Size options rendered as selectable text.
defaultSizestringInitially-selected size.
imageSrcstringProduct photo; falls back to a Pipette placeholder icon when omitted.
quickViewProductCardQuickViewPresence of this prop is what enables the hover overlay and wires up the Quick View modal.

Do's and Don'ts

Do

  • ·Pass quickView whenever the product has enough detail to justify it — the hover affordance only appears when it's set.
  • ·Keep benefits to a short phrase; the layout gives it one line before the price row.
  • ·Render ProductCard inside a CSS grid with items-stretch so a row of cards lines up at the same height — the card already fills its container via h-full.

Don't

  • ·Don't set both stampLabel and expect it to coexist with a tall eyebrowBadge without checking the layout at your target width — they share the same corner region.
  • ·Don't omit sizes; the price/size row assumes at least one option is present.