Discussion: Requirements for full site editing themes

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 FSEFSE Short for Full Site Editing, a project for the Gutenberg plugin and the editor where a full page layout is created using only blocks. themes in the theme directory.

Having basic requirements is one of the steps needed for us to be able to open up theme submissions:

  1. Requirements
  2. Update the Theme Check pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party to allow full site editing themes
  3. Strengthen reviewer knowledge
  4. Activate GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/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 blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. 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.htmlHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. (placed inside the block-templates folder)
  • Temporary: Comments.php is required as without it, a PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. warning is shown.
  • Theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. (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 CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. 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

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. 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
  • AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/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

#full-site-editing, #guidelines, #themes