cta-6
fulldev-ui/cta-6FreeBlock
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-6.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 class={cn("", className)}>51 <SectionContainer class="grid gap-12 lg:grid-cols-2 lg:items-center">52 <Image53 src={image.src}54 alt={image.alt}55 class="aspect-4/3 w-full rounded-xl border object-cover"56 widths={[640, 960, 1280]}57 sizes="(min-width: 1024px) 50vw, 100vw"58 />59 <div class="flex flex-col gap-6">60 <div class="flex flex-col gap-4">61 <h262 class="text-foreground text-3xl leading-[1.1] font-semibold tracking-tight text-balance sm:text-4xl"63 >64 {title}65 </h2>66 <p class="text-muted-foreground text-lg leading-relaxed">67 {description}68 </p>69 </div>70 {71 buttons?.length && (72 <div class="flex flex-wrap gap-3">73 {buttons.map(({ href, label, ...button }, index) => (74 <Button75 as="a"76 href={href}77 size="lg"78 variant={79 button.variant ?? (index === 0 ? "default" : "outline")80 }81 {...button}82 >83 {label}84 </Button>85 ))}86 </div>87 )88 }89 {90 socialProof && (91 <div class="flex items-center gap-3">92 <AvatarGroup>93 {socialProof.avatars.map((avatar) => (94 <Avatar class="ring-background size-10 ring">95 <AvatarImage96 src={avatar.image}97 alt={avatar.name ?? avatar.initials}98 />99// … 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 |
