components / marquee

marquee.

infinite scrolling ticker band. speed is px/s and the duration is derived from the measured content width, so a short label and a long sentence travel at the same rate. the copy count is computed from the container width rather than hardcoded, so narrow content never leaves a hole. static under reduced motion.

now building/
measure twicecut once

hover either band to hold it.

installation
bunx @justin06lee/chrome@latest add marquee
props
nametypedefaultdescription
children *ReactNode-
speednumber40px per second.
reversebooleanfalsescroll right instead of left.
gapnumber32gap between repeats, in px.
separatorReactNode-node rendered between repeats — a bullet, a slash, a stripe.
pauseOnHoverbooleantrue
fadebooleanfalsemask the left and right edges.
classNamestring-