cta-7
fulldev-ui/cta-7FreeBlock
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/cta-7.jsonSource
1---2import type { ImageMetadata } from "astro"34import { cn } from "@/lib/utils"5import {6 Avatar,7 AvatarFallback,8 AvatarGroup,9 AvatarGroupCount,10 AvatarImage,11} from "@/components/ui/avatar"12import { Button } from "@/components/ui/button"13import { Section, SectionContainer } from "@/components/ui/section"1415type Props = {16 class?: string17 title: string18 description: string19 buttons?: {20 label: string21 href: string22 variant?: "default" | "outline" | "secondary" | "ghost"23 }[]24 socialProof?: {25 avatars: {26 image?: ImageMetadata27 initials: string28 name?: string29 }[]30 count?: string | number31 rating?: number32 text: string33 }34}3536const {37 class: className,38 title,39 description,40 buttons,41 socialProof,42} = Astro.props43---4445<Section class={cn("bg-primary/10 border-primary/15 border-y", className)}>46 <SectionContainer class="items-center text-center">47 <div class="flex max-w-2xl flex-col items-center gap-5">48 <h249 class="text-foreground text-3xl leading-[1.1] font-semibold tracking-tight text-balance sm:text-4xl"50 >51 {title}52 </h2>53 <p class="text-muted-foreground text-lg leading-relaxed text-balance">54 {description}55 </p>56 </div>57 {58 buttons?.length && (59 <div class="flex flex-wrap justify-center gap-3">60 {buttons.map(({ href, label, ...button }, index) => (61 <Button62 as="a"63 href={href}64 size="lg"65 variant={66 button.variant ?? (index === 0 ? "default" : "secondary")67 }68 {...button}69 >70 {label}71 </Button>72 ))}73 </div>74 )75 }76 {77 socialProof && (78 <div class="flex flex-col items-center gap-4">79 <AvatarGroup>80 {socialProof.avatars.map((avatar) => (81 <Avatar class="ring-primary/10 bg-background size-11 ring">82 <AvatarImage83 src={avatar.image}84 alt={avatar.name ?? avatar.initials}85 />86 <AvatarFallback>{avatar.initials}</AvatarFallback>87 </Avatar>88 ))}89 {socialProof.count && (90 <AvatarGroupCount class="bg-background text-foreground ring-primary/10 size-11 ring">91 {socialProof.count}92 </AvatarGroupCount>93 )}94 </AvatarGroup>95// … 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 |
