heroes /
Centered Bold Hero
Centered hero with large gradient headline, badge pill, dual CTAs, and social proof. Clean and confident.
Preview
Source
tsx
"use client";
import { motion } from "framer-motion";
import { ArrowRight, Zap } from "lucide-react";
import { Button } from "@/components/ui/button";
export default function CenteredBoldHero() {
return (
<section className="relative min-h-screen flex items-center justify-center overflow-hidden bg-background">
{/* Subtle radial background glow */}
<div className="absolute inset-0 flex items-center justify-center pointer-events-none">
<div className="w-[800px] h-[600px] bg-primary/5 rounded-full blur-3xl" />
</div>
{/* Grid decoration */}
<div
className="absolute inset-0 opacity-[0.03] pointer-events-none"
style={{
backgroundImage:
"linear-gradient(var(--color-foreground) 1px, transparent 1px), linear-gradient(90deg, var(--color-foreground) 1px, transparent 1px)",
backgroundSize: "60px 60px",
}}
/>
<div className="relative z-10 container mx-auto px-6 text-center max-w-4xl">
<motion.div
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, ease: "easeOut" }}
className="flex flex-col items-center gap-6"
>
{/* Badge pill */}
<motion.span
initial={{ opacity: 0, scale: 0.8 }}
animate={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.4, delay: 0.1 }}
className="inline-flex items-center gap-2 text-xs font-semibold uppercase tracking-widest text-primary bg-primary/10 border border-primary/20 rounded-full px-4 py-2"
>
<Zap className="w-3.5 h-3.5" />
Introducing v2.0
</motion.span>
{/* Headline */}
<motion.h1
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, delay: 0.2 }}
className="text-5xl sm:text-6xl lg:text-7xl font-extrabold tracking-tight text-foreground leading-[1.05]"
>
The platform that
<br />
makes{" "}
<span className="bg-gradient-to-r from-primary via-violet-500 to-fuchsia-500 bg-clip-text text-transparent">
everything click
</span>
</motion.h1>
{/* Subtext */}
<motion.p
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, delay: 0.3 }}
className="text-lg sm:text-xl text-muted-foreground max-w-2xl leading-relaxed"
>
Stop cobbling together tools that don't talk to each other. One
workspace for design, development, and delivery — unified, fast, and
beautifully designed.
</motion.p>
{/* CTAs */}
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, delay: 0.4 }}
className="flex flex-col sm:flex-row items-center gap-3 pt-2"
>
<Button size="lg" className="gap-2 text-base min-w-[180px]">
Start for free
<ArrowRight className="w-4 h-4" />
</Button>
<Button size="lg" variant="outline" className="text-base min-w-[180px]">
See how it works
</Button>
</motion.div>
{/* Social proof */}
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ duration: 0.6, delay: 0.55 }}
className="flex flex-col sm:flex-row items-center gap-4 pt-4 text-sm text-muted-foreground"
>
<div className="flex -space-x-2">
{[5, 12, 23, 33, 44].map((n) => (
<img
key={n}
src={`https://i.pravatar.cc/32?img=${n}`}
alt="User avatar"
className="w-8 h-8 rounded-full border-2 border-background"
/>
))}
</div>
<span>
Trusted by{" "}
<strong className="text-foreground font-semibold">12,000+</strong>{" "}
teams worldwide
</span>
</motion.div>
</motion.div>
</div>
</section>
);
} Claude Code Instructions
CLI Install
npx innovations add centered-boldWhere to use it
Place this as the first visible section on your homepage, centered in the viewport.
In Astro (src/pages/index.astro):
import CenteredBoldHero from '../components/innovations/heroes/centered-bold';
<CenteredBoldHero client:load />
In Next.js (app/page.tsx):
import CenteredBoldHero from '@/components/innovations/heroes/centered-bold';
// Use as the first section in the page return
Edit the headline text, gradient key word, badge label, subtext, and CTA labels directly in the component. The gradient text span targets the most impactful word — swap it for your value prop.