orbit-block-variationslisted
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