Quote Carousel
A real interactive carousel that shows one testimonial at a time, with previous/next arrow buttons and small dot indicators beneath that show (and let you jump to) the current position. Good for featuring several quotes in a compact space without a heavy carousel library.
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/quote-carousel.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/testimonials/testimonial3.tsx instead.
Usage
The file also exports testimonial3Demo, 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 { Testimonial3, testimonial3Demo } from "@/components/blocks/testimonials/testimonial3"; export default function Page() { return <Testimonial3 {...testimonial3Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | ReactNode | undefined | Section heading above the carousel. |
| quotes | CarouselQuote[] | none | Testimonials to cycle through; one dot is rendered per entry. |
| className | string | none | Extra classes for the outer section element. |
Types
type CarouselQuote = { quote: string; name: string; role: string; company?: string; };
Behavior notes
- This is a real client component with genuine local state (useState for the current index), not a decorative animation.
- The previous/next buttons (ChevronLeft/ChevronRight, each with an aria-label) move the current index by one and wrap around at both ends (next from the last quote returns to the first, previous from the first jumps to the last).
- Each dot has an explicit aria-label ("Go to testimonial N") and aria-current on the active dot; clicking a dot jumps straight to that quote.
- There is no auto-advance timer: the displayed quote only changes from a prev/next click or a dot click.
- The demo props for this block live in a separate sibling file (testimonial3.demo.tsx) rather than the client component file itself, per this repo's client-component demo-file-split rule.
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.
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.
Logo And Quote Combo
Grid of company-attributed quotes, each paired with a bold text wordmark instead of a real logo image.