Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Move zoom out into PreviewDropdown #58202

Closed
wants to merge 11 commits into from
Closed

Move zoom out into PreviewDropdown #58202

wants to merge 11 commits into from

Conversation

richtabor
Copy link
Member

What?

Related to #56806, moving the standalone zoom control into the PreviewDropdown. This aligns the display and zoom tools into one area, as they are directly related.

Previously, invoking zoom would hide the preview device controls (as the zoom UI was separate from the preview UI). With this change we don't need to get smart on that front; just include the like actions in the same area.

I am curious if we need to have this behind an experimental flag, not that it's much more integrated into the existing UI — rather than appended at the top of the toolbar. Sure, there are further refinements that the zoomed out view may hold, but it's nice to be able to see more of a page all at once.

How?

Testing Instructions

  1. Turn on the zoom experiment.
  2. Open a post or page.
  3. Open the PreviewDropdown.
  4. Try activating the various preview options.
  5. Do the same in the site editor.
  6. Ensure the changes are not reflected when the experiment is off.

Screenshots or screencast

zooming.mp4

Follow-up

  1. I set this zoom percentage to 50%, but it would be nice to have a "Zoom to fit" control, which would zoom out enough so you can see the entire page.

  2. With that fit control in mind alongside 50%, we may need to be more clear about zooming back to 100%, like below. Although "Zoom to 100%" and "Desktop" have the same behavior. cc @WordPress/gutenberg-design.

CleanShot 2024-01-24 at 10 33 31

@richtabor richtabor requested a review from a team January 24, 2024 15:35
@richtabor richtabor self-assigned this Jan 24, 2024
@richtabor richtabor added [Type] Enhancement A suggestion for improvement. [Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") labels Jan 24, 2024
@richtabor richtabor marked this pull request as ready for review January 24, 2024 15:36
Copy link

github-actions bot commented Jan 24, 2024

Size Change: -1.55 kB (0%)

Total Size: 1.74 MB

Filename Size Change
build/block-editor/index.min.js 256 kB +15 B (0%)
build/block-editor/style-rtl.css 15.6 kB -11 B (0%)
build/block-editor/style.css 15.6 kB -11 B (0%)
build/block-library/index.min.js 219 kB -35 B (0%)
build/blocks/index.min.js 51.6 kB +78 B (0%)
build/components/index.min.js 220 kB -111 B (0%)
build/core-data/index.min.js 72.5 kB +11 B (0%)
build/edit-post/index.min.js 16.9 kB -1.07 kB (-6%)
build/edit-site/index.min.js 223 kB -1.48 kB (-1%)
build/edit-site/style-rtl.css 13.9 kB +4 B (0%)
build/edit-site/style.css 13.9 kB +8 B (0%)
build/editor/index.min.js 79 kB +1.05 kB (+1%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 955 B
build/annotations/index.min.js 2.27 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 578 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1.03 kB
build/block-directory/style.css 1.03 kB
build/block-editor/content-rtl.css 4.53 kB
build/block-editor/content.css 4.53 kB
build/block-editor/default-editor-styles-rtl.css 395 B
build/block-editor/default-editor-styles.css 395 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 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 133 B
build/block-library/blocks/audio/theme.css 133 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 415 B
build/block-library/blocks/button/editor.css 414 B
build/block-library/blocks/button/style-rtl.css 627 B
build/block-library/blocks/button/style.css 626 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 671 B
build/block-library/blocks/cover/editor.css 674 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 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 322 B
build/block-library/blocks/embed/editor.css 322 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 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 327 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 227 B
build/block-library/blocks/form-input/editor.css 227 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 340 B
build/block-library/blocks/form-submission-notification/editor.css 340 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 471 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 956 B
build/block-library/blocks/gallery/editor.css 960 B
build/block-library/blocks/gallery/style-rtl.css 1.72 kB
build/block-library/blocks/gallery/style.css 1.72 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 647 B
build/block-library/blocks/group/editor.css 647 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 336 B
build/block-library/blocks/html/editor.css 337 B
build/block-library/blocks/image/editor-rtl.css 878 B
build/block-library/blocks/image/editor.css 878 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 133 B
build/block-library/blocks/image/theme.css 133 B
build/block-library/blocks/image/view.min.js 1.54 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 306 B
build/block-library/blocks/media-text/editor.css 305 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 668 B
build/block-library/blocks/navigation-link/editor.css 669 B
build/block-library/blocks/navigation-link/style-rtl.css 259 B
build/block-library/blocks/navigation-link/style.css 257 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B
build/block-library/blocks/navigation-submenu/editor.css 295 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.26 kB
build/block-library/blocks/navigation/style.css 2.25 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 727 B
build/block-library/blocks/post-featured-image/style-rtl.css 342 B
build/block-library/blocks/post-featured-image/style.css 342 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 409 B
build/block-library/blocks/post-template/style.css 408 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 354 B
build/block-library/blocks/pullquote/style.css 353 B
build/block-library/blocks/pullquote/theme-rtl.css 174 B
build/block-library/blocks/pullquote/theme.css 174 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 235 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 690 B
build/block-library/blocks/search/style.css 689 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 478 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 239 B
build/block-library/blocks/separator/style.css 239 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 323 B
build/block-library/blocks/shortcode/editor.css 323 B
build/block-library/blocks/site-logo/editor-rtl.css 801 B
build/block-library/blocks/site-logo/editor.css 801 B
build/block-library/blocks/site-logo/style-rtl.css 204 B
build/block-library/blocks/site-logo/style.css 204 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 676 B
build/block-library/blocks/social-links/editor.css 675 B
build/block-library/blocks/social-links/style-rtl.css 1.48 kB
build/block-library/blocks/social-links/style.css 1.48 kB
build/block-library/blocks/spacer/editor-rtl.css 350 B
build/block-library/blocks/spacer/editor.css 350 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 395 B
build/block-library/blocks/table/editor.css 395 B
build/block-library/blocks/table/style-rtl.css 639 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 431 B
build/block-library/blocks/template-part/editor.css 431 B
build/block-library/blocks/template-part/theme-rtl.css 107 B
build/block-library/blocks/template-part/theme.css 107 B
build/block-library/blocks/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 185 B
build/block-library/blocks/video/style.css 185 B
build/block-library/blocks/video/theme-rtl.css 133 B
build/block-library/blocks/video/theme.css 133 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.4 kB
build/block-library/editor.css 12.4 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.8 kB
build/block-library/style.css 14.8 kB
build/block-library/theme-rtl.css 707 B
build/block-library/theme.css 713 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/commands/index.min.js 15.2 kB
build/commands/style-rtl.css 953 B
build/commands/style.css 951 B
build/components/style-rtl.css 12 kB
build/components/style.css 12 kB
build/compose/index.min.js 12.6 kB
build/core-commands/index.min.js 2.77 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.36 kB
build/customize-widgets/style.css 1.36 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 9 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 578 B
build/edit-post/style-rtl.css 4.24 kB
build/edit-post/style.css 4.23 kB
build/edit-widgets/index.min.js 17.6 kB
build/edit-widgets/style-rtl.css 4.16 kB
build/edit-widgets/style.css 4.16 kB
build/editor/style-rtl.css 6.95 kB
build/editor/style.css 6.95 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.07 kB
build/format-library/style-rtl.css 493 B
build/format-library/style.css 492 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.58 kB
build/interactivity/debug.min.js 16.2 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.67 kB
build/interactivity/index.min.js 13 kB
build/interactivity/navigation.min.js 1.17 kB
build/interactivity/query.min.js 740 B
build/interactivity/router.min.js 2.79 kB
build/interactivity/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.3 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 851 B
build/list-reusable-blocks/style.css 851 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 1.57 kB
build/nux/style-rtl.css 748 B
build/nux/style.css 744 B
build/patterns/index.min.js 6.47 kB
build/patterns/style-rtl.css 595 B
build/patterns/style.css 595 B
build/plugins/index.min.js 1.8 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.85 kB
build/preferences/style-rtl.css 710 B
build/preferences/style.css 712 B
build/primitives/index.min.js 975 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
build/react-i18n/index.min.js 623 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.73 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10 kB
build/router/index.min.js 1.88 kB
build/server-side-render/index.min.js 1.96 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 2.03 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.74 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 957 B
build/warning/index.min.js 249 B
build/widgets/index.min.js 7.23 kB
build/widgets/style-rtl.css 1.17 kB
build/widgets/style.css 1.17 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

Copy link

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

@jasmussen
Copy link
Contributor

Oh, nice one, that's interesting! Here's a GIF of what I observe:

zoom

Specifically I click in that GIF the preview dropdown, where a 50% zoom exists, which I then toggle on to zoom out, and off, to zoom back in. This is a little different from what you note in the post, maybe I had some errors in compiling the branch, let me know, but if we do move the controls in here, I'd have both 100% and 50% zoom, so one is always checked.

One curiosity is that the zoom out in this branch is mutually exclusive with the Desktop/Tablet/Mobile previews. That's actually what gives me a little pause here, if the zoom control is meant to be explicit, something user invokeable, and live there, then either it should be one dropdown group so it's clear that they are mutually exclusive, or they should stack, i.e. I can see Tablet at 50%. The latter isn't that useful, but the former is a bit confusing.

If we do want user control of zoom levels, another option is to add a control in the breadcrumb footer bar, a tiny stepped slider, or just a dropdown that shows Zoom: 100% ▾, that's also a common place for such controls. I don't love that idea because it buries the feature.

Another option is to tie it to an edit mode. It isn't clear how useful this is when you're just writing a post or page building, but when you're building with sections, inserting top-level patterns, it's very useful. I think I've seen separate mockups (from you?) where this mode gets automatically invoked when you press the pattern tab in the inserter, changig the editing mode of the canvas to reveal top-level sibling inserters for pattern placement. That feels like a fluid way to invoke the zoom contextually; does the user need more zoom level control here?

@richtabor
Copy link
Member Author

@jasmussen I pushed up changes to make zoom stack with device previews, like this:

zoomout-2.mp4

What do you think?

@richtabor
Copy link
Member Author

Another option is to tie it to an edit mode. It isn't clear how useful this is when you're just writing a post or page building, but when you're building with sections, inserting top-level patterns, it's very useful. I think I've seen separate mockups (from you?) where this mode gets automatically invoked when you press the pattern tab in the inserter, changig the editing mode of the canvas to reveal top-level sibling inserters for pattern placement. That feels like a fluid way to invoke the zoom contextually; does the user need more zoom level control here?

Yes, I think we'll invoke the zoom-out mode in areas where it makes sense to do, like how it's done in when previewing styles. But I do think it's a nice-to-have to zoom out and see a whole page's design. We do it in Figma all the time, to take a birds-eye view and make sure elements are cohesive, aligned properly, etc.

I do like having it in the existing device preview control—even stacked with preview. It's a relative control and feels expected.

@jasmussen
Copy link
Contributor

I think it might work, when stacked. Not entirely sure how useful it is, but if it can directly tie into any how the style variation zooming and any future assembler or site-view related zooming might work (same componentry etc), then it might be okay?

I think my main concern is putting it in that dropdown. I still have this idea that the preview dropdown can potentially hold extensibility for plugins there, such as "view with paywall" or "view with premium" or other things. Those might still all stack, but it could also become a long list. Maybe that shouldn't block this, but pertinent for the thought process perhaps.

Copy link

github-actions bot commented Feb 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: richtabor <[email protected]>
Co-authored-by: getdave <[email protected]>
Co-authored-by: scruffian <[email protected]>
Co-authored-by: jasmussen <[email protected]>
Co-authored-by: paaljoachim <[email protected]>
Co-authored-by: youknowriad <[email protected]>
Co-authored-by: anton-vlasenko <[email protected]>
Co-authored-by: annezazu <[email protected]>
Co-authored-by: stokesman <[email protected]>

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

@richtabor
Copy link
Member Author

Made some changes based on feedback:

  • Removed "stacking" of zoom + device previews.
  • 50% (zoom-out mode) is only available when in desktop view.

Thoughts @WordPress/gutenberg-design @mtias?

zoom-3.mp4

@richtabor
Copy link
Member Author

We do need to omit this from the post editor, or add zooming there (which I presume is a bigger lift).

@paaljoachim
Copy link
Contributor

paaljoachim commented Feb 21, 2024

This looks good @richtabor Rich!

What about just clicking twice on the 50% zoom?
First click to activate.
Second click to deactivate.
Removing the 100% option.

EDIT: The reason why I say this is that we have for instance List View. Click once to open and click again to close. The same goes for other things that can be pressed. Once to activate/open and once to deactivate/close.

scruffian
scruffian previously approved these changes Feb 21, 2024
Copy link
Contributor

@scruffian scruffian left a comment

Choose a reason for hiding this comment

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

This is looking good. I think we should bring it in and see how users respond.

@jasmussen
Copy link
Contributor

Let's not merge this quite yet, there are some aspects around the zoom out experiment that I think we need to figure out in a more holistic way. This PR can be part of that, but let's hold off on merging until the view is clearer.

@youknowriad
Copy link
Contributor

@jasmussen I'm not really sure why we should hold this PR. It feels like an improvement to me over the weird button we have in trunk. It's still an experiment though but it makes the current experiment a bit better.

@getdave
Copy link
Contributor

getdave commented Feb 21, 2024

Let's not merge this quite yet, there are some aspects around the zoom out experiment that I think we need to figure out in a more holistic way. This PR can be part of that, but let's hold off on merging until the view is clearer.

I'm curious - why we can't merge this as it's under an experiment? We don't know the full scope of the project but that would seem ok in this context. Can you help me to understand? Thanks.

@jasmussen
Copy link
Contributor

Oh I thought it took it out of the experiment. If it remains as an experiment, that's seems okay.

My personal concern is that we are adding both granularity and promincence to a tool that I'm not personally sure will be that useful in practice. The existing experiment let us test a generally zoomed out view, but in practice it hasn't felt that useful. I always saw the evolution to be less promince and less granularity by being invoked by doing another action, such as opening the Patterns section, or invoking a "receded view" through another action. I.e. it could be tied to select mode. But never anything explicit like it is in Google Docs or otherwise. Just zooming out, as a separate affordance, just feels like another tool that doesn't have a clear utility.

@anton-vlasenko
Copy link
Contributor

anton-vlasenko commented Feb 21, 2024

Test Report

This report validates that the PR addresses the issue.

Patch tested: #58202,

Environment

  • WordPress: 6.5-beta2-57671-src
  • PHP: 7.4.33
  • Server: Apache/2.4.58 (Unix) PHP/7.4.33
  • Database: mysqli (Server: 5.7.42 / Client: mysqlnd 7.4.33)
  • Browser: Safari 17.3.1 (macOS)
  • Theme: Twenty Twenty-Four
  • MU-Plugins: None activated
  • Plugins:
    • Gutenberg 17.7.0

Actual results

  • ✅ Changes are reverted when the zoom experiment option is disabled for posts.
  • ✅ Changes are reverted when the zoom experiment option is disabled for pages.
  • ✅ Changing the preview mode works for both pages and posts.

@getdave
Copy link
Contributor

getdave commented Feb 21, 2024

@jasmussen ah yes it's still an experiment. Perhaps @richtabor is best placed to advise on the utility of the PR but I'm still inclined to merge it and iterate within the context of the experiment.

@youknowriad
Copy link
Contributor

we actually discussed some of this with @mtias and it seems that we might want both:

  • Invoking zoom-out automatically in some situations like pattern inserter, styles...
  • Manually trigger it on demand.

Copy link
Contributor

@getdave getdave left a comment

Choose a reason for hiding this comment

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

🚀 Merge and iterate

@annezazu
Copy link
Contributor

Just quick feedback that I think conflating both zooming in/out on your content with a preview of what the content looks like on different devices is quite confusing. I don't think they are the same mental models at all. For zoomed out mode, I'm trying to see more of my content and interact at a higher level with patterns (in the future). For previewing, I'm simply trying to get a sense of how my site will look on different devices. Having these exist alongside each other doesn't seem to provide value but feels like it's more surfacing complexity.

To be clear, I'm all for both controls -- just not intermingled with each other.

@richtabor richtabor mentioned this pull request Mar 10, 2024
42 tasks
Copy link
Contributor

@scruffian scruffian left a comment

Choose a reason for hiding this comment

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

When I am in zoomed out view and i open the device preview, zoom out mode closes.

@stokesman
Copy link
Contributor

It’s neat to see this. It’s a very good vein to explore. Along these lines, my wish is that device previews engage zoom-to-fit behavior when their dimensions are greater than what’s available in the interface. Currently, it causes overflow in the content area and I think it'd be nicer to just scale to fit (just like browser dev tools does when selecting a device with greater dimensions then the window).

@scruffian
Copy link
Contributor

Closing in favour of #63870

@scruffian scruffian closed this Jul 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") [Type] Enhancement A suggestion for improvement.
Projects
Development

Successfully merging this pull request may close these issues.

9 participants