Marquee
DisplayMITInfinite-scrolling row of children — logos, testimonials, badges. Pure CSS, fade edges, pause-on-hover.
bun add @otfdashkit/ui
Preview
MarqueeDisplay
Loading Storybook preview…
Code
@otfdashkit/uiimport { Marquee } from '@otfdashkit/ui'
const LOGOS = ['Acme', 'Globex', 'Initech', 'Umbrella', 'Hooli', 'Wonka', 'Stark Industries', 'Cyberdyne']
const LogoChip = ({ name }: { name: string }) => (
<div className="flex h-12 min-w-[140px] items-center justify-center rounded-md border border-border bg-card px-6 font-mono text-sm uppercase tracking-widest text-muted-foreground">
{name}
</div>
)
export function Example() {
return (
<Marquee>
{LOGOS.map((n) => (
<LogoChip key={n} name={n} />
))}
</Marquee>
)
}
Free with the SDK. This component ships in @otfdashkit/ui under the MIT license.
Kit for this component
Landing templates$9 each
Scroll logos or testimonials in a continuous marquee.
Props
Props declared in the Marquee source. Inherited HTML attributes are not listed.
| Prop | Type | Default | Description |
|---|---|---|---|
| childrenrequired | ReactNode | Children rendered inside the scrolling track. Cloned once internally for a seamless loop. | |
| direction | 'left' | 'right' | 'left' | Scroll direction. |
| fade | boolean | true | Soft fade mask at left + right edges. |
| gap | string | 'gap-8' | Gap between items, e.g. 'gap-4', 'gap-8'. Default 'gap-8'. |
| pauseOnHover | boolean | true | Pause animation on hover. |
| speed | 'slow' | 'normal' | 'fast' | 'normal' | Animation speed. |