← Back to marketing blocks
contact-01
A centered contact form card with name, email and message fields. Use as a standalone contact page or a section.
Code
import * as React from "react"
import { cn } from "@/lib/utils"
import { Button } from "@/components/ui/button"
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card"
import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"
import { Textarea } from "@/components/ui/textarea"
export function ContactForm({
className,
...props
}: React.ComponentProps<"div">) {
return (
<div
className={cn(
"flex min-h-svh items-center justify-center p-6 md:p-10",
className
)}
{...props}
>
<Card className="w-full max-w-lg">
<CardHeader>
<CardTitle>Get in touch</CardTitle>
<CardDescription>
Tell us what you're building and we'll get back to you
within one business day.
</CardDescription>
</CardHeader>
<CardContent>
<form>
<div className="grid gap-4">
<div className="grid gap-4 sm:grid-cols-2">
<div className="grid gap-2">
<Label htmlFor="first-name">First name</Label>
<Input id="first-name" placeholder="Ada" required />
</div>
<div className="grid gap-2">
<Label htmlFor="last-name">Last name</Label>
<Input id="last-name" placeholder="Lovelace" required />
</div>
</div>
<div className="grid gap-2">
<Label htmlFor="email">Email</Label>
<Input
id="email"
type="email"
placeholder="ada@example.com"
required
/>
</div>
<div className="grid gap-2">
<Label htmlFor="message">Message</Label>
<Textarea
id="message"
placeholder="What can we help you with?"
className="min-h-28"
required
/>
</div>
<Button type="submit" className="w-full">
Send message
</Button>
</div>
</form>
</CardContent>
</Card>
</div>
)
}