Staaarter

Under Construction Contact

A centered B2B coming-soon screen for a studio rebuilding its site. Shows the studio name, an eyebrow, heading, and an icon list of address, phone, and email contact details, followed by a working name, email, and message contact form with a success state.

By Staaarter Team
Coming Soon
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/under-construction-contact.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/coming-soon/comingsoon64.tsx instead.

Usage

The file also exports comingsoon64Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { ComingSoon64, comingsoon64Demo } from "@/components/blocks/coming-soon/comingsoon64";

export default function Page() {
  return <ComingSoon64 {...comingsoon64Demo} />;
}

Props

PropTypeDefaultDescription
studioNamestringnoneName of the studio or business, shown above the eyebrow.
eyebrowstring"Coming soon"Small label above the heading.
headingstring"Our new site is under construction"Main heading.
descriptionstring"We're rebuilding from the ground up..."Supporting copy under the heading.
contactsContactDetail[]noneAddress, phone, and/or email rows rendered with icons.
classNamestringnoneExtra classes for the outer section element.

Types

export interface ContactDetail {
  type: "address" | "phone" | "email";
  value: string;
}

Behavior notes

  • The name, email, and message contact form is real client state (useState per field), submitting flips the card to a success message, no network request is made anywhere.
  • Each contact row's icon is chosen internally from a fixed type-to-icon map (address/phone/email), never passed in as a prop, so nothing icon-shaped crosses the client boundary.