Marquee

Use Marquee for repeated content that can move through a bounded row, such as partner names or selected work. Keep the content understandable even when motion is disabled.

Preview

Reduce motion:Off
Tune:Off
Inspect
Next.jsReactTypeScriptTailwindMotion

Installation

Basic usage

TypeScript
logo-marquee.tsx

Examples

Adjust speed and direction to suit the row. Pause or reduce movement when the content needs close reading.

Usage

API

PropertyTypeDefaultDescription
childrenReact.ReactNoderequiredContent of one marquee segment. Can be a single small element or a long strip.
classNamestring—
containerClassNamestring—Class for the outer clipping container.
speednumber80Scroll speed in pixels per second. Higher = faster.
gapstring"4rem"Gap between repeated segments, any CSS length string.
direction"left" | "right" | "up" | "down""left"Scroll direction.
scrollVelocitybooleanfalseMultiply speed by scroll velocity (and flip direction on scroll-up).
maxVelocitynumber5Max speed multiplier when scrollVelocity is enabled.
pauseOnHoverbooleanfalsePause (with easing, not a snap) on hover.
repeatnumber | "auto""auto"How many segment copies to render. "auto" measures the container and fills 2× it.

Accessibility

Do not make movement the only way to access information. Provide readable static content when reduced motion is preferred.

Styling

Use className to control the row width, spacing, and visual treatment of its children.

Contact

Found a bug or need help using this component? Open an issue on GitHub.

License & Usage

Sona UI is available under the MIT license. You may use, modify, and distribute this component in personal and commercial projects.

Was this page helpful?

Your response helps us improve component docs.

Related components