
Description
Create a modern WordPress block theme.
SKILL.md
Theme Creator
Use this skill when the user wants a new WordPress theme or a substantial visual overhaul for a local Studio site.
Ownership
This skill owns:
- block theme implementation rules
- landing page and template composition
- WordPress-native layout structure for theme content
- theme-local artifact placement inside the selected Studio site
Use studio for the review loop after making changes. Use auditing when the user wants performance, accessibility, or broader frontend QA after the theme work.
Principles
- Build block themes, not classic themes.
- Use modern WordPress patterns:
theme.json, template parts, templates, core blocks. - Prefer CSS and block composition over raw HTML blocks.
- Keep the theme editable in the Site Editor.
- Use Studio tools for activation, validation, and screenshots.
Required files
At minimum:
<theme-slug>/
├── theme.json
├── style.css
├── functions.php
├── templates/
│ ├── index.html
│ └── page.html
└── parts/
├── header.html
└── footer.html
Design approach
- choose a clear visual direction
- build a strong landing page, not a generic shell
- use purposeful typography, spacing, and color
- avoid generic AI-looking aesthetics
- design for desktop and mobile
- if the caller provides a selected design preview, treat that preview as the primary visual source for the theme's header, hero, and overall design language
Once you are committed to the theme implementation workflow and before the main file-writing phase, call record_workflow_event with workflow: "theme-build" and stage: "started".
Theme rules
- No
core/htmlblocks for layout sections or normal text content. - Use proper block markup only.
- No decorative HTML comments outside block delimiters.
- Put visual styling in
style.css. - Block themes do not automatically load
style.csson the front end. You must explicitly enqueue it infunctions.phpwithwp_enqueue_style( '<slug>-style', get_stylesheet_uri() )on thewp_enqueue_scriptshook. - Enqueue editor styles so the editor resembles the front end.
- Add
prefers-reduced-motionhandling when using animations.
Layout rules
- Choose the layout approach that best fits the brief. Do not force every site into full-width landing-page bands.
- If you decide full-width sections are appropriate for this site type or brief, use WordPress-native full-width section structure first.
- For those sections, make the outer top-level
core/groupblock use{"align":"full","layout":{"type":"default"}}. - For full-width landing-page sections, use a strict shell pattern:
- outer section:
core/groupwithalign:"full"andlayout.type:"default" - inner content shell: immediate child
core/groupwithalign:"wide" - primary
core/columnsinside that shell should also usealign:"wide"when the section is meant to feel expansive
- outer section:
- Keep readable text and card grids inside an inner container block instead of constraining the outer full-width section itself.
- Do not leave intermediate groups or columns at constrained or default width between the full-width section and the main content shell unless the design intentionally calls for a narrow reading measure.
- Keep
theme.jsonlayout settings aligned with the design, including sensiblecontentSizeandwideSizevalues. - Do not rely on CSS alone to make a constrained block look full width when Gutenberg block alignment should carry that responsibility.
- If screenshots still show boxed or constrained sections after using full-width blocks, inspect wrapper alignment, serialized block markup, template layout, and
theme.jsonbefore adding custom breakout CSS.
Verification flow
After writing or updating block theme files:
- run the
studioblock validation loop on every template or template-part file containing serialized block markup - if validation reports invalid blocks, repair the markup and re-run until all blocks validate cleanly
- activate the theme with
wp_cli - update site settings if needed with
wp_cli - follow the review and iteration workflow in
studio - call
record_workflow_eventwithworkflow: "theme-build"andstage: "completed"
If the user asks whether the result is fast, accessible, or polished beyond the normal review loop, use auditing.
More skills from the build-with-wordpress repository
View all 8 skillsauditing
audit WordPress sites for performance and accessibility
Apr 6AccessibilityAuditPerformanceWordPressblock-creator
create WordPress Gutenberg blocks
Apr 6Block EditorFrontendPlugin DevelopmentWordPressdesign-previews-creator
generate WordPress design preview options
Apr 6DesignThemesWordPressplugin-creator
create WordPress plugins
Apr 6Plugin DevelopmentWordPresssite-creator
create WordPress sites from a brief
Apr 6Local DevelopmentWordPressstudio
run local WordPress development with Studio
Apr 6CLILocal DevelopmentMCPWordPress
More from Automattic
View publisherannotate
collect visual feedback with browser annotation tools
studio
May 6FrontendProductivityUX CopyUX Designblock-content
write editable WordPress block markup
studio
May 27Block EditorCSSHTMLWordPresshosting-plans-helper
provide WordPress.com hosting plan information
studio
Jul 2PricingReferenceWordPressliberate
migrate websites to WordPress
studio
Jul 9CMSMigrationWeb DevelopmentWordPressneed-for-speed
run frontend performance audits for WordPress sites
studio
May 6AuditFrontendPerformanceWordPressplugin-recommendations
recommend WordPress plugins for site features
studio
May 27Content CreationPlugin DevelopmentWordPress