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

Move legacy meta boxes to toggle #59242

Open
wants to merge 5 commits into
base: trunk
Choose a base branch
from
Open

Conversation

ellatrix
Copy link
Member

@ellatrix ellatrix commented Feb 21, 2024

What?

(would also fix #61210)

image

Why?

Legacy meta boxes prevent the editor content from loading in an iframe. We cannot have two scrollable areas in the content area (and both the iframe and meta box area would be scrollable).

See #34105 for more background.

How?

Testing Instructions

Testing Instructions for Keyboard

Go to Options > Preferences > General > Advanced and toggle custom fields.

Screenshots or screencast

Copy link

github-actions bot commented Feb 21, 2024

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.

Unlinked Accounts

The following contributors have not linked their GitHub and WordPress.org accounts: @Kyleidoscope.

Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases.

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

Unlinked contributors: Kyleidoscope.

Co-authored-by: ellatrix <ellatrix@git.wordpress.org>
Co-authored-by: carolinan <poena@git.wordpress.org>
Co-authored-by: mhkuu <mhkuu@git.wordpress.org>
Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
Co-authored-by: ndiego <ndiego@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: fabiankaegy <fabiankaegy@git.wordpress.org>
Co-authored-by: jeffpaul <jeffpaul@git.wordpress.org>
Co-authored-by: youknowriad <youknowriad@git.wordpress.org>
Co-authored-by: arnaudbroes <arnaudbroes@git.wordpress.org>
Co-authored-by: earnjam <earnjam@git.wordpress.org>
Co-authored-by: annezazu <annezazu@git.wordpress.org>
Co-authored-by: bph <bph@git.wordpress.org>
Co-authored-by: rilwis <rilwis@git.wordpress.org>
Co-authored-by: gaambo <gaambo@git.wordpress.org>
Co-authored-by: zahardev <zahardoc@git.wordpress.org>

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

@ndiego
Copy link
Member

ndiego commented Feb 21, 2024

I like this approach. It will actually make it much easier to edit metabox content.

Copy link

github-actions bot commented Feb 21, 2024

Size Change: +254 B (0%)

Total Size: 1.71 MB

Filename Size Change
build/block-editor/index.min.js 252 kB -3 B (0%)
build/block-library/index.min.js 217 kB +33 B (0%)
build/edit-post/index.min.js 23.9 kB +188 B (+1%)
build/edit-post/style-rtl.css 5.67 kB +18 B (0%)
build/edit-post/style.css 5.66 kB +18 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 955 B
build/annotations/index.min.js 2.69 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 578 B
build/block-directory/index.min.js 7.22 kB
build/block-directory/style-rtl.css 1.03 kB
build/block-directory/style.css 1.03 kB
build/block-editor/content-rtl.css 4.38 kB
build/block-editor/content.css 4.38 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/style-rtl.css 15.7 kB
build/block-editor/style.css 15.7 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 126 B
build/block-library/blocks/audio/theme.css 126 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 415 B
build/block-library/blocks/button/editor.css 414 B
build/block-library/blocks/button/style-rtl.css 627 B
build/block-library/blocks/button/style.css 626 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.69 kB
build/block-library/blocks/cover/style.css 1.68 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 98 B
build/block-library/blocks/details/style.css 98 B
build/block-library/blocks/embed/editor-rtl.css 322 B
build/block-library/blocks/embed/editor.css 322 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 126 B
build/block-library/blocks/embed/theme.css 126 B
build/block-library/blocks/file/editor-rtl.css 316 B
build/block-library/blocks/file/editor.css 316 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 227 B
build/block-library/blocks/form-input/editor.css 227 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 340 B
build/block-library/blocks/form-submission-notification/editor.css 340 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 471 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 947 B
build/block-library/blocks/gallery/editor.css 952 B
build/block-library/blocks/gallery/style-rtl.css 1.72 kB
build/block-library/blocks/gallery/style.css 1.72 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 647 B
build/block-library/blocks/group/editor.css 647 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 336 B
build/block-library/blocks/html/editor.css 337 B
build/block-library/blocks/image/editor-rtl.css 894 B
build/block-library/blocks/image/editor.css 893 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 126 B
build/block-library/blocks/image/theme.css 126 B
build/block-library/blocks/image/view.min.js 1.54 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 668 B
build/block-library/blocks/navigation-link/editor.css 669 B
build/block-library/blocks/navigation-link/style-rtl.css 259 B
build/block-library/blocks/navigation-link/style.css 257 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B
build/block-library/blocks/navigation-submenu/editor.css 295 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.26 kB
build/block-library/blocks/navigation/style.css 2.25 kB
build/block-library/blocks/navigation/view.min.js 1.02 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 666 B
build/block-library/blocks/post-featured-image/editor.css 662 B
build/block-library/blocks/post-featured-image/style-rtl.css 342 B
build/block-library/blocks/post-featured-image/style.css 342 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 409 B
build/block-library/blocks/post-template/style.css 408 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 354 B
build/block-library/blocks/pullquote/style.css 354 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 629 B
build/block-library/blocks/search/style.css 628 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 478 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 229 B
build/block-library/blocks/separator/style.css 229 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 323 B
build/block-library/blocks/shortcode/editor.css 323 B
build/block-library/blocks/site-logo/editor-rtl.css 754 B
build/block-library/blocks/site-logo/editor.css 754 B
build/block-library/blocks/site-logo/style-rtl.css 204 B
build/block-library/blocks/site-logo/style.css 204 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.49 kB
build/block-library/blocks/social-links/style.css 1.48 kB
build/block-library/blocks/spacer/editor-rtl.css 350 B
build/block-library/blocks/spacer/editor.css 350 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 395 B
build/block-library/blocks/table/editor.css 395 B
build/block-library/blocks/table/style-rtl.css 639 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 146 B
build/block-library/blocks/table/theme.css 146 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 403 B
build/block-library/blocks/template-part/editor.css 403 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 185 B
build/block-library/blocks/video/style.css 185 B
build/block-library/blocks/video/theme-rtl.css 126 B
build/block-library/blocks/video/theme.css 126 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.4 kB
build/block-library/editor.css 12.3 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.8 kB
build/block-library/style.css 14.8 kB
build/block-library/theme-rtl.css 688 B
build/block-library/theme.css 693 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.8 kB
build/commands/index.min.js 15.6 kB
build/commands/style-rtl.css 935 B
build/commands/style.css 930 B
build/components/index.min.js 223 kB
build/components/style-rtl.css 11.8 kB
build/components/style.css 11.8 kB
build/compose/index.min.js 12.6 kB
build/core-commands/index.min.js 2.77 kB
build/core-data/index.min.js 72.8 kB
build/customize-widgets/index.min.js 12.1 kB
build/customize-widgets/style-rtl.css 1.33 kB
build/customize-widgets/style.css 1.33 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 8.95 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 558 B
build/edit-post/classic.css 558 B
build/edit-site/index.min.js 216 kB
build/edit-site/style-rtl.css 15.4 kB
build/edit-site/style.css 15.4 kB
build/edit-widgets/index.min.js 17.3 kB
build/edit-widgets/style-rtl.css 4.23 kB
build/edit-widgets/style.css 4.23 kB
build/editor/index.min.js 64 kB
build/editor/style-rtl.css 5.34 kB
build/editor/style.css 5.33 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 7.89 kB
build/format-library/style-rtl.css 492 B
build/format-library/style.css 490 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.58 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.67 kB
build/interactivity/index.min.js 12.9 kB
build/interactivity/navigation.min.js 1.15 kB
build/interactivity/query.min.js 740 B
build/interactivity/router.min.js 1.36 kB
build/interactivity/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.74 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 851 B
build/list-reusable-blocks/style.css 849 B
build/media-utils/index.min.js 2.9 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 2 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 742 B
build/patterns/index.min.js 5.67 kB
build/patterns/style-rtl.css 553 B
build/patterns/style.css 552 B
build/plugins/index.min.js 1.8 kB
build/preferences-persistence/index.min.js 2.05 kB
build/preferences/index.min.js 2.82 kB
build/preferences/style-rtl.css 710 B
build/preferences/style.css 712 B
build/primitives/index.min.js 975 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
build/react-i18n/index.min.js 623 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.72 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.4 kB
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.95 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 2.1 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.72 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 957 B
build/warning/index.min.js 249 B
build/widgets/index.min.js 7.21 kB
build/widgets/style-rtl.css 1.17 kB
build/widgets/style.css 1.17 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

Copy link

Flaky tests detected in c5a425c.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/7990653555
📝 Reported issues:

@jasmussen
Copy link
Contributor

Seems to balance the tradeoffs and allow for the best of both worlds.

About this icon:

Screenshot 2024-02-21 at 16 00 26

I tried a new one:

Screenshot 2024-02-21 at 15 59 24

What do you think? If you're into it, here are the vectors, you can call it metabox:

<svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M20 14v4c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2v-4h16Zm0-1.5V6c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v6.5h1.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v6.5H20ZM5.5 18c0 .3.2.5.5.5h12c.3 0 .5-.2.5-.5v-2.5h-13V18Z" /></svg>

@mtias mtias added the General Interface Parts of the UI which don't fall neatly under other labels. label Feb 21, 2024
@ndiego ndiego linked an issue Feb 21, 2024 that may be closed by this pull request
@ellatrix
Copy link
Member Author

@jasmussen The problem with that icon is that is symbolises the previous way we were showing meta boxes? Not that the icon I used it is great, I just didn't know what it use :)

@jasmussen
Copy link
Contributor

How would you feel about this one instead?

Screenshot 2024-02-22 at 08 46 37

I personally prefer the one shared on this thread, but it's not a strong opinion.

@fabiankaegy
Copy link
Member

I also really like this approach. But I just tested this with the first Plugin that came to mind still using the legacy metabox (Yoast) and it doesn't render correctly in there. They seem to render the metabox with a is-hidden class applied which only kicks in when the JS for it loads and hydrates their application. Which doesn't happen automatically anymore with this approach.

I think this is a good test case we should be considering as the baseline test for this implementation.

@ellatrix
Copy link
Member Author

What do you mean with Yoast not working? It seems to work for me:

Screenshot 2024-02-28 at 15 58 11

@fabiankaegy
Copy link
Member

Okay I dont know what happened before. It is now working for me also. Thanks and sorry for the confusion

@ellatrix ellatrix added the [Feature] Meta Boxes A draggable box shown on the post editing screen label Mar 1, 2024
@@ -328,6 +328,10 @@ _Returns_

- `boolean`: Whether the metaboxes are being saved.

### showMetaBoxes

Undocumented declaration.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will make this private.

@jeffpaul
Copy link
Member

jeffpaul commented Mar 1, 2024

Given the primary focus that the other buttons/icons in that area already have while creating content, might it be better to move this sort of toggle/interaction a bit farther away and perhaps into the TOOLS part of the Options dropdown (or perhaps even further into the Preferences menu)? Being able to default to hiding those and not confusing editors by having that toggle so omnipresent among more important tasks would be my preference/recommendation here.

@annezazu
Copy link
Contributor

To help with moving away from metaboxes and into the tooling we have today, I opened an issue to create a how to guide in the block editor specifically for this: #59804

@bph
Copy link
Contributor

bph commented Mar 13, 2024

I tested this and seems to be working fine as a POC.

I see an advantage to make each plugin load their metaboxes into a separate modal.

The ongoing scrolling if more than one plugin loads metaboxes for a post is quite cumbersome and a big downside of the current implementation. see video

metabox-modal.mp4

It would be an instant improvement if there were a separation of concern and each plugin use their own space. That way developers can have more controls over the layout and not step on each other's toes when design changes are implemented.

The button could change into a drop-down box listing each plugin.

@youknowriad
Copy link
Contributor

@bph thanks for testing. I don't think the metabox API allows us to discriminate per plugin. A plugin can register one metabox or multiple related meta boxes.

@bph
Copy link
Contributor

bph commented Mar 13, 2024

Hmm @youknowriad It seems the Options > Preferences > Advanced screen is able to separate displaying of metaboxes by plugins. Maybe that's a start?
Screenshot 2024-03-13 at 14 01 21
Screenshot 2024-03-13 at 14 01 03

@youknowriad
Copy link
Contributor

@bph The problem is that is not a guarantee. It's worth considering but a plugin can register multiple meta boxes at the same time.

@youknowriad
Copy link
Contributor

Screenshot 2024-03-13 at 2 10 30 PM Screenshot 2024-03-13 at 2 10 40 PM

For instance ACF allows users to define field groups (to group fields together) but the expectation is that it's still the same form in the end.

@rilwis
Copy link

rilwis commented Mar 15, 2024

Hi, it's Anh from Meta Box. Our plugin's goal is helping developers to create meta boxes. And this change might affect both us and our users.

One problem we see as @arnaudbroes said above about the UI. The current (below content) is a better place for meta boxes than sidebar slots, because of the horizontal space it can use. Our plugin allows users to put custom fields in columns, tabs and groups (including nested groups), so the UI can be complex for some use cases. The thing is while we can improve UI of each field, we leave the freedom to users to organize fields, so the UI is some kind of unpredictable.

In my quick test, the toggle seem to work fine for most fields. However, the WYSIWYG field doesn't allow users to enter content.

My concern (question) is: is there any technical issues that we need to worry about? I remember previously when Gutenberg started to support meta boxes, it didn't work with file uploads. FYI, we have more than 40 field types, from simple fields like text, textarea to complex fields like Google Maps, Open Street Maps, file upload, select2, date time picker, etc. If you can share more about the technical background here, so we can prepare for what's coming, that would be great.

Copy link
Member

@Mamaduka Mamaduka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I agree with the proposed change, this is too much of a "sudden" swap for many developers, and we should keep compatibility in mind.

I understand the argument that metal boxes were always legacy APIs, but as a team focused on UX (I hope that's what we're doing), we can't disregard people using the canvas like this.

@youknowriad
Copy link
Contributor

I don't disagree that we need to account for these plugins but as I explained before, we need to find a path forward for these plugins with the new APIs.

Meta boxes already cause multiple regressions in the editor.

  • Frontend doesn't match backend.
  • Potentially two revisions per save (at least two requests).
  • They are not supported when editing "pages" in the site editor.

And may cause other regressions in the future.

  • May not be supported by the future post editor editor (With the new admin redesign refactor, the post editor and site editor will align). It's still unclear if it's possible to support yet, we'll have to do explorations here but even if we manage to make it work, it will be suboptimal because of the client side navigation. (This is not coming tomorrow but we have to prepare now)

So my thinking is what we can do to encourage developers to move away from meta-boxes now, which will allow us to make progress on the rest of the projects.

@Mamaduka
Copy link
Member

Mamaduka commented Mar 15, 2024

Like I said, I don't disagree, but I think we need a better middle ground, but this isn't it (IMO). I don't have any ideas at the moment, but happy to help out.

P.S. I think we fixed the revision issue.

@arnaudbroes
Copy link

arnaudbroes commented Mar 15, 2024

Like I said, I don't disagree, but I think we need a better middle ground, but this isn't it (IMO). I don't have any ideas at the moment, but happy to help out.

P.S. I think we fixed the revision issue.

I completely agree with this, I fully understand that this change is needed to allow further progress to be made on other issues and features and I am not against making this change, but I don't think the current solution is ideal in terms of UX.

@youknowriad
Copy link
Contributor

What should be the solution for you folks, what's preventing you from using the new APIs?

  • Plugin Sidebar
  • Document Panel
  • Blocks (connected blocks)

One other solution would be to auto-enable classic editor if we detect a meta-box but I don't really want to come to that.

@fabiankaegy
Copy link
Member

@youknowriad I think the theme that I am reading through all the comments is that it's not a imitation of the available API's but rather a UX issue where manny plugins have interfaces that don't fit into a sidebar but also don't really fit the concept of blocks.

A good example of this to me is how the current new experimental WooCommerce single product editing experience didn't opt to be fully block-based but instead uses a more fixed form approach to enter a lot of metadata.

To me it sounds like the best way to get more plugins to migrate to using the block editor native approach would be to expose additional slots where UI can be rendered. Like introducing a plugin location at the bottom of the screen that does not use the old metabox API but actually uses native block editor apis.

I know that @SaxonF has given this issue quite a bit of thought in the Admin Redesign for how the UI could handle forms in setting screens. Maybe some insights from those explorations could help us come up with a compromise that would make it easier for plugins to migrate over when their UI doesn't fit into a sidebar

@youknowriad
Copy link
Contributor

That makes sense yeah!

A good example of this to me is how the current new experimental WooCommerce single product editing experience didn't opt to be fully block-based but instead uses a more fixed form approach to enter a lot of metadata.

That's an interesting example and it shows that it's already possible to use block editor APIs and components to take over the screen and build such a custom editor.

To me it sounds like the best way to get more plugins to migrate to using the block editor native approach would be to expose additional slots where UI can be rendered. Like introducing a plugin location at the bottom of the screen that does not use the old metabox API but actually uses native block editor apis.

I don't think new Slots are a solution because a meaningless slot (which is what meta boxes are) is just a way to hack the UI which will put us in the same situation again if we ever want to modify the UI again. We shouldn't repeat the mistakes IMO.

That said, I do think there's a path forward for things like data views, fields... which will address a lot of these use-cases but I don't really expect this to be ready soon while we may need a solution for meta boxes sooner.

@arnaudbroes
Copy link

I think the theme that I am reading through all the comments is that it's not a imitation of the available API's but rather a UX issue where many plugins have interfaces that don't fit into a sidebar but also don't really fit the concept of blocks.

This basically sums it up. Many plugins like AIOSEO and Yoast have already been fully integrated with the sidebar and they use the aforementioned Block Editor components. It's just that we know that an absolute majority of our users prefer to use our metabox over the sidebar menu because the UI feels more intuitive. This is mostly due to the larger amount of horizontal space that is available (e.g. AIOSEO uses tables for a few features that simply do not fit in the sidebar, and we have to open a modal for those as a result).

To me it sounds like the best way to get more plugins to migrate to using the block editor native approach would be to expose additional slots where UI can be rendered. Like introducing a plugin location at the bottom of the screen that does not use the old metabox API but actually uses native block editor apis.

If technically viable, that would indeed be ideal. We really don't mind having to adapt to new APIs, it's mostly a matter of having a similar amount of space available to us.

@ellatrix
Copy link
Member Author

To me it sounds like the best way to get more plugins to migrate to using the block editor native approach would be to expose additional slots where UI can be rendered. Like introducing a plugin location at the bottom of the screen that does not use the old metabox API but actually uses native block editor apis.

Even if we wanted to, it's not really possible to add a slot below the content without putting it inside the iframe. If we add it outside the iframe, we end up with two scrollable areas because the iframe is scrollable and the meta boxes would need to be scrollable as well. We can't expand the iframe contents because that would break viewport units. For me two whole point of this PR is to have the iframed editor consistently regardless of whether a plugin uses meta boxes.

@ellatrix
Copy link
Member Author

A slot within the iframe would mean it's all styled as content. So at that point you might as well create blocks?

@fabiankaegy
Copy link
Member

@SaxonF actually just shared a new walkthrough of the current explorations for the admin redesign project in slack here: https://wordpress.slack.com/archives/C02S78ZAL/p1710741693260459?thread_ts=1710189675.902729&cid=C02S78ZAL

To me the idea of the content area which can be used to expose settings that are not directly tied to the frontend appearance of the site on the web makes a lot of sense. See the prototype: https://www.figma.com/proto/804HN2REV2iap2ytjRQ055/System?page-id=2244%3A16904&type=design&node-id=2737-40156&viewport=-2476%2C655%2C0.54&t=V97h1DsXrJBso2X6-1&scaling=min-zoom&starting-point-node-id=2737%3A40126&mode=design

And here one showcasing it populated with an example of a product CPT: https://www.figma.com/proto/804HN2REV2iap2ytjRQ055/System?page-id=2374%3A25967&type=design&node-id=2511-45456&viewport=748%2C1481%2C0.33&t=1lc4tsPo3i43E7Td-1&scaling=min-zoom&starting-point-node-id=2476%3A23475&show-proto-sidebar=1&mode=design

CleanShot 2024-03-18 at 19 57 33@2x

CleanShot 2024-03-18 at 20 01 15@2x

@gaambo
Copy link
Contributor

gaambo commented Mar 28, 2024

So at that point you might as well create blocks?

Just want to share my experience for creating custom blocks for "meta" data entry (not explicitly meta fields, but anything that is about the content):

  • It's technically absolutely doable by saving to meta in a block, that's not the problem.
  • You have to put the block in the post types template and lock the block (move/remove)
  • An admin (with canLockBlocks or access to the code editor) could still remove the block
  • As a plugin developer providing such an interface, you can't make sure that a site builder / developer overwrites the editor template of a post type to only include certain blocks and template lock it.
  • The block still has a toolbar - even if moving/locking may be disabled, it still feels somewhat "wrong" to have that.
  • The block will probably adhere to the theme's content/wide/full width. It makes it look like content. I think UIs that are about the content, but not content per se, should look different (and probably use @wordpress/components instead of the themes button styling etc.).

I've used it for a "testimonial" CPT, which only has a quote block + a custom block and a fully locked template - it works for that use case. But for a general plugin (like SEO) which will need to work for all post types, that may be suboptimal.

I understand the desire to provide more complex UIs to users as a plugin developer. The sidebar and its slots are great, but they mostly work for "vertical" forms with one input per row. Anything that's a table, needs a preview (like social sharing) etc. doesn't have enough space there.

From an extenders' standpoint, I also think a SlotFill under the editor would be great. Although I see there are technical aspects that make that problematic. Some plugins building custom block editors also try to work with tabs at the top (like the new WooCommerce product editing experience, givewp form builder, LearnDash quiz builder). I don't think the UI is perfect, and I've got no idea if it's accessible. But from a user perspective it makes sense to have "content", "settings", at the top.

Conclusion: I understand the direction this PR wants to take, and I support it - but I think this implementation may be a little too "harsh".

@zahardev
Copy link

Hi @ellatrix,

I'm a Seriously Simple Podcasting plugin developer.

Could you advise, will it work if we move the meta fields to the sidebar without implementing the toggle feature? Like this:

2024-04-15-bd192

@ndiego
Copy link
Member

ndiego commented May 20, 2024

@ellatrix do you have any updates on the progress of this PR?

@ellatrix
Copy link
Member Author

Definitely too late for this release now, let's try the next. I think I'll change the PR to a collapsible details panel in the footer area instead, to make the change less big.

@ndiego
Copy link
Member

ndiego commented May 23, 2024

Definitely too late for this release now, let's try the next. I think I'll change the PR to a collapsible details panel in the footer area instead, to make the change less big.

Sounds good, thanks for the update!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Meta Boxes A draggable box shown on the post editing screen General Interface Parts of the UI which don't fall neatly under other labels. [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Typewriter Experience doesn't work when Custom Fields are shown Improve meta boxes in the Editor