StealThis .dev

Museum — Gift-Shop Product Card

A museum gift-shop product gallery of six fictional editions and objects — Vandermeer prints, a Goryeo celadon monograph, a Salviati map tote, an enamel pin and more. Each card frames a CSS-drawn artwork in a soft mat, then sets an italic serif title above its catalog number, star rating, list price and a gold member-price badge. Colour swatches recolour the art, a quantity stepper bounds the count, and add-to-bag increments a live masthead counter with confirmation toasts and a hover quick-view.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

Gift-Shop Product Card

A retail card for a museum shop, shown as a gallery of six fictional products — a Harbour at Dusk giclée after Vandermeer, a Goryeo celadon monograph, the Salviati map tote, a Réquard light-study print, the Aubin exhibition catalogue and a Cole garden enamel pin. Every product image is drawn entirely in CSS as a matted, framed block, so the component stays self-contained with no external images. Each card pairs an italic serif title with its byline, a gold catalog number, a star rating with review count, the list price and a gold Member price badge.

Cards lift on hover and on keyboard focus, revealing a quick-view button tucked into the mat that surfaces the title, medium and price in a toast. Colour and variant swatches sit below the price: selecting one updates the pressed state, names the choice and recolours the framed artwork live. A pill stepper bounds quantity between one and ninety-nine, disabling the minus control at one.

Adding to bag reads the chosen quantity and variant, increments a live counter in the masthead bag button with a small bump animation, and confirms the change with a toast. The masthead bag itself reports how many items are ready for checkout. The grid uses generous wall space, retiles from three columns to two to one as the viewport narrows, keeps quick-view visible on touch, exposes accessible labels and live regions, and respects reduced-motion and visible-focus preferences.

Illustrative UI only — demo data; not a real museum system.