StealThis .dev
Pages Medium

DIY — Board Product Page

A complete open-hardware board product page for the fictional CIRCUITO Nano R3, built with vanilla HTML, CSS and JavaScript. It pairs an SVG render gallery with hover magnification and a thumbnail strip against a sticky buy box with variant pricing, a quantity stepper, live stock state and an amber add-to-cart flow. Below sit four tabbed panels — overview, a grouped technical spec table, a labelled pinout diagram and a downloads list — plus an accessories carousel and a copyable getting-started snippet.

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

Code

Board Product Page

A single-product page for a fictional development board. The top half is a two-column split: on the left an SVG render stage that swaps between top view, solder side and a pre-soldered header variant via a thumbnail strip, with a pointer-tracked magnifier that scales the artwork around the cursor. On the right, the buy box carries the price, three variants (with headers, without headers, bulk 5-pack), a quantity stepper, a stock indicator that turns amber for the low-stock tray, and an add-to-cart button that reports the running total in a toast.

Quick-spec chips in monospace sit directly under the title — clock, flash, SRAM, GPIO count and operating voltage — so the numbers that decide a purchase are readable before any scrolling. The lower half is a four-tab region: an overview with prose and a hoverable feature list, a full technical spec table with grouped section headers, a pinout diagram with colour-coded pin classes and a legend, and a downloads list where each row shows a file-size chip and simulates preparing the file before firing a toast.

The page closes with a horizontal accessories carousel (scroll-snapped, arrow-driven, keyboard navigable) and a getting-started band of three numbered steps next to a dark code panel with a working copy button that falls back to execCommand when the async clipboard is unavailable.

How this look is built

The layout is written in the spirit of open-hardware store board pages, but the mechanics are modern: CSS grid handles both the hero split and the three-step band, position: sticky keeps the gallery in view while the long spec table scrolls, and :has(input:checked) styles the whole variant row from the radio inside it — no JavaScript class bookkeeping for selection state. The magnifier is a single transform: scale() with a transform-origin written from pointer coordinates, which stays GPU-composited instead of the old background-position sprite trick. All product imagery is inline SVG plus layered gradients, so the page ships zero image requests; an IntersectionObserver reveals cards and steps once, and a prefers-reduced-motion block disables the whole motion layer.

Illustrative UI only — always follow real safety guidance when working with tools, electronics, or repairs.