Marquee
import { Marquee } from '@hanzo/ui'
Default
A horizontal ticker, looping a short row of pills.
Fast
Accessible
Themeable
Composable
Fast
Accessible
Themeable
Composable
export function Default() {return (<Marquee><XStack gap="$4" px="$4">{["Fast", "Accessible", "Themeable", "Composable"].map((label) => (<YStack key={label} px="$3" py="$2" rounded="$2" bg="$hover">{label}</YStack>))}</XStack></Marquee>)}
Vertical
The same ticker running top to bottom inside a fixed frame.
One
Two
Three
One
Two
Three
export function Vertical() {return (<YStack height={160}><Marquee vertical gap={12}><YStack gap="$2" py="$2">{["One", "Two", "Three"].map((label) => (<YStack key={label} px="$3" py="$2" rounded="$2" bg="$hover">{label}</YStack>))}</YStack></Marquee></YStack>)}
Reverse and pause on hover
Runs backwards, and stops while a pointer sits on it.
Hover to pause
Hover to pause
Hover to pause
Hover to pause
export function ReversePauseOnHover() {return (<Marquee reverse pauseOnHover repeat={4}><XStack px="$3">Hover to pause</XStack></Marquee>)}
Types
export type MarqueeProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'children' | 'style'> & {children: React.ReactNode/** How many times `children` is laid out per loop. */repeat?: number/** Run the track backwards. */reverse?: booleanpauseOnHover?: booleanvertical?: boolean/** Track travel, px/s. */speed?: number/** Space between copies, px — across the loop's seam too. */gap?: numberstyle?: React.CSSProperties}
Exports
Marqueetype MarqueeProps