Hero 01
shadcn-ui-blocks-shadcnship/hero-01FreeBlock
Two-column hero section with an announcement badge, headline, subtitle, and primary/secondary CTA buttons. Place it as the first section of your landing page to immediately communicate your product value and drive sign-ups.
See it running
Open the demo on shadcn-ui-blocks
shadcnship.com/blocks/hero-01Install it
npx shadcn@latest add https://shadcnship.com/r/hero-01.jsonSource
1import { ArrowUpRight } from "lucide-react";2import { cn } from "@/lib/utils";3import { Badge } from "@/components/ui/badge";4import { Button } from "@/components/ui/button";56interface Hero01Props {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 Hero01 = ({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-4.webp",33 className,34}: Hero01Props) => {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="flex flex-col gap-8 lg:flex-row lg:items-center">44 <div className="flex flex-1 flex-col items-center gap-4 text-center lg:items-start lg:text-left">45 {badge && (46 <Badge47 variant="secondary"48 className="border border-border py-1"49 asChild50 >51 <a href={badge.url}>{badge.text}</a>52 </Badge>53 )}54 <h1 className="text-4xl leading-tight font-medium tracking-tight md:text-5xl lg:text-6xl">55 {title}56 </h1>57 <p className="max-w-md text-muted-foreground md:text-lg">58 {description}59 </p>60 {buttons && buttons.length > 0 && (61 <div className="grid w-full grid-cols-1 gap-4 sm:w-fit sm:grid-cols-2">62 {buttons.map((btn) => (63 <Button64 key={btn.text}65 size="lg"66 variant={btn.variant ?? "default"}67 className="w-full"68 asChild69 >70 <a href={btn.url}>71 {btn.text}72 {btn.icon}73 </a>74 </Button>75// … 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 |
