Hero 02
shadcn-ui-blocks-shadcnship/hero-02FreeBlock
Centered hero section with a grid background, headline, CTA buttons, and a featured product screenshot. Use it above the fold on app or SaaS landing pages to visually showcase your product and guide visitors toward action.
See it running
Open the demo on shadcn-ui-blocks
shadcnship.com/blocks/hero-02Install it
npx shadcn@latest add https://shadcnship.com/r/hero-02.jsonSource
1import { ArrowUpRight } from "lucide-react";2import { cn } from "@/lib/utils";3import { Badge } from "@/components/ui/badge";4import { Button } from "@/components/ui/button";56interface Hero02Props {7 badge?: { text: string; url?: string };8 title?: string;9 description?: string;10 buttons?: {11 text: string;12 url?: string;13 icon?: React.ReactNode;14 variant?: "default" | "outline" | "ghost" | "secondary" | "link";15 }[];16 img?: string;17 className?: string;18}1920const Hero02 = ({21 badge = { text: "Production-ready components", url: "#" },22 title = "Shadcn UI Blocks, Copy & Customize",23 description = "Pre-built landing page components for React. Just copy the code and focus on what matters — your product.",24 buttons = [25 {26 text: "Browse Components",27 url: "#",28 icon: <ArrowUpRight className="size-4" />,29 },30 { text: "View Docs", url: "#", variant: "outline" },31 ],32 img = "https://www.shadcnship.com/images/placeholders/hero-architecture-8.webp",33 className,34}: Hero02Props) => {35 return (36 <section37 className={cn(38 "relative w-full overflow-hidden py-16 md:py-24",39 className,40 )}41 >42 <div className="container mx-auto px-6">43 <div className="relative z-10 flex flex-col items-center gap-4 text-center md:pt-16">44 {badge && (45 <Badge46 variant="secondary"47 className="border border-border py-1"48 asChild49 >50 <a href={badge.url}>{badge.text}</a>51 </Badge>52 )}5354 <h1 className="max-w-5xl text-4xl leading-tight font-medium tracking-tight md:text-5xl lg:text-6xl">55 {title}56 </h1>5758 <p className="max-w-3xl text-muted-foreground md:text-lg">59 {description}60 </p>6162 {buttons && buttons.length > 0 && (63 <div className="grid w-full grid-cols-1 gap-4 sm:w-fit sm:grid-cols-2">64 {buttons.map((btn) => (65 <Button66 key={btn.text}67 size="lg"68 variant={btn.variant ?? "default"}69 className="w-full"70 asChild71 >72 <a href={btn.url}>73 {btn.text}74 {btn.icon}75 </a>76 </Button>77 ))}78 </div>79 )}80 </div>8182 {img && (83// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from shadcn-ui-blocks
All 74 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Square Grid Backgroundbackground-01 | shadcn-ui-blocks | Blocks | Free | no deps | |
| Dot Pattern Backgroundbackground-02 | shadcn-ui-blocks | Blocks | Free | no deps | |
| Diagonal Stripes Backgroundbackground-03 | shadcn-ui-blocks | Blocks | Free | no deps | |
| Vertical Lines Backgroundbackground-04 | shadcn-ui-blocks | Blocks | Free | no deps | |
| Interactive Grid Backgroundbackground-05 | shadcn-ui-blocks | Blocks | Free | no deps | |
| Banner 01banner-01 | shadcn-ui-blocks | Blocks | Free | 1 dep | |
| Blog 01blog-01 | shadcn-ui-blocks | Blocks | Free | no deps | |
| Changelog 01changelog-01 | shadcn-ui-blocks | Blocks | Free | no deps |
