102 Hero blocks built with Shadcn UI, Tailwind & React.
import { ArrowRight, ArrowUpRight } from "lucide-react";import { Badge } from "@/components/ui/badge";import { Button } from "@/components/ui/button";interface Hero1Props {badge?: string;heading: string;description: string;buttons?: {primary?: {text: string;url: string;};secondary?: {text: string;url: string;};};image: {src: string;alt: string;};}const Hero1 = ({badge = "✨ Your Website Builder",heading = "Blocks Built With Shadcn & Tailwind",description = "Finely crafted components built with React, Tailwind and Shadcn UI. Developers can copy and paste these blocks directly into their project.",buttons = {primary: {text: "Discover all components",url: "https://www.shadcnblocks.com",},secondary: {text: "View on GitHub",url: "https://www.shadcnblocks.com",},},image = {src: "https://www.shadcnblocks.com/images/block/placeholder-1.svg",alt: "Hero section demo image showing interface components",},}: Hero1Props) => {return (<section className="py-32"><div className="container"><div className="grid items-center gap-8 lg:grid-cols-2"><div className="flex flex-col items-center text-center lg:items-start lg:text-left">{badge && (<Badge variant="outline">{badge}<ArrowUpRight className="ml-2 size-4" /></Badge>)}<h1 className="my-6 text-pretty text-4xl font-bold lg:text-6xl">{heading}</h1><p className="mb-8 max-w-xl text-muted-foreground lg:text-xl">{description}</p><div className="flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start">{buttons.primary && (<Button asChild className="w-full sm:w-auto"><a href={buttons.primary.url}>{buttons.primary.text}</a></Button>)}{buttons.secondary && (<Button asChild variant="outline" className="w-full sm:w-auto"><a href={buttons.secondary.url}>{buttons.secondary.text}<ArrowRight className="size-4" /></a></Button>)}</div></div><imgsrc={image.src}alt={image.alt}className="max-h-96 w-full rounded-md object-cover"/></div></div></section>);};export { Hero1 };
import { Star } from "lucide-react";import React from "react";import { Avatar, AvatarImage } from "@/components/ui/avatar";import { Button } from "@/components/ui/button";interface Hero7Props {heading?: string;description?: string;button?: {text: string;url: string;};reviews?: {count: number;avatars: {src: string;alt: string;}[];};}const Hero7 = ({heading = "A Collection of Components Built With Shadcn & Tailwind",description = "Finely crafted components built with React, Tailwind and Shadcn UI. Developers can copy and paste these blocks directly into their project.",button = {text: "Discover all components",url: "https://www.shadcnblocks.com",},reviews = {count: 200,avatars: [{src: "https://www.shadcnblocks.com/images/block/avatar-1.webp",alt: "Avatar 1",},{src: "https://www.shadcnblocks.com/images/block/avatar-2.webp",alt: "Avatar 2",},{src: "https://www.shadcnblocks.com/images/block/avatar-3.webp",alt: "Avatar 3",},{src: "https://www.shadcnblocks.com/images/block/avatar-4.webp",alt: "Avatar 4",},{src: "https://www.shadcnblocks.com/images/block/avatar-5.webp",alt: "Avatar 5",},],},}: Hero7Props) => {return (<section className="py-32"><div className="container text-center"><div className="mx-auto flex max-w-screen-lg flex-col gap-6"><h1 className="text-3xl font-extrabold lg:text-6xl">{heading}</h1><p className="text-balance text-muted-foreground lg:text-lg">{description}</p></div><Button asChild size="lg" className="mt-10"><a href={button.url}>{button.text}</a></Button><div className="mx-auto mt-10 flex w-fit flex-col items-center gap-4 sm:flex-row"><span className="mx-4 inline-flex items-center -space-x-4">{reviews.avatars.map((avatar, index) => (<Avatar key={index} className="size-14 border"><AvatarImage src={avatar.src} alt={avatar.alt} /></Avatar>))}</span><div><div className="flex items-center gap-1">{[...Array(5)].map((_, index) => (<Starkey={index}className="size-5 fill-yellow-400 text-yellow-400"/>))}</div><p className="text-left font-medium text-muted-foreground">from {reviews.count}+ reviews</p></div></div></div></section>);};export { Hero7 };
import { Button } from "@/components/ui/button";interface Integration {id: string;icon: JSX.Element;}interface Hero32Props {heading?: string;description?: string;button?: {text: string;url: string;};integrations?: Integration[][];}const Hero32 = ({heading = "Blocks Built With Shadcn & Tailwind",description = "Fully decomposable components, all the images and background patterns are individual images or svgs that can be replaced.",button = {text: "Discover all components",url: "https://www.shadcnblocks.com",},integrations = [[{id: "integration-1",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-1.svg"/>),},{id: "integration-2",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-2.svg"/>),},{id: "integration-3",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-3.svg"/>),},{id: "integration-4",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-4.svg"/>),},{id: "integration-5",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-5.svg"/>),},],[{id: "integration-6",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-6.svg"/>),},{id: "integration-7",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-1.svg"/>),},{id: "integration-8",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-2.svg"/>),},{id: "integration-9",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-3.svg"/>),},{id: "integration-10",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-4.svg"/>),},],[{id: "integration-11",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-5.svg"/>),},{id: "integration-12",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-6.svg"/>),},{id: "integration-13",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-1.svg"/>),},{id: "integration-14",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-2.svg"/>),},{id: "integration-15",icon: (<imgalt="Integration"src="https://www.shadcnblocks.com/images/block/block-3.svg"/>),},],],}: Hero32Props) => {return (<section className="relative overflow-hidden"><div className="absolute inset-0 overflow-hidden"><svgxmlns="http://www.w3.org/2000/svg"viewBox="0 0 1400 600"className="min-h-full min-w-full"><defs><patternid="grid"width="24"height="24"patternUnits="userSpaceOnUse"><pathd="M 24 0 L 0 0 0 24"fill="none"stroke="hsl(var(--muted))"strokeWidth="1"strokeOpacity={0.5}/></pattern></defs><rect width="1400" height="600" fill="url(#grid)" /></svg></div><div className="relative"><div className="absolute left-0 z-10 hidden h-full w-1/2 bg-[linear-gradient(to_right,hsl(var(--background))_85%,transparent_100%)] md:block"></div><div className="md:-space-x-26 container relative flex flex-col items-start md:flex-row md:items-center"><div className="z-20 -mx-[calc(theme(container.padding))] w-[calc(100%+2*theme(container.padding))] shrink-0 bg-background px-[calc(theme(container.padding))] pt-32 md:w-1/2 md:bg-transparent md:pb-32"><div className="flex flex-col items-start text-left"><div className="max-w-sm"><h1 className="my-6 text-pretty text-4xl font-bold lg:text-6xl">{heading}</h1><p className="text-muted-foreground">{description}</p><Button asChild size="lg" className="mt-10"><a href={button.url}>{button.text}</a></Button></div></div></div><div><div className="flex flex-col gap-16 pb-8 pt-12 md:py-32">{integrations.map((line, i) => (<div key={i} className="flex gap-x-24 odd:-translate-x-24">{line.map((integration) => (<divkey={integration.id}className="size-24 rounded-xl border border-background bg-background shadow-xl"><div className="h-full w-full bg-muted/20 p-4">{integration.icon}</div></div>))}</div>))}</div></div></div></div></section>);};export { Hero32 };
import { ArrowDownRight, Star } from "lucide-react";import { Avatar, AvatarImage } from "@/components/ui/avatar";import { Button } from "@/components/ui/button";interface Hero3Props {heading?: string;description?: string;buttons?: {primary?: {text: string;url: string;};secondary?: {text: string;url: string;};};reviews?: {count: number;avatars: {src: string;alt: string;}[];};}const Hero3 = ({heading = "Blocks built with Shadcn & Tailwind",description = "Finely crafted components built with React, Tailwind and Shadcn UI. Developers can copy and paste these blocks directly into their project.",buttons = {primary: {text: "Sign Up",url: "https://www.shadcnblocks.com",},secondary: {text: "Get Started",url: "https://www.shadcnblocks.com",},},reviews = {count: 200,avatars: [{src: "https://www.shadcnblocks.com/images/block/avatar-1.webp",alt: "Avatar 1",},{src: "https://www.shadcnblocks.com/images/block/avatar-2.webp",alt: "Avatar 2",},{src: "https://www.shadcnblocks.com/images/block/avatar-3.webp",alt: "Avatar 3",},{src: "https://www.shadcnblocks.com/images/block/avatar-4.webp",alt: "Avatar 4",},{src: "https://www.shadcnblocks.com/images/block/avatar-5.webp",alt: "Avatar 5",},],},}: Hero3Props) => {return (<section className="py-32"><div className="container grid items-center gap-10 lg:grid-cols-2 lg:gap-20"><div className="mx-auto flex flex-col items-center text-center md:ml-auto lg:max-w-3xl lg:items-start lg:text-left"><h1 className="my-6 text-pretty text-4xl font-bold lg:text-6xl xl:text-7xl">{heading}</h1><p className="mb-8 max-w-xl text-muted-foreground lg:text-xl">{description}</p><div className="mb-12 flex w-fit flex-col items-center gap-4 sm:flex-row"><span className="inline-flex items-center -space-x-4">{reviews.avatars.map((avatar, index) => (<Avatar key={index} className="size-12 border"><AvatarImage src={avatar.src} alt={avatar.alt} /></Avatar>))}</span><div><div className="flex items-center gap-1">{[...Array(5)].map((_, index) => (<Starkey={index}className="size-5 fill-yellow-400 text-yellow-400"/>))}</div><p className="text-left font-medium text-muted-foreground">from {reviews.count}+ reviews</p></div></div><div className="flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start">{buttons.primary && (<Button asChild className="w-full sm:w-auto"><a href={buttons.primary.url}>{buttons.primary.text}</a></Button>)}{buttons.secondary && (<Button asChild variant="outline" className="w-full sm:w-auto"><a href={buttons.secondary.url}>{buttons.secondary.text}<ArrowDownRight className="ml-2 size-4" /></a></Button>)}</div></div><div className="flex bg-muted"><imgsrc="https://www.shadcnblocks.com/images/block/placeholder-1.svg"alt="placeholder hero"className="max-h-[600px] w-full rounded-md object-cover lg:max-h-[800px]"/></div></div></section>);};export { Hero3 };
import { AspectRatio } from "@/components/ui/aspect-ratio";import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";import { Button } from "@/components/ui/button";interface Testimonial {quote: string;author: string;role: string;company: string;avatars: Array<{image: string;fallback: string;}>;}interface Hero151Props {heading?: string;description?: string;button?: {text: string;url: string;};testimonial?: Testimonial;images: {first: string;second: string;third: string;fourth: string;};}const Hero151 = ({heading = "Blocks built with Shadcn & Tailwind",description = "Finely crafted components built with React, Tailwind and Shadcn UI. Developers can copy and paste these blocks directly into their project.",button = {text: "Get Started",url: "#",},testimonial = {quote: "Focused strategy, swift delivery",author: "John Doe",role: "CEO",company: "Company",avatars: [{ image: "https://shadcnblocks.com/images/block/avatar-1.webp", fallback: "AB" },{ image: "https://shadcnblocks.com/images/block/avatar-2.webp", fallback: "CD" },{ image: "https://shadcnblocks.com/images/block/avatar-3.webp", fallback: "EF" },],},images = {first: "https://shadcnblocks.com/images/block/placeholder-1.svg",second: "https://shadcnblocks.com/images/block/placeholder-dark-2.svg",third: "https://shadcnblocks.com/images/block/placeholder-dark-3.svg",fourth: "https://shadcnblocks.com/images/block/placeholder-dark-7-tall.svg",},}: Hero151Props) => {return (<section className="py-12 md:py-20"><div className="container"><div className="flex flex-col items-center gap-8 md:flex-row"><div className="flex-1"><div className="flex flex-col gap-4 lg:gap-8"><h1 className="max-w-[80%] text-4xl font-semibold leading-tight text-foreground lg:text-5xl xl:text-7xl">{heading}</h1><p className="text-lg leading-relaxed text-muted-foreground xl:text-2xl">{description}</p></div><div className="my-6 lg:my-10"><Button asChild size="lg"><a href={button.url}>{button.text}</a></Button></div><div className="flex flex-wrap items-center gap-3"><div className="relative flex -space-x-[1.5rem]">{testimonial.avatars.map((avatar, index) => (<Avatarkey={index}className={`relative z-${index + 1}0 flex h-12 w-12 flex-shrink-0 rounded-full border-2 border-white object-cover`}><AvatarImage src={avatar.image} alt="" /><AvatarFallback>{avatar.fallback}</AvatarFallback></Avatar>))}</div><div><p className="mb-1 text-sm italic text-muted2-foreground">"{testimonial.quote}"</p><p className="text-sm font-medium text-muted2-foreground">{testimonial.author}, {testimonial.role} @{testimonial.company}</p></div></div></div><div className="w-full flex-1"><div className="w-full max-w-[50rem]"><AspectRatio ratio={1 / 1} className="h-full w-full"><div className="grid h-full w-full grid-cols-2 grid-rows-2 gap-[3.5%]"><div className="overflow-hidden rounded-[5.2%] border border-muted bg-muted"><imgsrc={images.first}alt=""className="object-fit h-full w-full object-center"/></div><div className="relative overflow-hidden rounded-[5.2%] border border-muted bg-muted"><div className="absolute left-[5%] top-1/2 w-[110%] max-w-[25rem] -translate-y-1/2 overflow-hidden rounded-md"><AspectRatio ratio={1.739130435 / 1}><imgsrc={images.second}alt=""className="size-full object-cover object-center"/></AspectRatio></div></div><div className="relative overflow-hidden rounded-[5.2%] border border-muted bg-muted"><div className="absolute left-[9%] top-[9%] w-[200%] max-w-[37.5rem] overflow-hidden rounded-md"><AspectRatio ratio={1.6 / 1}><imgsrc={images.third}alt=""className="size-full object-cover object-center"/></AspectRatio></div></div><div className="relative overflow-hidden rounded-[5.2%] border border-muted bg-muted"><div className="relative left-[50%] top-[12%] w-[70%] max-w-[17.5rem] -translate-x-[50%]"><AspectRatio ratio={0.52 / 1}><imgsrc="https://shadcnblocks.com/images/block/mockups/phone-1.png"alt=""className="absolute z-20 w-full"/><imgsrc={images.fourth}alt=""className="absolute z-10 w-full rounded-[16%]"/></AspectRatio></div></div></div></AspectRatio></div></div></div></div></section>);};export { Hero151 };
import { ArrowUpRight } from "lucide-react";import { Button } from "@/components/ui/button";interface Hero47Props {heading?: string;subheading?: string;description?: string;image?: {src: string;alt: string;};buttons?: {primary?: {text: string;url: string;};secondary?: {text: string;url: string;};};}const Hero47 = ({heading = "Epic Blocks",subheading = " built with shadcn/ui & Tailwind",description = "Finely crafted components built with React, Tailwind and Shadcn UI. Developers can copy and paste these blocks directly into their project.",buttons = {primary: {text: "Get Started",url: "#",},secondary: {text: "Read the docs",url: "#",},},image = {src: "https://shadcnblocks.com/images/block/placeholder-dark-7-tall.svg",alt: "Placeholder",},}: Hero47Props) => {return (<section className="bg-background py-20 lg:py-32"><div className="container flex flex-col items-center gap-10 lg:my-0 lg:flex-row"><div className="flex flex-col gap-7 lg:w-2/3"><h2 className="text-5xl font-semibold text-foreground md:text-5xl lg:text-8xl"><span>{heading}</span><span className="text-muted-foreground">{subheading}</span></h2><p className="text-base text-muted-foreground md:text-lg lg:text-xl">{description}</p><div className="flex flex-wrap items-start gap-5 lg:gap-7"><Button asChild><a href={buttons.primary?.url}><div className="flex items-center gap-2"><ArrowUpRight className="size-4" /></div><span className="whitespace-nowrap pl-4 pr-6 text-sm lg:pl-6 lg:pr-8 lg:text-base">{buttons.primary?.text}</span></a></Button><Button asChild variant="link" className="underline"><a href={buttons.secondary?.url}>{buttons.secondary?.text}</a></Button></div></div><div className="relative z-10"><div className="absolute !left-1/2 top-2.5 !h-[92%] !w-[69%] -translate-x-[52%] overflow-hidden rounded-[35px]"><imgsrc={image.src}alt={image.alt}className="size-full object-cover object-[50%_0%]"/></div><imgclassName="relative z-10"src="https://shadcnblocks.com/images/block/mockups/phone-2.png"width={450}height={889}alt="iphone"/></div></div></section>);};export { Hero47 };
import { Wifi, Zap } from "lucide-react";import { Button } from "@/components/ui/button";interface Hero115Props {icon?: React.ReactNode;heading: string;description: string;button: {text: string;icon?: React.ReactNode;url: string;};trustText?: string;imageSrc?: string;imageAlt?: string;}const Hero115 = ({icon = <Wifi className="size-6" />,heading = "Blocks built with Shadcn & Tailwind",description = "Finely crafted components built with React, Tailwind and Shadcn UI. Developers can copy and paste these blocks directly into their project.",button = {text: "Discover Features",icon: <Zap className="ml-2 size-4" />,url: "https://www.shadcnblocks.com",},trustText = "Trusted by 25.000+ Businesses Worldwide",imageSrc = "https://shadcnblocks.com/images/block/placeholder-1.svg",imageAlt = "placeholder",}: Hero115Props) => {return (<section className="overflow-hidden py-32"><div className="container"><div className="flex flex-col gap-5"><div className="relative flex flex-col gap-5"><divstyle={{transform: "translate(-50%, -50%)",}}className="absolute left-1/2 top-1/2 -z-10 mx-auto size-[800px] rounded-full border p-16 [mask-image:linear-gradient(to_top,transparent,transparent,white,white,white,transparent,transparent)] md:size-[1300px] md:p-32"><div className="size-full rounded-full border p-16 md:p-32"><div className="size-full rounded-full border"></div></div></div><span className="mx-auto flex size-16 items-center justify-center rounded-full border md:size-20">{icon}</span><h2 className="mx-auto max-w-screen-lg text-balance text-center text-3xl font-medium md:text-6xl">{heading}</h2><p className="mx-auto max-w-screen-md text-center text-muted-foreground md:text-lg">{description}</p><div className="flex flex-col items-center justify-center gap-3 pb-12 pt-3"><Button size="lg" asChild><a href={button.url}>{button.text} {button.icon}</a></Button>{trustText && (<div className="text-xs text-muted-foreground">{trustText}</div>)}</div></div><imgsrc={imageSrc}alt={imageAlt}className="mx-auto h-full max-h-[524px] w-full max-w-screen-lg rounded-2xl object-cover"/></div></div></section>);};export { Hero115 };
import { HandHelping, Users, Zap } from "lucide-react";import { Badge } from "@/components/ui/badge";import { Separator } from "@/components/ui/separator";interface Feature {icon: React.ReactNode;title: string;description: string;}interface Hero45Props {badge?: string;heading: string;imageSrc?: string;imageAlt?: string;features?: Feature[];}const Hero45 = ({badge = "shadcnblocks.com",heading = "Blocks built with Shadcn & Tailwind",imageSrc = "https://shadcnblocks.com/images/block/placeholder-1.svg",imageAlt = "placeholder",features = [{icon: <HandHelping className="h-auto w-5" />,title: "Flexible Support",description:"Benefit from around-the-clock assistance to keep your business running smoothly.",},{icon: <Users className="h-auto w-5" />,title: "Collaborative Tools",description:"Enhance teamwork with tools designed to simplify project management and communication.",},{icon: <Zap className="h-auto w-5" />,title: "Lightning Fast Speed",description:"Experience the fastest load times with our high performance servers.",},],}: Hero45Props) => {return (<section className="py-32"><div className="container overflow-hidden"><div className="mb-20 flex flex-col items-center gap-6 text-center"><Badge variant="outline">{badge}</Badge><h1 className="text-4xl font-semibold lg:text-5xl">{heading}</h1></div><div className="relative mx-auto max-w-screen-lg"><imgsrc={imageSrc}alt={imageAlt}className="aspect-video max-h-[500px] w-full rounded-xl object-cover"/><div className="absolute inset-0 bg-gradient-to-t from-background via-transparent to-transparent"></div><div className="absolute -right-28 -top-28 -z-10 aspect-video h-72 w-96 opacity-40 [background-size:12px_12px] [mask-image:radial-gradient(ellipse_50%_50%_at_50%_50%,#000_20%,transparent_100%)] sm:bg-[radial-gradient(hsl(var(--muted-foreground))_1px,transparent_1px)]"></div><div className="absolute -left-28 -top-28 -z-10 aspect-video h-72 w-96 opacity-40 [background-size:12px_12px] [mask-image:radial-gradient(ellipse_50%_50%_at_50%_50%,#000_20%,transparent_100%)] sm:bg-[radial-gradient(hsl(var(--muted-foreground))_1px,transparent_1px)]"></div></div><div className="mx-auto mt-10 flex max-w-screen-lg flex-col md:flex-row">{features.map((feature, index) => (<>{index > 0 && (<Separatororientation="vertical"className="mx-6 hidden h-auto w-[2px] bg-gradient-to-b from-muted via-transparent to-muted md:block"/>)}<divkey={index}className="flex grow basis-0 flex-col rounded-md bg-background p-4"><div className="mb-6 flex size-10 items-center justify-center rounded-full bg-background drop-shadow-lg">{feature.icon}</div><h3 className="mb-2 font-semibold">{feature.title}</h3><p className="text-sm text-muted-foreground">{feature.description}</p></div></>))}</div></div></section>);};export { Hero45 };