React Marquee Component
A smooth, dependency-free React marquee for customer logos, product names or announcements. The duplicated track loops seamlessly and pauses when users prefer reduced motion.
Copy the code
const logos = ['ACME', 'VERTEX', 'NORTHSTAR', 'ORBIT']
export function Marquee() {
return (
<div className="group overflow-hidden border-y py-5" aria-label="Trusted companies">
<div className="flex w-max animate-[marquee_18s_linear_infinite] gap-12 group-hover:[animation-play-state:paused] motion-reduce:animate-none">
{[...logos, ...logos].map((logo, i) => <span key={i} aria-hidden={i >= logos.length} className="text-xl font-black">{logo}</span>)}
</div>
<style>{'@keyframes marquee{to{transform:translateX(-50%)}}'}</style>
</div>
)
}Tailwind CSS · no dependencies · MIT licensed. Paste it straight into any React, Next.js or Vite project.
About the react marquee
This react marquee is part of Empire UI - a free, open-source library of 34+ component types rendered across 41 visual styles, from glassmorphism to neo-brutalism. Every block is copy-paste ready in React and Tailwind CSS with no runtime dependencies.
Want it in a different look? Browse all 41 styles or grab the matching glassmorphism components.