Masonry testimonial wall
CSS columns that pack quotes of different lengths without gaps.
Live preview
Source
This exact file renders the preview above.
components/blocks/sections/testimonials/masonry.tsx
components/ui/avatar.tsx
Demo source — adapt to your project. Foundry is not published as a package.
Usage
break-inside: avoid on each card is what stops a quote splitting across two columns — the one thing that always goes wrong with a column layout.
- Vary quote length deliberately; a masonry of equal-length quotes is just a grid with worse reading order.
- Six to nine quotes. Fewer looks accidental, more becomes wallpaper.
Variants and states
Every entry below is a genuine difference in behaviour or layout, and every one of them is visible in the preview above.
- Three columns at lg
- Break-inside avoid
- Six quotes
Accessibility
- Reading order
- CSS columns preserve DOM order, so the announced sequence matches the source.
- Card integrity
- Cards never split across a column boundary.
Foundry implements published ARIA patterns and is tested against them. No WCAG certification is claimed — see the accessibility documentation for what is and is not covered.
Related
All sectionsThree-column testimonials
Equal cards with attribution structurally attached to each quote.
starterFeatured3 variantsAlternating quote rows
Company on one side, quote on the other, alternating down the page.
starter3 variantsRated testimonials
Star ratings announced as text rather than as a row of filled paths.
starter3 variants