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

Make the fonts management modal dialog more discoverable #62129

Merged

Conversation

afercia
Copy link
Contributor

@afercia afercia commented May 30, 2024

Fixes #55179

What?

Direct users feedback from the FSE Outreach Program and feedback from other contributors reported the font management modal dialog is little discoverable. #58580 was only a partial improvement and only addressed the scenario when there's no fonts installed by making two changes:

  • By adding an 'Add fonts' button. with visible text. This button opens the modal dialog to the 'Upload' tab.
  • By replacing the Aa icon with the settings icon fot the button that opens the modal dialog to the 'Library' tab.

Screenshot of current situation:

before

I can see a few issues with this.

When there's no fonts installed:

  • The Manage Fonts 'settings' icon button opens the modal dialog showing the Library tab panel. Of course, when there's no fonts installed, this panel is empty. There's nothing users can do here.
  • As far as I can tell, this is a unique case in the editor where a 'settings' icon button opens a modal dialog. This is inconsistent and potentially unexpected for users. In fact, the 'settings' icon is generally used to switch a setting control to an alternative version or for view / display settings.
  • The modal dialog is a place where users can manage, upload, install, activate, deactivate fonts. It's not about 'settings'.

When there are fonts installed:

  • The 'Add fonts' button disappears. This is potentially unexpected for users. As a user, I would wonder 'where's that button that I previously clicked? How can I open the font Library?' There's only two ways to do that:
    • Click an individual font. However, that brings users to the font details 'sub view'. Users would have to click go back to get the font Library.
    • Click the settings icon button. Which is reported as little discoverable and it's the main point of this issue.

Why?

  • Opening the fonts modal dialog is little discoverable.

How?

  • Replaces the 'settings' icon button with a 'Manage fonts' button with visible text.
  • The new button is consistent with the 'Add fonts' button. It's where users would expect to see it.
  • It is only shown in place of the 'Add fonts' button, when there are fonts installed.

Testing Instructions

  • Start with no fonts installed, or uninstall / deactivate all fonts.
  • Go to Site editor > Styles > Typography
  • In the Typography panel, observe there's no 'settings' icon button any longer.
  • Observe the 'Add fonts' button is unchanged.
  • Add or activate some fonts and then close the modal dialog.
  • Observe there's a new 'Manage fonts' button at the end of the fonts list.
  • Click the 'Manage fonts' button. Observe it brings directly to the modal dialog > Library tab.

Testing Instructions for Keyboard

Screenshots or screencast

After:

after

@afercia afercia added [Type] Bug An existing feature does not function as intended [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. [Feature] Typography Font and typography-related issues and PRs [Feature] Font Library labels May 30, 2024
Copy link

github-actions bot commented May 30, 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: afercia <afercia@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: richtabor <richtabor@git.wordpress.org>
Co-authored-by: colorful-tones <colorful-tones@git.wordpress.org>
Co-authored-by: noisysocks <noisysocks@git.wordpress.org>
Co-authored-by: annezazu <annezazu@git.wordpress.org>

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

@afercia afercia force-pushed the try/make-fonts-management-modal-dialog-better-discoverable branch from 4f2963b to ac8c53b Compare May 30, 2024 08:37
Copy link

github-actions bot commented May 30, 2024

Size Change: +16 B (0%)

Total Size: 1.76 MB

Filename Size Change
build/edit-site/index.min.js 208 kB -3 B (0%)
build/edit-site/style-rtl.css 11.8 kB +9 B (+0.08%)
build/edit-site/style.css 11.8 kB +10 B (+0.09%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 951 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.31 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.31 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.57 kB
build/block-editor/content.css 4.57 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 263 kB
build/block-editor/style-rtl.css 15.6 kB
build/block-editor/style.css 15.5 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 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 310 B
build/block-library/blocks/button/editor.css 310 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 336 B
build/block-library/blocks/buttons/editor.css 336 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 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 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-content/style-rtl.css 90 B
build/block-library/blocks/comment-content/style.css 90 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 221 B
build/block-library/blocks/comments-pagination/editor.css 211 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 668 B
build/block-library/blocks/cover/editor.css 669 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 314 B
build/block-library/blocks/embed/editor.css 314 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-input/style-rtl.css 342 B
build/block-library/blocks/form-input/style.css 342 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 958 B
build/block-library/blocks/gallery/editor.css 962 B
build/block-library/blocks/gallery/style-rtl.css 1.71 kB
build/block-library/blocks/gallery/style.css 1.71 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 402 B
build/block-library/blocks/group/editor.css 402 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 890 B
build/block-library/blocks/image/editor.css 889 B
build/block-library/blocks/image/style-rtl.css 1.54 kB
build/block-library/blocks/image/style.css 1.54 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.54 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 204 B
build/block-library/blocks/latest-posts/editor.css 204 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 104 B
build/block-library/blocks/list/style.css 104 B
build/block-library/blocks/media-text/editor-rtl.css 304 B
build/block-library/blocks/media-text/editor.css 303 B
build/block-library/blocks/media-text/style-rtl.css 516 B
build/block-library/blocks/media-text/style.css 515 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 663 B
build/block-library/blocks/navigation-link/editor.css 664 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.2 kB
build/block-library/blocks/navigation/editor.css 2.21 kB
build/block-library/blocks/navigation/style-rtl.css 2.25 kB
build/block-library/blocks/navigation/style.css 2.24 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/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 506 B
build/block-library/blocks/post-comments-form/style.css 506 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 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 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 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 341 B
build/block-library/blocks/post-featured-image/style.css 341 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 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 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 220 B
build/block-library/blocks/query-pagination/editor.css 208 B
build/block-library/blocks/query-pagination/style-rtl.css 287 B
build/block-library/blocks/query-pagination/style.css 283 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 502 B
build/block-library/blocks/query/editor.css 502 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 221 B
build/block-library/blocks/quote/theme.css 225 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 183 B
build/block-library/blocks/search/editor.css 183 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-title/editor-rtl.css 123 B
build/block-library/blocks/site-title/editor.css 123 B
build/block-library/blocks/site-title/style-rtl.css 71 B
build/block-library/blocks/site-title/style.css 71 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 676 B
build/block-library/blocks/social-links/editor.css 675 B
build/block-library/blocks/social-links/style-rtl.css 1.5 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/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/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 393 B
build/block-library/blocks/template-part/editor.css 393 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 108 B
build/block-library/blocks/term-description/style.css 108 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 553 B
build/block-library/blocks/video/editor.css 554 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 12 kB
build/block-library/editor.css 11.9 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 219 kB
build/block-library/reset-rtl.css 470 B
build/block-library/reset.css 470 B
build/block-library/style-rtl.css 14.6 kB
build/block-library/style.css 14.6 kB
build/block-library/theme-rtl.css 702 B
build/block-library/theme.css 707 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.2 kB
build/commands/index.min.js 15.2 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 223 kB
build/components/style-rtl.css 12.1 kB
build/components/style.css 12.1 kB
build/compose/index.min.js 12.9 kB
build/core-commands/index.min.js 2.75 kB
build/core-data/index.min.js 72.6 kB
build/customize-widgets/index.min.js 10.9 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/data/index.min.js 8.99 kB
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.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 12.5 kB
build/edit-post/style-rtl.css 2.31 kB
build/edit-post/style.css 2.31 kB
build/edit-site/posts-rtl.css 6.35 kB
build/edit-site/posts.css 6.35 kB
build/edit-widgets/index.min.js 17.6 kB
build/edit-widgets/style-rtl.css 4.18 kB
build/edit-widgets/style.css 4.18 kB
build/editor/index.min.js 98 kB
build/editor/style-rtl.css 9.18 kB
build/editor/style.css 9.18 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.1 kB
build/format-library/style-rtl.css 494 B
build/format-library/style.css 493 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/interactivity/debug.min.js 16.5 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.68 kB
build/interactivity/index.min.js 13.4 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 742 B
build/interactivity/router.min.js 2.8 kB
build/interactivity/search.min.js 615 B
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.17 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.3 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.58 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.23 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/index.min.js 2.9 kB
build/preferences/style-rtl.css 715 B
build/preferences/style.css 715 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.73 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.01 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.85 kB
build/vendors/react-dom.min.js 42.8 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 2.65 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

@t-hamano t-hamano self-requested a review June 1, 2024 10:30
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.

Personally, I prefer this approach because I think it will make more sense in the future when the font panel is grouped into two parts: user and theme (See this comment).

@WordPress/gutenberg-design I'd like to hear your thoughts.

@afercia afercia force-pushed the try/make-fonts-management-modal-dialog-better-discoverable branch 2 times, most recently from 8bc7d42 to 1ca155e Compare June 5, 2024 09:39
@afercia afercia force-pushed the try/make-fonts-management-modal-dialog-better-discoverable branch from 1ca155e to 13729a7 Compare June 19, 2024 09:56
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.

I think everything about the code is correct.

My only suggestion is whether the button size should be 32px or 40px.

32px 40px
image image

However, changing the button size may not be necessary in this PR.

@WordPress/gutenberg-design Please let me know your feedback!

@t-hamano t-hamano requested a review from a team June 19, 2024 12:52
@jameskoster
Copy link
Contributor

I could go either way. Generally these full-width buttons in the Inspector are 40px, but that might be overly prominent in this case, so 32px could work.

@afercia
Copy link
Contributor Author

afercia commented Jun 21, 2024

Worth reminding that when there's no fonts installed, the current UI already shows an 'Add font' full-width button. Its height is 36 pixels. I'd rather make both buttons 40 pixels for consistency with the new size and other buttons like the ones to set a featured imager or add a background image.

Screenshot 2024-06-21 at 10 08 30

@afercia afercia force-pushed the try/make-fonts-management-modal-dialog-better-discoverable branch from 13729a7 to d803f99 Compare June 21, 2024 08:37
@afercia
Copy link
Contributor Author

afercia commented Jun 21, 2024

Screenshot of the buttons using the 'next 40 pixels height', which is more consistent with other similar full-width buttons:

similar full width buttons

[screenshot updated]

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.

LGTM! I also prefer 40px for consistency with other similar buttons.

@afercia afercia merged commit 8d99dcf into trunk Jun 24, 2024
62 checks passed
@afercia afercia deleted the try/make-fonts-management-modal-dialog-better-discoverable branch June 24, 2024 06:33
@github-actions github-actions bot added this to the Gutenberg 18.7 milestone Jun 24, 2024
@richtabor
Copy link
Member

The "Manage fonts" button is far too prominent in this iteration, especially accounting for the entire panel's contents—not just this one component within the panel, as the screenshots are focused on.

It's adding unnecessary complexity to the UI, introducing another type of control to the already disjointed view:

CleanShot 2024-06-24 at 15 26 57

I'm not opposed to an empty state, perhaps not unlike the featured image/background image buttons.

But I do propose we revert go back to the settings icon, at least until there is a step forward that is congruent with the rest of the panel (and best-case uses an existing UX pattern).

@afercia
Copy link
Contributor Author

afercia commented Jun 25, 2024

But I do propose we revert go back to the settings icon,

I kindly disagree. The prevalent feedback from contributors on this issue agrees that the Manage fonts button needs to be more visible. The change is consistent with other buttons used in the UI, see screenshot above with a few examples. Repeated, though anecdotal, feedback from users reported they can't find the manage fonts button as the settings icon doesn't seem to be the best design to open a modal dialog with a large UI to manage all fonts.
Considerations about the excessive 'prominence' of a button seem to me more personal opinions rather than objective functional analysis. I'd argue the same argumentation should then be made for all the other buttons in the editor UI that use the same styling (see screenshot above) so I'm not sure I understand why this specific case seems to be more disturbing than others.
Anyways, I wouldn't be opposed to user test the two options. In such cases, a some professional A/B testing with a diverse group of users is the only way to validate a design choice.

@richtabor
Copy link
Member

The change is consistent with other buttons used in the UI, see screenshot above with a few examples.

I'm not sure I understand why this specific case seems to be more disturbing than others.

It's consistent with parts of the UI that are not exactly related; the use of those combination of button styles is uncommon, while the placement against the MenuGroup is not used elsewhere.

I don't think we should be introducing many new UI conventions; the editor is already complicated.

Anyways, I wouldn't be opposed to user test the two options.

I'm fine with testing alternatives, but not a solution that fundamentally is not part of the editor design language. A list of choices, with a button all the way at the bottom is not ideal by any means.

There's also a concern of placing the button at the bottom of the list of fonts. While this may look fine in the context of a few fonts (isolated in screenshots), any sites with more fonts quickly loose out.

@richtabor
Copy link
Member

feedback from users reported they can't find the manage fonts button as the settings icon doesn't seem to be the best design to open a modal dialog with a large UI to manage all fonts.

An "add" icon is probably a much more connective element (in the existing placement), even though it's more than just adding fonts—the primary use case is to add (or manage existing fonts).

@afercia
Copy link
Contributor Author

afercia commented Jun 26, 2024

A list of choices, with a button all the way at the bottom is not ideal by any means.

I'm open to try to understand why, if you can bring in some objective arguments beyond personal opinions.

A recap of the main points for this change:

  • There's direct feedback from the FSE Outreach Program that users could not find a way to open the Manage fonts modal dialog because the Aa icon was little understandable.
  • The Aa icon was changed to a settings icon, which didn't help much. Still small, still without visible label.
  • Anecdotally, I collected feedback from users in various events, including local meetups, reporting the settings icon button to open the fonts modal dialog is little discoverable.
  • I'd argue the settings icon isn't appropriate in the first place because in the editor design language it's used for different purposes and never usd to open a modal dialog. I could find 5 occurrences of icon={ settings } in the codebaae:
    • Three of them are used to switch a control to an alternative version:
      • Use size preset / Set custom size for the SpacingInputControl.
      • Use size preset / Set custom size for the FontSizePicker.
      • Use custom size for the X/Y position of the ShadowInputControl.
    • The other two occurrences are used for a more generic concept of 'settings':
      • View options for the Data views.
      • Display settings for the Query block toolbar.
  • Overall, I'd argue the settings icon is already used inconsistently which doesn't help with building a cohesive 'editor design language'. For the first three cases, as a user, I learn that it indicates a way to switch a control to an alternative version where I can enter custom values. For the last two cases, I would expect a similar functionality but no, they indicate something entirely different.
  • The Font Library was probably the most awaited feature in WordPress 6.5. I'm not sure that hiding it behind a small icon button is ideal from a product management perspective in the first place.
  • Icon buttons are a problem for accessibility. It's seven years the accessibility specialists in this project are repeating that icon buttons usage should be limited to only the cases where the UI doesn't provide enough space to use visible text. I'd greatly appreciate the design team to prioritize this feedback instead of keeping dismissing it.
  • The items in the list of installed fonts are clickable and do open the modal dialog but they bring users to the sub-panel to manage that specific font. To go to the 'Library' main panel, users have to click the 'Back' button which is little discoverable and counterintuitive.
  • A button with visible text is the most appropriate way to solve the original issue reported by users.
  • There is already at least one precedent of a full width button that opens a modal dialog: the 'Explore all patterns' button in the Inserter. As such, the 'Manage fonts' button is consistent with an already existing pattern in the editor.
  • Noting that the 'Explore all patterns' button is placed in an UI that is exactly 'A list of choices, with a button all the way at the bottom' so I'm not sure I understand why it's a valid pattern in that case and it's not for the manage fonts.

While this may look fine in the context of a few fonts (isolated in screenshots), any sites with more fonts quickly loose out.

I'd argue that if users install dozens of fonts, they're doing it wrongly in the first place. Typography should be managed by people who know what they are doing and good typography should not use more than 3-4 font faces.

Lastly,
I would greatly appreciate to see design feedback in this project take users feedback more into consideration. Being in disagreement in a large open source project is totally fine and, in my personal opinion, disagreement is an enrichment as it brings into the project diverse thoughts, knowledge, expertise, that benefit everyone.
But
when direct feedback from users gets ignored, that's far from ideal.

@richtabor
Copy link
Member

Noting that the 'Explore all patterns' button is placed in an UI that is exactly 'A list of choices, with a button all the way at the bottom' so I'm not sure I understand why it's a valid pattern in that case and it's not for the manage fonts.

These are not related by any other means, apart from the button colors:

CleanShot 2024-06-26 at 08 27 15

I'd argue that if users install dozens of fonts, they're doing it wrongly in the first place.

We can't simply assume the UI should work within a set of constraints that may, or may not, but "wrong."

I would greatly appreciate to see design feedback in this project take users feedback more into consideration. Being in disagreement in a large open source project is totally fine and, in my personal opinion, disagreement is an enrichment as it brings into the project diverse thoughts, knowledge, expertise, that benefit everyone.
But
when direct feedback from users gets ignored, that's far from ideal.

You're missing purpose here. The purpose is not to make every bit of UI within the editor compete for prominence. It's to apply prominence selectively, to help people to achieve their goals.

UX-wise, we have a list of fonts—each of which open the font library, with that font selected (with the available tabs for each). Then we have a bigger button directly below that list, in a fairly prominent style applied, to something that is not intended to be prominent. Sure, the button is more prominent—but is this helpful? Is it helpful adding yet another button to this view that already has plenty of varying UI shapes across it?

Objectively, no, this change is not worth making this view more difficult to parse. Instead of seeing "Fonts", "Elements" and "Presets", you see a big blue "Manage fonts" button in the middle of it all.

@afercia
Copy link
Contributor Author

afercia commented Jun 27, 2024

[the purpose] ... is to apply prominence selectively, to help people to achieve their goals.

I totally agree. Direct feedback from users reports that they can't achieve their goals. They can't find how to open the Fonts modal dialog with the Library tab showing the main view. This change tries to solve the problem by making the related control more prominent.

I don't want to repeat all the arguments already mentioned in previous comments, as I think we're looping over the same points. We're in disagreement, which is totally fine.

I'm all for further improvements. However, I'm not sure I understand how saying 'no' without providing an alternative solution to a valid problem is any better for users. I'm totally open to alternative solutions, as long as they address the reported issue in a valid, accessible way. I'd encourage you to create a new issue to explore alternative solutions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Font Library [Feature] Typography Font and typography-related issues and PRs [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. [Type] Bug An existing feature does not function as intended
4 participants