Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Tag Filter Testimonials Block for React

A wall of nine customer quotes for a component kit in hairline cells, each ending in two topic tags that are buttons: pick one to filter the wall and get a removable chip.

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

Customer proof that lets the visitor follow a topic, for React with Base UI. A compact header names the product, a fictional component kit called Loomkit, and a status line at its end says "Showing all 9 quotes". Under it, nine quotes sit in a grid of cells drawn with hairlines that run a little past each corner, one, two or three columns wide, between the page's rails and under its top rule. Every cell ends in the two topics it is about (Accessibility, Speed, Types or Support) and each tag is a button, in foreground tones so the primary colour stays free. Press one and the wall keeps only the quotes about it, a "Showing" chip with the topic and a cross appears in the header with focus on it, and the count says how many of the nine remain; press the chip, or the same tag again, to see everything. The wall keeps the height of all nine cells on a desktop, so nothing below it moves. On a phone the wall is cut after its first quotes behind a fade, with a "More quotes" button that lifts the cut. It's built from Guides, Button and Avatar, with your theme's tokens only. For pages with many quotes where visitors arrive caring about one thing.

FAQ

How do I change the quotes and the topics?

Edit TOPICS and PEOPLE at the top of the file. Each person names exactly two topics in topics; the tags on their cell, the filter and the count all come from them. A cell is kept when either of its topics is the one picked.

How does it work with a keyboard and a screen reader?

Every tag and the chip are real buttons. A tag says whether it is pressed, so you can tell which topic is active on any cell. Choosing one moves focus to the chip so you can remove the filter at once, and a polite status line reads the result ("Showing 5 of 9 quotes about Types"). Removing the filter moves focus to the line that says all nine quotes are shown, so focus never falls to the top of the page.

How are the lines drawn?

The section uses the page spine: Guides bleed marks="top" rules="top" draws the two rails and a top rule that runs to the page's edges, with plus marks. Each cell holds its own Guides extend="sm" marks="start", so its four sides run half a rem past the corners, and the cells sit a rem and a half apart so neighbouring lines never touch. The guides are decorative and take your theme's border and muted-foreground colours.

Why doesn't the page jump when the wall shrinks?

On a desktop, an unseen copy of all nine cells sits in the same grid cell as the live wall, so the area keeps its full height while the filtered cells leave. The copy is hidden from screen readers and can't take focus. The cells that remain move up to fill the grid, which is the point of a filter.

How does the wall fit a phone?

Below md the wall is one column, cut at about 36rem with a fade, and a ghost "More quotes" button under it (aria-expanded, aria-controls) lifts the cut. From md the wall is two columns and from lg three, all quotes showing. On a phone the wall isn't padded to its full height, so a filter changes the page's length there.

What about reduced motion and right-to-left pages?

Cells that come back fade in with CSS; with reduced motion they simply appear. In a right-to-left page the grid fills from the right, the guides' plus marks mirror, and each quote keeps its curly marks in place.

  • Pro

    Filterable Testimonials

    Filter and search

    Role chips with live counts filter a wall of eight customer quotes, with a status line, a clear button and an empty state. A hairline band holds the controls and the cells' lines overshoot their corners.

  • 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

    Masonry Testimonials

    Walls and lanes

    A masonry wall of twelve notes from runners in CSS columns inside a framed figure: cards of every length stack tight, from one column on a phone to four on a wide screen.

  • Pro

    Icon tabs in the header row that switch customer quotes by industry: four sectors, each a panel of three cells (the typical rollout time and two quotes) above a band with a Shine Button.

  • 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

    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.