Back to components
ComponentMarqueeFree

Infinite Marquee React component

A seamless scrolling text marquee with solid/gradient/outline text styles, a separator, double-row mode, and edge fade.

About the Infinite Marquee component

Infinite Marquee is a free scrolling text band: a phrase repeated with a separator glyph that loops seamlessly left or right, with an optional second row running the other way. The loop is a CSS keyframe that moves the track by half its width, timed from the measured width so the speed stays the same for any text length.

text is required, and separator (default ✦), repeatCount, gap and separatorGap set the content. textStyle chooses solid (textColor), gradient (gradientFrom, gradientTo, gradientAngle) or outline (strokeColor, strokeWidth). doubleRow, rowGap, fadeEdges, fadeWidth, backgroundColor, paddingTop, paddingBottom and borderRadius handle the layout. The band has role="marquee" with the text as its label and the moving copies are aria-hidden. The animation stops under prefers-reduced-motion and pauses while the band is off screen.

When to use it

Use it for announcement bands, sale or launch callouts, section dividers and big brand statements between sections.

For scrolling logos use Logo Marquee. For image cards, use Cards Hover Marquee.

Installation

Add the Infinite Marquee component to your project with the shadcn CLI. It lands in components/infinite-marquee.tsx as plain React + Tailwind CSS source you own and can edit.

Install
Copied!
npx shadcn@latest add @reactframe/infinite-marquee

Or copy the source by hand and install its dependencies:

Install
Copied!
npm install clsx tailwind-merge

Related components

Cards Hover Marquee
Diagonal Ticker Strips
Project Status Tile
Free
Color Reveal Grid
Free
WhatsApp Widget
Document Folder Stack
Free