Groundworx Carousel is a flexible Gutenberg block that transforms any WordPress content into beautiful, responsive carousels. Built on the lightweight Embla Carousel engine and the WordPress Interactivity API, it offers advanced responsive controls, multiple design templates, and extensive customization options—all within WordPress’s native block editor.
🎨 Nine Professional Templates
Choose from carefully designed templates to match your content style:
* Default & Default Alt – Classic carousel layouts with external navigation
* Simple, Simple Left, Simple Right – Clean minimalist designs with flexible content positioning
* Overlay & Overlay Alt – Modern content overlaid on images with gradient backgrounds
* Partial Overlay & Partial Overlay Alt – Balanced layouts with partial content overlays
📱 Advanced Responsive Controls
* Configure carousel behavior per breakpoint (mobile, large-phone, tablet, laptop, desktop, large-desktop)
* Responsive grid fallback – destroy carousel at specific breakpoints to display slides as a grid
* Mobile-first breakpoint system with inheritance
* Full touch and swipe gesture support for mobile devices
* 6 total breakpoint levels for precise responsive control
🎯 Carousel Types & Transitions
* Slide mode – Classic horizontal sliding carousel
* Loop mode – Infinite continuous scrolling with clones
* Drag and swipe gesture support with momentum
⚙️ Flexible Display Options
* Multiple slides per page with responsive settings
* Variable slide width (auto) or fixed width options
* Start, center, or end alignment
* Customizable gap spacing between slides
* Autoplay
🎚️ Navigation & UI Controls
* 11 Arrow Styles: arrow, chevron, chevronRounded, halfArrow, play, playRounded, sharpChevron, thinChevron, thinChevronRounded, triangle, triangleRounded
* 9 Pagination Styles: circle, circleOutline, square, squareOutline, diamond, diamondOutline, rectangle, rectangleOutline, number
* Progress bar indicator
* Slide counter display (e.g., “3 / 10”)
* Hide/show controls per breakpoint
* Color customization for all UI elements
🎨 Advanced Color Controls
Customize every UI element with full WordPress color palette support:
* Arrows: text, background, border colors
* Active Pagination: text, background, border colors
* Inactive Pagination: text, background, border colors
* Progress Bar: foreground and background colors
* Counter: text color
* Uses WordPress preset color classes and custom inline styles (no CSS custom properties)
♿ Accessibility First
* ARIA labels and semantic HTML structure
* Keyboard navigation support (arrow keys, Enter, Space)
* Screen reader friendly with live regions
* WCAG compliant markup
* Focus management and visible focus states
🔧 Developer Features
* WordPress Interactivity API for reactive frontend behavior
* Block variations support via wp.blocks.registerBlockVariation()
* Carousel options via carouselOptions attribute (legacy splideOptions auto-migrated)
* Extensible template system with WordPress hooks
* Breakpoint configuration via JSON file
* React hooks for responsive state management
* Standard WordPress color classes for theme integration
* Well-documented, modular code structure
The Carousel block is a container that accepts any WordPress block as slides:
* Core Image block
* Core Paragraph block
* Core Heading block
* Core Group block
* Core Cover block
* Core Buttons block
* Custom blocks from other plugins
* Your own custom blocks
Each slide is fully customizable using WordPress’s native block editing tools.
Powered by Embla Carousel 8.x – a lightweight, extensible, and performant carousel library. No jQuery required. Optimized for modern browsers with the WordPress Interactivity API for reactive state management.
This carousel block is part of the Groundworx Block Suite—a modular collection of high-performance, design-focused blocks built for modern WordPress development. Uses Groundworx Foundation components for consistent, professional UI controls.
Groundworx Carousel is a self-contained carousel block — you add slides manually, and navigation (arrows, pagination, etc.) is built into the block itself. It’s a great fit for static content like testimonials, feature highlights, or image galleries where you control every slide.
Groundworx Showcase takes a fundamentally different approach: a modular block system where every piece — the carousel, the slides, and each navigation control — is its own independent block. 12 blocks, 4 flow types, and full query support.
Query & Content:
Modular Controls:
Carousel Options:
Carousel vs. Showcase at a glance:
Showcase is ideal when you need:
Learn more about Groundworx Showcase
You can register custom carousel variations using wp.blocks.registerBlockVariation() and pass carousel configuration options via the carouselOptions attribute.
Example: Carousel with Grid Fallback at Tablet
wp.blocks.registerBlockVariation('groundworx/carousel', {
name: 'carousel-to-tablet',
title: 'Carousel / Grid Tablet',
attributes: {
template: 'default',
carouselOptions: {
type: 'loop',
perPage: 1,
arrows: true,
pagination: true,
containScroll: 'trimSnaps',
breakpoints: {
tablet: {
destroy: true
}
}
},
breakpoints: {
tablet: {
layout: {
type: 'grid',
columnCount: 3
}
}
}
},
scope: ['block', 'inserter', 'transform']
});
Example: Auto-Width Carousel
wp.blocks.registerBlockVariation('groundworx/carousel', {
name: 'auto-width-carousel',
title: 'Auto Width Carousel',
attributes: {
carouselOptions: {
type: 'loop',
fixedWidth: '300px',
align: 'center',
gap: '1rem'
}
}
});
Use the groundworx.carousel.templates filter to add custom templates:
wp.hooks.addFilter(
'groundworx.carousel.templates',
'my-theme/add-custom-template',
(templates) => [
...templates,
{
label: 'My Custom Template',
value: 'my-custom'
}
]
);
Then add your template styles in your theme:
.wp-block-groundworx-carousel.template-my-custom .gwx-carousel__slide {
/* Your custom styles */
}
The carousel supports 5 configurable responsive breakpoints plus a mobile/default base, following a mobile-first approach:
Settings cascade from mobile to larger screens. Override at any breakpoint to change behavior.
Grid Fallback Breakpoints:
For grid fallback functionality, you can use any of the 5 breakpoints: large-phone, tablet, laptop, desktop, or large-desktop.
Carousel options are configured via the carouselOptions attribute. Common options:
type: ‘slide’ or ‘loop’perPage: Number of slides per pageslidesToScroll: Number of slides to scroll per action (default: 1)fixedWidth: Fixed width for each slide (e.g., ‘300px’)gap: Space between slidesalign: Slide alignment — ‘start’, ‘center’, or ‘end’containScroll: Trim empty scroll snaps — ‘trimSnaps’ or falseautoplay: Enable/disable autoplayarrows: Show/hide arrowspagination: Show/hide paginationprogressBar: Show/hide progress barcounter: Show/hide slide counterdestroy: Disable carousel and display as gridBreakpoint-specific overrides are supported via the breakpoints attribute. Legacy splideOptions are automatically converted on render.
All UI element colors use the standard WordPress color pattern:
has-text-color, has-{slug}-color, has-background, has-border-color)Pagination dot colors toggle dynamically between active and inactive states using the WordPress Interactivity API (data-wp-class for presets, data-wp-style for custom colors).
Elements with color support:
Each template adds a class to the carousel wrapper:
.template-default.template-default-alt.template-simple.template-simple-left.template-simple-right.template-overlay.template-overlay-alt.template-partial-overlay.template-partial-overlay-altUse these for template-specific styling.
This plugin does not collect, store, or transmit any user data. It operates entirely within your WordPress installation and does not make external API calls except for loading assets from your own server.