StealThis .dev
Pages Hard

Photography — Booking Flow

A four-step photography booking flow on a gallery-dark canvas: pick a session type, choose an available date and time slot, fill in shoot details, then review and confirm. A live progress bar tracks position, inline validation guards each step, back and next controls preserve entered data, and a polished confirmation screen with a booking reference wraps the journey with smooth micro-interactions throughout.

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

Code

A complete multi-step booking experience for a fictional photography studio, built on a full-bleed gallery-dark canvas with thin uppercase labels, a display serif for headings, and warm sand accents. The flow moves through four stages — selecting a session type from image-led cards, picking an available date and time slot from a generated calendar strip, entering shoot details in a validated form, and reviewing a clean summary before confirming.

Each step is gated by inline validation: the Next button stays disabled until the current step is complete, empty or malformed fields surface accessible error messages, and the progress bar plus numbered stepper animate as you advance. Back and Next controls fully preserve entered data, so nothing is lost when you revisit an earlier step. Selected cards and slots use clear pressed states, badges call out popular packages and price, and a toast helper confirms micro-actions.

Confirming the booking swaps in a success screen showing a generated booking reference, the chosen package, date, time and contact details, plus a call to start over. The whole interface is keyboard-usable with visible focus rings, meets AA contrast on the dark surface, and collapses gracefully to a single-column layout below 520px.