A starter block theme that gives you a quick head start on new block-based themes, with a bunch of developer-friendly features built in.
This is a starter WordPress block theme. It provides the structure, examples, asset pipeline, checks, and optional development features needed for building a new block theme.
This theme uses rtcamp/wp-primitives as a runtime dependency and ships with @rtcamp/wp-tooling for streamlined project initialization and feature scaffolding.
Working on this theme? See DEVELOPMENT.md for the architecture overview, the module pattern, and how to add new classes. CONTRIBUTING.md covers the dev setup and PR flow.
Create a new theme with Composer, or clone this repository:
composer create-project rtcamp/theme-elementary my-themeStart with the Getting Started guide — a short, concrete walkthrough covering prerequisites, acquiring the starter, installing dependencies, personalizing the theme, and seeing it running in local WordPress.
Initialization personalizes the theme and lets you keep or remove the supplied examples. The asset pipeline builds CSS, JavaScript, and blocks; HMR and Tailwind are optional. Linting, static analysis, tests, and AI-assisted setup and scaffolding are included for project development.
See Included features for the available examples and options.
Once the theme is running, here's where to go next:
| I want to… | Read |
|---|---|
| Initialize or manage a theme | Initialization |
| Run WordPress locally, build, or check a change | Local development |
| Explore the supplied examples and optional features | Included features |
| Generate a feature | Scaffolding |
| Extend the theme by hand | Development guide |
This theme ships AI-assisted setup and feature scaffolding, kept in step across assistants:
- Claude Code: retained skills in
.claude/skills/—/init,/scaffold, and/setup. - GitHub Copilot:
/initand/scaffoldprompts are available while setting up this source repository.- Initialization removes the Copilot-specific files under
.github(copilot-instructions.md,prompts/,instructions/); issue templates, the PR template, and workflows stay.
- Initialization removes the Copilot-specific files under
- A committed knowledge graph in
graphify-out/lets AI assistants query the codebase's structure instead of reading it all; see docs/internal/knowledge-graph.md for how it's built and kept current.
Shared conventions for all assistants live in AGENTS.md.
functions.php # PHP entry point
inc/ # project PHP (PSR-4 root)
├── Autoloader.php # wraps vendor/autoload.php with graceful failure
├── Main.php # theme bootstrap — loads services
├── Abstracts/ # base classes for theme features
├── Helpers/ # stateless static utilities
├── Core/ # theme-wide infra — assets, components, menus, templates, theme setup
└── Modules/ # feature areas
├── BlockExtensions/ # block render filters and integrations
├── Settings/ # admin settings pages (extend AbstractSettingsPage)
└── Shortcodes/ # shortcodes
src/{components,css,js,fonts,images}/ # frontend sources → assets/build/
parts/ patterns/ templates/ # block parts, patterns, templates
template-parts/ # PHP template partials
styles/ # theme.json style variations
theme.json style.css # theme config
bin/ # init and scaffold scripts
tests/{js,php}/ # JS & PHP tests
vendor/rtcamp/wp-primitives/ # framework (Composer-managed; do not modify)
Some of these directories hold supplied examples that initialization can remove; see Included features.

