Browse the library
Blocks / Conversion
Contact section
ProContact form with floating labels and inline validation, plus NAP details, live open-now hours and a map card.
Source included with Facade Pro
You get the full TypeScript source (533 lines), installed straight into your project, yours to edit.
Unlock for $149app/page.tsx
import { ContactSection } from "@/components/facade/contact-section";
export default function Demo() {
return <ContactSection />;
}Installation
$
npx shadcn@latest add @facade/contact-sectionPro items install from the private @facade registry with your license key. Set it up once.
Usage
import { ContactSection } from "@/components/facade/contact-section";
export default function Page() {
return <ContactSection />;
}Props
ContactSectionProps is exported, so you can extend or wrap it. Every prop has a default; <ContactSection /> renders the example above.
| Prop | Type | Description |
|---|---|---|
| eyebrow | string | |
| heading | string | |
| description | string | |
| services | string[] | |
| businessName | string | |
| address | string[] | |
| phone | string | |
| string | ||
| timeZone | string | IANA time zone used to compute the open-now indicator. |
| hours | ContactHours[] | |
| mapHref | string | |
| submitLabel | string | |
| successHeading | string | |
| successText | string | |
| onSubmit | (values: ContactFormValues) => void | Promise<void> | Called with valid values. Return a promise to keep the loading state until it resolves. |
| className | string |
Ask your agent
With the Facade MCP server connected, this prompt is enough:
Add the Facade contact section to this page and adapt the copy to our business.