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
Installation
Basic usage
Examples
Adjust speed and direction to suit the row. Pause or reduce movement when the content needs close reading.
Usage
API
| Property | Type | Default | Description |
|---|---|---|---|
children | React.ReactNode | required | Content of one marquee segment. Can be a single small element or a long strip. |
className | string | — | |
containerClassName | string | — | Class for the outer clipping container. |
speed | number | 80 | Scroll speed in pixels per second. Higher = faster. |
gap | string | "4rem" | Gap between repeated segments, any CSS length string. |
direction | "left" | "right" | "up" | "down" | "left" | Scroll direction. |
scrollVelocity | boolean | false | Multiply speed by scroll velocity (and flip direction on scroll-up). |
maxVelocity | number | 5 | Max speed multiplier when scrollVelocity is enabled. |
pauseOnHover | boolean | false | Pause (with easing, not a snap) on hover. |
repeat | number | "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.