Measured entry
kibo-deck
carouselminimal-flatmotion on file
A client-side swipe deck that layers React card elements, animates horizontal dragging and card exits, and exposes controlled or uncontrolled index callbacks. It ships as a shadcn registry source file and relies on Motion, Radix controllable state, React, Tailwind utility classes, and the usual cn helper.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 71.9 KB (137.4 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A focused, working choice for Tinder-style card dismissal, with responsive rendering and a clean automated accessibility scan. Its API is flexible, but the component is intentionally narrow: teams still need to add visible controls and keyboard behavior when drag gestures cannot be the only path.
Use it if
- You need a compact swipe-to-dismiss stack for choices, onboarding prompts, or review queues.
- You want to control the active card from application state or react to left and right swipe callbacks.
- Your interface already uses Tailwind and can absorb Motion as a runtime dependency.
Skip it if
- You need a conventional carousel with previous and next controls, pagination, looping, or slide navigation.
- Keyboard operation and explicit interactive semantics must work without adding your own controls and accessibility layer.
- You want a lightweight static stack and cannot justify Motion for one gesture-driven interaction.
Install
| Declared dependencies | @radix-ui/react-use-controllable-state, lucide-react, motion, clsx, tailwind-merge |
|---|---|
| Missing on install | none |
| Bare install | builds and mounts without the shadcn-style helpers |
| Provider | no provider required in the harness |
In a non-shadcn project, install React, Motion, Radix controllable state, lucide-react, clsx, and tailwind-merge. Add a compatible cn utility or change its alias import, configure Tailwind with the card and muted color tokens used by the classes, and render it from a client-capable module.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/shadcnblocks/kiboAlternatives
Other published entries for the carousel pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- neobrutalism-marqueebrutalism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.3KB
- Bare
- pass
- Prov
- NO
- ruixen-card-stack3d
- Renders
- YES
- A11y
- 0
- Gzip
- 84.0KB
- Bare
- pass
- Prov
- NO
- magicui-marqueeunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 11.9KB
- Bare
- fail
- Prov
- NO
- ruixen-auto-scrolling-client-carouselunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 27.2KB
- Bare
- fail
- Prov
- NO
- ruixen-coverflow-carousel3d
- Renders
- YES
- A11y
- 0
- Gzip
- 33.2KB
- Bare
- fail
- Prov
- NO
- shadcn-carouselunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 40.7KB
- Bare
- fail
- Prov
- NO