StealThis .dev
Pages Medium

Interior — Consultation Booking

A warm editorial consultation booking flow for an interior design studio: pick a consultation type from tactile cards, toggle in-person or virtual delivery, choose a date and open time slot from a calendar, then fill in project details and confirm. Live pricing, availability badges, running summary rail, form validation, and a graceful confirmation state make the whole scheduling journey feel considered and effortless.

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

Code

A four-step booking page for a fictional interior studio, Marrow & Loom. The left column carries the flow — consultation type cards (Discovery Call, In-Home Styling, Full Room Design), an in-person / virtual segmented toggle, a month calendar with disabled and available days, a scrollable list of time slots, and a details form. The right rail holds a sticky summary that updates live with the chosen service, format, date, time, duration and price, plus a confirm button that stays disabled until every required piece is in place.

Interactions are pure vanilla JS: selecting a type recolours its card and refreshes the summary and slot durations; the format toggle swaps the location field between an address and a video-link note; navigating months regenerates the calendar grid; picking a day reveals its available slots with capacity badges. The form validates name, email and project scope inline, and confirming animates the summary into a tidy confirmation card with a booking reference. A small toast() helper acknowledges each meaningful action.

The layout is built for calm: generous whitespace, thin rules, a muted natural palette and Cormorant Garamond headings over Inter body text. It collapses to a single column under 520px, keeps focus states visible, and labels controls with ARIA so the whole flow stays keyboard-usable.