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

Dataviews: Grid layout refinements #56441

Merged
merged 7 commits into from
Nov 29, 2023
Merged

Dataviews: Grid layout refinements #56441

merged 7 commits into from
Nov 29, 2023

Conversation

ntsekouras
Copy link
Contributor

@ntsekouras ntsekouras commented Nov 22, 2023

What?

Part of: #55733

This PR includes some Grid layout refinements. This is the starting point and designer input and polishing is needed.

It will be better to test when we land the preview in templates list
.

Testing Instructions

  1. Enable the admin views experiment and go to manage all pages view
  2. Play around with the grid view
Screenshot 2023-11-29 at 8 57 03 AM

@ntsekouras ntsekouras added Needs Design Feedback Needs general design feedback. [Type] Experimental Experimental feature or API. [Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond labels Nov 22, 2023
@ntsekouras ntsekouras self-assigned this Nov 22, 2023
Copy link

github-actions bot commented Nov 22, 2023

Size Change: +365 B (0%)

Total Size: 1.7 MB

Filename Size Change
build/edit-site/index.min.js 208 kB +100 B (0%)
build/edit-site/style-rtl.css 14.5 kB +131 B (+1%)
build/edit-site/style.css 14.5 kB +134 B (+1%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 964 B
build/annotations/index.min.js 2.71 kB
build/api-fetch/index.min.js 2.29 kB
build/autop/index.min.js 2.11 kB
build/blob/index.min.js 590 B
build/block-directory/index.min.js 7.25 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.29 kB
build/block-editor/content.css 4.28 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/index.min.js 248 kB
build/block-editor/style-rtl.css 15.7 kB
build/block-editor/style.css 15.7 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 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 138 B
build/block-library/blocks/audio/theme.css 138 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 587 B
build/block-library/blocks/button/editor.css 587 B
build/block-library/blocks/button/style-rtl.css 633 B
build/block-library/blocks/button/style.css 632 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 647 B
build/block-library/blocks/cover/editor.css 650 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 98 B
build/block-library/blocks/details/style.css 98 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 138 B
build/block-library/blocks/embed/theme.css 138 B
build/block-library/blocks/file/editor-rtl.css 316 B
build/block-library/blocks/file/editor.css 316 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 320 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 229 B
build/block-library/blocks/form-input/editor.css 228 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 343 B
build/block-library/blocks/form-submission-notification/editor.css 342 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 452 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 957 B
build/block-library/blocks/gallery/editor.css 962 B
build/block-library/blocks/gallery/style-rtl.css 1.55 kB
build/block-library/blocks/gallery/style.css 1.55 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 654 B
build/block-library/blocks/group/editor.css 654 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 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 340 B
build/block-library/blocks/html/editor.css 341 B
build/block-library/blocks/image/editor-rtl.css 834 B
build/block-library/blocks/image/editor.css 833 B
build/block-library/blocks/image/style-rtl.css 1.61 kB
build/block-library/blocks/image/style.css 1.6 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 2.05 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 266 B
build/block-library/blocks/media-text/editor.css 263 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 671 B
build/block-library/blocks/navigation-link/editor.css 672 B
build/block-library/blocks/navigation-link/style-rtl.css 103 B
build/block-library/blocks/navigation-link/style.css 103 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 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.27 kB
build/block-library/blocks/navigation/style.css 2.26 kB
build/block-library/blocks/navigation/view.min.js 1.07 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 401 B
build/block-library/blocks/page-list/editor.css 401 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-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 666 B
build/block-library/blocks/post-featured-image/editor.css 662 B
build/block-library/blocks/post-featured-image/style-rtl.css 345 B
build/block-library/blocks/post-featured-image/style.css 345 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 335 B
build/block-library/blocks/pullquote/style.css 335 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 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/style-rtl.css 312 B
build/block-library/blocks/query/style.css 308 B
build/block-library/blocks/query/view.min.js 637 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 223 B
build/block-library/blocks/quote/theme.css 226 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 613 B
build/block-library/blocks/search/style.css 613 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 471 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 234 B
build/block-library/blocks/separator/style.css 234 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 329 B
build/block-library/blocks/shortcode/editor.css 329 B
build/block-library/blocks/site-logo/editor-rtl.css 760 B
build/block-library/blocks/site-logo/editor.css 760 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 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.45 kB
build/block-library/blocks/social-links/style.css 1.45 kB
build/block-library/blocks/spacer/editor-rtl.css 359 B
build/block-library/blocks/spacer/editor.css 359 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 432 B
build/block-library/blocks/table/editor.css 432 B
build/block-library/blocks/table/style-rtl.css 646 B
build/block-library/blocks/table/style.css 645 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 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 403 B
build/block-library/blocks/template-part/editor.css 403 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/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 191 B
build/block-library/blocks/video/style.css 191 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 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.5 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/index.min.js 212 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.5 kB
build/block-library/style.css 14.5 kB
build/block-library/theme-rtl.css 700 B
build/block-library/theme.css 705 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.5 kB
build/commands/index.min.js 15.5 kB
build/commands/style-rtl.css 947 B
build/commands/style.css 942 B
build/components/index.min.js 256 kB
build/components/style-rtl.css 12 kB
build/components/style.css 12 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 2.72 kB
build/core-data/index.min.js 72.5 kB
build/customize-widgets/index.min.js 12.1 kB
build/customize-widgets/style-rtl.css 1.43 kB
build/customize-widgets/style.css 1.43 kB
build/data-controls/index.min.js 651 B
build/data/index.min.js 8.87 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 462 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.68 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 35.8 kB
build/edit-post/style-rtl.css 7.58 kB
build/edit-post/style.css 7.57 kB
build/edit-widgets/index.min.js 17.2 kB
build/edit-widgets/style-rtl.css 4.65 kB
build/edit-widgets/style.css 4.65 kB
build/editor/index.min.js 47.4 kB
build/editor/style-rtl.css 3.74 kB
build/editor/style.css 3.73 kB
build/element/index.min.js 4.87 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.76 kB
build/format-library/style-rtl.css 577 B
build/format-library/style.css 577 B
build/hooks/index.min.js 1.57 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.61 kB
build/interactivity/index.min.js 11.4 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.76 kB
build/keycodes/index.min.js 1.9 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 964 B
build/nux/index.min.js 2.01 kB
build/nux/style-rtl.css 775 B
build/nux/style.css 771 B
build/patterns/index.min.js 4.84 kB
build/patterns/style-rtl.css 564 B
build/patterns/style.css 564 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 1.85 kB
build/preferences/index.min.js 1.26 kB
build/primitives/index.min.js 994 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 988 B
build/react-i18n/index.min.js 631 B
build/react-refresh-entry/index.min.js 9.46 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.71 kB
build/reusable-blocks/index.min.js 2.74 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 9.97 kB
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.96 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 1.98 kB
build/token-list/index.min.js 587 B
build/url/index.min.js 3.83 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 967 B
build/warning/index.min.js 259 B
build/widgets/index.min.js 7.18 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@jameskoster
Copy link
Contributor

A few visual polish and refinements still to make (I'll push changes when I get a moment) but this is looking better already! :)

Ideally the title has a different treatment compared to other fields (e.g. larger font size, hidden label, etc), will that be feasible?

Would it also be possible for the entire grid item to act as a link (same destination as the title)? Keeping in mind that we also want each field to be inline-editable in the future. If we have to prioritise one over the other then making the whole grid item a link seems more important to me.

@ntsekouras
Copy link
Contributor Author

Ideally the title has a different treatment compared to other fields (e.g. larger font size, hidden label, etc), will that be feasible?

I think that's better to discuss separately. An idea was tossed somewhere about having a primary field(like the title) and we could have some different treatment to that. It will be easy enough if we make an API like that.

Regarding the whole item to be a link, I think we can try it in this PR but I'm not sure how the current field values will look like(ex links etc..). We'll see. Maybe in the future when fields are editable, we have an edit icon/button to 'unlock'.

@youknowriad
Copy link
Contributor

Personally, I prefer the trunk design but I guess I'm not the one to decide here:

borders

Botderless feels lighter to me

fields

Screenshot 2023-11-23 at 9 29 48 AM

This doesn't look great to me, I don't like how titles are on the left and values on the right.

actions menu on hover

Not too opinionated.


Just my 2cents, whatever designers want here, I'm fine with it but wanted to share my personally impression.

@oandregal
Copy link
Member

oandregal commented Nov 23, 2023

I'll leave design to speak/approve this one, though it can land on my opinion. I like how it introduces some visual order.

Design-wise, I noticed there is the wide separation between the field title (left) and the field value (right), making them disconnected in the current 2-columns layout:

Captura de ecrã 2023-11-23, às 11 03 21

@jameskoster
Copy link
Contributor

I think the decision around whether to add borders or not is linked to whether or not the entire grid item can serve as a link. If it can, then the borders make more sense. If we're not going to explore that as a part of this PR (seems reasonable) let's remove the borders for now.

I'm going to work on some other style adjustments now.

@jameskoster
Copy link
Contributor

I pushed a couple of tiny adjustments, but seeing this in practise makes me think the general card design needs a little more time in the oven. I'll work on that in Figma and can follow-up with another PR when ready.

One thing we should probably address here is the "Featured Image" view option when grid layout is selected. Currently you can toggle it on/off but it does nothing. We could either disable it in the on state, or just hide it like we do with the Title field.

In terms of follow-ups, I think treating the title differently will be quite important as mentioned above.

@ntsekouras ntsekouras force-pushed the refine/dataviews-grid branch from 8f5cca1 to f8787e0 Compare November 23, 2023 15:25
@ntsekouras ntsekouras force-pushed the refine/dataviews-grid branch from 7ea3a67 to f9af337 Compare November 24, 2023 08:25
@jameskoster
Copy link
Contributor

jameskoster commented Nov 24, 2023

@ntsekouras thanks for adding the primaryField for the title. It's working well for the templates Grid, but not the Pages one. Figured I'd mention it in case you wanted to fix it in this PR.

Edit: Another quirk I noticed while working on some styling: If Grid is the default layout for a view then the previews do not load. But if you switch to list layout then back to grid layout they do.

@jameskoster
Copy link
Contributor

Pushed some styling adjustments, the Pages view is getting there (especially when #56501 is merged), though still some work to do.

Screenshot 2023-11-24 at 17 07 34

Templates still needs some fine tuning, here a couple of items I'd really appreciate help with:

  • Could we make the "Customized" label on templates a field? That will be useful for filtering too.
  • Can we make the preview area act as a link, even if there is no visible preview?
  • When the preview is set to featured image, but no featured image is set display an image icon in the preview container
  • Apply unique treatment to description field on the templates grid
    • No need for the tooltip
    • Should always be fill the width of the container
    • No suffix like other fields

@ntsekouras ntsekouras force-pushed the refine/dataviews-grid branch from 2cffe7c to 629909b Compare November 27, 2023 07:27
<div className="dataviews-view-grid__media">
{ mediaField?.render( { item, view } ) || (
<Placeholder
withIllustration
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jameskoster this used to render a Placeholder and now we just have the empty box-shadowed div. Is that the wanted design?

@ntsekouras
Copy link
Contributor Author

Thanks for pushing the updates @jameskoster! There are some issues with this approach that are visible in the templates list.
Screenshot 2023-11-27 at 9 46 41 AM

With this implementation(css styling) we add the separator between every field, but some fields render nothing. This might not be easy to even handle in JS, as the field.render could render nothing, but still return a React component.

Could we make the "Customized" label on templates a field? That will be useful for filtering too.

If we make it a specific field, it cannot render inside another field and will have to be shown separately. We could explore how to support extra fields that are hidden, but being able to add filters etc.. Alternatively we can hide the customized in templates grid view, but that would be handled in the title field. Either way I think it's something to explore separately? 🤔

Apply unique treatment to description field on the templates grid

Any changes made in view-grid apply to every DataViews usage. We can differentiate how a field is rendered based on a view, but that has to happen inside the fields's render function(Tooltip is applied for all). What this means is that to achieve the above, we would need extra APIs, that I don't think we should add at this point, as it feels like we're trying to create abstractions a bit too soon. Could an API like that benefit other use cases? Should the Tooltip addition be a consumers responsibility? Do we need to add it for all fields?

@ntsekouras ntsekouras force-pushed the refine/dataviews-grid branch 2 times, most recently from 2d89fb6 to ddfe92a Compare November 27, 2023 12:56
@jameskoster
Copy link
Contributor

Thanks for all the clarification @ntsekouras. If I'm understanding correctly it would make sense to keep the field + title visible in this PR, then circle back later to consider expanding the API to handle more nuanced design (e.g. hiding titles where not necessary). Assuming that's correct I'll revert some of the changes I made.

Totally fine to handle the 'customized' field separately too.

@ntsekouras
Copy link
Contributor Author

If I'm understanding correctly it would make sense to keep the field + title visible in this PR

You mean the field label and remove the Tooltip? If yes, maybe let's try first if we can do differently(not in css file).

@jameskoster
Copy link
Contributor

jameskoster commented Nov 27, 2023

I don't think we can hide the label without also including the tooltip because some fields cannot be interpreted without a label e.g. publish date. So I'll reinstate the label for now.

Later perhaps we can consider a way to show/hide labels per field in grid view.

Edit: A 'hide when empty' option might be useful too. The description looks a bit clunky here:

Screenshot 2023-11-27 at 15 07 28

Copy link

Flaky tests detected in 4ab6b5c0412ab1efd0e998993b390b3e2cc61773.
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/7007381730
📝 Reported issues:

@ntsekouras
Copy link
Contributor Author

Edit: A 'hide when empty' option might be useful too. The description looks a bit clunky here:

I updated the render function of the description to not show anything in grid view. Noting that this is for the specific field though.

@jameskoster
Copy link
Contributor

Thanks for that Nik, I'm going to eat my own words though – in the context of the whole view I'm wondering if it could be confusing that some templates have descriptions and others not. It's probably clearer to include the description even if empty. We can use a for empty descriptions.

I think the layout of the fields is in an okay spot for now. It's still not perfect, but until we expand the API and/or work on specific views I don't think we can go too much further.

There are just a couple of outstanding details to address before we can merge:

  1. Can we make the media item link to the same destination as the title?
  2. In the templates view, can we apply the theme background color to the media item (probably separate but noting just in case :)).

@ntsekouras ntsekouras force-pushed the refine/dataviews-grid branch from 6f1be22 to f06fc67 Compare November 28, 2023 07:54
@ntsekouras
Copy link
Contributor Author

Can we make the media item link to the same destination as the title?

Is this wanted for the placeholder too? Additionally if we want this for every data view through mediaField(for example both in pages and templates right now), we should consider a new API like linkToEditItem or something and would be better to explore separately. If we want it only for our current lists we could add it in the respective fields' render method.

In the templates view, can we apply the theme background color to the media item (probably separate but noting just in case :)).

This is done.

@jameskoster
Copy link
Contributor

Is this wanted for the placeholder too?

Yeah I think the behavior should be consistent regardless of whether a media file / preview is found.

It's hard to say for certain, but except for the title and the media item I don't think we'd want any other fields to act as a link this way.

This is done.

Nice 🚀

@jameskoster
Copy link
Contributor

One last thing to fix, in the view options the 'Preview' item doesn't do anything:

Screenshot 2023-11-28 at 14 06 26

I suppose we should treat it the same as the title and hide the option when grid layout is selected. What do you think?

@ntsekouras
Copy link
Contributor Author

One last thing to fix, in the view options the 'Preview' item doesn't do anything:

This is the same issue with pages and is tracked in the main issue. We can do it separately.

@jameskoster
Copy link
Contributor

Ok.

Once the media item is hooked up as a link I think we can merge.

@ntsekouras
Copy link
Contributor Author

Once the media item is hooked up as a link I think we can merge.

I think this will need more thought and exploration of how to handle it best, because the component will be a generic one and could show any items, without necessarily having a separate edit view. Another thing is that some links are not simply new a elements, but instead push directly to browser's history(this what we do for site editor right now for title). This will probably require a new API(something like getEditUrl etc.. or a React hook.

We can create a new issue or a task in the main issue to track it.

Copy link
Contributor

@jameskoster jameskoster left a comment

Choose a reason for hiding this comment

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

That works for me :)

There will undoubtedly be further design polish, and we don't have to get everything perfect in one PR. Let's merge this and continue to refine!

@ntsekouras ntsekouras merged commit 5d064a5 into trunk Nov 29, 2023
@ntsekouras ntsekouras deleted the refine/dataviews-grid branch November 29, 2023 06:53
@github-actions github-actions bot added this to the Gutenberg 17.2 milestone Nov 29, 2023
@paaljoachim
Copy link
Contributor

This will be interesting to take a closer look at in the Gutenberg plugin next week!

derekblank pushed a commit that referenced this pull request Dec 7, 2023
* Dataviews: Grid layout refinements

* grid compact item actions

* Revert tooltips and update styles

* temp fix to not render empty values in grid

* linting issues

* do not render description in grid view if empty

* add theme's background color in previews empty space

---------

Co-authored-by: James Koster <[email protected]>
@youknowriad youknowriad mentioned this pull request Nov 28, 2024
37 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond Needs Design Feedback Needs general design feedback. [Type] Experimental Experimental feature or API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants