shadcn.io is not affiliated with official shadcn/ui
Kanban Testimonials Block for React
Customer quotes sorted into three theme lanes with a count on each header, in one ruled band: a board of tinted lanes with raised cards on desktop, swipeable lanes in a named scroll area on a phone.
Installation
Overview
A testimonials section laid out like a board, for React with Base UI. A compact header (a heading, a line that counts the quotes and themes, and a Shine Button) sits above a band ruled to the page's side lines, with + marks where its rules meet them. In the band, quotes are sorted into three tinted lanes, here planning, shipping and reporting for a project tracker, and each lane header carries a count worked out from the quotes inside it. Each quote is a raised card with a star rating in the text colour, the words and the author. On a desktop the lanes sit side by side; on a phone they become lanes you swipe through, each snapping into place inside a named scroll area with the next lane peeking in. It's built from Badge, Avatar, Scroll Area and Shine Button, with Lucide's star icon, CSS transitions only and your theme's tokens. For pages where feedback falls into a few clear themes and you want visitors to find the one they care about.
FAQ
How do I change the columns and quotes?
Edit the LANES array at the top of the file. Each lane has a title and its own list of quotes, and the cards, the counts and the "8 quotes in 3 themes" line in the header are all computed from it. The badge on each lane header is the length of that lane's quote list and the total in the header is the sum across lanes, so nothing is typed by hand and screen readers hear "3 quotes". Lanes can hold different numbers of quotes. The board is built for three columns, so add a fourth only if you also change md:grid-cols-3.
How do the swipe lanes work?
Below the md breakpoint the lanes are laid out in one row inside a Scroll Area. Each lane is a fixed readable width, never more than 78% of the screen, so the next lane peeks in, and snaps to the start of the area as you swipe. The scroll area is a region named "Customer quotes grouped by theme", and where it can scroll it takes keyboard focus, so arrow keys move it. From md upwards the three lanes fit and nothing scrolls.
Can visitors drag cards between lanes?
No. This is a layout, not a working board: there are no drag handles and nothing moves. The lanes are fixed themes you choose when you write the data. For filtering by theme, see Tag Filter Testimonials.
How do screen readers read it?
The heading is the section's h2 and each lane's title is an h3. The lanes are a list, and inside each the quotes are another list named after the lane, with every card a figure holding a blockquote and a figcaption. Star ratings are decoration, with a hidden line such as "Rated 5 out of 5".
Related
- Pro
Two Column Testimonials
Rows and listsA testimonials section split by a solid divider: a pinned intro column with the heading and a Shine Button beside five customer quotes set as ruled rows, the first one larger.
- Pro
Three Column Testimonials
Quote gridsThree customer quotes with no card chrome: a centred header over one closing band of three columns, each a large initials avatar over a centred quote, divided by hairlines.
- Pro
Duo Testimonials
Results and figuresTwo customer quotes from two different segments in one ruled band, split by a column that states the verdict they share as one big figure derived from both of their numbers, under a compact header with a Shine Button.
- Pro
Mini Cards Testimonials
Quote gridsEight square tiles in a hairline grid, each holding a one-line customer quote at the top and its author at the foot, with the one Shine Button in the header row.
- Pro
Role Badge Testimonials
Quote gridsFour customer quotes in a two-by-two band of cells that share their hairlines, each avatar carrying a small icon badge for its owner's role, with the role also written as an outline badge and a Shine Button in the header.
- Pro
Tag Filter Testimonials
Filter and searchA 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.