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
eyebrowBadgestring—Tag shown top-left of the image (e.g. "Bestseller").
stampLabelstring—Circular Badge label overlapping the image's bottom edge.
titlestring—Product name.
ratingnumber—0–5 rating, passed to Rating.
reviewCountnumber—Review count shown next to the rating.
benefitsstring—Short benefit line under the title.
pricestring—Formatted price string.
sizesstring[]—Size options rendered as selectable text.
defaultSizestring—Initially-selected size.
imageSrcstring—Product photo; falls back to a Pipette placeholder icon when omitted.
quickViewProductCardQuickView—Presence 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.