Skip to main content
Clever Ops

Testimonial Spotlight

One voice at a time, an oversized editorial quote with a quiet author rail, mono counter and hairline prev/next controls. A reading, not a carousel.

Preview & code

Loading Testimonial Spotlight preview

Installation

pnpm dlx shadcn@latest add @cleverui/testimonial-spotlight

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { TestimonialSpotlight } from '@/components/blocks/testimonial-spotlight'
Exampletsx
import { TestimonialSpotlight } from '@/components/blocks/testimonial-spotlight'

const testimonials = [
  {
    quote:
      'We shut off three internal tools the month we rolled it out. Finance stopped chasing approvals entirely.',
    author: 'Priya Raman',
    role: 'COO',
    company: 'Fieldline',
  },
  {
    quote:
      'The handoff automations paid for the year in the first quarter. I check the log on Mondays, that is the whole job now.',
    author: 'Marcus Webb',
    role: 'Ops lead',
    company: 'Corridor',
  },
  {
    quote:
      'Setup took an afternoon. The bot drafted 214 follow-ups in week one and only two needed edits.',
    author: 'Elena Sosa',
    role: 'Founder',
    company: 'Bright & Co',
  },
  {
    quote:
      'Our error rate on reconciliations went from someone crying quarterly to zero.',
    author: 'Dan Okafor',
    role: 'Controller',
    company: 'Meridian',
  },
  {
    quote:
      'It is the first automation tool the team did not quietly abandon after a month.',
    author: 'Sophie Klein',
    role: 'Head of CX',
    company: 'Arbor',
  },
]

export default function TestimonialSpotlightDemo() {
  return (
    <div className="mx-auto max-w-4xl">
      <TestimonialSpotlight testimonials={testimonials} />
    </div>
  )
}

API reference

TestimonialSpotlight accepts the following props.

PropTypeDefaultDescription
eyebrowstring'What clients say'
testimonials*TestimonialSpotlightItem[]
initialIndexnumber0
loopbooleantrueWrap from the last quote back to the first

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Referenced types

Typestsx
export interface TestimonialSpotlightItem {
  quote: string
  author: string
  role?: string
  company?: string
}

Frequently asked questions

How do I install the Testimonial Spotlight component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/testimonial-spotlight`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Testimonial Spotlight require?

Testimonial Spotlight uses motion and lucide-react on top of React and Tailwind CSS. You don't need to install them manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Testimonial Spotlight to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services