Skip to content

Conversation

stokesman
Copy link
Contributor

@stokesman stokesman commented Aug 7, 2024

What?

An alternative to #64247 to have the iframed canvas work with metaboxes in the Post editor.

Why?

Some folks want to have both metaboxes and canvas content visible at the same time.

How?

  • Uses flex to split the content view and have both areas scrollable without either being nested in the others overflow.
  • The height of the metabox area is limited to 50% by default to avoid many metaboxes from taking up too much space even if they’re collapsed
  • When the viewport is short the metabox area is collapsible (details element)
  • When the viewport is not short, the metabox area is resizable
  • The state of the resized height and the open/closed state are persisted in user preferences

Testing Instructions

  1. With a plugin that adds metaboxes (Yoast) activated and/or with custom fields enabled
  2. Open a post in the Post editor
  3. Try collapsing and opening metaboxes and try finding any issues

Testing Instructions for Keyboard

Screenshots or screencast

metaboxes-flex-moar.mp4

@stokesman stokesman added [Type] Bug An existing feature does not function as intended [Feature] Meta Boxes A draggable box shown on the post editing screen labels Aug 7, 2024
Copy link

github-actions bot commented Aug 7, 2024

Size Change: +2.03 kB (+0.11%)

Total Size: 1.77 MB

Filename Size Change
build-module/interactivity-router/index.min.js 2.8 kB -1 B (-0.04%)
build-module/interactivity/debug.min.js 16.6 kB -20 B (-0.12%)
build-module/interactivity/index.min.js 13.3 kB -8 B (-0.06%)
build/a11y/index.min.js 949 B -2 B (-0.21%)
build/block-editor/index.min.js 258 kB +64 B (+0.02%)
build/block-editor/style-rtl.css 16 kB -25 B (-0.16%)
build/block-editor/style.css 16 kB -25 B (-0.16%)
build/block-library/blocks/form-input/style-rtl.css 357 B +15 B (+4.39%)
build/block-library/blocks/form-input/style.css 357 B +15 B (+4.39%)
build/block-library/index.min.js 218 kB +126 B (+0.06%)
build/block-library/style-rtl.css 15 kB +17 B (+0.11%)
build/block-library/style.css 15 kB +17 B (+0.11%)
build/commands/index.min.js 16.1 kB -3 B (-0.02%)
build/components/index.min.js 224 kB +5 B (0%)
build/components/style-rtl.css 12.1 kB +4 B (+0.03%)
build/components/style.css 12.1 kB +5 B (+0.04%)
build/core-data/index.min.js 73.2 kB +2 B (0%)
build/customize-widgets/index.min.js 11 kB -2 B (-0.02%)
build/data/index.min.js 8.98 kB -2 B (-0.02%)
build/edit-post/index.min.js 13.1 kB +439 B (+3.47%)
build/edit-post/style-rtl.css 2.57 kB +259 B (+11.19%) ⚠️
build/edit-post/style.css 2.57 kB +260 B (+11.26%) ⚠️
build/edit-site/index.min.js 217 kB -5 B (0%)
build/editor/index.min.js 102 kB +2 B (0%)
build/editor/style-rtl.css 9.28 kB -6 B (-0.06%)
build/editor/style.css 9.28 kB -4 B (-0.04%)
build/preferences/index.min.js 2.9 kB +2 B (+0.07%)
build/vendors/react-dom.min.js 41.7 kB +2 B (0%)
build-module/a11y/index.min.js 898 B +898 B (new file) 🆕
ℹ️ View Unchanged
Filename Size
build-module/block-library/file/view.min.js 447 B
build-module/block-library/image/view.min.js 1.78 kB
build-module/block-library/navigation/view.min.js 1.16 kB
build-module/block-library/query/view.min.js 743 B
build-module/block-library/search/view.min.js 616 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.11 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/content-rtl.css 4.65 kB
build/block-editor/content.css 4.64 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
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 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 538 B
build/block-library/blocks/button/style.css 538 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 328 B
build/block-library/blocks/buttons/style.css 328 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 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 122 B
build/block-library/blocks/code/theme.css 122 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 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 228 B
build/block-library/blocks/comments-pagination/editor.css 217 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 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 832 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 631 B
build/block-library/blocks/cover/editor-rtl.css 641 B
build/block-library/blocks/cover/editor.css 642 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.6 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 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 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 470 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 955 B
build/block-library/blocks/gallery/editor.css 958 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 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 333 B
build/block-library/blocks/group/editor.css 333 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 785 B
build/block-library/blocks/image/editor.css 787 B
build/block-library/blocks/image/style-rtl.css 1.59 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.65 kB
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 179 B
build/block-library/blocks/latest-posts/editor.css 179 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 558 B
build/block-library/blocks/media-text/style.css 556 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.19 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.25 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 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 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 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 527 B
build/block-library/blocks/post-comments-form/style.css 528 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-content/style-rtl.css 79 B
build/block-library/blocks/post-content/style.css 79 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 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 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 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 399 B
build/block-library/blocks/post-template/style.css 398 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 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 226 B
build/block-library/blocks/post-title/style.css 226 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 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 452 B
build/block-library/blocks/query/editor.css 451 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 672 B
build/block-library/blocks/search/style.css 671 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/search/view.min.js 475 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 206 B
build/block-library/blocks/site-title/style.css 206 B
build/block-library/blocks/social-link/editor-rtl.css 338 B
build/block-library/blocks/social-link/editor.css 338 B
build/block-library/blocks/social-links/editor-rtl.css 757 B
build/block-library/blocks/social-links/editor.css 756 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 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-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 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 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 396 B
build/block-library/blocks/video/editor.css 397 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.1 kB
build/block-library/common.css 1.1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.7 kB
build/block-library/editor.css 11.7 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/theme-rtl.css 708 B
build/block-library/theme.css 712 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 52.3 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 2.82 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.66 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-site/posts-rtl.css 7.3 kB
build/edit-site/posts.css 7.3 kB
build/edit-site/style-rtl.css 12.6 kB
build/edit-site/style.css 12.6 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.2 kB
build/edit-widgets/style.css 4.2 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.11 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.54 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.18 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 3.2 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.61 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.34 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 1.01 kB
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 kB
build/router/index.min.js 1.96 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.9 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.19 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

Copy link
Contributor

@t-hamano t-hamano left a comment

Choose a reason for hiding this comment

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

Thanks for the PR!

To me this PR looks like another ideal solution. It also works properly with multiple metaboxes.

Copy link

github-actions bot commented Aug 8, 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.

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: stokesman <presstoke@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: ellatrix <ellatrix@git.wordpress.org>
Co-authored-by: youknowriad <youknowriad@git.wordpress.org>
Co-authored-by: ciampo <mciampini@git.wordpress.org>
Co-authored-by: torounit <toro_unit@git.wordpress.org>
Co-authored-by: talldan <talldanwp@git.wordpress.org>
Co-authored-by: arnaudbroes <arnaudbroes@git.wordpress.org>

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

@t-hamano
Copy link
Contributor

t-hamano commented Aug 9, 2024

This PR is working pretty well.

My only concern is that the meta box height will be fixed at 50%, which might make it difficult to see the meta box content.

I'll ping @earnjam and @arnaudbroes about this:

image

image

Also, the E2E tests related to meta boxes are failing, so we may be missing some problems.

@torounit
Copy link
Member

@stokesman @t-hamano
https://github.com/user-attachments/assets/6e55f9e2-fa6f-430e-a7fd-2943288acdc4

How about using ResizeableBox to make the height changeable?

@stokesman
Copy link
Contributor Author

How about using ResizeableBox to make the height changeable?

@torounit, I did think it would be likely to be suggested. It’s rad that you made a working demo. I'm not sure if it’d be necessary for a first try with this approach but I’m not opposed to it either.

With or without it, I believe the priority would be determining and addressing any responsive issues. Like maybe at less than a certain height the view should not be split and work a bit more like #64247.

Also, the E2E tests related to meta boxes are failing, so we may be missing some problems.

Hopefully the latest commit takes care of any e2e failures 🤞.

@ellatrix
Copy link
Member

I'm not sure about this. It's a solution that imo makes both experiences a bit worse. You no longer have a full view of the content, and neither do you have a full view for the meta boxes. What happens when you have lots of collapsed meta boxes? The height of all collapsed meta boxes will need to be capped.

@ellatrix
Copy link
Member

ellatrix commented Aug 12, 2024

What we could do is combine both approaches. So have a toggle in the header (the one from Move legacy meta boxes to toggle), and also the resizing.

So by default it would put content at 50% and meta at 50%, but you have the option to hide the meta boxes with the header toggle, and the option to resize the height (maybe even all the way to 100%).

@t-hamano
Copy link
Contributor

Currently, the header component is integrated into the editor package. Is it possible to display the meta box toggle only in the post editor?

@ellatrix
Copy link
Member

Currently, the header component is integrated into the editor package. Is it possible to display the meta box toggle only in the post editor?

It can probably be an option? @stokesman would you be ok in adding it to your PR here?

@t-hamano
Copy link
Contributor

If this PR is updated, I'd be happy to test it.

@stokesman
Copy link
Contributor Author

What we could do is combine both approaches.

I find the general idea favorable though lean toward using the details element instead of a toggle in the header for a few reasons:

  • The header already has a lot of UI
  • The details element keeps the toggle nearer its content and when collapsed occupies the place where folks are accustomed look for the metaboxes.

I’ve tried it and it seems workable. I will probably push an update with that soon but am open to hearing any thoughts on why a toggle in the header would be better in case I'm missing something.

@stokesman
Copy link
Contributor Author

stokesman commented Aug 16, 2024

I've updated the PR in various ways. The primary changes:

  • The height of the metabox area is limited to 50% by default to avoid many metaboxes from taking up too much space even if they’re collapsed
  • When the viewport is short (arbitrary < 550px) the metabox area is collapsible (details element)
  • When the viewport is not short, the metabox area is resizable

Hopefully the decisions will be self-explanatory with some testing but I'm happy to discuss and open to change them.

EDIT: I’ve updated the screen recording in the description in case anyone wants a quick look.

@stokesman
Copy link
Contributor Author

I’d like to ask @ppolo99, @hrkhal and @aaronjorbin to have a look at this as they did provide feedback on #64247 and may find some of their concerns addressed here.

max-height: 50% !important;
}

& .components-resizable-box__handle-top {
Copy link
Contributor

Choose a reason for hiding this comment

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

Rather than overwriting the existing handle with CSS, as implemented here, how about defining a custom handle?

If we use a button as the handle and add a keyDown event, we should be able to focus the resize handle with the keyboard, making it operable.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I’d thought this too and even think it’d be necessary but hoped to spare some effort while uncertain if this PR will garner favor.

Copy link
Contributor

Choose a reason for hiding this comment

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

Now that the PR is approved, would it be a good time to apply @t-hamano 's advice?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I’ve got a branch that does it. It’s looking like about 160 insertions(+), 40 deletions(-) minimum from this branch so not too trivial. There are also design/UX considerations so a clean thread would be nice for any discussion. I’m thinking a separate PR. We can either merge to this one or to trunk if we land this before then.

Copy link
Contributor

Choose a reason for hiding this comment

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

Sounds good — feel free to ping on that separate PR

@t-hamano
Copy link
Contributor

Since #64247 has been added to the 6.7 Editor Tasks board, I will also add this PR to that board.

@ellatrix
Copy link
Member

This is wonderful!

Can we keep the details toggle for any screen size? I think we need a way to quickly show and hide at all times. Not sure if this is already done, but it'd be great to persist the open/close state.

With those changes it would be good to merge imo!

Reduced height Normal height
Screenshot 2024-08-27 at 14 08 09 Screenshot 2024-08-27 at 14 08 54

@stokesman
Copy link
Contributor Author

Can we keep the details toggle for any screen size? I think we need a way to quickly show and hide at all times.

If considered necessary, I think it’d be nice to avoid the UI bulk of a resize handle stacked atop the summary and I don’t know if it can be done easily working with details and ResizeableBox. So another approach would be using a custom resize handle that supports toggling. A custom resize handle already seems necessary for keyboard support #64351 (comment).

Not sure if this is already done, but it'd be great to persist the open/close state.

I take it you mean persist it in user preferences. That’s not done and I agree it’d be nice. Perhaps the resized height should also be persisted?

@ellatrix
Copy link
Member

ellatrix commented Aug 28, 2024

If considered necessary

I think a toggle is necessary, imo. Like I said before, this can be in the form of a top toolbar button. I think that's actually what @mtias preferred last time we talked about it.

@ellatrix
Copy link
Member

You can actually keep everything as it is now, and just add the toggle to the top toolbar to add/remove the whole thing. The details is probably still useful for smaller screens.

I do also slightly prefer a bottom toggle compared to a header toolbar toggle, but if it's technically too difficult it's better to have something and revise it later.

Copy link
Member

@ellatrix ellatrix left a comment

Choose a reason for hiding this comment

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

I think this is ok to land, as long as the toggled state or the resize height is stored as a user preference/persisted. Otherwise it will be annoying. :)

But this is very important to land, we need to have consistent iframing.

@stokesman
Copy link
Contributor Author

this solves the problem

Thanks for sharing. I tested and found it makes the block canvas content unable to be scrolled completely. It was better after removing the min-height your snippet adds but there was still a bit of clipping so might not work for all post lengths.

I wanted to see if it could be improved about and came up with some styles that I think work much better
.interface-interface-skeleton__content:has(.edit-post-meta-boxes-area) > .editor-visual-editor{
    flex-shrink: 0;
    flex-basis: auto;
    /*
    The height can lessened if you prefer a shorter editing canvas.
    Subtracting 45px is so the first meta box header is visible even when scrolled to the top.
    */
    height: calc(100% - 45px);
}

.interface-interface-skeleton__content > [aria-label="Meta Boxes"] {
    /* Not necessary except to ensure the height of editing canvas can be set to very short. */
    height: auto !important;
}

.edit-post-meta-boxes-main__presenter {
    /* hides the resize handle */
    display: none;
}

.interface-interface-skeleton__content:has(.edit-post-meta-boxes-area) .editor-visual-editor:not(.is-scrollable) .block-editor-block-canvas {
    /* Pads the editing canvas so the space around it can trigger scrolling the outer scrolling area directly */
    padding: 24px;
}

For me that still won’t create a better experience than what is shipped but hope it helps any folks for whom it might.

@robmcclel
Copy link

Just came here to comment on this annoying feature that you guys introduced. First, do you guys actually use WordPress to produce content. Because some of the features that you introduce, it's like you just work on WordPress while using Joomla for your work.

This feature is so annoying I don't know what to do. I am trying to write an article. Previously, the entire page was one element and I could scroll from top to bottom. At the bottom, I have Yoast SEO and I need to constantly refer to it because I want my content to remain SEO friendly. Eg, do I have the right number of keywords yet?

Anyway, it was a simple matter of scrolling to the bottom. Now I need to first resize the screen to access that section. It's adding 20% more work needless to my content production work and it's needless. In fact, now the editing screen appears so small it's practically unworkable.

Please, stop changing things that are working fine. And if you must make changes, make them optional. As an example, it would be a better option for the Drag to resize option to be disabled using a double click or something. Yes, we know you work on WordPress pro-bono but really guys. Have sympathy for the people who actually use the product for work

For God's sake how do I turn this incredibly awful "feature" OFF??? Why would you ever do this? It makes writing nearly impossible when you rely on Custom Forms and Meta!

Please disable this. Make this optional at the absolute minimum. This is a HORRIBLE CHANGE TO THE EDITOR! Change this back!

@robmcclel
Copy link

Thanks @stokesman. I hope the (crude) image below highlights my concern. Please ignore the fact that the Yoast section is mirrored twice in the screenshot below. In any case, any other SEO plugin could be down there. In the meta box area. Or any other plugin. It's all about functionality. Having to drag to resize all the time makes for a frustrating user experience. I have seen several people complaining all over the place, including on WordPress. The issue is a bit hard to explain but...

Screenshot of Add New Post ‹ SA Banking — WordPress

Yes! This is the issue exactly - IT IS HORRIBLE! Whatever went down in 6.8 to get to this needs to be changed back!

@thekendog
Copy link

thekendog commented Apr 16, 2025

Yeah, this "feature" is pretty terrible. I use SEOPress and ACF and editing the stuff in those metaboxes is such a PITA now.
Is there a way to disable it? There has got to be a way to do it right? It's such a bad user experience.

@SporeProductions
Copy link

SporeProductions commented Apr 16, 2025

I opened an issue about this ( #63298 ) but was told to comment here instead.

I use 6.8, Twenty Twenty Five as a base theme and custom fields created with Pods Framework.

Maybe I just have to get used to it, but this new layout (content in its own scrolling frame and then meta stuff in a second scrolling frame) is terrible. Instead of quickly scrolling the entire Content+Meta stacked window in one quick action like it used to be (I use the mousewheel) now I have to move the mouse pointer to the window control, click, drag it up and then scroll inside the meta window. Then if I want to go back to editing Post content, I have to do the reverse, shrink down the Meta box area to expand the content editing area. And so on back n forth! This is terrible usability and I don't know why the developers above are so happy about it.

Please revert or provide an option to choose between the one window vs two. :(

@robmcclel
Copy link

robmcclel commented Apr 16, 2025

this solves the problem

function custom_admin_script() {
    echo '<script>
        document.addEventListener("DOMContentLoaded", function () {
            function removeClassFromElements() {
                let elements = document.querySelectorAll("div.edit-post-meta-boxes-main");
                elements.forEach(el => {
                    el.classList.remove("edit-post-meta-boxes-main");
                });
            }
            removeClassFromElements();

            let observer = new MutationObserver((mutations) => {
                mutations.forEach(mutation => {
                    if (mutation.addedNodes.length) {
                        removeClassFromElements();
                    }
                });
            });

            observer.observe(document.body, { childList: true, subtree: true });
        });
    </script>
    <style>
	    .block-editor-iframe__scale-container {
	    	min-height: 1000px !important;
	    }
    </style>
    ';
}
add_action('admin_footer', 'custom_admin_script');

I tried this snippet - thank you, it is a significant improvement over what was pushed in WordPress 6.8. I changed the min-height to 500px and that seemed to allow for smooth scrolling across the entire document (removing that snippet or keeping it at 1000px created a lag).

However, I really can not stress enough that this is a solution in search of a problem. While I admit I don't understand the technical complexities of the need for an iframe in the entire editing experience and not just the block editor section, I'm sure if you're going to these lengths and across this many PRs, it must be important. But, this is NOT the solution. At least, not for those who actually work in WordPress - SEO, Custom Post Types, ACF, etc, etc. What you have done to the editor is make things significantly more difficult - we're talking 30% or more additional effort. I enter dozens, sometimes hundreds, of books a week via Custom Post Types and Custom Meta Fields, and that's not even getting into SEO or Analytics. In ONE DAY you brought my business to a halt with this. I have done nothing else in the last 24 hours but try and solve this problem that you have created. This snippet allows me to work, at least, though there is still an impact.

This entire concept needs to be rolled back and re-thought. I had no idea anyone was even considering this kind of change to the editor - I would have given a very staunch veto. Others in other PRs have chimed in - specifically Yoast and ACF - but you still persisted on this path. You impacted nearly 100 of my sites and pissed off my customers - it damn well better have been worth it.

There has to be a better way. Even this code snippet, which does improve things, is not even close to what was in 6.7.

Please reconsider what you are doing and roll this back. Whatever you are trying to achieve, this is not the way to go about it.

@geertvdheide1
Copy link

geertvdheide1 commented Apr 17, 2025

Going to add my voice here. Some of my clients are already calling me confused and annoyed. This change pushes custom fields in much too small a space. So much scrolling and toggling and it all just works much less smoothly than before. Many sites use ACF or similar, with bigger fields, too, like galleries. These are almost impossible to manage now.

Please, just make the edit screen longer again, like before. This vertical split thing is horrible. And I don't like the work-around above that likely won't work for long and isn't official.

Another solution can be tried to position the meta boxes better and have less clutter, but this really isn't it.

@Thatannoyingseoguy
Copy link

for actual sites that are ACF heavy this is literally just more work now for clients having to work in the backend, as already stated a simply mousewheel scroll worked just fine before, now there is a contant drag and drop, to position to a level where 99% of the content being worked on is in the correct position, in fact for one client they only has the page title as anything default wordpress, so its just a loss of workable space and finicky alterations on pages. Really not sure where the people who saw this as "must have" essential feature are . i hope they are making using of it at least now

@stokesman
Copy link
Contributor Author

I think I understand where folks that don’t like this are coming from. I’ve made a simple plugin that will minimize and maximize the meta box pane when scrolling via wheel gestures. If the post content is scrolled to the end it maximizes the meta box pane. If the meta box pane is scrolled to the start it minimizes the meta box pane. It works well in my limited testing. If anyone tries it and wants to leave feedback, please do so with an issue in the plugin’s repo. I think it might be a big improvement for some folks. Still, I hope WordPress can ship an update that would obviate any use for it.

@jpmuldoon
Copy link

This is a terrible idea. Please revert.

@TapiwaZvaks
Copy link

I opened an issue about this ( #63298 ) but was told to comment here instead.

I use 6.8, Twenty Twenty Five as a base theme and custom fields created with Pods Framework.

Maybe I just have to get used to it, but this new layout (content in its own scrolling frame and then meta stuff in a second scrolling frame) is terrible. Instead of quickly scrolling the entire Content+Meta stacked window in one quick action like it used to be (I use the mousewheel) now I have to move the mouse pointer to the window control, click, drag it up and then scroll inside the meta window. Then if I want to go back to editing Post content, I have to do the reverse, shrink down the Meta box area to expand the content editing area. And so on back n forth! This is terrible usability and I don't know why the developers above are so happy about it.

Please revert or provide an option to choose between the one window vs two. :(

They won't revert. They never do. You know, it being a pro-bono thing and all. It's similar to the open link in a new tab issue where we went from being able to do so in 2 clicks to needing 6 clicks now. We have simply had to move on...

@jpmuldoon
Copy link

They won't revert. They never do. You know, it being a pro-bono thing and all. It's similar to the open link in a new tab issue where we went from being able to do so in 2 clicks to needing 6 clicks now. We have simply had to move on...

Those kinds of changes are mindboggling. It still annoys me all the new -- and pointless -- hoops we have to jump through.

@jpmuldoon
Copy link

Two key statements jump out here:

First, do you guys actually use WordPress to produce content. Because some of the features that you introduce, it's like you just work on WordPress while using Joomla for your work.

Please, stop changing things that are working fine. And if you must make changes, make them optional.

It really is super annoying to have all these pointless changes add to how much work we have to do. You are driving people off Wordpress with these needless aggravations.

@jpmuldoon
Copy link

@TapiwaZvaks Could you submit a new issue with your thoughts? For features that have already been merged, it's best to discuss them in a new issue, where we can discuss how it could be improved.

That would be pointless. You have pushed back on user suggestions elsewhere.

@jpmuldoon

This comment was marked as off-topic.

@aaronjorbin
Copy link
Member

There is a lot of good feedback here, thanks everyone who has contributed to this discussion in a professional manner.

Please remember to stay respectful and professional in your discussions here. The WordPress Community Code of Conduct states:

Examples of behavior that contributes to a positive environment for our community include:

  • Demonstrating empathy and kindness toward other people
  • Being respectful of differing opinions, viewpoints, and experiences
  • Giving and gracefully accepting constructive feedback
  • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
  • Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

  • The use of sexualized language or imagery, and sexual attention or advances of any kind
  • Insulting or derogatory comments, taunting or baiting, and personal or political attacks
  • Public or private harassment
  • Publishing others’ private information, such as a physical or email address, without their explicit permission
  • Publishing private messages without consent (an exception to this would be sending private messages to the Incident Response Team as part of an investigation)
  • Other conduct which could reasonably be considered inappropriate in a professional setting

@jpmuldoon
Copy link

@aaronjorbin In fairness, you will get strong opinions when you interfere with our ability to do our jobs. I don't know how these development communities work exactly but I suggest you include users more in the testing phase. Had people seen that split screen in advance, they would have warned you about it.
I am fairly new here and it is also annoying to see that the suggestion to revert the "open link in new tab" change has not been fixed. Again, that is something speaking with an actual user could have avoided.
It is pride that prevents you from correcting these errors?

@gizmo2501
Copy link

This change is really annoying and makes the workflow much slower.

Now we have to drag up the bottom box every time to use it, instead of just scrolling down.

Can this be made an option instead of a forced layout change?

@ulrich-babiak-netcologne-com

At first, I was quite annoyed by this design decision, and followed the recommendation of @aaronjorbin to add comments here. Now looking at all the considerations and code changes that were involved makes the changes at least understandable. Nevertheless, it is painful if , for example, multiple or long ACF fields are involved, and that is something that may be quite common for other plugins with metaboxes, too.
Quite a lot of css-only and css-/js- hacks can already be found in the wild. Given the complexity of this change, these hacks may break things unknowingly, so how about creating a sustainable official recommended CSS "hack" that can be added with a filter action like admin_enqueue_scripts ?

@crazywordpress

This comment was marked as abuse.

@room34
Copy link

room34 commented May 6, 2025

I guess I'm in the minority of actually liking this new feature — mainly, liking the fact that the meta boxes are accessible at all times, instead of having to scroll down to the bottom of a long page, especially since ACF fields can't be placed above the content in the Block Editor. That said, I agree with everyone who is saying this should be an optional setting.

But the real reason I'm commenting is for a sanity check: I am working on several sites right now, all running 6.8.1, and only one of them has the drag/resize bar. I can't for the life of me figure out why the one site has it and the rest don't, even though they're all on the same version. Is it a setting somewhere now?

@fabiankaegy
Copy link
Member

@room34 It depends on the theme / the pugins you use on the site.

With the revert that shipped in 6.8.1 it now behaves like it did in 6.7 where the resize UI only shows if you are using a block theme and all of the blocks you use on the site use API Version 3

@room34
Copy link

room34 commented May 6, 2025

@fabiankaegy Yeah, that's what I thought, but I do have a site running 6.8.1 that is still showing it. I even reinstalled core on that site, with no change.

Edit: Might be a plugin… testing now to pinpoint. Thanks.

Edit 2: It's a plugin in the sense that it only appears when a plugin is generating meta boxes, but I tested it with two plugins (Advanced Custom Fields and The SEO Framework) on two different sites. With both plugins (activated individually), the site that's been showing the drag bar shows it, while a site that isn't showing the drag bar exhibits the 6.7 behavior.

@room34
Copy link

room34 commented May 6, 2025

@fabiankaegy I don't think I'm going to investigate any further, but I just remembered, this site that is exhibiting the odd behavior has also had issues with other Block Editor updates in the past, because it is a really old WP installation (circa 2007). If the reversion of this feature involves anything in the database, it's possible that's the reason.

@jpmuldoon
Copy link

I would like to thank everyone who worked on the reversion.

@Chillifish
Copy link

Chillifish commented May 19, 2025

I wish to add my opinion that I find this feature incredibly annoying. It involves extra steps and clicks rather than just scrolling to the point on the page I wish to edit.

Fortunately, and I have no idea why, it doesn't seem to have installed itself on any of my existing sites that have upgraded to 6.8, only ones that I have initially set up with WP 6.8.

Can we please have an option to turn this off? I cannot picture a scenario in which anyone would find this useful, especially if they use a trackpad/mouse to scroll to the part of the page they want to edit.

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 Needs Dev Note Requires a developer note for a major WordPress release cycle [Type] Bug An existing feature does not function as intended
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.