A modular, high-performance carousel block for WordPress, powered by the Interactivity API and Embla Carousel.
Easily create dynamic, accessible, and customizable carousels for any content type—posts, testimonials, images, and more. Designed for speed, flexibility, and seamless integration with the WordPress block editor.
- Flexible Compound Block Architecture: Mix and match any blocks inside the carousel.
- High Performance: Viewport & Slide Engine powered by Embla Carousel.
- Interactivity API: Reactive state management with
data-wp-interactive. - Dynamic Content: Full support for WordPress Query Loop block.
- Accessibility: W3C-compliant roles, labels, and keyboard navigation.
- RTL Support: Built-in support for Right-to-Left languages.
- Installation: How to install via ZIP or Composer.
- Usage Guide: Configuration, Attributes, and Patterns.
- Styling & Theming: CSS Variables and Customization.
- Developer API: Context, State, and Interactivity API integration.
- Contributing: Guidelines for contributing to the project.
- Command Reference: Build commands and tools.
| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 6.5+ | 6.6+ |
| PHP | 7.4+ | 8.2+ |
| Gutenberg | Not required | — |
Note: The Interactivity API became stable in WordPress 6.5. This plugin works with WordPress core—no Gutenberg plugin required.
Carousel Kit supports all modern browsers:
| Browser | Minimum Version |
|---|---|
| Chrome | 80+ |
| Firefox | 74+ |
| Safari | 14+ |
| Edge | 80+ |
Note: Internet Explorer is not supported. The plugin requires ES2020+ features (optional chaining, nullish coalescing) and CSS custom properties.
The plugin provides a suite of blocks that work together:
- Carousel (Parent): The main wrapper and controller.
- Carousel Viewport: The visible area that handles scrolling.
- Carousel Slide: A wrapper for individual slides.
- Carousel Controls: Previous/Next buttons.
- Carousel Dots: Pagination indicators.
Yes! Carousel Kit is fully compatible with Full Site Editing. You can use the carousel block in templates, template parts, and anywhere blocks are supported.
Absolutely. Each slide is a container that accepts any WordPress block—images, paragraphs, groups, columns, and even other third-party blocks.
Yes. Simply add a Query Loop block inside the Carousel Viewport, and each post in the loop becomes a slide automatically. No special configuration needed.
Yes. The carousel follows W3C accessibility guidelines with proper ARIA roles, labels, and full keyboard navigation support.
Yes. Each carousel instance maintains its own independent state.
See CHANGELOG.md for full release history.
🚀 Try the Interactive Demo in WordPress Playground
Have a feature request? Open an issue on GitHub.
GPL-2.0-or-later