Testimonial Marquee
NewRows of quote cards drifting in opposite directions. Pauses on hover, initials when there is no photo.
utils@soultel/marquee
“We moved billing over in an afternoon and never looked back.”
“The analytics alone paid for the yearly plan in a month.”
“Finally a dashboard my whole team actually opens.”
“Support answers before I finish typing the question.”
“Our onboarding drop off fell by a third after the switch.”
“Setup took ten minutes. The docs are that good.”
Installation
$ pnpm dlx shadcn@latest add @soultel/testimonial-marqueeNo namespace set up? npx shadcn@latest add https://asafefe.dev/r/testimonial-marquee.json works too.
Manual installation
- 1. Copy the source from the Code tab into components/testimonial-marquee.tsx.
Usage
import { TestimonialMarquee } from "@/components/testimonial-marquee"
export function Testimonials() {
return (
<TestimonialMarquee
testimonials={[
{ quote: "We moved billing over in an afternoon.", name: "Maya Chen", title: "CTO at Northwind" },
{ quote: "Support answers before I finish typing.", name: "Leo Park", title: "Founder, Tilde" },
]}
/>
)
}Props
| Prop | Type | Default | Description |
|---|---|---|---|
| testimonials | Testimonial[] | - | quote, name, title, and an optional avatar URL. |
| rows | number | 2 | Number of rows. Every other row runs in reverse. |
| speed | number | 45 | Seconds for one loop of the first row. |
