Watch this to place your View rows on a rotating 3D cylinder and drive it with autoplay, arrows, dots, a progress bar and a slide counter.
The idea behind the effect
Each row is positioned as a cell on a virtual cylinder using CSS rotateY and translateZ, so the carousel turns rather than slides. That is also why the module recommends keeping the row count around thirty — every cell stays in the 3D scene, and the browser pays for all of them at once.
Picking sizes and timing
- Max Width is a dropdown of eight fixed widths from 300 px to 1000 px, in hundreds.
- Large Screen Height gives ten values from 100 px to 550 px; Small Screen Height gives the same list minus the largest, so nine.
- Perspective (px) follows the width choice automatically — you only touch it when the ring looks too wide.
- Auto-rotate Interval is a select, not a free number: None, or a whole second from 2 s through 15 s.
Controls, style and accessibility
Under Controls & Navigation each control is an independent checkbox — navigation arrows, play/pause button, slide counter, progress bar and dots — plus a scrollable-dots width for carousels with many slides. Accessibility Options exposes two switches by name: Enable Screen Reader Announcements and Respect Reduced Motion Preference. Style Settings carries a background colour with its own opacity control and a disable toggle.
Two quirks worth knowing
This format does not offer the "Enable CSS Library" checkbox the other VVJ formats have, because its stylesheet is what positions the cylinder. It also does not force the Fields row plugin, so it is more forgiving about how rows are built than, say, the flip box. Keyboard support covers arrow keys, Space for play/pause, Home and End, and is aware of right-to-left languages.
What it needs
From vvjc.info.yml: core ^11.3 || ^12, php: 8.3, and dependencies on Views, Filter and VVJ Core.
Next
The Views 3D Carousel module page lists every default. For editorial guidance on when a 3D carousel earns its place, read Best Practices for Using a 3D Carousel.
Would rather have this configured for you? That is Drupal development — or get in touch.