Quote Cards GridFREE

Grid of testimonial cards with decorative quote marks and HTML-supported text highlighting. Perfect for showcasing multiple customer reviews with emphasis on key phrases.

Testimonial8: Quote Cards Grid

A grid of testimonial cards, each with a large decorative quote glyph, an HTML-rendered quote body that supports inline emphasis tags, an author and role line, and an optional row of CTA buttons beneath the grid.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/testimonial8"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/testimonial8"

This installs the block to components/beste/block/testimonial8.tsx and the badge and button shadcn/ui primitives it depends on.

Quick start

The installed file exports testimonial8Demo alongside the block: the exact props behind the preview above. Spread it to get a working quote grid in one line.

tsx
import { Testimonial8, testimonial8Demo } from "@/components/beste/block/testimonial8";

export default function LandingPage() {
  return <Testimonial8 {...testimonial8Demo} />;
}

Then replace the demo with your own props. Written out, the same setup looks like this:

tsx
import { Testimonial8 } from "@/components/beste/block/testimonial8";

export default function LandingPage() {
  return (
    <Testimonial8
      heading="What our users say"
      description="Don't just take our word for it."
      quotes={[
        {
          id: "quote-1",
          quote: "We cut our deployment time from hours to minutes.",
          author: "Sarah Chen",
          role: "CTO at Streamline",
        },
        {
          id: "quote-2",
          quote: "Our entire team was onboarded in <strong>a single day</strong>.",
          author: "Marcus Webb",
          role: "Engineering Lead at Pulse",
        },
        {
          id: "quote-3",
          quote: "The support team is phenomenal.",
          author: "Lisa Park",
          role: "Product Manager at Vertex",
        },
      ]}
      buttons={[{ id: "btn-1", label: "Read more stories", href: "https://beste.co" }]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Optional badge above the heading
headingstringSection heading
descriptionstringSection intro text
quotesTestimonialQuote[][]Cards rendered in the grid
buttonsButtonItem[][]CTAs rendered below the grid
classNamestringExtra classes for the outer <section>
ts
type TestimonialQuote = {
  id: string;
  quote: string;
  author?: string;
  role?: string;
};

type ButtonItem = {
  id: string;
  label: string;
  href?: string;
  variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};

Behavior notes

More Testimonial blocks

View all Testimonial
PRO

testimonial23

Tagged Testimonials Grid

Grid of testimonial cards with category tags like Performance, Support, or Pricing. Perfect for organizing customer feedback by feature or benefit type.

PRO

testimonial42

Three Quote Grid

A testimonial grid with an eyebrow over a hairline rule, a two-column heading, and three bordered quote cards each closing with an author avatar, name, and role.

PRO

testimonial30

Rated Reviews

Centered grid of star-rated testimonial cards with avatars.

PRO

testimonial26

Quote Wall

Masonry column wall of varied-length testimonial cards with avatars.

PRO

testimonial28

Marquee Quotes

Two opposing auto-scrolling marquee rows of testimonial cards.

PRO

testimonial34

Testimonial Marquee

Two rows of monochrome quote cards scrolling in opposite directions with edge fades.

Markdown version