Skip to content

Conversation

@ramonjd
Copy link
Member

@ramonjd ramonjd commented Dec 23, 2025

What?

Related to:

#73888 proposed a block visibility notice in the block inspector

When a block is hidden on the current viewport, the block inspector displays a visibility notice at the top of the block inspector. This is also present when a block is hidden everywhere.

This PR implements the "hidden everywhere" aspect with the intention to extend the notice to display viewports later.

This will be a series of little PRs to implement #72502

Why?

For discoverability mainly. Hidden blocks are not displayed on the canvas, though they can be selected.

The notice informs the user that a block is hidden.

How?

By checking if a block, or one of its parents, is hidden.

Testing Instructions

Example block HTML
<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column {"className":"is-style-section-3","style":{"spacing":{"padding":{"right":"var:preset|spacing|30","left":"var:preset|spacing|30","top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"}}},"layout":{"type":"default"}} -->
<div class="wp-block-column is-style-section-3" style="padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:heading {"metadata":{"blockVisibility":false}} -->
<h2 class="wp-block-heading">Smash burger</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Extra everything</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->

<!-- wp:column {"metadata":{"blockVisibility":false},"className":"is-style-section-4","style":{"spacing":{"padding":{"right":"var:preset|spacing|30","left":"var:preset|spacing|30","top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"}}}} -->
<div class="wp-block-column is-style-section-4" style="padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:heading -->
<h2 class="wp-block-heading">Toasted sarnie</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Be one with the cheese.</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->

<!-- wp:column {"className":"is-style-section-5","style":{"spacing":{"padding":{"right":"var:preset|spacing|30","left":"var:preset|spacing|30","top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"}}}} -->
<div class="wp-block-column is-style-section-5" style="padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:heading -->
<h2 class="wp-block-heading">Lasagne</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Layers of fun.</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->
  1. Add a few blocks to a post, including nested blocks
  2. Hide a block
  3. Hide a parent block
  4. Check that the block inspector shows the visibility notice

Screenshots or screencast

Hidden block Block whose parent is hidden
Screenshot 2025-12-23 at 3 20 27 pm Screenshot 2025-12-23 at 3 20 34 pm

@ramonjd ramonjd self-assigned this Dec 23, 2025
@ramonjd ramonjd requested a review from ellatrix as a code owner December 23, 2025 04:29
@github-actions github-actions bot added the [Package] Block editor /packages/block-editor label Dec 23, 2025
@github-actions
Copy link

github-actions bot commented Dec 23, 2025

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

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

Co-authored-by: ramonjd <[email protected]>
Co-authored-by: Mamaduka <[email protected]>
Co-authored-by: andrewserong <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: talldan <[email protected]>
Co-authored-by: SirLouen <[email protected]>
Co-authored-by: jasmussen <[email protected]>

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

@ramonjd ramonjd added the [Feature] Design Tools Tools that impact the appearance of blocks both to expand the number of tools and improve the experi label Dec 23, 2025
Comment on lines 121 to 123
const parentHidden = parents.some( ( parentId ) =>
_isBlockHidden( parentId )
);
Copy link
Member Author

Choose a reason for hiding this comment

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

I expect checking parents' visibility might be needed elsewhere as things progress. Just noting that it might be part of some hook or new selector down the track.

@ramonjd ramonjd added the [Type] Enhancement A suggestion for improvement. label Dec 23, 2025
@github-actions
Copy link

github-actions bot commented Dec 23, 2025

Size Change: +6.19 kB (+0.24%)

Total Size: 2.6 MB

Filename Size Change
build/scripts/block-editor/index.min.js 325 kB +6.19 kB (+1.94%)
ℹ️ View Unchanged
Filename Size
build/modules/a11y/index.min.js 355 B
build/modules/abilities/index.min.js 42.3 kB
build/modules/block-editor/utils/fit-text-frontend.min.js 548 B
build/modules/block-library/accordion/view.min.js 779 B
build/modules/block-library/file/view.min.js 346 B
build/modules/block-library/form/view.min.js 528 B
build/modules/block-library/image/view.min.js 1.95 kB
build/modules/block-library/navigation/view.min.js 1.03 kB
build/modules/block-library/query/view.min.js 518 B
build/modules/block-library/search/view.min.js 498 B
build/modules/block-library/tabs/view.min.js 859 B
build/modules/boot/index.min.js 105 kB
build/modules/core-abilities/index.min.js 892 B
build/modules/edit-site-init/index.min.js 2.14 kB
build/modules/interactivity-router/full-page.min.js 451 B
build/modules/interactivity-router/index.min.js 11.5 kB
build/modules/interactivity/index.min.js 14.9 kB
build/modules/latex-to-mathml/index.min.js 56.5 kB
build/modules/latex-to-mathml/loader.min.js 131 B
build/modules/lazy-editor/index.min.js 18.9 kB
build/modules/route/index.min.js 24.6 kB
build/modules/workflow/index.min.js 37.2 kB
build/scripts/a11y/index.min.js 1.06 kB
build/scripts/annotations/index.min.js 2.39 kB
build/scripts/api-fetch/index.min.js 2.83 kB
build/scripts/autop/index.min.js 2.18 kB
build/scripts/base-styles/index.min.js 98 B
build/scripts/blob/index.min.js 631 B
build/scripts/block-directory/index.min.js 8.04 kB
build/scripts/block-library/index.min.js 294 kB
build/scripts/block-serialization-default-parser/index.min.js 1.16 kB
build/scripts/block-serialization-spec-parser/index.min.js 3.08 kB
build/scripts/blocks/index.min.js 56.7 kB
build/scripts/commands/index.min.js 19.9 kB
build/scripts/components/index.min.js 266 kB
build/scripts/compose/index.min.js 13.9 kB
build/scripts/core-commands/index.min.js 4.3 kB
build/scripts/core-data/index.min.js 86.7 kB
build/scripts/customize-widgets/index.min.js 12.3 kB
build/scripts/data-controls/index.min.js 795 B
build/scripts/data/index.min.js 9.63 kB
build/scripts/date/index.min.js 23.6 kB
build/scripts/deprecated/index.min.js 756 B
build/scripts/dom-ready/index.min.js 476 B
build/scripts/dom/index.min.js 4.91 kB
build/scripts/edit-post/index.min.js 16.4 kB
build/scripts/edit-site/index.min.js 240 kB
build/scripts/edit-widgets/index.min.js 20 kB
build/scripts/editor/index.min.js 285 kB
build/scripts/element/index.min.js 5.2 kB
build/scripts/escape-html/index.min.js 586 B
build/scripts/format-library/index.min.js 10.8 kB
build/scripts/hooks/index.min.js 1.83 kB
build/scripts/html-entities/index.min.js 494 B
build/scripts/i18n/index.min.js 2.46 kB
build/scripts/is-shallow-equal/index.min.js 572 B
build/scripts/keyboard-shortcuts/index.min.js 1.57 kB
build/scripts/keycodes/index.min.js 1.53 kB
build/scripts/list-reusable-blocks/index.min.js 2.44 kB
build/scripts/media-utils/index.min.js 69.5 kB
build/scripts/notices/index.min.js 1.11 kB
build/scripts/nux/index.min.js 1.89 kB
build/scripts/patterns/index.min.js 7.86 kB
build/scripts/plugins/index.min.js 2.15 kB
build/scripts/preferences-persistence/index.min.js 2.15 kB
build/scripts/preferences/index.min.js 3.3 kB
build/scripts/primitives/index.min.js 1.01 kB
build/scripts/priority-queue/index.min.js 1.62 kB
build/scripts/private-apis/index.min.js 1.07 kB
build/scripts/react-i18n/index.min.js 833 B
build/scripts/react-refresh-entry/index.min.js 9.44 kB
build/scripts/react-refresh-runtime/index.min.js 3.59 kB
build/scripts/redux-routine/index.min.js 3.37 kB
build/scripts/reusable-blocks/index.min.js 2.92 kB
build/scripts/rich-text/index.min.js 12.9 kB
build/scripts/router/index.min.js 5.96 kB
build/scripts/server-side-render/index.min.js 1.91 kB
build/scripts/shortcode/index.min.js 1.58 kB
build/scripts/style-engine/index.min.js 2.37 kB
build/scripts/theme/index.min.js 20.8 kB
build/scripts/token-list/index.min.js 739 B
build/scripts/undo-manager/index.min.js 918 B
build/scripts/url/index.min.js 3.98 kB
build/scripts/vendors/react-dom.min.js 43 kB
build/scripts/vendors/react-jsx-runtime.min.js 691 B
build/scripts/vendors/react.min.js 4.27 kB
build/scripts/viewport/index.min.js 1.23 kB
build/scripts/warning/index.min.js 454 B
build/scripts/widgets/index.min.js 7.81 kB
build/scripts/wordcount/index.min.js 1.04 kB
build/styles/base-styles/admin-schemes-rtl.css 775 B
build/styles/base-styles/admin-schemes.css 775 B
build/styles/block-directory/style-rtl.css 1.05 kB
build/styles/block-directory/style.css 1.05 kB
build/styles/block-editor/content-rtl.css 3.99 kB
build/styles/block-editor/content.css 3.98 kB
build/styles/block-editor/default-editor-styles-rtl.css 224 B
build/styles/block-editor/default-editor-styles.css 224 B
build/styles/block-editor/style-rtl.css 15.6 kB
build/styles/block-editor/style.css 15.5 kB
build/styles/block-library/accordion-heading/style-rtl.css 325 B
build/styles/block-library/accordion-heading/style.css 325 B
build/styles/block-library/accordion-item/style-rtl.css 180 B
build/styles/block-library/accordion-item/style.css 180 B
build/styles/block-library/accordion-panel/style-rtl.css 99 B
build/styles/block-library/accordion-panel/style.css 99 B
build/styles/block-library/accordion/style-rtl.css 62 B
build/styles/block-library/accordion/style.css 62 B
build/styles/block-library/archives/editor-rtl.css 61 B
build/styles/block-library/archives/editor.css 61 B
build/styles/block-library/archives/style-rtl.css 90 B
build/styles/block-library/archives/style.css 90 B
build/styles/block-library/audio/editor-rtl.css 149 B
build/styles/block-library/audio/editor.css 151 B
build/styles/block-library/audio/style-rtl.css 132 B
build/styles/block-library/audio/style.css 132 B
build/styles/block-library/audio/theme-rtl.css 134 B
build/styles/block-library/audio/theme.css 134 B
build/styles/block-library/avatar/editor-rtl.css 115 B
build/styles/block-library/avatar/editor.css 115 B
build/styles/block-library/avatar/style-rtl.css 104 B
build/styles/block-library/avatar/style.css 104 B
build/styles/block-library/breadcrumbs/style-rtl.css 203 B
build/styles/block-library/breadcrumbs/style.css 203 B
build/styles/block-library/button/editor-rtl.css 265 B
build/styles/block-library/button/editor.css 265 B
build/styles/block-library/button/style-rtl.css 554 B
build/styles/block-library/button/style.css 554 B
build/styles/block-library/buttons/editor-rtl.css 291 B
build/styles/block-library/buttons/editor.css 291 B
build/styles/block-library/buttons/style-rtl.css 349 B
build/styles/block-library/buttons/style.css 349 B
build/styles/block-library/calendar/style-rtl.css 239 B
build/styles/block-library/calendar/style.css 239 B
build/styles/block-library/categories/editor-rtl.css 132 B
build/styles/block-library/categories/editor.css 131 B
build/styles/block-library/categories/style-rtl.css 152 B
build/styles/block-library/categories/style.css 152 B
build/styles/block-library/classic-rtl.css 321 B
build/styles/block-library/classic.css 321 B
build/styles/block-library/code/editor-rtl.css 53 B
build/styles/block-library/code/editor.css 53 B
build/styles/block-library/code/style-rtl.css 139 B
build/styles/block-library/code/style.css 139 B
build/styles/block-library/code/theme-rtl.css 122 B
build/styles/block-library/code/theme.css 122 B
build/styles/block-library/columns/editor-rtl.css 108 B
build/styles/block-library/columns/editor.css 108 B
build/styles/block-library/columns/style-rtl.css 421 B
build/styles/block-library/columns/style.css 421 B
build/styles/block-library/comment-author-avatar/editor-rtl.css 124 B
build/styles/block-library/comment-author-avatar/editor.css 124 B
build/styles/block-library/comment-author-name/style-rtl.css 72 B
build/styles/block-library/comment-author-name/style.css 72 B
build/styles/block-library/comment-content/style-rtl.css 120 B
build/styles/block-library/comment-content/style.css 120 B
build/styles/block-library/comment-date/style-rtl.css 65 B
build/styles/block-library/comment-date/style.css 65 B
build/styles/block-library/comment-edit-link/style-rtl.css 70 B
build/styles/block-library/comment-edit-link/style.css 70 B
build/styles/block-library/comment-reply-link/style-rtl.css 71 B
build/styles/block-library/comment-reply-link/style.css 71 B
build/styles/block-library/comment-template/style-rtl.css 191 B
build/styles/block-library/comment-template/style.css 191 B
build/styles/block-library/comments-pagination-numbers/editor-rtl.css 122 B
build/styles/block-library/comments-pagination-numbers/editor.css 121 B
build/styles/block-library/comments-pagination/editor-rtl.css 168 B
build/styles/block-library/comments-pagination/editor.css 168 B
build/styles/block-library/comments-pagination/style-rtl.css 201 B
build/styles/block-library/comments-pagination/style.css 201 B
build/styles/block-library/comments-title/editor-rtl.css 75 B
build/styles/block-library/comments-title/editor.css 75 B
build/styles/block-library/comments/editor-rtl.css 842 B
build/styles/block-library/comments/editor.css 842 B
build/styles/block-library/comments/style-rtl.css 637 B
build/styles/block-library/comments/style.css 637 B
build/styles/block-library/common-rtl.css 1.11 kB
build/styles/block-library/common.css 1.11 kB
build/styles/block-library/cover/editor-rtl.css 631 B
build/styles/block-library/cover/editor.css 631 B
build/styles/block-library/cover/style-rtl.css 1.82 kB
build/styles/block-library/cover/style.css 1.81 kB
build/styles/block-library/details/editor-rtl.css 65 B
build/styles/block-library/details/editor.css 65 B
build/styles/block-library/details/style-rtl.css 86 B
build/styles/block-library/details/style.css 86 B
build/styles/block-library/editor-elements-rtl.css 75 B
build/styles/block-library/editor-elements.css 75 B
build/styles/block-library/editor-rtl.css 9.9 kB
build/styles/block-library/editor.css 9.9 kB
build/styles/block-library/elements-rtl.css 54 B
build/styles/block-library/elements.css 54 B
build/styles/block-library/embed/editor-rtl.css 331 B
build/styles/block-library/embed/editor.css 331 B
build/styles/block-library/embed/style-rtl.css 448 B
build/styles/block-library/embed/style.css 448 B
build/styles/block-library/embed/theme-rtl.css 133 B
build/styles/block-library/embed/theme.css 133 B
build/styles/block-library/file/editor-rtl.css 324 B
build/styles/block-library/file/editor.css 324 B
build/styles/block-library/file/style-rtl.css 278 B
build/styles/block-library/file/style.css 278 B
build/styles/block-library/footnotes/style-rtl.css 198 B
build/styles/block-library/footnotes/style.css 197 B
build/styles/block-library/form-input/editor-rtl.css 229 B
build/styles/block-library/form-input/editor.css 229 B
build/styles/block-library/form-input/style-rtl.css 366 B
build/styles/block-library/form-input/style.css 366 B
build/styles/block-library/form-submission-notification/editor-rtl.css 344 B
build/styles/block-library/form-submission-notification/editor.css 341 B
build/styles/block-library/form-submit-button/style-rtl.css 69 B
build/styles/block-library/form-submit-button/style.css 69 B
build/styles/block-library/freeform/editor-rtl.css 288 B
build/styles/block-library/freeform/editor.css 288 B
build/styles/block-library/gallery/editor-rtl.css 615 B
build/styles/block-library/gallery/editor.css 616 B
build/styles/block-library/gallery/style-rtl.css 1.84 kB
build/styles/block-library/gallery/style.css 1.84 kB
build/styles/block-library/gallery/theme-rtl.css 108 B
build/styles/block-library/gallery/theme.css 108 B
build/styles/block-library/group/editor-rtl.css 335 B
build/styles/block-library/group/editor.css 335 B
build/styles/block-library/group/style-rtl.css 103 B
build/styles/block-library/group/style.css 103 B
build/styles/block-library/group/theme-rtl.css 79 B
build/styles/block-library/group/theme.css 79 B
build/styles/block-library/heading/style-rtl.css 205 B
build/styles/block-library/heading/style.css 205 B
build/styles/block-library/html/editor-rtl.css 419 B
build/styles/block-library/html/editor.css 419 B
build/styles/block-library/image/editor-rtl.css 763 B
build/styles/block-library/image/editor.css 763 B
build/styles/block-library/image/style-rtl.css 1.6 kB
build/styles/block-library/image/style.css 1.59 kB
build/styles/block-library/image/theme-rtl.css 137 B
build/styles/block-library/image/theme.css 137 B
build/styles/block-library/latest-comments/style-rtl.css 355 B
build/styles/block-library/latest-comments/style.css 354 B
build/styles/block-library/latest-posts/editor-rtl.css 139 B
build/styles/block-library/latest-posts/editor.css 138 B
build/styles/block-library/latest-posts/style-rtl.css 520 B
build/styles/block-library/latest-posts/style.css 520 B
build/styles/block-library/list/style-rtl.css 107 B
build/styles/block-library/list/style.css 107 B
build/styles/block-library/loginout/style-rtl.css 61 B
build/styles/block-library/loginout/style.css 61 B
build/styles/block-library/math/editor-rtl.css 105 B
build/styles/block-library/math/editor.css 105 B
build/styles/block-library/math/style-rtl.css 61 B
build/styles/block-library/math/style.css 61 B
build/styles/block-library/media-text/editor-rtl.css 321 B
build/styles/block-library/media-text/editor.css 320 B
build/styles/block-library/media-text/style-rtl.css 543 B
build/styles/block-library/media-text/style.css 542 B
build/styles/block-library/more/editor-rtl.css 393 B
build/styles/block-library/more/editor.css 393 B
build/styles/block-library/navigation-link/editor-rtl.css 645 B
build/styles/block-library/navigation-link/editor.css 647 B
build/styles/block-library/navigation-link/style-rtl.css 190 B
build/styles/block-library/navigation-link/style.css 188 B
build/styles/block-library/navigation-overlay-close/style-rtl.css 249 B
build/styles/block-library/navigation-overlay-close/style.css 249 B
build/styles/block-library/navigation-submenu/editor-rtl.css 295 B
build/styles/block-library/navigation-submenu/editor.css 294 B
build/styles/block-library/navigation/editor-rtl.css 2.28 kB
build/styles/block-library/navigation/editor.css 2.28 kB
build/styles/block-library/navigation/style-rtl.css 2.27 kB
build/styles/block-library/navigation/style.css 2.25 kB
build/styles/block-library/nextpage/editor-rtl.css 392 B
build/styles/block-library/nextpage/editor.css 392 B
build/styles/block-library/page-list/editor-rtl.css 356 B
build/styles/block-library/page-list/editor.css 356 B
build/styles/block-library/page-list/style-rtl.css 192 B
build/styles/block-library/page-list/style.css 192 B
build/styles/block-library/paragraph/editor-rtl.css 292 B
build/styles/block-library/paragraph/editor.css 292 B
build/styles/block-library/paragraph/style-rtl.css 341 B
build/styles/block-library/paragraph/style.css 340 B
build/styles/block-library/post-author-biography/style-rtl.css 74 B
build/styles/block-library/post-author-biography/style.css 74 B
build/styles/block-library/post-author-name/style-rtl.css 69 B
build/styles/block-library/post-author-name/style.css 69 B
build/styles/block-library/post-author/style-rtl.css 188 B
build/styles/block-library/post-author/style.css 189 B
build/styles/block-library/post-comments-count/style-rtl.css 72 B
build/styles/block-library/post-comments-count/style.css 72 B
build/styles/block-library/post-comments-form/editor-rtl.css 96 B
build/styles/block-library/post-comments-form/editor.css 96 B
build/styles/block-library/post-comments-form/style-rtl.css 525 B
build/styles/block-library/post-comments-form/style.css 525 B
build/styles/block-library/post-comments-link/style-rtl.css 71 B
build/styles/block-library/post-comments-link/style.css 71 B
build/styles/block-library/post-content/style-rtl.css 61 B
build/styles/block-library/post-content/style.css 61 B
build/styles/block-library/post-date/style-rtl.css 62 B
build/styles/block-library/post-date/style.css 62 B
build/styles/block-library/post-excerpt/editor-rtl.css 71 B
build/styles/block-library/post-excerpt/editor.css 71 B
build/styles/block-library/post-excerpt/style-rtl.css 155 B
build/styles/block-library/post-excerpt/style.css 155 B
build/styles/block-library/post-featured-image/editor-rtl.css 719 B
build/styles/block-library/post-featured-image/editor.css 717 B
build/styles/block-library/post-featured-image/style-rtl.css 347 B
build/styles/block-library/post-featured-image/style.css 347 B
build/styles/block-library/post-navigation-link/style-rtl.css 215 B
build/styles/block-library/post-navigation-link/style.css 214 B
build/styles/block-library/post-template/style-rtl.css 414 B
build/styles/block-library/post-template/style.css 414 B
build/styles/block-library/post-terms/style-rtl.css 96 B
build/styles/block-library/post-terms/style.css 96 B
build/styles/block-library/post-time-to-read/style-rtl.css 70 B
build/styles/block-library/post-time-to-read/style.css 70 B
build/styles/block-library/post-title/style-rtl.css 162 B
build/styles/block-library/post-title/style.css 162 B
build/styles/block-library/preformatted/style-rtl.css 125 B
build/styles/block-library/preformatted/style.css 125 B
build/styles/block-library/pullquote/editor-rtl.css 133 B
build/styles/block-library/pullquote/editor.css 133 B
build/styles/block-library/pullquote/style-rtl.css 365 B
build/styles/block-library/pullquote/style.css 365 B
build/styles/block-library/pullquote/theme-rtl.css 176 B
build/styles/block-library/pullquote/theme.css 176 B
build/styles/block-library/query-pagination-numbers/editor-rtl.css 121 B
build/styles/block-library/query-pagination-numbers/editor.css 118 B
build/styles/block-library/query-pagination/editor-rtl.css 154 B
build/styles/block-library/query-pagination/editor.css 154 B
build/styles/block-library/query-pagination/style-rtl.css 237 B
build/styles/block-library/query-pagination/style.css 237 B
build/styles/block-library/query-title/style-rtl.css 64 B
build/styles/block-library/query-title/style.css 64 B
build/styles/block-library/query-total/style-rtl.css 64 B
build/styles/block-library/query-total/style.css 64 B
build/styles/block-library/query/editor-rtl.css 438 B
build/styles/block-library/query/editor.css 438 B
build/styles/block-library/quote/style-rtl.css 238 B
build/styles/block-library/quote/style.css 238 B
build/styles/block-library/quote/theme-rtl.css 233 B
build/styles/block-library/quote/theme.css 236 B
build/styles/block-library/read-more/style-rtl.css 131 B
build/styles/block-library/read-more/style.css 131 B
build/styles/block-library/reset-rtl.css 467 B
build/styles/block-library/reset.css 467 B
build/styles/block-library/rss/editor-rtl.css 126 B
build/styles/block-library/rss/editor.css 126 B
build/styles/block-library/rss/style-rtl.css 284 B
build/styles/block-library/rss/style.css 283 B
build/styles/block-library/search/editor-rtl.css 199 B
build/styles/block-library/search/editor.css 199 B
build/styles/block-library/search/style-rtl.css 665 B
build/styles/block-library/search/style.css 666 B
build/styles/block-library/search/theme-rtl.css 113 B
build/styles/block-library/search/theme.css 113 B
build/styles/block-library/separator/editor-rtl.css 100 B
build/styles/block-library/separator/editor.css 100 B
build/styles/block-library/separator/style-rtl.css 248 B
build/styles/block-library/separator/style.css 248 B
build/styles/block-library/separator/theme-rtl.css 195 B
build/styles/block-library/separator/theme.css 195 B
build/styles/block-library/shortcode/editor-rtl.css 286 B
build/styles/block-library/shortcode/editor.css 286 B
build/styles/block-library/site-logo/editor-rtl.css 696 B
build/styles/block-library/site-logo/editor.css 692 B
build/styles/block-library/site-logo/style-rtl.css 218 B
build/styles/block-library/site-logo/style.css 218 B
build/styles/block-library/site-tagline/editor-rtl.css 87 B
build/styles/block-library/site-tagline/editor.css 87 B
build/styles/block-library/site-tagline/style-rtl.css 65 B
build/styles/block-library/site-tagline/style.css 65 B
build/styles/block-library/site-title/editor-rtl.css 85 B
build/styles/block-library/site-title/editor.css 85 B
build/styles/block-library/site-title/style-rtl.css 143 B
build/styles/block-library/site-title/style.css 143 B
build/styles/block-library/social-link/editor-rtl.css 314 B
build/styles/block-library/social-link/editor.css 314 B
build/styles/block-library/social-links/editor-rtl.css 339 B
build/styles/block-library/social-links/editor.css 338 B
build/styles/block-library/social-links/style-rtl.css 1.51 kB
build/styles/block-library/social-links/style.css 1.51 kB
build/styles/block-library/spacer/editor-rtl.css 346 B
build/styles/block-library/spacer/editor.css 346 B
build/styles/block-library/spacer/style-rtl.css 48 B
build/styles/block-library/spacer/style.css 48 B
build/styles/block-library/style-rtl.css 16.6 kB
build/styles/block-library/style.css 16.6 kB
build/styles/block-library/tab/style-rtl.css 202 B
build/styles/block-library/tab/style.css 202 B
build/styles/block-library/table-of-contents/style-rtl.css 83 B
build/styles/block-library/table-of-contents/style.css 83 B
build/styles/block-library/table/editor-rtl.css 394 B
build/styles/block-library/table/editor.css 394 B
build/styles/block-library/table/style-rtl.css 641 B
build/styles/block-library/table/style.css 640 B
build/styles/block-library/table/theme-rtl.css 152 B
build/styles/block-library/table/theme.css 152 B
build/styles/block-library/tabs/editor-rtl.css 236 B
build/styles/block-library/tabs/editor.css 236 B
build/styles/block-library/tabs/style-rtl.css 983 B
build/styles/block-library/tabs/style.css 983 B
build/styles/block-library/tag-cloud/style-rtl.css 248 B
build/styles/block-library/tag-cloud/style.css 248 B
build/styles/block-library/template-part/editor-rtl.css 368 B
build/styles/block-library/template-part/editor.css 368 B
build/styles/block-library/template-part/theme-rtl.css 113 B
build/styles/block-library/template-part/theme.css 113 B
build/styles/block-library/term-count/style-rtl.css 63 B
build/styles/block-library/term-count/style.css 63 B
build/styles/block-library/term-description/style-rtl.css 126 B
build/styles/block-library/term-description/style.css 126 B
build/styles/block-library/term-name/style-rtl.css 62 B
build/styles/block-library/term-name/style.css 62 B
build/styles/block-library/term-template/editor-rtl.css 225 B
build/styles/block-library/term-template/editor.css 225 B
build/styles/block-library/term-template/style-rtl.css 114 B
build/styles/block-library/term-template/style.css 114 B
build/styles/block-library/text-columns/editor-rtl.css 95 B
build/styles/block-library/text-columns/editor.css 95 B
build/styles/block-library/text-columns/style-rtl.css 165 B
build/styles/block-library/text-columns/style.css 165 B
build/styles/block-library/theme-rtl.css 715 B
build/styles/block-library/theme.css 719 B
build/styles/block-library/verse/style-rtl.css 123 B
build/styles/block-library/verse/style.css 123 B
build/styles/block-library/video/editor-rtl.css 415 B
build/styles/block-library/video/editor.css 416 B
build/styles/block-library/video/style-rtl.css 202 B
build/styles/block-library/video/style.css 202 B
build/styles/block-library/video/theme-rtl.css 134 B
build/styles/block-library/video/theme.css 134 B
build/styles/commands/style-rtl.css 1 kB
build/styles/commands/style.css 1 kB
build/styles/components/style-rtl.css 13.7 kB
build/styles/components/style.css 13.8 kB
build/styles/customize-widgets/style-rtl.css 1.44 kB
build/styles/customize-widgets/style.css 1.44 kB
build/styles/edit-post/classic-rtl.css 426 B
build/styles/edit-post/classic.css 427 B
build/styles/edit-post/style-rtl.css 2.63 kB
build/styles/edit-post/style.css 2.63 kB
build/styles/edit-site/style-rtl.css 16.4 kB
build/styles/edit-site/style.css 16.4 kB
build/styles/edit-widgets/style-rtl.css 3.83 kB
build/styles/edit-widgets/style.css 3.84 kB
build/styles/editor/style-rtl.css 20 kB
build/styles/editor/style.css 20 kB
build/styles/format-library/style-rtl.css 326 B
build/styles/format-library/style.css 326 B
build/styles/list-reusable-blocks/style-rtl.css 250 B
build/styles/list-reusable-blocks/style.css 249 B
build/styles/media-utils/style-rtl.css 510 B
build/styles/media-utils/style.css 510 B
build/styles/nux/style-rtl.css 622 B
build/styles/nux/style.css 618 B
build/styles/patterns/style-rtl.css 611 B
build/styles/patterns/style.css 611 B
build/styles/preferences/style-rtl.css 415 B
build/styles/preferences/style.css 415 B
build/styles/reusable-blocks/style-rtl.css 275 B
build/styles/reusable-blocks/style.css 275 B
build/styles/widgets/style-rtl.css 1.15 kB
build/styles/widgets/style.css 1.15 kB

compressed-size-action

@github-actions
Copy link

github-actions bot commented Dec 23, 2025

Flaky tests detected in cdee423.
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/20472865712
📝 Reported issues:

Comment on lines 114 to 117
const { getBlockParents } = select( blockEditorStore );
const { isBlockHidden: _isBlockHidden } = unlock(
select( blockEditorStore )
);
Copy link
Member

Choose a reason for hiding this comment

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

Note: You can use a single store getter for both private and public selectors.

Copy link
Member Author

Choose a reason for hiding this comment

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

Thanks @Mamaduka! I'll update

<HStack spacing={ 2 } justify="start">
<Icon icon={ unseen } />
<Text>
{ hasHiddenParent
Copy link
Contributor

@andrewserong andrewserong Dec 23, 2025

Choose a reason for hiding this comment

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

What should happen if both the current block is hidden and the parent is hidden? Currently the parent text overrides the child text.

The example is if you have a hidden block within a parent block that is also hidden.

Copy link
Member Author

Choose a reason for hiding this comment

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

Good question. TBH I hadn't thought of that. I'll look into it. Maybe it should just default to "Block hidden" in that case.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it's something that's less likely to happen right now, but more likely when we get to the hiding-by-breakpoints behaviour. I.e. I could imagine someone might have a wrapper for "mobile and tablet" (hidden on desktop) and within it, they might have something hidden on mobile, or something hidden on tablet.

Copy link
Member Author

Choose a reason for hiding this comment

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

I think this POC kinda tackled this scenario with variable messages (if I'm understanding you right)

https://github.com/WordPress/gutenberg/pull/73888/files#diff-068538657061c47f0a58cfc331259bbeabe11bcc0c576a0cc496d262e5b0038cR361

Copy link
Contributor

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

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

In general I like this idea of making it more visible that a block is hidden, especially in the block inspector.

Other than the store selector that George mentioned, the code looks good! Just left a comment re: whether we should use the parent hidden text or the block hidden text when a block is both hidden and has a parent hidden, but otherwise working nicely:

2025-12-23.16.30.37.mp4

The only other thing I'd check before landing is whether designers are happy with where the notice is positioned? But otherwise LGTM 👍

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!

I think the BlockCard component is an abstract component that simply displays information based on given props, so it seems strange to have block support logic inside it.

What if we added a new component like BlockVisibilityInfo here, between the Block Card component and the Edit section component?

<BlockCard
	{ ...blockInformation }
	allowParentNavigation
	className={ isBlockSynced && 'is-synced' }
	isChild={ hasParentChildBlockCards }
	clientId={ renderedBlockClientId }
/>
<BlockVisibilityInfo clientId={ renderedBlockClientId } />
{ window?.__experimentalContentOnlyPatternInsertion && (
	<EditContents clientId={ renderedBlockClientId } />
) }

@Mamaduka
Copy link
Member

I think the BlockCard component is an abstract component that simply displays information based on given props, so it seems strange to have block support logic inside it.

I think the same applies to the navigation logic in the Block Card component. Especially, not that it'll be enabled for more blocks (#74164).

@ramonjd
Copy link
Member Author

ramonjd commented Dec 23, 2025

What if we added a new component like BlockVisibilityInfo here, between the Block Card component and the Edit section component?

Thanks for the idea. Sounds like a plan.

@jasmussen
Copy link
Contributor

I hear the motivation, but to me it's not clear it solves the underlying issue. The list view is not open by default, and if there are blocks hidden in the canvas, you won't see this notice until you find it and select it (arrow-key through the whole stack). And in the inspector, it looks like an error, when a hidden block will always at some point have been intentional. Even then you might have the inspector closed. I share the motivation to solve this, my current best idea is this one.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 23, 2025

I hear the motivation, but to me it's not clear it solves the underlying issue. The list view is not open by default, and if there are blocks hidden in the canvas, you won't see this notice until you find it and select it (arrow-key through the whole stack). And in the inspector, it looks like an error, when a hidden block will always at some point have been intentional. Even then you might have the inspector closed.

I hear you, thanks for being on top of this feature 🙇🏻

Here, the only motivation was to test some of the ideas in the POCs, specifically #73888.

What it looks like aside, I think we need to answer the question: does a message, or some sort of indicator like this around the block card provide any value at all? I'm not sure it matters that it's potentially hard to find, because users will find it. Rather, taking the inspector on its own, does it help and provide valuable info about the currently selected block or is it useless?

If the latter, then let's just can it, agree. I don't feel strongly either way.

It could be that it's slightly above neutral or just needs a different presentation. I don't think it conflicts with the floating/toolbar indicator per se.

Another thing to keep in mind is that we can hide anything behind the current experiment.

I share the motivation to solve this, my current best idea is #74150 (comment).

Is there a middle ground here?

I'm not familiar with the Notes feature (does it exist, or would it be bespoke to this?), so maybe my concerns might be unfounded, but my first worry is adding a larger dependency, especially one that has not yet been built.

@jasmussen
Copy link
Contributor

I'm not familiar with the Notes feature (does it exist, or would it be bespoke to this?), so maybe my concerns might be unfounded, but my first worry is adding a larger dependency, especially one that has not yet been built.

It might need some input by folks currently enjoying deserved AFK, so something to come back to, and yes there are always alternatives we can explore. This to me just feels the most compelling one, because:

  • It uses an existing feature
  • It conceptually expands what we can do with the Notes margin, in a way that can accessibly and very clearly highlight shortcomings or issues in the canvas beyond notes and suggestions.
  • It is immediately noticable even for people who have both inspectors and list views toggled off, without adding new notices, snackbars, in-canvas popovers, or inspector notices.

One immediate alternative that comes to mind, if all else fails, is to actually show a notice, just like we do when there's revision history issues. That is, at the top of the canvas, with a cross to toggle it off: "There are hidden blocks, you can see them in the list view". I'm not necessarily recommending that quite yet, as noted I think we should explore the notes thing first, but it solves some of the issues an inspector notice does not, in that it is immediatly visible, actionable, and works with or without inspectors/list-view panels on.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 23, 2025

It uses an existing feature

Ahhh, that Notes 😆 Sorry, it just clicked. Thanks for being patient with me.

It conceptually expands what we can do with the Notes margin, in a way that can accessibly and very clearly highlight shortcomings or issues in the canvas beyond notes and suggestions.

Yeah, I do see the potential if we can piggy back off the system. Grouping a lot of hidden blocks on the same latitude might be finicky, but I've see you pull off harder miracles 😉 I'd feel better about 7.0 if we got the fundamentals of applying break points working first, and then dealt with discovery. Let's see how we get on. Cheers!

Copy link
Member

@SirLouen SirLouen left a comment

Choose a reason for hiding this comment

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

I had a little existential crisis with this conditional with booleans dancing in my head. 🙀

Maybe it could be clearer (as we are early returning before, both cannot be false).

For the rest, looking good ✅

@t-hamano
Copy link
Contributor

If a block is nested, should the text change? For example, in the screenshot below, the Paragraph block displays "Parent block is hidden", but the hidden block is actually the ancestor block, not the parent block.

image

@jasmussen
Copy link
Contributor

It's still unclear to me this is the right solution.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 26, 2025

If a block is nested, should the text change? For example, in the screenshot below, the Paragraph block displays "Parent block is hidden", but the hidden block is actually the ancestor block, not the parent block.

Good question. Should it? What do you think?

My rationale was that a child block whose parent is hidden is also hidden, but only by virtue of its parent (ancestors included) not explicitly.

It's still unclear to me this is the right solution.

No worries. It's okay to be unsure.

I won't merge it yet, or, better I'll put it behind the experiment before merging.

As mentioned, this PR exists because @mtias proposed it in #73888, but also in the spirit of pragmatism and trying things out. I could be wrong, but I thought the stakes would be pretty low on this one.

Happy to leave this PR particularly so because, for Add option to hide blocks based on screen size #72502 project to make progress in light of 7.0, I think we should build out features that allow folks to use the feature as soon as possible.

For me this looks like, in order of priority:

Beyond those, I believe it's imperative to confront and unambiguously answer the following questions:

  • what features are a "must" or would be blockers for an MVP for 7.0 (a.k.a "scope" / do we know what we want, and, if not, how can we get there?)
  • is this additional functionality realistic and can it be delivered for 7.0?
  • are we okay with trying things out until we get it right even if it means this feature won't be delivered in its entirety?
  • if not, or if we're not sure, can the functionality be delivered iteratively for 7.1 and beyond?

Cheers! 🍺

@SirLouen
Copy link
Member

FWIW there was a thing that the experimental form block was using for the submission notices, like a diagonal striped pattern for non-visible blocks. Maybe this can feel crude for the design masters, but it's clearer than water, and I liked it a lot. Most builders use a pattern like this (or translucent effects).

Generally I tend to like everything, unless it's too scrambled.

@jasmussen
Copy link
Contributor

jasmussen commented Dec 27, 2025

Appreciate that added context, and there's a reason I've only ever left commments on this, it's in the category of "it's fine to land and try out". The motivation for adding notices to the inspector resonates for me when it relates to responsively hidden blocks, mainly because you could select one on the desktop breakpoint, preview mobile where it might be hidden, and thus the inspector notice provides an important cue. I get it. The main reason for being unsure relates it to generally hidden blocks, where you won't see the block on either breakpoint. In this case, it can't be a replacement for something like note-based indicators.

Oh, and the Notice component feels very tired at this point, I do wonder whether semantically we could use Badge instead?

Edit: Oh, and I don't think yo unecessarily need to add an experiment just for this notice.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 29, 2025

The motivation for adding notices to the inspector resonates for me when it relates to responsively hidden blocks, mainly because you could select one on the desktop breakpoint, preview mobile where it might be hidden, and thus the inspector notice provides an important cue.... The main reason for being unsure relates it to generally hidden blocks, where you won't see the block on either breakpoint. In this case, it can't be a replacement for something like note-based indicators.

Very good point! I think responsively-hidden blocks was the main use case, I just thought I'd get a head start.

I do wonder whether semantically we could use Badge instead?

Looks okay to me!

Screenshot 2025-12-29 at 12 23 54 pm

@ramonjd
Copy link
Member Author

ramonjd commented Dec 29, 2025

A PR like this we can afford to keep on ice for a bit until the foundations are laid. Thanks for the discussion and everyone's input 🙇🏻

@t-hamano
Copy link
Contributor

The badge component feels very natural, and I personally think this PR is OK to ship.

Note that the block card layout is slightly different in the trunk branch. This is how it should look like in real life:

image

@ramonjd
Copy link
Member Author

ramonjd commented Dec 29, 2025

The badge component feels very natural, and I personally think this PR is OK to ship.

Note that the block card layout is slightly different in the trunk branch. This is how it should look like in real life:

Thanks @t-hamano!

I need to rebase this PR. Will do that.

@ramonjd ramonjd force-pushed the add/hidden-block-block-card-notice branch from 1909653 to aab1505 Compare December 29, 2025 02:41
@ramonjd
Copy link
Member Author

ramonjd commented Dec 29, 2025

I need to rebase this PR. Will do that.

Done!

Looks like the block card was updated independently - I guess after #74164?

Screenshot 2025-12-29 at 1 41 11 pm

@ramonjd ramonjd merged commit fcba6c5 into trunk Dec 29, 2025
38 checks passed
@ramonjd ramonjd deleted the add/hidden-block-block-card-notice branch December 29, 2025 06:16
@github-actions github-actions bot added this to the Gutenberg 22.4 milestone Dec 29, 2025
@SirLouen SirLouen mentioned this pull request Dec 29, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Feature] Design Tools Tools that impact the appearance of blocks both to expand the number of tools and improve the experi [Package] Block editor /packages/block-editor [Type] Enhancement A suggestion for improvement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants