Reference: Elevate Lookbook | Component: product_details
Horizontal layout (avatar | content). Avatar size matches component size. Default is :md (80px avatar).
XXS (24px avatar, 14px text)
XS (48px avatar, 14px text, with rating, no seller)
SM (64px avatar, 14px text)
MD (80px avatar, 16px text) — DEFAULT
By Salesforce
LG (104px avatar, 20px text)
XL (144px avatar, 24px text)
<!-- Default (md): 80px avatar, 16px text -->
<div class="elv-product-details">
<div class="elv-product-avatar elv-product-avatar--md">
<img src="product.png" alt="Product" class="elv-product-avatar__image">
</div>
<div class="elv-product-details__content">
<div class="elv-product-details__title">Product Name</div>
<p class="elv-product-details__seller">
By <a href="#" class="elv-product-details__seller-link">Seller Name</a>
</p>
<div class="elv-product-details__rating">
<div class="elv-product-details__stars">
<!-- 5 stars total: full/half/empty based on rating -->
<svg viewBox="0 0 24 24" fill="none"><path d="M14.7002 8.7002L21.5996 9.27539L16.3496 13.75L17.9248 20.4004L12 16.875L6.0752 20.4004L7.65039 13.75L2.40039 9.27539L9.2998 8.6748L12 2.40039L14.7002 8.7002Z" fill="#FF492C"/></svg>
<!-- Repeat for each full star, use half-star SVG for partial ratings -->
</div>
<span class="elv-product-details__rating-text">4.5 <span class="elv-product-details__rating-count">(1,000)</span></span>
</div>
</div>
</div>
<!-- XS: 48px avatar, 14px text -->
<div class="elv-product-details elv-product-details--xs">
<div class="elv-product-avatar elv-product-avatar--xs">...</div>
<div class="elv-product-details__content">...</div>
</div>
<!-- LG: 104px avatar, 20px text -->
<div class="elv-product-details elv-product-details--lg">
<div class="elv-product-avatar elv-product-avatar--lg">...</div>
<div class="elv-product-details__content">...</div>
</div>