Snap Carousel
Most WordPress carousel plugins load heavy libraries (Slick, Swiper, jQuery) and fail basic accessibility checks. Screen readers can’t navigate them, keyboard users are stuck, and WCAG audits flag them every time. Snap Carousel takes a different approach: CSS scroll-snap does the scrolling, proper ARIA attributes do the rest. No JavaScript library, no configuration panel, no learning curve — just a block style to apply in one click. Built by WeAre[WP], a WordPress agency specializing in accessible websites and RGAA audits. This plugin exists because we needed a carousel that actually passes our own audits. Supported blocks Apply any of the 4 carousel styles to: Group block (core/group) — any child blocks become slides Query Loop block (core/query) — posts scroll as carousel slides Gallery block (core/gallery) — images scroll as carousel slides Variants Carousel (3 items) — 3 visible items + peek Carousel (1 item) — full-width slideshow Carousel (2 items) — 2 visible items + peek Carousel (4 items) — 4 visible items + peek Features 100% CSS scroll-snap — no Slick, no Swiper, no jQuery Prev/next navigation buttons Keyboard navigation (Arrow keys, Home, End) Full ARIA attributes (role=”region”, aria-roledescription, aria-live) Peek effect: partial visibility of the next item, signaling scrollable content Responsive (auto tablet/mobile adaptation) Respects prefers-reduced-motion Works with Group, Query Loop, and Gallery blocks Works with any child block (images, columns, groups, WooCommerce…) Lightweight: ~2 KB CSS + ~2 KB JS, zero external dependency Full RTL (right-to-left) language support Fully internationalized (i18n ready, French translation included) Easy to customize via CSS custom properties or overrides Accessibility (WCAG 2.2 AA) role="region" + aria-roledescription="carousel" on the container role="group" + aria-roledescription="slide" on each item aria-label="X of Y" for position context tabindex="0" for keyboard focus aria-live="polite" to announce changes Buttons with aria-label and aria-controls Touch targets 44×44px minimum Visible focus indicator Usage With a Group block In the editor, create a Group block Set the group layout to Row Add child blocks (images, groups, columns…) In the sidebar panel → Styles → choose Carousel (3 items) (or another variant) Publish With a Query Loop block Insert a Query Loop block Configure the query (post type, filters, number of items…) In the sidebar panel → Styles → choose a Carousel variant Publish — posts scroll horizontally as carousel slides With a Gallery block Insert a Gallery block and add images In the sidebar panel → Styles → choose a Carousel variant Publish — images scroll horizontally as carousel slides Navigation buttons and accessibility attributes are automatically injected on the front-end. Customization The carousel is designed to work out of the box, but you can easily override styles in your theme’s style.css or via the WordPress Customizer > Additional CSS. Disable the peek effect By default, items are slightly narrower than the visible area so the next item “peeks” in — signaling there is more content to scroll. To disable this and show full-width items: /* Disable peek — 3 items variant */ .is-style-snap-carousel > * { flex-basis: calc(33.333% - 1rem) !important; } /* Disable peek — 1 item variant */ .is-style-snap-carousel-single > * { flex-basis: 100% !important; } /* Disable peek — 2 items variant */ .is-style-snap-carousel-duo > * { flex-basis: calc(50% - 0.75rem) !important; } /* Disable peek — 4 items variant */ .is-style-snap-carousel-quad > * { flex-basis: calc(25% - 1.125rem) !important; } Customize navigation arrows /* Arrow color and background */ .snap-carousel-prev, .snap-carousel-next { background: #0073aa; color: #ffffff; border-color: #0073aa; } /* Arrow hover state */ .snap-carousel-prev:hover, .snap-carousel-next:hover { background: #005177; color: #ffffff; } /* Arrow size (default: 44px — WCAG minimum touch target) */ .snap-carousel-prev, .snap-carousel-next { width: 48px; height: 48px; } /* Square arrows instead of round */ .snap-carousel-prev, .snap-carousel-next { border-radius: 8px; } Customize spacing /* Gap between items */ [class*="is-style-snap-carousel"] { gap: 2rem; } /* Space above carousel (room for navigation) */ .snap-carousel-wrapper { padding-top: 4rem; } Customize focus indicator /* Custom focus color for keyboard navigation */ [class*="is-style-snap-carousel"]:focus-visible { outline-color: #ff6600; outline-width: 3px; } .snap-carousel-prev:focus-visible, .snap-carousel-next:focus-visible { outline-color: #ff6600; } Use with WordPress theme.json design tokens The carousel already uses --wp--preset--color--base, --wp--preset--color--contrast and --wp--preset--color--primary tokens. You can override these per-block in theme.json or via CSS: /* Example: dark themed carousel */ .snap-carousel-wrapper { --wp--preset--color--base: #1a1a2e; --wp--preset--color--contrast: #e0e0e0; --wp--preset--color--primary: #e94560; } Technical Notes – CSS overrides flex-wrap: nowrap on the Row container to force horizontal scrolling – Items use a slightly reduced flex-basis to create a peek effect (next item partially visible) – Navigation buttons are positioned absolute at the top right (adjust top value for your theme) – JS uses a 150ms debounce on scroll for button state updates and 300ms for screen reader announcements – Compatible with WooCommerce blocks (products, etc.) About Snap Carousel is built and maintained by WeAre[WP], a French WordPress agency specializing in accessible websites and RGAA compliance audits. This plugin was built to solve a real problem: every carousel plugin we audited failed basic accessibility requirements. So we built one that passes our own audits. Need help with your WordPress project? Get in touch.
Top keywords
- carousel22×2.84%
- items15×1.93%
- block11×1.42%
- peek10×1.29%
- css8×1.03%
- group7×0.90%
- navigation7×0.90%
- variant7×0.90%
- disable6×0.77%
- item6×0.77%
- query6×0.77%
- scroll6×0.77%
UpdraftPlus
The UpdraftPlus Backup & Migration Plugin is trusted by the WordPress community to backup, restore and migrate their WordPress websites. UpdraftPlus is actively installed on more than 3 million websites around the world. Backup with UpdraftPlus UpdraftPlus is the world’s highest ranking and most popular scheduled backup and migration plugin. Backup to your preferred storage location and restore in just three clicks. Backup to Dropbox, Google Drive, Amazon S3 (or compatible), Rackspace Cloud, FTP, DreamObjects, Openstack Swift or email. The paid version also allows you to backup to Microsoft OneDrive, Microsoft Azure, Google Cloud, Backblaze B2, SFTP, SCP, pCloud, WebDAV or UpdraftVault, our integrated storage option for UpdraftPlus. Backup manually or schedule to run every 2, 4, 8 or 12 hours, daily, weekly, monthly or fortnightly. Restore with UpdraftPlus Your WordPress website is vulnerable. Your site may get hacked. Something could go wrong with an update or your server could crash. You might need to reverse a change made or a mistake caused by human error. Whatever the reason, you can restore your WordPress website in just a few clicks with UpdraftPlus. Choose which components to restore (e.g. plugins, themes, database etc.), click again to restore, then click again to return to the main screen. Migrate with UpdraftPlus It’s easy to migrate your WordPress website to another web host, server or domain with this free version of UpdraftPlus. To migrate, simply download your database, plugins, themes etc. from the source site, then upload them into your destination site. When migrating, a built-in search-and-replace engine identifies old strings and replaces these to reflect the new location. UpdraftPlus saves you time and reduces the risk of broken links or missing files associated with manual migrations. Why UpdraftPlus? Writing a reliable backup and migration plugin that ‘just works’ consistently across millions of different WordPress deployments is hard. UpdraftPlus is relied upon to do exactly that. We’re trusted and actively deployed on more websites around the world than any other WordPress backup and migration plugin. UpdraftPlus: Backs up, migrates and restores Offers a huge number of remote storage locations Allows you to schedule backups, so you can ‘set and forget’ Is comprehensive and easy to use Is proven to work on over 3 million sites. UpdraftPlus Premium The free version of UpdraftPlus will back up and migrate your website perfectly well. However if you need more features and options you can purchase our Premium version. Backup and Migrate with UpdraftPlus Premium, and: Get automatic backups before updates. Restore the very latest version if a WordPress or plugin update breaks your site. Backup Incrementally. Changes are added to the master, saving server resources vs repeatedly backing up in full. Get more remote storage options including Microsoft OneDrive, SFTP, Microsoft Azure, WebDAV, Google Cloud, SCP, Backblaze and pCloud. Get 1GB of integrated storage with UpdraftVault for 99.999% reliability, redundancy and scalability. Get more control over how many backups are stored in a specified interval. Restore from other backup plugins including BackWPup, BackupWordPress, Simple Backups and more. Run backups at set times e.g. during periods of low traffic. Backup to more than one location for added protection. Get detailed reports. Includes cryptographic checksums so you can verify the integrity of the backup files and more. Get Premium migration. Migrating to the destination site is more direct and can be done from the source site. Get Multisite / multi-network compatibility. Backup non-WP files and databases e.g. tables belonging to your e-commerce store or customisations to WordPress core. Get database encryption. Manage your backups and migrations from the WP-CLI. Get Premium Support. Find out more on our comparison page. UpdraftPlus Premium is available for purchase here. Managing multiple websites? UpdraftCentral is a powerful remote control dashboard for WordPress that allows you to manage your backups, as well as updates, users, pages, posts, plugins and themes from one central location. Choose between: UpdraftCentral (free, self-hosted) UpdraftCentral Premium (paid-for, self-hosted) UpdraftCentral Cloud (paid-for, fully-hosted) Optimize your sites centrally by combining the power of WP-Optimize and UpdraftCentral or manage your backups centrally by combining the power of UpdraftPlus with UpdraftCentral. Need to create a temporary clone of your site? UpdraftClone makes it quick and easy to create a temporary sandbox for changes you want to try out. Simply select the versions of WordPress and PHP that you want, and we’ll do the rest. More about UpdraftClone The full suite of plugins from Team Updraft and friends UpdraftPlus. Backup, migrate and restore. Rated 5* on the plugin directory and trusted by more than 3 million WordPress website owner WP-Optimize. Clean the database, compress images and caching. Optimize your WordPress website. 5* user rating. 1 million + active installs. All-In-One Security (AIOS). Secure your WordPress website. Comprehensive, feature rich and easy to use. 5* user rating and 1 million + active installs. WP Overnight. Quality Extensions for your WooCommerce store. 5* rated invoicing, order and product management, customer management solutions and more. Easy Updates Manager. Take control of updates. Lots of features for free, and a Premium version with even more – over 300,000 users. Internal Link Juicer.Boost your SEO. Automate internal links within your WordPress website. Save time and rank higher in the search engines. For other useful, free plugins see our lead developer’s profile, here. Are you multilingual? Can you translate? Do you want to help people that speak your language to backup, migrate and restore their WordPress websites? The UpdraftPlus backup, migration and restoration plugin is ready and waiting. The translation process is easy, and web-based – please go here for instructions: https://updraftplus.com/translate/. Or, if you’re already an expert WordPress translator, just pick out the .pot file from the wp-content/plugins/updraftplus/languages/ directory – if you scan for translatable strings manually, then you need to get these functions: _x(), __(), _e(), _ex(), log_e(). Many thanks to our existing translators. License Copyright 2011-24 David Anderson This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Non-English translators are provided by volunteers, and wordpress.org does not give plugin developers control over their translations; thus relying on them is at your own risk; UpdraftPlus cannot guarantee that translations from the original English are accurate. We recognise and thank those mentioned at https://updraftplus.com/acknowledgements/ for code and/or libraries used and/or modified under the terms of their open source licences.