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

Add Featured Image, Title and Excerpt to top of the settings sidebar #42352

Closed

Conversation

noisysocks
Copy link
Member

@noisysocks noisysocks commented Jul 12, 2022

What?

  • Moves the Featured Image picker to the top of the sidebar.
    • Uses a new dropdown-based flow for selecting a featured image.
    • Adds the ability to upload a featured image using the native file picker.
  • Adds new title and excerpt fields to the top of the sidebar.
  • Removes the Featured Image and Excerpt panels.

Why?

Part of #39082.

How?

  • The Featured Image changes are made in-place using the existing PostFeaturedImage component in @wordpress/editor.
    • This component is somewhat extensible using a filter that third parties can hook into. I took care to not remove any props that third parties may be using, kept all CSS class names the same, and checked that the new styles do not affect elements that third parties may be adding here.
    • I added the Upload button using FormFileUpload.
    • This component was getting very indented so I refactored it into some smaller components.
  • The title and excerpt fields are a new component called PostSummary in @wordpress/edit-post.
    • It doesn't make sense I think to put these in @wordpress/editor as the design we're using is pretty tailored to the post editor sidebar.
    • Both fields use EditableText as rich text formatting is not supported here.
  • I removed the Featured Image and Excerpt components from @wordpress/edit-post but not @wordpress/editor as third parties may be using them.

Testing Instructions

  1. Create or edit a new post.
  2. Add a featured image, title, excerpt, whatever!
  3. Run the sample code in https://github.com/WordPress/gutenberg/blob/trunk/packages/editor/src/components/post-featured-image/README.md to check that extending the Featured Image still works.
  4. Log in as a contributor to check that these fields don't appear.

Screenshots or screencast

Kapture.2022-07-13.at.15.06.00.mp4

@noisysocks noisysocks added [Type] Enhancement A suggestion for improvement. [Feature] Document Settings Document settings experience labels Jul 12, 2022
@github-actions
Copy link

github-actions bot commented Jul 12, 2022

Size Change: +6.05 kB (0%)

Total Size: 1.26 MB

Filename Size Change
build/block-editor/index.min.js 153 kB +798 B (+1%)
build/block-editor/style-rtl.css 14.6 kB +27 B (0%)
build/block-editor/style.css 14.6 kB +27 B (0%)
build/block-library/blocks/cover/style-rtl.css 1.55 kB -1 B (0%)
build/block-library/blocks/cover/style.css 1.55 kB -1 B (0%)
build/block-library/blocks/gallery/style-rtl.css 1.53 kB +36 B (+2%)
build/block-library/blocks/gallery/style.css 1.53 kB +37 B (+2%)
build/block-library/blocks/image/editor-rtl.css 736 B -2 B (0%)
build/block-library/blocks/image/style-rtl.css 627 B +103 B (+20%) 🚨
build/block-library/blocks/image/style.css 630 B +100 B (+19%) ⚠️
build/block-library/blocks/post-comments-form/style-rtl.css 493 B -2 B (0%)
build/block-library/blocks/post-comments-form/style.css 493 B -2 B (0%)
build/block-library/blocks/social-links/style-rtl.css 1.39 kB +20 B (+1%)
build/block-library/blocks/social-links/style.css 1.38 kB +21 B (+2%)
build/block-library/blocks/template-part/editor-rtl.css 178 B +29 B (+19%) ⚠️
build/block-library/blocks/template-part/editor.css 178 B +29 B (+19%) ⚠️
build/block-library/common-rtl.css 1.01 kB +20 B (+2%)
build/block-library/common.css 1 kB +21 B (+2%)
build/block-library/editor-rtl.css 10.2 kB +22 B (0%)
build/block-library/editor.css 10.2 kB +21 B (0%)
build/block-library/index.min.js 184 kB +474 B (0%)
build/block-library/style-rtl.css 11.7 kB +127 B (+1%)
build/block-library/style.css 11.7 kB +128 B (+1%)
build/blocks/index.min.js 47.1 kB +105 B (0%)
build/components/index.min.js 230 kB +105 B (0%)
build/components/style-rtl.css 14.1 kB +30 B (0%)
build/components/style.css 14.1 kB +30 B (0%)
build/core-data/index.min.js 14.7 kB -4 B (0%)
build/dom/index.min.js 4.69 kB +32 B (+1%)
build/edit-post/index.min.js 30.5 kB +75 B (0%)
build/edit-post/style-rtl.css 7.05 kB +84 B (+1%)
build/edit-post/style.css 7.05 kB +85 B (+1%)
build/edit-site/index.min.js 53.6 kB +575 B (+1%)
build/editor/index.min.js 42.3 kB +2.84 kB (+7%) 🔍
build/editor/style-rtl.css 3.68 kB +25 B (+1%)
build/editor/style.css 3.68 kB +29 B (+1%)
build/format-library/index.min.js 6.75 kB +6 B (0%)
build/rich-text/index.min.js 11.1 kB +3 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 982 B
build/annotations/index.min.js 2.76 kB
build/api-fetch/index.min.js 2.26 kB
build/autop/index.min.js 2.14 kB
build/blob/index.min.js 475 B
build/block-directory/index.min.js 6.58 kB
build/block-directory/style-rtl.css 990 B
build/block-directory/style.css 991 B
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 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 65 B
build/block-library/blocks/archives/style.css 65 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 103 B
build/block-library/blocks/audio/style.css 103 B
build/block-library/blocks/audio/theme-rtl.css 110 B
build/block-library/blocks/audio/theme.css 110 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 59 B
build/block-library/blocks/avatar/style.css 59 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 441 B
build/block-library/blocks/button/editor.css 441 B
build/block-library/blocks/button/style-rtl.css 543 B
build/block-library/blocks/button/style.css 543 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 103 B
build/block-library/blocks/code/style.css 103 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 406 B
build/block-library/blocks/columns/style.css 406 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 187 B
build/block-library/blocks/comment-template/style.css 185 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 95 B
build/block-library/blocks/comments/editor.css 95 B
build/block-library/blocks/cover/editor-rtl.css 615 B
build/block-library/blocks/cover/editor.css 616 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 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 110 B
build/block-library/blocks/embed/theme.css 110 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 253 B
build/block-library/blocks/file/style.css 254 B
build/block-library/blocks/file/view.min.js 346 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 948 B
build/block-library/blocks/gallery/editor.css 950 B
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 333 B
build/block-library/blocks/group/editor.css 333 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/html/editor-rtl.css 327 B
build/block-library/blocks/html/editor.css 329 B
build/block-library/blocks/image/editor.css 737 B
build/block-library/blocks/image/theme-rtl.css 110 B
build/block-library/blocks/image/theme.css 110 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 199 B
build/block-library/blocks/latest-posts/editor.css 198 B
build/block-library/blocks/latest-posts/style-rtl.css 463 B
build/block-library/blocks/latest-posts/style.css 462 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 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 705 B
build/block-library/blocks/navigation-link/editor.css 703 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 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-submenu/view.min.js 423 B
build/block-library/blocks/navigation/editor-rtl.css 2.03 kB
build/block-library/blocks/navigation/editor.css 2.04 kB
build/block-library/blocks/navigation/style-rtl.css 1.96 kB
build/block-library/blocks/navigation/style.css 1.95 kB
build/block-library/blocks/navigation/view-modal.min.js 2.78 kB
build/block-library/blocks/navigation/view.min.js 443 B
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 363 B
build/block-library/blocks/page-list/editor.css 363 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 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 260 B
build/block-library/blocks/paragraph/style.css 260 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/editor-rtl.css 77 B
build/block-library/blocks/post-comments/editor.css 77 B
build/block-library/blocks/post-comments/style-rtl.css 632 B
build/block-library/blocks/post-comments/style.css 630 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 605 B
build/block-library/blocks/post-featured-image/editor.css 605 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 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 282 B
build/block-library/blocks/post-template/style.css 282 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 370 B
build/block-library/blocks/pullquote/style.css 370 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 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 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query/editor-rtl.css 365 B
build/block-library/blocks/query/editor.css 364 B
build/block-library/blocks/quote/style-rtl.css 213 B
build/block-library/blocks/quote/style.css 213 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 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 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 385 B
build/block-library/blocks/search/style.css 386 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 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 233 B
build/block-library/blocks/separator/style.css 233 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 464 B
build/block-library/blocks/shortcode/editor.css 464 B
build/block-library/blocks/site-logo/editor-rtl.css 708 B
build/block-library/blocks/site-logo/editor.css 708 B
build/block-library/blocks/site-logo/style-rtl.css 192 B
build/block-library/blocks/site-logo/style.css 192 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 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/spacer/editor-rtl.css 322 B
build/block-library/blocks/spacer/editor.css 322 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 494 B
build/block-library/blocks/table/editor.css 494 B
build/block-library/blocks/table/style-rtl.css 611 B
build/block-library/blocks/table/style.css 609 B
build/block-library/blocks/table/theme-rtl.css 175 B
build/block-library/blocks/table/theme.css 175 B
build/block-library/blocks/tag-cloud/style-rtl.css 226 B
build/block-library/blocks/tag-cloud/style.css 227 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/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 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 561 B
build/block-library/blocks/video/editor.css 563 B
build/block-library/blocks/video/style-rtl.css 159 B
build/block-library/blocks/video/style.css 159 B
build/block-library/blocks/video/theme-rtl.css 110 B
build/block-library/blocks/video/theme.css 110 B
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/theme-rtl.css 695 B
build/block-library/theme.css 700 B
build/block-serialization-default-parser/index.min.js 1.11 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/compose/index.min.js 11.7 kB
build/customize-widgets/index.min.js 11.2 kB
build/customize-widgets/style-rtl.css 1.4 kB
build/customize-widgets/style.css 1.4 kB
build/data-controls/index.min.js 653 B
build/data/index.min.js 7.99 kB
build/date/index.min.js 32 kB
build/deprecated/index.min.js 507 B
build/dom-ready/index.min.js 324 B
build/edit-navigation/index.min.js 16 kB
build/edit-navigation/style-rtl.css 4.02 kB
build/edit-navigation/style.css 4.03 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/edit-site/style-rtl.css 8.23 kB
build/edit-site/style.css 8.22 kB
build/edit-widgets/index.min.js 16.5 kB
build/edit-widgets/style-rtl.css 4.35 kB
build/edit-widgets/style.css 4.35 kB
build/element/index.min.js 4.27 kB
build/escape-html/index.min.js 537 B
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.64 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.77 kB
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.78 kB
build/keycodes/index.min.js 1.38 kB
build/list-reusable-blocks/index.min.js 1.74 kB
build/list-reusable-blocks/style-rtl.css 835 B
build/list-reusable-blocks/style.css 835 B
build/media-utils/index.min.js 2.93 kB
build/notices/index.min.js 953 B
build/nux/index.min.js 2.05 kB
build/nux/style-rtl.css 732 B
build/nux/style.css 728 B
build/plugins/index.min.js 1.94 kB
build/preferences-persistence/index.min.js 2.22 kB
build/preferences/index.min.js 1.3 kB
build/primitives/index.min.js 933 B
build/priority-queue/index.min.js 612 B
build/react-i18n/index.min.js 696 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.68 kB
build/reusable-blocks/index.min.js 2.22 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/server-side-render/index.min.js 1.61 kB
build/shortcode/index.min.js 1.53 kB
build/token-list/index.min.js 644 B
build/url/index.min.js 3.61 kB
build/vendors/react-dom.min.js 38.5 kB
build/vendors/react.min.js 4.34 kB
build/viewport/index.min.js 1.08 kB
build/warning/index.min.js 268 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.06 kB

compressed-size-action

- Moves the Featured Image panel to the top of the sidebar.
    - Uses a new dropdown-based flow for selecting a featured image.
    - Adds the ability to upload a featured image using the native file picker.
- Adds a new Summary component to top of the sidebar containing fields
  for modifying the post's title and excerpt.
- Removes the Excerpt panel in favour of excerpt field in Summary
  component.
@noisysocks noisysocks force-pushed the add/featured-image-title-excerpt-to-top-of-sidebar branch from de6027c to 4dbafb2 Compare July 13, 2022 04:14
@noisysocks noisysocks changed the base branch from add/summary-ellipsis-menu to trunk July 13, 2022 04:14
@noisysocks noisysocks added the Needs Design Feedback Needs general design feedback. label Jul 13, 2022
@noisysocks
Copy link
Member Author

I haven't updated the unit/e2e tests yet but otherwise this should be ready for a first round of review!

@noisysocks
Copy link
Member Author

noisysocks commented Jul 13, 2022

Reviewing the feedback from when we last implemented something similar to this in #39973 (which I totally forgot about lol):

These were the concerns that I can see were raised:

  1. Problems with the loading spinner in the Featured Image control. @Mamaduka has since improved this.

  2. Lack of post type support checks, meaning that Featured Image, Title, and Excerpt would appear for users which did not have permission to edit them. This PR handles this correctly.

  3. Not clear that Title and Excerpt are editable fields (It is not clear that the title and excerpt field in the Summary panel can be edited #40124). This PR still has that issue.

    @javierarce, perhaps we could add a slight border to the title and excerpt fields? Or return to the more modal UI that @shaunandrews suggested.

    Intro

  4. Too much prominence given to Excerpt. This PR still has that issue.

    I think implementing a dropdown menu like the one proposed by @javierarce in Remove the Template panel option from the Preferences modal #42030 (comment) would work well at addressing this. Each of the fields in Summary can be configurable and we can default to having Excerpt disabled.

    Screen.Recording.2022-06-30.at.22.20.02.mov

    It's not clear how this would fit in with Document settings: Move 'Mark as pending', 'Revision history' and 'Trash post' to new ellipsis menu in Summary panel #42175 though.

  5. Not enough time to test this in the plugin before WordPress 6.0. We're still a way away from WordPress 6.1 so I think this is okay. We can comfortably address the above issues in follow-up PRs.

Copy link
Member

@Mamaduka Mamaduka left a comment

Choose a reason for hiding this comment

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

Thanks for working on this, @noisysocks!

✅ Tested that all new fields work.
✅ The featured image filters still apply. While filters still work, do we maintain the same CSS classes so we don't break styling for overrides?
✅ I can't see Featured Image as a contributor.

Notes

  • I noticed an empty gap with borders when the post type doesn't support any of these fields (see the screenshot).
  • What do you think about using object-fit: cover for the featured image?

Uses a new dropdown-based flow for selecting a featured image.

It is a big difference from the #39973. While I don't mind this new flow, considering the recent discussion in #42175, do you think we should leave the old image upload UX?

Screenshot

CleanShot 2022-07-13 at 16 58 58

@ndiego
Copy link
Member

ndiego commented Jul 13, 2022

Very excited for this, will do some testing later this week!

@noisysocks
Copy link
Member Author

noisysocks commented Jul 14, 2022

  • I noticed an empty gap with borders when the post type doesn't support any of these fields (see the screenshot).

Oops! Fixed in 67d9a55.

  • What do you think about using object-fit: cover for the featured image?

It is a big difference from the #39973. While I don't mind this new flow, considering the recent discussion in #42175, do you think we should leave the old image upload UX?

I'll defer to @javierarce on these two questions 😀

Personally I really like the feel of this featured image flow. It lets us add an Upload button, which is very convenient, without forcing the user to make decisions before they have signalled an intent to change the featured image.

@noisysocks noisysocks marked this pull request as ready for review July 14, 2022 04:46
@noisysocks noisysocks requested a review from ajitbohra as a code owner July 14, 2022 04:46
@noisysocks
Copy link
Member Author

I haven't updated the unit/e2e tests yet but otherwise this should be ready for a first round of review!

I've updated the tests! 🤞

@noisysocks
Copy link
Member Author

@javierarce @Mamaduka: How are we feeling about this? I'd like to merge it this week and then work on points 2 and 3 in #42352 (comment) as follow-up PRs once we've figured out #42175.

Copy link
Member

@Mamaduka Mamaduka left a comment

Choose a reason for hiding this comment

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

@noisysocks, I think PR is in good shape to merge.

My only minor concern is using popup for upload actions (#42352 (review)), but I would defer to @javierarce on that matter.

@paaljoachim
Copy link
Contributor

paaljoachim commented Jul 15, 2022

Regarding excerpt.
Should it contain styling options such as bold etc? So that we can style the excerpt. (As if it was a Paragraph block.)

@noisysocks
Copy link
Member Author

noisysocks commented Jul 18, 2022

Excerpt is similar to title in that it's up to the theme whether HTML is supported or if it's escaped before being rendered. It would be a good enhancement to make but requires some careful thought about how themes can indicate that they support HTML excerpts (maybe using add_theme_supports). In other words, out of scope for this PR I think! 😀

@javierarce
Copy link
Contributor

This works great, great job!

That said, there are a couple of things we need to address before merging it:

First of all, the accessibility of the text fields. This @carolinan mentioned here and we should address it. In the design file, I proposed using an edit icon that appears on hover, but that might not be enough. I'll try to think of a solution for that.

The other thing is the placement of the popover. Right now we show it besides the sidebar (and vertically centered when there's an image).

Screenshot 2022-07-18 at 16 35 54

Screenshot 2022-07-18 at 16 37 43

Since we always open popovers inside the sidebar, we should do the same thing here and place the popover under the link or the edit icon.

@javierarce javierarce added the Needs Accessibility Feedback Need input from accessibility label Jul 18, 2022
@paaljoachim
Copy link
Contributor

Good work Robert @noisysocks !

Hmm my initial reaction is some hesitancy. I brought a screenshot into Affinity Photo and reordered fields, and came to the conclusion that the current UI does work well. Looking at it side by side is interesting though.

Here is a mockup and the current exploration.
Current and new exploration

I would though when hovering over the featured image add a popup/tooltip saying "Featured Image"

As have been mentioned above. Clicking into the title and excerpt it would be helpful to include a thin outline giving the signal that it is editable.

The side popup.

Screenshot 2022-07-18 at 18 17 18

I went ahead and compared it with clicking the Color: Text, Background and Link.
Clicking any of these the popup box would align along the top of each.
Like so:
Screenshot 2022-07-18 at 18 19 35

It would be nice to also align the Featured image popup along the top edge/line of Featured image area.

@noisysocks
Copy link
Member Author

noisysocks commented Jul 19, 2022

Since we always open popovers inside the sidebar, we should do the same thing here and place the popover under the link or the edit icon.

👍 I've changed the popover to appear below the featured image button.

Screen Shot 2022-07-19 at 13 02 47

Screen Shot 2022-07-19 at 13 02 33

I would though when hovering over the featured image add a popup/tooltip saying "Featured Image"

I agreed with this but then after implementing it I changed my mind. I don't think a label adds any value. There is already a label that appears in the popover when you click on the image, there is already a pencil icon which appears on hover, and there is already an aria-label which is read aloud for users using assistive technologies.

Here's what it looked like:

Kapture.2022-07-19.at.12.59.39.mp4

First of all, the accessibility of the text fields. This @carolinan mentioned #40124 and we should address it. In the design file, I proposed using an edit icon that appears on hover, but that might not be enough. I'll try to think of a solution for that.
As have been mentioned above. Clicking into the title and excerpt it would be helpful to include a thin outline giving the signal that it is editable.

Would you mind if we did this in a follow-up? It's something that requires design feedback which I think would be easier to obtain in an issue or a PR that is solely focused on addressing this.

@paaljoachim
Copy link
Contributor

I was going to say that it would be nice to open popups on the left side of the sidebar (similar to Color options), but then I began clicking Visibility, Publish, URL and Template and noticed they all opened below each option. Clicking Set featured image and having the popup show up in the same way keeps a consistent way of handling the popups.

One thing that came up. Should there be a placeholder outline around the "Set featured image" text? (As I think more about it...there is probably no need for it.)

I will add the above comment even though it really does not add to the discussion. Good work Robert!

@jameskoster
Copy link
Contributor

One small nitpick on the design:

Screenshot 2022-07-21 at 16 59 36

The pencil icon almost tricks me into believing I have to click it to edit, despite being able to click the entire image. I wonder if there's a hover effect we could use that better communicates that the entire area is clickable, kind of like when the featured image is not set?

Apologies if this already came up :)

@jameskoster
Copy link
Contributor

And one small issue I noticed with the excerpt – if you edit via the Inspector, any formatting you had is stripped:

formatting.mp4

This inevitably raises the question – should there be formatting options for the excerpt in the Inspector?

@critterverse
Copy link
Contributor

Hey all, was wondering if we could give this a try as a part of the pre-publish panel instead? It feels like we're running into some of the same issues as the previous exploration that was reverted. I left a comment on #39082 (comment) as well, let me know what you think.

@noisysocks
Copy link
Member Author

Yep, let's close this out since there's consensus on trying something else. See #39082 (comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Document Settings Document settings experience Needs Accessibility Feedback Need input from accessibility Needs Design Feedback Needs general design feedback. [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants