Infinite Moving Cards
A seamless, auto-scrolling marquee effect perfect for testimonials, brand logos, or gallery items.
InteractiveScroll
Component Preview
It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity.
Charles DickensA Tale of Two CitiesTo be, or not to be, that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles And by opposing end them?
William ShakespeareHamletAll that we see or seem is but a dream within a dream.
Edgar Allan PoeA Dream Within a DreamIt is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife.
Jane AustenPride and PrejudiceCall me Ishmael. Some years ago—never mind how long precisely—having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world.
Herman MelvilleMoby-Dick
Installation
npm install framer-motion clsx tailwind-merge
Copy the source code below into components/ui/infinite-moving-cards.tsx:
Props & Customization
| Prop | Type | Default | Description |
|---|---|---|---|
| items | Array<Item> | required | Array of objects containing quote, name, and title. |
| direction | "left" | "right" | "left" | Direction of the scroll animation. |
| speed | "fast" | "normal" | "slow" | "fast" | Speed of the animation. |
| pauseOnHover | boolean | true | Whether to pause the animation on hover. |