Theme preview: allow users to save changes before activating the theme #67631
Labels
[Feature] Site Editor
Related to the overarching Site Editor (formerly "full site editing")
[Type] Feature
New feature to highlight in changelogs.
Description
@carolinan, @SergeyBiryukov and myself we're exploring potential improvements for theme creators and ways to make a theme customization flow more useful for some users.
The theme preview implemented in #50030 has great potential. From the WP admin > Appearance > any block theme > Live Preview, users can preview a non-active theme in the Site editor and they can also make changes to the previewd theme.
However, once they are done with their changes, they can only save and activate the theme.
For the future, we envision the Site Editor as a place where users can create a full theme from scratch. While there are many parts that should be implemented or improved to make the editor provide a full theme-creation experience, it seems to us that a good first step would be to decouple the 'Save' and 'Activate' actions in the Theme preview.
Allowing users to save their previewed theme changes before activating the theme would help other use cases as well. For example, users may want to deeply customize a previewed theme and that could require hours maybe days of work. By decoupling the Save and Activate actions, users would be able to take all the time they need for their customization work and activate when they are ready.
Code-wise, it looks like activation of the theme is always forced when saving changes to a previewed theme. It always assumes users want to activate the theme, while that may not be necessarily true.
Step-by-step reproduction instructions
Screenshots, screen recording, code snippet
No response
Environment info
No response
Please confirm that you have searched existing issues in the repo.
Please confirm that you have tested with all plugins deactivated except Gutenberg.
Please confirm which theme type you used for testing.
The text was updated successfully, but these errors were encountered: