Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its avatar, avatar-initials dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/marquee-scroll-wall.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/testimonials/testimonial13.tsx instead.
Usage
The file also exports testimonial13Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Testimonial13, testimonial13Demo } from "@/components/blocks/testimonials/testimonial13"; export default function Page() { return <Testimonial13 {...testimonial13Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | string | undefined | Optional heading above the scrolling row. |
| description | string | undefined | Optional supporting text below the heading. |
| quotes | MarqueeQuote[] | none | The quote cards to scroll. The component duplicates this array once internally to build the seamless loop; pass only the unique set. |
| className | string | none | Extra classes for the outer section element. |
Types
type MarqueeQuote = { quote: string; name: string; role: string; };
Behavior notes
- The scroll motion is 100% CSS: an inline <style> tag defines a @keyframes translateX(0) -> translateX(-50%) animation applied to a flex row containing the quote list rendered twice back to back, so the loop point is visually identical to the start and reads as continuous.
- There is no JavaScript scroll/timer logic anywhere in this component, by design, so it is safe to render inside the block preview iframe without any window/document access.
- Hovering the track pauses the animation via a plain CSS :hover rule (animation-play-state: paused) — this is real, but it is a CSS-only affordance, not a React event handler.
- prefers-reduced-motion: reduce disables the animation entirely, leaving a static row of the first copy of the cards.
- The second, duplicated copy of the card list is marked aria-hidden so screen readers only announce each testimonial once, not twice.
More Testimonials Blocks
View all →Single Large Quote
One large centered pull-quote with a decorative quote mark and a simple avatar attribution below.
Three Column Grid
Responsive grid of quote cards, each with a star rating, avatar, name, role, and quote text.
Quote Carousel
Interactive one-at-a-time quote carousel with prev/next arrows and clickable dot indicators.
Video Testimonial Grid
Grid of video-style testimonial cards, each a 16:9 thumbnail with a play-button overlay and a caption.
Masonry Wall
"Wall of love" style masonry layout of many short quote cards using CSS columns, not a JS library.
Quote With Stats Sidebar
Split layout pairing a large quote and attribution with a sidebar of 2-3 result stats.