cta-2
fulldev-ui/cta-2FreeBlock
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-2.jsonSource
1---2import type { ImageMetadata } from "astro"3import { Image } from "astro:assets"45import { cn } from "@/lib/utils"6import {7 Avatar,8 AvatarFallback,9 AvatarGroup,10 AvatarImage,11} from "@/components/ui/avatar"12import { Button } from "@/components/ui/button"13import { Rating } from "@/components/ui/rating"14import { Section, SectionContainer } from "@/components/ui/section"1516type Props = {17 class?: string18 title: string19 description: string20 buttons?: {21 label: string22 href: string23 variant?: "default" | "outline" | "secondary" | "ghost"24 }[]25 socialProof?: {26 avatars: {27 image?: ImageMetadata28 initials: string29 name?: string30 }[]31 rating: number32 text: string33 }34 image: {35 src: ImageMetadata36 alt: string37 }38}3940const {41 class: className,42 title,43 description,44 buttons,45 socialProof,46 image,47} = Astro.props48---4950<Section variant="floating" class={cn("", className)}>51 <SectionContainer class="grid gap-12 lg:grid-cols-2 lg:items-center">52 <div class="flex flex-col gap-6">53 <div class="flex flex-col gap-4">54 <h255 class="text-foreground text-3xl leading-[1.1] font-semibold tracking-tight text-balance sm:text-4xl"56 >57 {title}58 </h2>59 <p class="text-muted-foreground text-lg leading-relaxed">60 {description}61 </p>62 </div>63 {64 buttons?.length && (65 <div class="flex flex-wrap gap-3">66 {buttons.map(({ href, label, ...button }, index) => (67 <Button68 as="a"69 href={href}70 size="lg"71 variant={72 button.variant ?? (index === 0 ? "default" : "outline")73 }74 {...button}75 >76 {label}77 </Button>78 ))}79 </div>80 )81 }82 {83 socialProof && (84 <div class="flex items-center gap-3">85 <AvatarGroup>86 {socialProof.avatars.map((avatar) => (87 <Avatar class="ring-background size-10 ring">88 <AvatarImage89 src={avatar.image}90 alt={avatar.name ?? avatar.initials}91 />92 <AvatarFallback>{avatar.initials}</AvatarFallback>93 </Avatar>94 ))}95 </AvatarGroup>96 <div class="flex flex-col gap-0.5">97 <Rating value={socialProof.rating} />98// … 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 |
