contact-3
fulldev-ui/contact-3FreeBlock
fulldev/ui publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by fulldev/ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.full.dev/r/contact-3.jsonSource
1---2import type { ImageMetadata } from "astro"3import { Image } from "astro:assets"45import { cn } from "@/lib/utils"6import { Button } from "@/components/ui/button"7import {8 Field,9 FieldGroup,10 FieldLabel,11 FieldLegend,12 FieldSet,13} from "@/components/ui/field"14import { Icon } from "@/components/ui/icon"15import { Input } from "@/components/ui/input"16import { Section, SectionContainer } from "@/components/ui/section"17import { Textarea } from "@/components/ui/textarea"1819type Props = {20 class?: string21 title: string22 description: string23 contactItems: {24 icon: string25 title: string26 description: string27 href?: string28 }[]29 form: {30 legend: string31 nameLabel: string32 namePlaceholder: string33 emailLabel: string34 emailPlaceholder: string35 messageLabel: string36 messagePlaceholder: string37 actionLabel: string38 }39 image: {40 src: ImageMetadata41 alt: string42 }43}4445const {46 class: className,47 title,48 description,49 contactItems,50 form,51 image,52} = Astro.props53---5455<Section class={cn("", className)}>56 <SectionContainer class="grid gap-12 lg:grid-cols-2 lg:items-start">57 <div class="flex flex-col gap-8">58 <div class="flex flex-col gap-4">59 <h260 class="text-foreground text-3xl font-semibold tracking-tight text-balance sm:text-4xl"61 >62 {title}63 </h2>64 <p class="text-muted-foreground max-w-xl text-base leading-relaxed">65 {description}66 </p>67 </div>68 <div class="grid gap-4 sm:grid-cols-2">69 {70 contactItems.map((item) => (71 <div class="flex gap-4">72 {item.href ? (73 <Button74 as="a"75 href={item.href}76 variant="secondary"77 size="icon"78 class="text-primary shrink-0"79 aria-label={item.title}80 >81 <Icon name={item.icon} />82 </Button>83 ) : (84 <Button85 variant="secondary"86 size="icon"87 class="text-primary shrink-0"88 aria-label={item.title}89 >90 <Icon name={item.icon} />91 </Button>92 )}93 <div class="flex flex-col gap-1">94 <p class="text-foreground text-sm font-medium">{item.title}</p>95 <p class="text-muted-foreground text-sm leading-relaxed">96// … truncated
What it pulls in
Other registry items
Files it writes
More from fulldev/ui
All 144 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| article-1article-1 | fulldev/ui | Blocks | Free | no deps | |
| article-2article-2 | fulldev/ui | Blocks | Free | no deps | |
| articles-1articles-1 | fulldev/ui | Blocks | Free | no deps | |
| articles-2articles-2 | fulldev/ui | Blocks | Free | no deps | |
| articles-3articles-3 | fulldev/ui | Blocks | Free | no deps | |
| articles-4articles-4 | fulldev/ui | Blocks | Free | no deps | |
| banner-1banner-1 | fulldev/ui | Blocks | Free | no deps | |
| banner-2banner-2 | fulldev/ui | Blocks | Free | no deps |
