Founding price: $35, then $79.99 after 23:59 UTC on 4 November, then $79.99
Get ProA wall of testimonial cards in up to three columns that drift vertically at different speeds, with avatars, ratings, a pause button and a static grid for reduced motion.
This item has no props to tune. Use the lens above to change theme, density, direction and more.
Items are dealt across the columns in order, so the first three land at the top of columns one, two and three. Give at least two items per column so the loop looks full.
TestimonialCard is exported too, for a single quote or your own layout.
| Prop | Type | Default | Description |
|---|---|---|---|
items | Testimonial[] | - | The testimonials. |
columns | 1 | 2 | 3 | 3 | Columns on large screens. Two show from sm, one below that. |
duration | number | 40 | Seconds for one loop of the first column. Others vary from it. |
height | string | "36rem" | Height of the scrolling wall. |
label | string | "Testimonials" | Accessible name of the region. |
className | string | - | Classes for the region. |
Also accepts all section props.
| Field | Type | Description |
|---|---|---|
quote | ReactNode | The quote. |
name | string | Person's name. Initials are the avatar fallback. |
title | string | Role, company or handle. |
avatar | string | Avatar image URL. |
rating | number | Optional rating from 1 to 5, shown as stars. |
region. Each quote is a figure with a blockquote and a figcaption. The duplicate copy that makes the loop seamless is aria-hidden and inert, so screen readers and the Tab key meet every quote once.prefers-reduced-motion: reduce the wall renders as a static masonry grid showing every quote.columns={1} where every quote must be visible on phones.