Carousels & Sliders
Image / card carousels, hero sliders, infinite scrollers.
Headless / lightweight
- ★ Embla Carousel — small, accessible, framework-agnostic (React, Vue, Svelte, Solid). The default for new projects. Used inside shadcn/ui's Carousel component.
- Keen Slider — also small, also accessible; spring physics, infinite mode.
- Splide — popular vanilla-first carousel; React / Vue wrappers.
Feature-rich
- Swiper — the most-installed slider in the world. Touch / mouse / keyboard / a11y / virtual slides / parallax / 3D effects. Big bundle but very capable.
- flickity — older but loved; touch-friendly.
- slick / react-slick — old, ubiquitous, no longer recommended for new projects.
Vertical / infinite scrolling
- react-infinite-scroll-component / react-infinite-scroller — for endless lists.
- TanStack Virtual — for windowed lists/grids; usually a better answer than infinite scroll.
Marquee / "scroller" UIs
- react-fast-marquee — drop-in marquee.
- Magic UI / Aceternity UI marquees — copy-paste components.
- Framer Motion / Motion with
<motion.div>and a CSS keyframe — DIY easily.
Pick this if…
- Default new project, shadcn-flavored: Embla.
- Need every feature, willing to pay bundle size: Swiper.
- Tiny + spring physics: Keen Slider.
- You're really doing infinite scroll, not a carousel: TanStack Virtual.