shadcn.io is not affiliated with official shadcn/ui
Seconded Quote Testimonials Block for React
A spotlight quote on a raised card inside a tinted shell that follows the theme, with the evidence turned outside it: a row of overlapping avatars on the shell, each a button that opens that team's own one-line agreement.
Installation
Overview
Show that the quote isn't a one-off, for React with Base UI. A compact header (a heading, one sentence and a Shine Button) leads into a card in a card: a tinted shell with + marks on its corners, and inside it a raised panel that holds only the quote. The usual hierarchy is turned inside out with structure rather than a dark panel: the evidence sits on the shell, outside the raised card, as a "Seconded by 4 teams" row of overlapping avatars. A visitor taps any face to read that person's own line of agreement. It's built from Avatar, Button, Toggle Tooltip and Shine Button, with your theme's tokens and CSS-only entrances, so it is light in a light theme and dark in a dark one. Each agreement is a single sentence about something different, so the row adds evidence instead of repeating the headline. Made for pages that have one strong endorsement and a few quieter ones that deserve a place without a section of their own.
FAQ
How do I change the quote and who seconds it?
Edit FEATURED for the main quote and SECONDS for the row. Each second is a name, a role, a company, initials and a line. The count in "Seconded by 4 teams" is the length of the list, so it follows when you add or remove a person. Keep each line to one sentence: the note it opens in is a small box.
How do the avatars open their note?
Each avatar is a real button. A tap, a click, Enter or Space opens a short note beside it with the person's name, role and line, and Escape closes it and puts focus back on the avatar. It opens on activation, not on hover alone, so touch screens and keyboards get the same note as a mouse. Only one note is open at a time.
How do screen readers handle it?
The main quote is a figure with a blockquote and a figcaption, under the section's h2. Each avatar button is named "Rina Okafor, Quill: what they say", and the initials inside are hidden so the name isn't read twice. The note is named with the person's name too.
Does it follow the light and dark theme, notes included?
Yes. The quote sits on a bg-card panel with shadow-lg and a thin ring, inside a bg-muted/50 shell, so the emphasis comes from structure rather than from a dark panel. The notes open in a layer outside the block and use the same theme tokens, so they match whichever mode the page is in. In a theme where the card and the page are nearly the same colour, the ring and the shadow still lift the quote off the shell.
Where does the button go?
It's a link (href="#") in the header row: point it at the full customer story. It's the block's only primary control; the avatars are ghost buttons.
The button renders the link it's given with render, with nativeButton={false}.
Does it work in right-to-left languages, and can I use photos?
Yes. The avatars overlap from the inline start, the notes open above or below, whichever has room, and each quote and line sits in a bdi so its quotation marks stay at the ends. For photos, add an AvatarImage with the photo's src and an empty alt inside each Avatar, before the AvatarFallback: the button already carries the person's name, so the image stays decorative.
Related
- Pro
Quote Carousel Testimonials
Carousels and decksA split testimonials carousel for a CI service: the heading and a Shine Button beside a raised card in a tinted shell that follows the theme, advancing by itself under a story-style progress bar with pause, previous and next.
- Pro
Docblock Quote Testimonials
Chats and postsA split testimonial for a build tool: the headline and a Shine Button on the left, and on the right one customer quote written as a code docblock in an editor window framed by hairline corners, with line numbers, comment colours and the author as @author and @role tags. It follows the theme.
- Pro
Avatar Stack Testimonials
Logos and facesA centred statement: one customer quote above a stack of team avatars that is a button, fanning open a roster of six teams in one hairline band, each with a name, a role and a one-line verdict.
- Pro
Featured Hero Testimonial
One big quoteA giant centred quote set as typography in a ruled band, with small avatar and icon chips sitting between its words like inline pictures, and a footer band that splits into the author and a Shine Button to the full story.
- Pro
Centered CTA with Avatar Social Proof
Social proofA centred statement for a community, closed by a band of six members on shared hairlines: each cell a link that opens a hover card with the member's role, status and join date, under one Shine Button.
- “Pro
Featured Testimonial Hero
TestimonialsA compact start-aligned hero with a headline, a Shine Button and an outline action over a closing band that holds one customer's quote, large, beside their rating, name, role and the number it is about.