https://github.com/rtcamp/rt-carousel
An Interactivity API-powered carousel system for the WordPress Block Editor. Designed for enterprise-grade performance and extensibility.
https://github.com/rtcamp/rt-carousel
carousel carousel-plugin interactivity-api tier-1 wordpress wordpress-plugin
Last synced: 2 months ago
JSON representation
An Interactivity API-powered carousel system for the WordPress Block Editor. Designed for enterprise-grade performance and extensibility.
- Host: GitHub
- URL: https://github.com/rtcamp/rt-carousel
- Owner: rtCamp
- License: gpl-2.0
- Created: 2026-01-15T14:55:53.000Z (5 months ago)
- Default Branch: develop
- Last Pushed: 2026-04-12T16:23:22.000Z (2 months ago)
- Last Synced: 2026-04-12T18:15:57.853Z (2 months ago)
- Topics: carousel, carousel-plugin, interactivity-api, tier-1, wordpress, wordpress-plugin
- Language: TypeScript
- Homepage: https://rtcamp.com
- Size: 8.34 MB
- Stars: 38
- Watchers: 0
- Forks: 5
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# rtCarousel


**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.
## Features
- **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.
## Documentation
- **[Installation](docs/INSTALLATION.md)**: How to install via ZIP or Composer.
- **[Usage Guide](docs/USAGE.md)**: Configuration, Attributes, and Patterns.
- **[Styling & Theming](docs/THEMING.md)**: CSS Variables and Customization.
- **[Developer API](docs/API.md)**: Context, State, and Interactivity API integration.
- **[Contributing](docs/CONTRIBUTING.md)**: Guidelines for contributing to the project.
- **[Command Reference](DEVELOPMENT.md)**: Build commands and tools.
## Requirements
| Requirement | Minimum | Recommended |
| ----------- | ------------ | ----------- |
| WordPress | 6.6+ | 6.9+ |
| PHP | 8.2+ | 8.2+ |
| Gutenberg | Not required | — |
> **Note:** This plugin works with WordPress core—no Gutenberg plugin required.
## Browser Support
rtCarousel 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.
## Block Structure
The plugin provides a suite of blocks that work together:
1. **Carousel (Parent)**: The main wrapper and controller.
2. **Carousel Viewport**: The visible area that handles scrolling.
3. **Carousel Slide**: A wrapper for individual slides.
4. **Carousel Controls**: Previous/Next buttons.
5. **Carousel Dots**: Pagination indicators.
## FAQ
### Does it work with Full Site Editing (FSE)?
Yes! rtCarousel is fully compatible with Full Site Editing. You can use the carousel block in templates, template parts, and anywhere blocks are supported.
### Can I nest other blocks inside slides?
Absolutely. Each slide is a container that accepts any WordPress block—images, paragraphs, groups, columns, and even other third-party blocks.
### Does it support the Query Loop block?
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.
### Is it accessible?
Yes. The carousel follows W3C accessibility guidelines with proper ARIA roles, labels, and full keyboard navigation support.
### Can I have multiple carousels on the same page?
Yes. Each carousel instance maintains its own independent state.
### What data is removed on uninstall?
On uninstall, rtCarousel removes its cached pattern transient (`rt_carousel_patterns_cache`). It does not remove your posts or block content.
## Changelog
See [CHANGELOG.md](CHANGELOG.md) for full release history.
## Live Demo
[**🚀 Try the Interactive Demo in WordPress Playground**](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/rtCamp/rt-carousel/main/blueprint.json)
## Feature Request
Have a feature request? [Open an issue](https://github.com/rtCamp/rt-carousel/issues) on GitHub.
## Contributors
- [rtCamp](https://github.com/rtCamp)
- [Danish Shakeel](https://github.com/danish17)
- [Masud Rana](https://github.com/theMasudRana)
- [Gagan Deep Singh](https://github.com/gagan0123)
- [Utsav Patel](https://github.com/up1512001)
- [Sagar Tamang](https://github.com/mi5t4n)
- [Aviral Mittal](https://github.com/aviral-mittal)
- [Vishal Kotak](https://github.com/vishal4669)
- [Raj Patel](https://github.com/imrraaj)
- [Aishwarrya Pande](https://github.com/AishwarryaPande)
## License
GPL-2.0-or-later