A clean multi-column testimonial grid with subtle hover interactions.
Chief Technology Officer
ToogleI just love Refinery. It gives us a refined design system with best-in-class web interactions we can browse, adopt, and ship quickly.

Lead Designer
TouYubeRefinery exceeded my expectations as a design system inspired by the web's best interactions. It helps us discover elevated patterns, align design decisions, and deliver a premium product feel.

Frontend Engineer
MetamineRefinery has become essential for our frontend team. We browse interaction patterns and beautifully refined components, then integrate Refinery into our product with minimal friction.
SDE II
Z CombinatorRefinery has been a game-changer for our team. Instead of starting from scratch. We explore top interaction patterns and refined UI examples, then implement them with confidence.
npx shadcn@latest add @refinery/testimonial-grid| Name | Type | Description |
|---|---|---|
| title | string | null | Section title; set to null to hide it. |
| items | TestimonialItem[] | Testimonials to render in the grid. |
| className | string | Additional CSS classes for the wrapper. |
| gridClassName | string | Additional CSS classes for the grid container. |
| cardClassName | string | Additional CSS classes for each card. |
| highlightClassName | string | Additional CSS classes for highlighted text. |
I kept this layout intentionally simple and focused on readability first. The structure is a clean multi-column grid, and each card follows the same hierarchy so names, roles, and quotes are easy to scan. To add personality without making it noisy, I highlighted a key line in each testimonial and used soft hover transitions instead of heavy effects. Most of the polishing went into spacing, text rhythm, and contrast tuning so the section feels balanced in both light and dark themes. For the cards, you can add dashed-borders instead of shadow, if you dont want feel of elevation to the cards.