shadcn.io is not affiliated with official shadcn/ui
Rotating 3D Wheel Testimonials Block for React
A 3D wheel of customer quotes in a framed figure under a centred header: the active quote faces you flat while its neighbours tilt away above and below, and up and down buttons in a footer strip turn the drum.
Installation
Overview
Turn the quotes like a drum. Under a centred headline, five quotes about a fictional analytics product, Tidemark, sit on a wheel inside a framed figure, a tinted stage with + marks on its corners: the one in the middle faces you flat and readable, and the ones before and after it tilt away above and below, fading out at the edges of the wheel. A strip along the foot of the frame, under its own rule, holds a "2 of 5" count and the up and down buttons that turn the wheel one quote at a time; the arrow keys do the same, and the wheel never stops, so it loops from the last quote to the first. Each face is a Card with the quote and an Avatar caption, moved by CSS 3D transforms and one transition. There is no call to action: turning the wheel is the point. It's built with Button, Guides, Lucide icons and your theme's tokens. For sections that want one quote at a time with a bit of physical presence, and no timer deciding for the visitor.
FAQ
How do I change the quotes or add more?
Edit the TESTIMONIALS array at the top of the file: each entry has an author, role, company, two-letter initials and the quote. Every face works out its distance from the front, so any number of quotes from three up works, though the wheel reads best with four to eight. The size of a face is the --h variable on the wheel (15rem on phones, 13rem from sm up): make it taller if your quotes are longer.
How does the wheel work?
All the faces share one grid cell. Each one is pushed out to the rim of an imaginary drum, tilted by 24 degrees for every step it is from the front and pulled back so the front face lands flat on the screen, with CSS perspective on the wheel giving it depth. Pressing a button changes which face is in front, and one CSS transition on transform turns the drum. Only the front face and the two beside it are visible; the others wait out of sight, and a mask fades the tilted ones at the edges. There are no timers and no scripts running a frame loop.
Can visitors use it with a keyboard and a screen reader?
Yes. The wheel is a focusable region named "Customer quotes", and the up and down arrow keys turn it from there or from either button. Only the front quote is exposed: the faces that tilt away are inert and hidden from assistive technology, so Tab never reaches them and they aren't read out. After a visitor turns the wheel, a polite live region says "Quote 3 of 5" and the author's name; nothing is announced on load.
What changes when a visitor prefers reduced motion?
The header appears without fading in, and the wheel stops spinning: pressing a button puts the next quote in front at once, with no turn. The faces keep their resting tilt, which is a pose rather than motion. Nothing on the page moves by itself either way.
Does it work in right-to-left languages?
Yes. The wheel turns about a horizontal axis, so it looks the same in both directions; the caption follows the reading direction, the count and the buttons swap sides in the footer strip, and each quote sits in a bdi so its quotation marks stay with the sentence.
Why doesn't it turn by itself?
Because a moving quote is one a visitor can't finish reading, and anything that moves on its own needs a pause control. Letting the visitor turn the wheel keeps the section calm and makes every quote readable. If you want a timed rotator instead, the Rotating Hero Testimonials block has one with a pause button and dots.
Related
- Pro
Layered Quote Deck Testimonials
Carousels and decksA deck of four customer quote cards in a framed figure under a centred header: the front card sits on two peeking cards, and the Shine Button sends it to the back so the deck cycles.
- Pro
Triple Stack Vertical Carousel Testimonials
Carousels and decksA vertical carousel with three customer quotes in view: each press of the up or down button moves one row, with a count of which quotes are showing.
- Pro
Minimal Slider Testimonials
Carousels and decksScrub through customer quotes for a shared-inbox app with a real range slider: five stops, one quote fading in at each, in a framed stage with + marks on its corners and the slider on a ruled foot, its position read out in words.
- Pro
Quote Carousel Testimonials with Next-Speaker Preview
Carousels and decksA centred, looping carousel of large customer quotes in a card in a card, whose Previous and Next buttons preview who speaks next, with the neighbour's avatar and first name.
- “Pro
Testimonials Rotating Hero
TestimonialsA reverse split hero with a card that shows one customer quote at a time in a hairline frame, a pause button and a dot per quote, beside an announcement pill, a headline, a Shine Button and an outline action.
- 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.