Get everything for $99, lifetime

Components

Marquee

Pro
GitHub
Figma
Slack
Framer
Apple
Chrome
GitLab
Trello
Dribbble
CodePen
“Motion that finally feels like it belongs in the product.”

Aria Chen

Design, Linear

“Dropped it in and shipped the same afternoon.”

Juno Park

Frontend, Vercel

“The hover slowdown alone sold the whole team.”

Kai Moreno

Founder, Arc

“Every detail is considered. Nothing is decoration.”

Nova Reyes

Product, Raycast

“The first marquee I've used that respects the keyboard.”

Rio Tanaka

Engineering, Resend

“Fling it, drag it, hover it. It always lands softly.”

Sage Okafor

Design, Cal.com

Installation

ProRequires a Planes Pro license.
npx shadcn add @useplanes/marquee

Works once the @useplanes registry is set up in your project (one-time). After that, copy and run commands directly.

Unlock with Planes Pro

$99 once · 161 Pro components · lifetime updates.

import { Marquee } from "@/components/ui/Marquee";

<Marquee speed={40} pauseOnHover="slow" fade>
  {logos.map((l) => <Logo key={l.id} {...l} />)}
</Marquee>

Examples

Two opposing rows

Compose rows; each Marquee owns its own frame loop and pauses when scrolled out of view or the tab is hidden.

<Marquee speed={40}>{cards}</Marquee>
<Marquee speed={40} direction="right">{cards}</Marquee>

Reduced motion

Renders a single static, natively scrollable row with no frame loop and no edge mask.

<Marquee>{logos}</Marquee>

Use cases

  • Logo walls

    Customer logos that keep moving without ever snapping to a stop under the cursor.

  • Testimonial rows

    Two rows in opposite directions; keyboard focus on a card pauses so it can be read.

  • Ticker tape

    Vertical news or changelog feed in a sidebar.

  • Product screenshots

    A draggable strip visitors can fling through.