As explorations of the minimum viable full site editing theme continues and the outreach program is starting, it is time to have a first discussion about requirements for FSE themes in the theme directory.
Having basic requirements is one of the steps needed for us to be able to open up theme submissions:
- Requirements
- Update the Theme Check plugin to allow full site editing themes
- Strengthen reviewer knowledge
- Activate Gutenberg on the theme previewer -Completed
These are discussions points and not a complete proposal.
You can compare the items below with the current requirements.
New code requirements:
Valid block markup: There must be no block validation errors on theme switch.
For this requirement, we need to research if it is possible to validate the block markup automatically.
Minimum required files:
- style.css
- readme.txt
- functions.php
- index.html (placed inside the block-templates folder)
- Temporary: Comments.php is required as without it, a PHP warning is shown.
- Theme.json (or experimental-theme.json).
Requirements that may need to be adjusted:
Plugins: Themes are allowed to require Gutenberg as long as Gutenberg is needed to enable full site editing.
Options and Settings
Theme options may only be included as:
- Theme_support
- Global style settings
- Block patterns
- Block variations
- Block styles
Items under this requirement that become irrelevant or confusing because blocks are used instead of PHP functions:
- Use the Customizer for implementing theme options
- Save options in a single array
- Don’t use transients for things they shouldn’t be used for, like storing theme options
- Use sane defaults and don’t write default setting values to the database
Presentation vs Functionality: Images that are not plain placeholder images and essential for the design are allowed.
Items under this requirement that become irrelevant or confusing because blocks are used instead of PHP functions:
- The theme options should not be pseudo custom post types and save non-trivial user data
- Non-design related functionality is not allowed
Core Functionality and Features
Items under this requirement that become irrelevant or confusing because blocks are used instead of PHP functions:
If incorporated, features must support the WordPress functionality:
- Sidebars
- Navigation Menus
- Post Thumbnails
- Custom Headers
- Custom Backgrounds
- Editor Style
- Logo
Use template tags properly
Include comments.php (via comments_template())
Requirements that remain the same:
- Licensing
- Accessibility (temporary exception for skip to content link)
- Readme file
- Importing or downloading
- Documentation
- Naming
- Screenshot
- Image guidelines (exception for placeholder images that are essential for the design)
- Stylesheets and Scripts
- Privacy
- Selling, credits, and links
- Child themes
Requirements that it is not currently possible to follow:
Language / translation ready
Request for feedback
- Which of the current requirements are relevant for full site editing themes?
- What new full site editing specific requirements needs to be added?
- How do we best present the requirements for full site editing themes?
- On a separate page
- In a separate section of the current requirements page
- Other, describe your suggestion in the comment