shadcn.io is not affiliated with official shadcn/ui
Waterfall Testimonials Block for React
Nine customer quotes for a deploy platform in a staircase of three columns, one per stage of being a customer, each starting a step lower, in cells whose lines overshoot their corners.
Installation
Overview
A staircase of customer quotes. Three columns hold three cards each, and every column starts a step lower than the one before, so the wall steps down across the page as the months add up: Months 1 to 6, Months 7 to 12 and Month 13 onwards, each headed by its stage and a story count. Every quote sits in its own cell whose hairlines overshoot the corners, with a + mark at its start, and opens with how long the customer has been one, then the quote, then the author's initials, name, role and company. On a phone the columns become the slides of a snap carousel, each slide 85% wide so the next column peeks in, and the steps drop away. The copy speaks for Tidemark, a fictional deploy platform. No button and no primary colour. For a calm, editorial wall of proof.
FAQ
How do I change the size of the steps?
Each column in COLUMNS has a drop, a class that sets how far it starts below the first: md:mt-10 lg:mt-14 for the second and md:mt-20 lg:mt-28 for the third. Change those margins to make the staircase steeper or shallower, or set one to an empty string to line a column up with the first.
Why are the columns fixed instead of flowing?
Each column is its own list, so every card stays in the stage you put it in and the steps are exact. A flowing layout, like the masonry block, balances the columns for you but cannot start one lower or group quotes by stage.
How does it work on a phone?
Below md the three columns sit in one row that scrolls sideways and snaps to each column (snap-x snap-mandatory), every slide 85% wide so the next one is visibly there. Each slide keeps its stage heading, so the swipe still reads as time passing. On tablets and up the row becomes a three-column grid.
What do screen readers get?
Three groups, each with an h3 for its stage and a list of cards, read one after the other; each card is a figure with its quote in a blockquote and the author in a figcaption. The steps and lines are only spacing and borders, and the initials avatars are hidden because the name follows them. Nothing is focusable.
How do I use my own quotes?
Edit COLUMNS at the top of the file: each column has a stage label and its quotes, and each quote has a quote, the author's name, initials and role and a tenure line such as "8 months in". The tenure is relative on purpose, so it never goes stale. The nine people and companies here are made up.
Related
- Pro
Masonry Testimonials
Walls and lanesA 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
Clipped Wall Testimonials
Walls and lanesA wall of twenty-four short customer notes for a component kit, set as a masonry band that shares its hairlines and fades out under a mask until a Show all button opens the rest.
- Pro
Density Switch Testimonials
Walls and lanesTwelve customer quotes from Lantern's support teams in one hairline grid, with a density switch in the header: Comfortable, Compact or Quotes only re-tunes the same cells, from roomy with stars and roles down to the bare words.
- 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
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
Centered Testimonial Card Grid Hero
TestimonialsA 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.