← ClaudeAtlas

orbit-block-variationslisted

Audit block variations — alternative configurations of an existing block (e.g. core/group's "Row" variation), `transforms` between blocks, and the variation picker UI in the inserter. Use when the user says "block variation", "registerBlockVariation", "transform between blocks", or has multiple similar custom blocks that should be variations of one.
adityaarsharma/orbit · ★ 1 · Testing & QA · score 55
Install: claude install-skill adityaarsharma/orbit
# 🪐 orbit-block-variations — Block variations + transforms Variations let one block do many things. Many plugins ship 5 nearly-identical blocks when one + 5 variations would be cleaner. --- ## Quick start ```bash claude "/orbit-block-variations Audit ~/plugins/my-plugin for over-blocking — places where multiple blocks should be variations of one." ``` --- ## What it checks ### 1. Variations registered in JS ```js // edit.js or variations.js import { registerBlockVariation } from '@wordpress/blocks'; registerBlockVariation( 'my-plugin/container', { name: 'card', title: __( 'Card', 'my-plugin' ), icon: 'card', attributes: { layout: 'card', padding: 'large' }, innerBlocks: [ [ 'core/heading', { level: 3 } ], [ 'core/paragraph' ], ], scope: [ 'inserter' ], // also: 'block', 'transform' } ); ``` ### 2. Use cases for variations vs separate blocks | Use variation when | Use separate block when | |---|---| | Same render, different default attributes | Genuinely different render logic | | Same edit UI | Different InspectorControls | | Same allowed inner blocks | Different inner-block contracts | ### 3. Transform registered (so users can switch) ```json // block.json "transforms": { "from": [ { "type": "block", "blocks": ["core/paragraph"], "transform": "..." } ], "to": [ { "type": "block", "blocks": ["core/quote"], "transform": "..." } ] } ``` ### 4. Variation icons + labels are translatable **Whitepaper intent:** Variations show up