{"id":345522,"date":"2026-08-01T21:10:17","date_gmt":"2026-08-01T21:10:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/blocktopus\/"},"modified":"2026-09-05T13:21:31","modified_gmt":"2026-09-05T13:21:31","slug":"blockshifter","status":"publish","type":"plugin","link":"https:\/\/sl.wordpress.org\/plugins\/blockshifter\/","author":23538396,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.0","stable_tag":"0.3.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Blockshifter","header_author":"Ange Chierchia","header_description":"Transform native Gutenberg blocks into alternate display variants without leaving the editor.","assets_banners_color":"","last_updated":"2026-09-05 13:21:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":188,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"nighcrawl","date":"2026-08-01 21:09:47","revision":3631329},"0.2.0":{"tag":"0.2.0","author":"nighcrawl","date":"2026-08-15 14:23:23","revision":3648701},"0.3.0":{"tag":"0.3.0","author":"nighcrawl","date":"2026-09-05 13:21:31","revision":3682473}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3631328,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3631328,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3631328,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.2.0","0.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3682473,"resolution":"1","location":"assets","locale":"","width":1400,"height":855},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3682473,"resolution":"2","location":"assets","locale":"","width":1400,"height":855},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3682473,"resolution":"3","location":"assets","locale":"","width":1400,"height":855},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3682473,"resolution":"4","location":"assets","locale":"","width":1400,"height":855},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3682473,"resolution":"5","location":"assets","locale":"","width":1400,"height":260}},"screenshots":{"1":"The Editor Preview of a Gallery block with Carousel mode enabled, showing the Blockshifter Carousel panel and its settings (slides per page, autoplay, infinite loop) in the Inspector.","2":"The Editor Preview of a Group block with Masonry mode enabled, showing the Blockshifter Masonry panel and its Columns setting in the Inspector.","3":"A Gallery block rendered as a Carousel on the front end.","4":"A Group block rendered as a Masonry grid on the front end.","5":"The opt-in telemetry setting in Settings &gt; Blockshifter."}},"plugin_section":[],"plugin_tags":[148857,786,210,148076,6822],"plugin_category":[50],"plugin_contributors":[274195],"plugin_business_model":[],"class_list":["post-345522","plugin","type-plugin","status-publish","hentry","plugin_tags-block-editor","plugin_tags-carousel","plugin_tags-gallery","plugin_tags-gutenberg","plugin_tags-masonry","plugin_category-media","plugin_contributors-nighcrawl","plugin_committers-nighcrawl"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/blockshifter\/assets\/icon.svg?rev=3631328","icon":"https:\/\/ps.w.org\/blockshifter\/assets\/icon.svg?rev=3631328","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/blockshifter\/assets\/screenshot-1.jpg?rev=3682473","caption":"The Editor Preview of a Gallery block with Carousel mode enabled, showing the Blockshifter Carousel panel and its settings (slides per page, autoplay, infinite loop) in the Inspector."},{"src":"https:\/\/ps.w.org\/blockshifter\/assets\/screenshot-2.jpg?rev=3682473","caption":"The Editor Preview of a Group block with Masonry mode enabled, showing the Blockshifter Masonry panel and its Columns setting in the Inspector."},{"src":"https:\/\/ps.w.org\/blockshifter\/assets\/screenshot-3.jpg?rev=3682473","caption":"A Gallery block rendered as a Carousel on the front end."},{"src":"https:\/\/ps.w.org\/blockshifter\/assets\/screenshot-4.jpg?rev=3682473","caption":"A Group block rendered as a Masonry grid on the front end."},{"src":"https:\/\/ps.w.org\/blockshifter\/assets\/screenshot-5.jpg?rev=3682473","caption":"The opt-in telemetry setting in Settings &gt; Blockshifter."}],"raw_content":"<!--section=description-->\n<p>Blockshifter is a growing toolbox of display modes for native Gutenberg blocks \u2014 no new block types, no leaving the block editor, no learning curve.<\/p>\n\n<p>Pick a block you already use \u2014 Gallery, Group \u2014 flip a toggle in its Inspector, and its front-end output transforms. The block itself stays 100% native and editable; nothing about how you write content changes.<\/p>\n\n<p>Think of Blockshifter as a shape-shifter for your blocks: same content underneath, a different shape on the front end. Today it shifts into a Carousel or a Masonry grid; tomorrow more shapes join the same toolbox, each just as simple to switch on.<\/p>\n\n<h4>Carousel, live today<\/h4>\n\n<p>A clean, minimalist carousel for Gallery and Group blocks, powered by <a href=\"https:\/\/splidejs.com\/\">Splide.js<\/a> \u2014 lightweight, accessible, dependency-free. Arrows and pagination are styled to sit quietly on top of your content, in any color, on any background.<\/p>\n\n<ul>\n<li>One toggle to turn a block into a carousel<\/li>\n<li>Slides per page<\/li>\n<li>Autoplay<\/li>\n<li>Infinite loop<\/li>\n<li>Fully responsive, keyboard and screen-reader friendly out of the box<\/li>\n<\/ul>\n\n<h4>Masonry, live today<\/h4>\n\n<p>A compact, variable-height masonry grid for Gallery and Group blocks, built with native CSS Grid \u2014 no third-party library. Every native Gutenberg setting stays in charge: Columns and Gap on Gallery, Gap on Group.<\/p>\n\n<ul>\n<li>One toggle to turn a block into a masonry grid<\/li>\n<li>Columns (Group only \u2014 Gallery keeps its own native Columns control)<\/li>\n<li>Respects each block's native Gap and responsive behavior<\/li>\n<li>Degrades gracefully to a regular grid without JavaScript<\/li>\n<\/ul>\n\n<h4>More shapes are coming<\/h4>\n\n<p>Accordion and other display modes are on the roadmap. Every future module follows the exact same pattern you already know: pick a block, flip a toggle, done.<\/p>\n\n<h4>For developers<\/h4>\n\n<p>The list of blocks a module targets is filterable, so you can extend any module to other core blocks without forking the plugin \u2014 the filter name follows <code>blockshifter\/&lt;module&gt;\/allowed_blocks<\/code>:<\/p>\n\n<pre><code>add_filter( 'blockshifter\/carousel\/allowed_blocks', function( $blocks ) {\n    $blocks[] = 'core\/columns';\n    return $blocks;\n} );\n\nadd_filter( 'blockshifter\/masonry\/allowed_blocks', function( $blocks ) {\n    $blocks[] = 'core\/columns';\n    return $blocks;\n} );\n<\/code><\/pre>\n\n<h3>Privacy<\/h3>\n\n<p>Blockshifter includes a fully <strong>opt-in<\/strong> telemetry feature \u2014 disabled by default, and no data is ever sent before you explicitly enable it from Settings &gt; Blockshifter.<\/p>\n\n<p>When enabled, once a week (and once immediately after you opt in), the plugin sends this anonymous payload to <code>https:\/\/api.blockshifter.dev\/v1\/telemetry<\/code>:<\/p>\n\n<ul>\n<li>A random installation identifier (a UUID generated locally, not tied to your identity or your site's URL)<\/li>\n<li>The Blockshifter, WordPress and PHP version numbers<\/li>\n<li>Which Blockshifter modules (Carousel, Masonry...) are detected in your rendered content<\/li>\n<\/ul>\n\n<p>No page content, no URL, no username, no email address and no IP address is stored. You can disable telemetry at any time from Settings &gt; Blockshifter, which also stops all further data collection.<\/p>\n\n<p>Full privacy policy: https:\/\/blockshifter.dev\/privacy.html<\/p>\n\n<h3>Development<\/h3>\n\n<p>Source code, build tools and issue tracker: https:\/\/github.com\/nighcrawl\/Blockshifter<\/p>\n\n<p>The <code>src\/<\/code> directory contains the human-readable, unminified source for everything shipped in <code>build\/<\/code>. See the repository's README for the build steps (<code>composer install &amp;&amp; npm install &amp;&amp; npm run build<\/code>).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/blockshifter<\/code>, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Select a Gallery or Group block in the editor, open the Inspector, and enable the \"Blockshifter Carousel\" or \"Blockshifter Masonry\" panel.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20this%20on%20blocks%20other%20than%20gallery%20and%20group%3F\"><h3>Can I use this on blocks other than Gallery and Group?<\/h3><\/dt>\n<dd><p>Not out of the box yet, but developers can extend any module's target blocks via its <code>blockshifter\/&lt;module&gt;\/allowed_blocks<\/code> filter \u2014 see the Description above.<\/p><\/dd>\n<dt id=\"are%20other%20display%20modes%20%28accordion...%29%20available%3F\"><h3>Are other display modes (Accordion...) available?<\/h3><\/dt>\n<dd><p>Not yet \u2014 the current release ships with the Carousel and Masonry modules. More are planned.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20free%3F\"><h3>Is this plugin free?<\/h3><\/dt>\n<dd><p>Yes, Blockshifter is completely free, with no premium tier at this time.<\/p><\/dd>\n<dt id=\"does%20blockshifter%20collect%20any%20data%3F\"><h3>Does Blockshifter collect any data?<\/h3><\/dt>\n<dd><p>Blockshifter includes an optional, opt-in telemetry feature, disabled by default. If you choose to enable it from Settings &gt; Blockshifter, it sends a small anonymous payload (installation UUID, Blockshifter\/WordPress\/PHP versions, and which modules are detected in use) to help prioritize development \u2014 no page content, URL, username, email or IP address is ever collected. See the Privacy section below for full details, and how to disable it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Adds Editor Preview: the editor canvas now renders a live preview of the Carousel or Masonry front-end output while a Module is enabled, plus a \"Shifted\" badge on the block toolbar to indicate a Module is active.<\/li>\n<li>Adds fully opt-in, anonymous usage telemetry \u2014 disabled by default. See the Privacy section below for details.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Adds Masonry, a second Blockshifter module: turns a Gallery or Group block into a compact, variable-height CSS Grid layout, with the same \"pick a block, flip a toggle\" pattern as Carousel.<\/li>\n<li>Gap and (on Gallery) Columns always come from the block's own native Gutenberg settings \u2014 Masonry never duplicates them.<\/li>\n<li>Matches Gallery's native responsive behavior (two columns on narrow screens, configured column count above) on both Gallery and Group.<\/li>\n<li>Degrades gracefully to a regular, non-overlapping grid without JavaScript.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: Carousel, the first Blockshifter module, for the Gallery and Group blocks.<\/li>\n<\/ul>","raw_excerpt":"Transform native Gutenberg blocks into alternate display variants without leaving the editor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345522"}],"author":[{"embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nighcrawl"}],"wp:attachment":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345522"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345522"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345522"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345522"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345522"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}