Storefront — Product Page
Sticky gallery, buy box with options, trust row, detail accordions and reviews.
The building blocks of a product detail page (PDP). Lay the gallery and the buy box side by side, stack the trust row and accordions beneath the options, then finish with the reviews section.
Preview
Stoneware Dinner Set
Details & materials
Crafted from responsibly sourced materials. Each piece is finished by hand, so slight variations are part of the character. Full specifications and care included.
Shipping & returns
Carbon-neutral delivery on every order, free over $50. Returns are free within 30 days — no questions asked.
How we make it
Made in small batches with makers we've worked with for years. We tell you exactly where everything comes from.
Quick view
Hover a card and tap the eye to open the quick-view modal.
Reviews
- MLEven better in personVerifiedMaya Lindqvist2 weeks ago
The glaze has a soft speckle you don't see in the photos. Survives the dishwasher and still looks hand-thrown. Ordering the matching bowls next.
- TRSolid weight, no wobbleVerifiedTomas Reyes1 month ago
Sits flat, pours clean, and the handle actually fits a full hand. You can tell someone trimmed the foot properly.
- PNLovely, runs slightly smallVerifiedPriya Nair1 month ago
Beautiful finish and the colour matches the listing. Just note the capacity is closer to 300ml than the 350ml I expected.
- JWJonas Weber2 months ago
Bought two as a gift and kept one for myself. Packaging was plastic-free and everything arrived without a chip.
- EKGood, but slow to arriveVerifiedElif Kaya3 months ago
The piece itself is great — small-batch quality is obvious. Shipping took twelve days though, so plan ahead if it's a present.
Stoneware Dinner Set
Install
bun x bosia@latest add block storefront/product-gallery
bun x bosia@latest add block storefront/product-options
bun x bosia@latest add block storefront/trust-row
bun x bosia@latest add block storefront/pdp-accordions
bun x bosia@latest add block storefront/reviews
bun x bosia@latest add block storefront/quick-viewproduct-options pulls storefront/store; all pull @lucide/svelte.
Usage
<script lang="ts">
import ProductGallery from "$lib/blocks/storefront/product-gallery/block.svelte";
import ProductOptions from "$lib/blocks/storefront/product-options/block.svelte";
import { createCart } from "$lib/blocks/storefront/store/store.svelte.ts";
const cart = createCart();
</script>
<div class="grid lg:grid-cols-[1.1fr_1fr] gap-12">
<ProductGallery />
<ProductOptions {cart} />
</div>product-options takes a product, optional sizes, and a shared cart (add-to-bag totals the
selected quantity). pdp-accordions uses native <details> for the detail sections.
quick-view is the PDP-in-a-modal: bind open, pass a product and the shared cart, and open
it from a grid via product-card's onQuickView (which shows an eye button next to the heart).
reviews renders standalone with sample reviews, or pass your own: rating, count,
distribution (percent per star, 5→1) and reviews ({ author, rating, date, title?, body, verified? }). Its write-a-review form appends to the visible list and fires onSubmit(review)
for real persistence.
Source
src/lib/blocks/storefront/{product-gallery,product-options,trust-row,pdp-accordions,reviews,quick-view}/block.svelte