# Contact 5

> Bordered contact section with key details and a two-column form.

A shadcn/ui block from the [@efferd](https://efferd.com/) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/efferd/contact-5).

- Page, with a live preview: https://shadcn.exchange/r/efferd/contact-5
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/efferd/contact-5-light-fa98965d6a6bd211.png
- Registry item: https://efferd.com/r/contact-5.json
- Categories: contact
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://efferd.com/r/contact-5.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- Registry items: `button`, `field`, `input`, `textarea`, `@efferd/decor-icon`

## Files

### `registry/blocks/contact/5/contact-section.tsx`

```tsx
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { Field, FieldGroup, FieldLabel } from "@/components/ui/field";
import { Input } from "@/components/ui/input";
import { Textarea } from "@/components/ui/textarea";
import { DecorIcon } from "@/components/decor-icon";

const data = [
	{
		title: "Call Us Today!",
		value: "+1 (555) 123-4567",
		icon: (
			<IconPlaceholder
				hugeicons="Call02Icon"
				lucide="Phone"
				phosphor="PhoneIcon"
				remixicon="RiPhoneLine"
				tabler="IconPhone"
			/>
		),
	},
	{
		title: "Send an Email",
		value: "mail@example.com",
		icon: (
			<IconPlaceholder
				hugeicons="MailSend01Icon"
				lucide="Mail"
				phosphor="EnvelopeIcon"
				remixicon="RiMailLine"
				tabler="IconMail"
			/>
		),
	},
];

export function ContactSection() {
	return (
		<div className="relative mx-auto w-full max-w-lg border">
			<div className="border-b px-6 py-8">
				<div className="mb-8 flex flex-col gap-2">
					<h1 className="font-heading font-semibold text-xl md:text-2xl">Get in touch</h1>{" "}
					<p className="text-muted-foreground text-sm">
						Have a question, feedback, or want to collaborate? <br /> We'd love
						to hear from you.
					</p>
				</div>

				<div className="grid gap-2 md:grid-cols-2">
					{data.map((item) => (
						<div className="flex items-center gap-4 p-2" key={item.title}>
							<div className="[&_svg]:size-5 [&_svg]:text-muted-foreground">
								{item.icon}
							</div>
							<div className={cn("flex flex-col gap-y-0.5")}>
								<h2 className="font-heading text-sm">{item.title}</h2>
								<p className="text-muted-foreground text-xs">{item.value}</p>
							</div>
						</div>
					))}
				</div>
			</div>

			<div className="px-6 py-8">
				<div className="mb-8 flex flex-col gap-1.5">
					<h2 className="font-heading font-medium text-xl">Send a message</h2>{" "}
					<p className="text-muted-foreground text-sm">
						Fill out the form below and our team will get back to you shortly.
					</p>
				</div>
				<ContactForm />
			</div>
			<DecorIcon position="top-left" />
			<DecorIcon position="top-right" />
			<DecorIcon position="bottom-left" />
			<DecorIcon position="bottom-right" />
		</div>
	);
}

function ContactForm() {
	return (
		<form className="w-full">
			<FieldGroup>
				<div className="grid grid-cols-2 gap-4">
					<Field>
						<FieldLabel htmlFor="first-name">First name</FieldLabel>
						<Input autoComplete="off" id="first-name" placeholder="John" />
					</Field>
					<Field>
						<FieldLabel htmlFor="last-name">Last name</FieldLabel>
						<Input autoComplete="off" id="last-name" placeholder="Doe" />
					</Field>
				</div>
				<Field>
					<FieldLabel htmlFor="email">Email</FieldLabel>
					<Input
						autoComplete="off"
						id="email"
						placeholder="johndoe@example.com"
						type="email"
					/>
				</Field>
				<Field>
					<FieldLabel htmlFor="phone">Phone</FieldLabel>
					<Input
						autoComplete="off"
						id="phone"
						placeholder="+1 (555) 123-4567"
						type="tel"
					/>
				</Field>
				<Field>
					<FieldLabel htmlFor="message">Message</FieldLabel>
					<Textarea
						autoComplete="off"
						id="message"
						placeholder="Your message"
					/>
				</Field>
			</FieldGroup>
			<Button className="mt-8 w-full" type="button">
				Submit
			</Button>
		</form>
	);
}
```
