A reliable, flexible, and extendable carousel library that works with all major JavaScript frameworks.
Flicking is a JavaScript carousel library that provides smooth, customizable content sliding for web applications. It solves the problem of building reliable carousels that work consistently across different JavaScript frameworks and device types. The library handles complex interactions like looping, touch gestures, and state management while maintaining high performance.
Frontend developers building interactive web applications who need a carousel component that works across multiple frameworks (React, Vue, Angular, etc.) with consistent behavior.
Developers choose Flicking because it offers official framework integrations, extensive customization through plugins, and proven reliability at scale—serving 30 million users daily. Its flexible API and cross-framework support eliminate the need to rebuild carousel logic for different tech stacks.
🎠 ♻️ Everyday 30 million people experience. It's reliable, flexible and extendable carousel.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Official packages for React, Vue, Angular, Preact, and Svelte ensure consistent behavior, as shown by the framework badges and dedicated npm packages.
Directly compatible with SSR frameworks like Next.js and Nuxt.js, and offers plugins for autoplay, fade, and parallax effects without custom code.
Supports IE9+ with polyfills and all modern browsers, making it suitable for enterprise or legacy projects, as noted in the supported browsers table.
Includes circular (loop) mode, free-scroll movement, and boundary control for native-like scrolling, demonstrated in the demos and feature list.
The comprehensive feature set leads to a larger footprint; the README shows bundle size badges, but it's heavier than minimalist carousel libraries.
Requires importing specific CSS files and adhering to a predefined HTML structure (viewport, camera, panels), adding setup steps compared to headless alternatives.
While plugins extend functionality, advanced custom animations or effects beyond the provided set may require significant additional development work.
Separate packages for different framework versions (e.g., vue-flicking vs vue3-flicking) can complicate updates and maintenance across projects.