GodUI

Marquee

An infinite, seamless scrolling row or column of content that pauses on hover.

Trusted by fast-moving teams

Northwind
Globex
Acme
Initech
Hooli
Stark
Umbra
Vertex

Installation

pnpm dlx shadcn@latest add "https://godui.design/r/marquee.json"

Marquee duplicates its children into a seamless looping track. The animation is pure CSS, so it stays smooth even with many items, and respects prefers-reduced-motion.

Usage

tsx
 
import { Marquee } from "@/components/godui/marquee";
tsx
 
<Marquee>
  {items.map((item) => (
    <Card key={item.id} {...item} />
  ))}
</Marquee>

Direction

"left" / "right" scroll horizontally; "up" / "down" scroll vertically (give the marquee a fixed height).

tsx
 
<Marquee direction="right" />
<Marquee direction="up" className="h-96" />

Speed

speed is the loop duration in seconds — higher is slower.

tsx
 
<Marquee speed={15} />

Examples

Reverse direction

DesignEngineeringMotionCraftDetailSystems

Vertical

Give a vertical marquee a fixed height; it scrolls along the column.

Smoothest UI all year
Spring physics done right
It just worked
Feels premium
Shipped in a day

Props

PropTypeDefaultDescription
direction"left" | "right" | "up" | "down""left"Scroll direction.
speednumber40Loop duration in seconds — higher is slower.
pauseOnHoverbooleantruePause while the pointer is over the marquee.
fadebooleantrueFade the leading and trailing edges.
repeatnumber4Times the children are duplicated to fill the track.

Marquee also forwards every standard <div> attribute to the root element.

On this page

Built with GodUI

Beautifully crafted motion components for modern interfaces.

Star on GitHub