Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Add filter to enable custom classes in "editor-styles-wrapper" #68538

Open
wants to merge 1 commit into
base: trunk
Choose a base branch
from

Conversation

colinduwe
Copy link
Contributor

@colinduwe colinduwe commented Jan 7, 2025

What?

Adds a 'bodyClasses' property to the block editor settings that emulates the classes applied to the pre-Gutenberg TinyMCE iframe and applies those classes to the block editor's iframe. This allows, for example, targeting CSS for the iframe based on the page template selected.

Why?

Addresses #17854 and #56831

How?

Adds a 'bodyClasses' property to the block editor settings that emulates the classes applied to the TinyMCE iframe.
The body classes can be modified by extenders via the block_editor_settings_all filter
The body classes are applied to the post/site editor iframe.
The body classes can be modified by updating the editor settings state. For example, when using the "swap template" or "use default template" buttons, the page template class is updated on the iframe.

Questions/Problems

  1. This basically copies the code from TinyMCE to add the following classes: post-type, post-status, post-format, page-template, and locale. Are those still the classes we want added to the iframe?
  2. Because attributes added to get_block_editor_settings are not available on the core/block-editor store, only on the deprecated core/editor store, how can this be modified to be merged?
  3. This only modifies the page-template class when the user swaps the template or restores the default template. Creating a new template is still to do. Are there other actions that should update the body classes?
  4. I couldn't figure out how to reference the 'core/editor' store by variable so I just kept referring to it by string and I use --no-verify to ignore the js lint errors.

… applied to iframe. Template class is modified when swapping templates.
Copy link

github-actions bot commented Jan 7, 2025

Warning: Type of PR label mismatch

To merge this PR, it requires exactly 1 label indicating the type of PR. Other labels are optional and not being checked here.

  • Type-related labels to choose from: [Type] Automated Testing, [Type] Breaking Change, [Type] Bug, [Type] Build Tooling, [Type] Code Quality, [Type] Copy, [Type] Developer Documentation, [Type] Enhancement, [Type] Experimental, [Type] Feature, [Type] New API, [Type] Task, [Type] Technical Prototype, [Type] Performance, [Type] Project Management, [Type] Regression, [Type] Security, [Type] WP Core Ticket, Backport from WordPress Core, Gutenberg Plugin.
  • Labels found: .

Read more about Type labels in Gutenberg. Don't worry if you don't have the required permissions to add labels; the PR reviewer should be able to help with the task.

Copy link

github-actions bot commented Jan 7, 2025

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: colinduwe <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant