contact-2
efferd/contact-2FreeBlock
Modern contact card with info section and built-in form area.
Install it
npx shadcn@latest add https://legacy.efferd.com/r/contact-2.jsonSource
1import { type LucideIcon, PlusIcon } from "lucide-react";2import type React from "react";3import { cn } from "@/lib/utils";45type ContactInfoProps = React.ComponentProps<"div"> & {6 icon: LucideIcon;7 label: string;8 value: string;9};1011type ContactCardProps = React.ComponentProps<"div"> & {12 // Content props13 title?: string;14 description?: string;15 contactInfo?: ContactInfoProps[];16 formSectionClassName?: string;17};1819export function ContactCard({20 title = "Contact With Us",21 description = "If you have any questions regarding our Services or need help, please fill out the form here. We do our best to respond within 1 business day.",22 contactInfo,23 className,24 formSectionClassName,25 children,26 ...props27}: ContactCardProps) {28 return (29 <div30 className={cn(31 "relative grid h-full w-full border md:grid-cols-2 lg:grid-cols-3",32 className33 )}34 {...props}35 >36 <PlusIcon37 className="-top-[12.5px] -left-[12.5px] absolute h-6 w-6"38 strokeWidth={1}39 />40 <PlusIcon41 className="-top-[12.5px] -right-[12.5px] absolute h-6 w-6"42 strokeWidth={1}43 />44 <PlusIcon45 className="-bottom-[12.5px] -left-[12.5px] absolute h-6 w-6"46 strokeWidth={1}47 />48 <PlusIcon49 className="-right-[12.5px] -bottom-[12.5px] absolute h-6 w-6"50 strokeWidth={1}51 />5253 <div className="col-span-1 flex flex-col justify-between bg-secondary/50 lg:col-span-2 dark:bg-background">54 <div className="relative h-full space-y-4 px-4 py-8 md:p-8">55 <h1 className="font-semibold text-3xl md:text-4xl lg:text-5xl">56 {title}57 </h1>58 <p className="max-w-xl text-muted-foreground text-sm md:text-base lg:text-lg">59 {description}60 </p>61 <div className="grid gap-4 md:grid md:grid-cols-2 lg:grid-cols-3">62 {contactInfo?.map((info) => (63 <ContactInfo key={info.label} {...info} />64 ))}65 </div>66 </div>67 </div>68 <div69 className={cn(70 "col-span-1 flex h-full w-full items-center border-t bg-card px-4 py-8 md:border-t-0 md:border-l dark:bg-card/50",71 formSectionClassName72 )}73 >74 {children}75 </div>76 </div>77 );78}7980function ContactInfo({81 icon: Icon,82 label,83 value,84 className,85 ...props86}: ContactInfoProps) {87 return (88 <div className={cn("flex items-center gap-3 py-3", className)} {...props}>89// … truncated
Files it writes
More from efferd
All 40 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| auth-1auth-1 | efferd | Blocks | Free | no deps · 2 files | |
| auth-2auth-2 | efferd | Blocks | Free | 1 dep · 3 files | |
| contact-1contact-1 | efferd | Blocks | Free | no deps | |
| cta-1cta-1 | efferd | Blocks | Free | no deps | |
| cta-2cta-2 | efferd | Blocks | Free | no deps | |
| cta-3cta-3 | efferd | Blocks | Free | no deps | |
| cta-4cta-4 | efferd | Blocks | Free | no deps | |
| cta-5cta-5 | efferd | Blocks | Free | no deps |
