bearnie

Marquee

An infinite scrolling marquee for logos, testimonials, and badges.

Astro
Tailwind CSS
TypeScript
Zero runtime
Accessible
Open source

Installation

npx bearnie add marquee
npx bearnie add marquee

Usage

import { Marquee } from "@/components/bearnie/marquee"
<Marquee>
  <img src="/logos/one.svg" alt="Company one" />
  <img src="/logos/two.svg" alt="Company two" />
</Marquee>

The children are duplicated once under the hood (hidden from screen readers) to make the loop seamless, and the animation is pure CSS — no JavaScript ships with this component. Scrolling pauses on hover and stops entirely for visitors with prefers-reduced-motion.

Examples

Reverse direction and speed

Use direction="right" to reverse and duration (seconds per loop) to control speed.

Fast and in reverseFast and in reverseFast and in reverse

Without edge fade

One
Two
Three
Four

Props

Prop Type Default Description
duration number 30 Seconds for one full loop (lower is faster)
direction “left” | “right” “left” Scroll direction
pauseOnHover boolean true Pause the animation while hovered
fade boolean true Fade the edges out with a mask
gap number 32 Gap between items in px
class string - Additional CSS classes