Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Snippet Testimonials Block for React

Customer quotes for a component kit, set out like search results: a result count on a ruled band, then six results in two columns sharing their hairlines, each with a breadcrumb, a linked outcome headline and an excerpt with the matching terms in bold.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A testimonials section that borrows the most familiar layout on the web: the search result. A compact header names the product and carries one Shine Button to all the stories. Under it, a ruled band reads "6 customer stories, newest first", and then six results fill a two-column grid whose cells share their hairlines. Each result has a small mono breadcrumb on top (the person's name, their role and company, how long ago), a headline in the customer's own outcome that links to the full story, and a short excerpt where the words that carry the argument are picked out in bold. On a phone the first three show, with an "All 6 stories" button to reveal the rest. It's built from Avatar, Button, Guides and Shine Button, with Lucide icons, CSS transitions only and your theme's tokens. For landing pages that want proof to scan quickly and case-study indexes.

FAQ

How do I change the results and the bold terms?

Edit RESULTS at the top of the file. Each excerpt is a list of pieces, and a piece with hit: true is drawn in bold, so you decide exactly which words stand out. Keep each excerpt to about two lines, and bold two or three phrases at most: more than that and nothing stands out.

What happens on a phone?

The grid becomes one column and shows the first three results. An "All 6 stories" button (it reports aria-expanded and controls the list) reveals the other three; on tablets and desktops all six always show.

How does a screen reader read a result?

The results are a named ordered list, and each is a figure with a blockquote for the excerpt. The breadcrumb is the figure's caption, read as the name, then the role and company, then the time, with the chevrons hidden. The bold terms are strong, so a reader may stress them. The section's heading is an h2 and each headline is an h3.

Does it work in right-to-left languages?

Yes. The chevrons in the breadcrumb mirror, the excerpt sits in a bdi so its quotation marks stay at the ends of the sentence, and everything is laid out with logical spacing, so the first column starts at the right.

  • Pro

    A side header and a hairline grid of Sundial customers' quotes: the page column splits at `lg`, each quote leads with its takeaway as a large headline, and on a phone the six cells become one snap row.

  • Pro

    Search Testimonials

    Filter and search

    A search box in the header row that filters eight customer quotes as you type and marks the matched words, with a result count, Escape to clear and an empty state, in a band of hairline-ruled rows.

  • Pro

    Twelve one-line customer quotes for a field-reporting app in a fixed-height scroll area inside one hairline band, each row a disclosure that opens in place to the full quote, with a ruled count footer and a Shine Button.

  • Pro

    Five customer quotes about a UI kit, set large in ruled bands under keyword chips: pick one and every quote that mentions it marks the words, lights a bar and counts where it comes up.

  • Pro

    A centred showcase hero with a headline, a Shine Button and an outline action over a wall of six customer quotes in cells that share their hairlines, a snap carousel on a phone.

  • Pro

    A reverse split on drafting lines: a group chat of five dispatchers in a hairline frame, alternating message bubbles with a name, role and relative time above each, beside a header and one Shine Button.