From wp-agent-skills
Create or update a named WordPress block pattern — a reusable, animated, responsive page section that becomes part of the site's design vocabulary. Use when building a new section type (hero, gallery, timeline, contact, etc.), updating an existing pattern, or when the user describes a visual section they want on their site. Produces production-grade markup using the site's design tokens and GSAP data-anim attributes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/wp-agent-skills:wp-create-patternThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create or update a named block pattern. Patterns are the site's design vocabulary —
Create or update a named block pattern. Patterns are the site's design vocabulary — reusable sections assembled into pages.
Before building a new pattern, run
/frontend-designto lock in the aesthetic direction. For GSAP animation guidance, see companion-skills.md.
| Slug | Purpose |
|---|---|
hero-cinematic | Full-viewport hero with parallax text |
about-split | Two-column text + image (reversible) |
timeline-scroll | Vertical milestone timeline |
gallery-masonry | Animated masonry photo grid |
quote-feature | Large pull-quote with decorative accent |
contact-minimal | Clean contact form + social links |
nav-sticky | Transparent → frosted glass nav on scroll |
For detailed visual specs on each pattern, read references/pattern-guide.md.
When creating multiple patterns in one session, use subagents in parallel:
For a single pattern, no subagents needed.
If the slug is in the vocabulary above: use its defined purpose. If it's new: ask what the section is for and what mood (dramatic / gentle / informative / playful).
Fetch theme.json from the theme. Only use CSS token variables — never hardcode colors or fonts:
var(--wp--preset--color--accent)
var(--wp--preset--font-family--display)
var(--wp--preset--spacing--8)
Every pattern must:
data-anim on all key visual elements (see CLAUDE.md for full list)<?php
/**
* Pattern: <Pattern Name>
* Description: <description>
* Categories: lavon-patterns
* Slug: lavon/<pattern-slug>
*/
?>
<!-- wp:group {"className":"pattern-<slug>","layout":{"type":"constrained"}} -->
<div class="wp-block-group pattern-<slug>">
<!-- blocks here -->
</div>
<!-- /wp:group -->
Register in functions.php (add to the existing block pattern section):
register_block_pattern('lavon/<slug>', [
'title' => '<Pattern Name>',
'categories' => ['lavon-patterns'],
'content' => file_get_contents(__DIR__ . '/patterns/<slug>.php'),
]);
# Pattern appears in REST API
curl "$WP_SITE_URL/wp-json/wp/v2/block-patterns/patterns" | grep '"lavon/<slug>"'
register_block_pattern must run after init, not at the top level of functions.php. Wrap it in add_action('init', function() { ... }); if it's not already.lavon/<slug>), not bare strings. Bare slugs will be accepted silently but break in the editor.file_get_contents on a PHP file returns the raw PHP/HTML, not executed output. This is correct — the block editor parses the HTML, not PHP. Don't use include or require.data-anim attributes must be on the wrapper <div>, not the inner block <!-- wp: --> comment. The comment is stripped; only the rendered HTML gets the attribute.wp:group or wp:html block, not directly on a wp:heading.Pattern slug, data-anim attributes used, first 20 lines of markup.
Suggest the next pattern to create.
npx claudepluginhub antonysilverhand/wp-agent-skills --plugin wp-agent-skillsGuides generating WordPress block patterns for themes, with rules for page-builder content (Shopify, Replo, Wix, Squarespace, Shogun) and verbatim copy requirements.
Generates WordPress Full Site Editing block themes: theme.json configs, block templates, template parts, patterns, functions.php, and styles.
Creates WordPress block patterns from Figma designs or screenshots, generating PHP pattern files, SCSS stylesheets, and editor styles with accessibility and responsive defaults.