Shimmer Sweep Headline
Original · freeA headline with a polished light sheen that glides endlessly across the letters and races faster on hover.
Copy prompt gives Claude Code, Cursor or v0 a ready-to-paste prompt that recreates this exact component.
npx shadcn@latest add https://webinnoventix.com/r/text-shimmer-headline.json"use client";
import { motion, useReducedMotion } from "motion/react";
const sparkles = [
{ top: "12%", left: "14%", size: 18, delay: 0 },
{ top: "22%", left: "82%", size: 14, delay: 1.1 },
{ top: "74%", left: "20%", size: 12, delay: 2.2 },
{ top: "68%", left: "78%", size: 16, delay: 0.6 },
];
export default function TextShimmerHeadline() {
const reduce = useReducedMotion();
return (
<section className="relative flex min-h-[80vh] items-center justify-center overflow-hidden bg-white px-6 py-24 dark:bg-zinc-950">
<style>{`
@keyframes tsh-shine { 0% { background-position: 120% center; } 100% { background-position: -20% center; } }
.tsh-shimmer { background-size: 220% auto; animation: tsh-shine 3.4s linear infinite; }
.tsh-shimmer:hover { animation-duration: 1.3s; }
@keyframes tsh-twinkle { 0%,100% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.15); } }
.tsh-spark { animation: tsh-twinkle 3s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
.tsh-shimmer, .tsh-spark { animation: none !important; }
}
`}</style>
<div aria-hidden="true" className="pointer-events-none absolute inset-0 -z-10">
<div className="absolute left-1/2 top-1/2 h-[30rem] w-[30rem] -translate-x-1/2 -translate-y-1/2 rounded-full bg-gradient-to-br from-violet-300/40 via-indigo-300/30 to-transparent blur-3xl dark:from-violet-700/30 dark:via-indigo-800/20" />
{sparkles.map((s, i) => (
<svg
key={i}
viewBox="0 0 24 24"
className="tsh-spark absolute fill-violet-400 dark:fill-violet-300"
style={{ top: s.top, left: s.left, width: s.size, height: s.size, animationDelay: `${s.delay}s` }}
>
<path d="M12 0l2.4 8.4L22 12l-7.6 3.6L12 24l-2.4-8.4L2 12l7.6-3.6L12 0z" />
</svg>
))}
</div>
<motion.div
initial={{ opacity: 0, y: 24 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, amount: 0.4 }}
transition={{ duration: 0.7, ease: "easeOut" }}
className="mx-auto max-w-3xl text-center"
>
<span className="inline-flex items-center gap-2 rounded-full border border-zinc-200 bg-white/70 px-4 py-1.5 text-sm font-medium text-zinc-600 shadow-sm backdrop-blur dark:border-zinc-800 dark:bg-zinc-900/70 dark:text-zinc-300">
<svg viewBox="0 0 24 24" className="h-4 w-4 fill-amber-400" aria-hidden="true">
<path d="M12 0l2.4 8.4L22 12l-7.6 3.6L12 24l-2.4-8.4L2 12l7.6-3.6L12 0z" />
</svg>
Shimmer headline
</span>
<h2 className="mt-8 text-4xl font-bold tracking-tight sm:text-6xl lg:text-7xl">
<span
className="tsh-shimmer bg-clip-text text-transparent"
style={{
backgroundImage:
"linear-gradient(110deg,#6366f1 18%,#8b5cf6 38%,#ffffff 50%,#8b5cf6 62%,#6366f1 82%)",
}}
>
Light that glides across the words
</span>
</h2>
<p className="mx-auto mt-6 max-w-xl text-lg leading-relaxed text-zinc-600 dark:text-zinc-400">
A polished sheen sweeps endlessly through the letters. Hover the
headline to make the shine race a little faster.
</p>
<div className="mt-10 flex flex-col items-center justify-center gap-3 sm:flex-row">
<a
href="#"
className="group relative inline-flex items-center gap-2 rounded-xl bg-zinc-900 px-6 py-3 text-sm font-semibold text-white shadow-lg transition hover:bg-zinc-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-violet-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:bg-white dark:text-zinc-900 dark:hover:bg-zinc-200 dark:focus-visible:ring-offset-zinc-950"
>
Get started
<svg
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth={2}
strokeLinecap="round"
strokeLinejoin="round"
aria-hidden="true"
className="h-4 w-4 transition group-hover:translate-x-0.5"
>
<path d="M5 12h14M13 6l6 6-6 6" />
</svg>
</a>
<motion.span
aria-hidden="true"
animate={reduce ? undefined : { y: [0, -6, 0] }}
transition={{ duration: 2.4, ease: "easeInOut", repeat: Infinity }}
className="text-sm text-zinc-500 dark:text-zinc-500"
>
No sign up required
</motion.span>
</div>
</motion.div>
</section>
);
}Dependencies
Licence
Built by Web Innoventix. Free for personal and commercial use, no attribution required.
Built by Web Innoventix
Need a custom interface, a full website, or SEO that gets you cited by AI? We design, build and rank it end to end.
Get a free quoteSimilar components
Browse all →
Aurora Gradient Headline
OriginalAn animated headline whose living multi-colour gradient drifts across every letter while the words blur and stagger into place on scroll.

Character Reveal Heading
OriginalA cinematic heading that blurs and lifts in one character at a time with a staggered, scroll-triggered reveal.

Rotating Words Headline
OriginalA headline whose final word flips through a curated set with a blurred vertical roll while the rest of the line stays perfectly still.

Spotlight Hero
OriginalA centred hero with a soft radial spotlight, badge and dual call-to-action.

Split Hero
OriginalA two-column hero pairing a headline and CTAs with a product mock and social proof.

Gradient Spotlight Hero
OriginalA minimal centred hero with a soft gradient-mesh backdrop, announcement pill and dual call-to-action buttons.

App Preview Hero
OriginalA centred hero that pairs headline copy with a realistic product dashboard mock built entirely from markup, complete with browser chrome and a floating notification card.

Waitlist Capture Hero
OriginalA dark, focused hero with an inline email capture form and avatar social proof, ready for pre-launch waitlists.

Image Backdrop Hero
OriginalA cinematic full-bleed hero with a layered image-style backdrop, overlaid left-aligned copy and a trusted-by logos strip.

Gradient Mesh Hero with Staggered Text Reveal
OriginalA full-screen hero pairing a drifting animated gradient-mesh backdrop with a word-by-word staggered blur-in headline and a logo marquee under the fold.

Typewriter Rotating Words Hero
OriginalA hero whose headline cycles through rotating words with a live typewriter caret over an animated grid backdrop, degrading to a gentle word swap when reduced motion is on.

Floating UI Cards Hero with Mouse Parallax
OriginalA hero with glassy floating UI cards that drift continuously and shift on mouse-parallax depth around a staggered centre headline.

