Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Move-date checklist Contact Block for React

A move request for a relocation firm where the arrival date writes a six-task checklist, with a searchable destination and a household stepper beside it.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A move request for Wayhurst Relocation, built for React with Base UI. Pick an arrival day in a Date Picker and the checklist dates itself: tell the school twelve weeks before, start the visa at ten, book shipping at eight, give notice at six, pack the kitchen at three, and confirm arrival at one. Each row is a Checkbox the visitor can mark done. Destination is a Combobox of eight cities, and household size is a Number Input from 1 to 8. The form and the checklist share one hairline grid; on a phone the checklist follows the form. Submitting checks every field, shows each problem under its field, and turns the form into a confirmation that repeats the city, the household, the arrival day, and how many tasks were marked. It's built from Field, Input, Textarea, Date Picker, Combobox, Number Input, Checkbox, Guides, Shine Button and Button, with a CSS entrance on the header and your theme's tokens for every colour.

FAQ

Where does the form send its data?

Nowhere yet. The submit handler waits 800 milliseconds, as a stand-in for a request, then shows the confirmation. Replace that timer in submit with your own call. details holds the name, email, household and optional note; city and move hold the destination and the arrival day. Show the confirmation when the request succeeds, and an error line in the form when it doesn't.

How does the form check what's typed?

The form has noValidate, so the browser's own bubbles stay away and the block shows its own messages. On submit, problems checks a name, an email with an @ and a domain, a destination, a household of 1 to 8, and an arrival day. Each problem appears under its field with an icon, the control is marked invalid, and focus moves to the first one. Typing, or choosing a city or a day, clears that field's message. The checklist is not required.

How does the arrival day write the checklist?

Six tasks live in TASKS, each with a number of weeks. dueOf walks back that many weeks from the chosen day, on a fixed calendar, and the row shows the date (for example "13 Oct 2026"). Before a day is chosen, the row says how many weeks before the move. A task dated before today (read from the visitor's clock) adds "already due". Marking a box only records that the visitor has done it; the confirmation repeats that count.

How does the destination list work?

Eight cities are the whole list. Choosing one clears the destination's error. The field is a searchable input with a list under it: typing narrows the list, and choosing a city puts its name in the field. If nothing matches it says "No city found."

What does the confirmation say?

It thanks the visitor by first name and repeats the city, the household size, the arrival date, and how many of the six tasks were marked done. It's a status region that takes focus when it appears, and "Plan another move" brings back an empty form and puts focus on its heading. The reply time stays in the line under the button, not in the confirmation.

How does it fit on a phone?

Below lg the hairline grid stacks: the header, then the form, then the checklist and the contact details. Name and email, and destination and household, go one per row below sm, and the submit button goes full width. Under 360 pixels the contact labels shrink to their icons. The header fades up once on load; with reduced motion it simply appears. hello@wayhurst.example and +1 (555) 010-0148 are fictional.

  • Pro

    Press Kit Contact

    Partners and creators

    A press desk with a press kit of three real files that download from the page beside a press form with an inquiry switch and a deadline date picker that marks a date within two days Rush.

  • Pro

    A franchise enquiry with a two-thumb investment range that drives a band of four cells on shared hairlines (formats open, units, payback, fee) above a form with a searchable territory list.

  • Pro

    Add Another Pet Contact

    Visits and services

    A visit request for a pet sitter that grows with the household: a cell for each pet (species, name, age, vaccinations) that you add and remove, then services, a first-visit date and contact details on ruled bands.

  • Pro

    A bulk gifting enquiry with a recipients stepper and a row of gift prices, a bill worked out right under them in three cells (gifts, volume discount, total) and a ladder that shows the next discount step.

  • Pro

    Crew Estimate Moving Contact

    Quotes and estimates

    A moving quote in three bands: a home-size segment and special-item toggles, a live crew, truck and hours estimate, then distance, move date, name and email.

  • Pro

    A talk-to-sales split for a scheduling platform: what happens next as three numbered steps and a band of contact details beside a form that checks itself, shows each problem under its field and confirms in place.