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 block class name to the list block #56469

Merged
merged 28 commits into from
May 9, 2024
Merged

Add block class name to the list block #56469

merged 28 commits into from
May 9, 2024

Conversation

carolinan
Copy link
Contributor

@carolinan carolinan commented Nov 23, 2023

What?

Adds the wp-block-list class to the list block
For #12420

Why?

The missing class makes it difficult to style the block separately from other lists.

How?

List:

  • Removes "className": false, from block.json.
  • Removes the "__experimentalSelector": "ol,ul", from block.json so that the styles are applied to .wp-block-list instead of plain ul and ol.

List item:

  • Changes the selector for the list-item block to .wp-block-list > li

Testing Instructions

Activate a block theme.

Open theme.json in your code editor and add a visible style to the list and list-item blocks, for example a background color.
If you are using Twenty Twenty-Four, the theme already has a styles for the list block, find them on line 515 in theme.json to avoid validation errors.

Example:

			"core/list": {
				"color": {
					"background": "pink"
				},
				"spacing": {
					"padding": {
						"left": "var(--wp--preset--spacing--10)"
					}
				}
			},
			"core/list-item":{
				"color": {
					"background": "yellow"
				}
			},

Create a new post or page.
Add an HTML block with a list inside.
Example:

<!-- wp:html -->
<ul><li>hello</li><li>world</li></ul>
<!-- /wp:html -->

Select preview from the HTML block toolbar and confirm that the list does not have a background color.

Add a list block with some inner list items.

  • Confirm that the block background is pink and the list item background is yellow.
  • View the page source and confirm that the wp-list-block is present on the block.
  • Open the code editor mode and confirm that the wp-list-block is present on the block.

Save, and view the front of the website.

  • Confirm that the list in the HTML block does not have a background color.
  • Confirm that the list block has a pink background, and list item has a yellow background.
  • View the page source and confirm that the wp-list-block is present on the block.

Return to the editor and style the blocks via the settings in the sidebar; adjust color, typography and spacing. Confirm that the custom styles are applied correctly in the editor and on the front.

Bonus:
If you are using Twenty Twenty-Four, you can also confirm that the navigation block (which uses a list element) in the theme's header and footer does not have a pink background.

Screenshots or screencast

@carolinan carolinan added [Type] Enhancement A suggestion for improvement. [Block] List Affects the List Block labels Nov 23, 2023
Copy link

github-actions bot commented Nov 23, 2023

This pull request changed or added PHP files in previous commits, but none have been detected in the latest commit.

Thank you! ❤️

Copy link

github-actions bot commented Nov 23, 2023

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

Copy link

github-actions bot commented Nov 24, 2023

Size Change: -391 B (-0.02%)

Total Size: 1.74 MB

Filename Size Change
build/block-editor/content-rtl.css 4.43 kB +6 B (+0.14%)
build/block-editor/content.css 4.43 kB +2 B (+0.05%)
build/block-editor/index.min.js 257 kB +140 B (+0.05%)
build/block-editor/style-rtl.css 15.4 kB -2 B (-0.01%)
build/block-editor/style.css 15.4 kB -2 B (-0.01%)
build/block-library/blocks/block/editor-rtl.css 277 B -28 B (-9.18%)
build/block-library/blocks/block/editor.css 277 B -28 B (-9.18%)
build/block-library/blocks/template-part/editor-rtl.css 393 B -38 B (-8.82%)
build/block-library/blocks/template-part/editor.css 393 B -38 B (-8.82%)
build/block-library/editor-rtl.css 12.3 kB -26 B (-0.21%)
build/block-library/editor.css 12.2 kB -30 B (-0.24%)
build/block-library/index.min.js 218 kB +75 B (+0.03%)
build/blocks/index.min.js 51.7 kB +8 B (+0.02%)
build/components/index.min.js 220 kB +3 B (0%)
build/edit-post/index.min.js 16.2 kB +92 B (+0.57%)
build/edit-post/style-rtl.css 3.78 kB -7 B (-0.18%)
build/edit-post/style.css 3.78 kB -9 B (-0.24%)
build/edit-site/index.min.js 223 kB -552 B (-0.25%)
build/edit-site/style-rtl.css 13.4 kB -168 B (-1.24%)
build/edit-site/style.css 13.4 kB -170 B (-1.26%)
build/edit-widgets/index.min.js 17.5 kB +7 B (+0.04%)
build/edit-widgets/style-rtl.css 4.17 kB -8 B (-0.19%)
build/edit-widgets/style.css 4.16 kB -9 B (-0.22%)
build/editor/index.min.js 81.3 kB +363 B (+0.45%)
build/editor/style-rtl.css 7.54 kB -5 B (-0.07%)
build/editor/style.css 7.54 kB -3 B (-0.04%)
build/interactivity/debug.min.js 16.2 kB +17 B (+0.1%)
build/interactivity/index.min.js 13 kB +19 B (+0.15%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 955 B
build/annotations/index.min.js 2.27 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 578 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1.03 kB
build/block-directory/style.css 1.03 kB
build/block-editor/default-editor-styles-rtl.css 395 B
build/block-editor/default-editor-styles.css 395 B
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 133 B
build/block-library/blocks/audio/theme.css 133 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 415 B
build/block-library/blocks/button/editor.css 414 B
build/block-library/blocks/button/style-rtl.css 627 B
build/block-library/blocks/button/style.css 626 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 671 B
build/block-library/blocks/cover/editor.css 674 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 312 B
build/block-library/blocks/embed/editor.css 312 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 327 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 227 B
build/block-library/blocks/form-input/editor.css 227 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 340 B
build/block-library/blocks/form-submission-notification/editor.css 340 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 471 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 956 B
build/block-library/blocks/gallery/editor.css 960 B
build/block-library/blocks/gallery/style-rtl.css 1.72 kB
build/block-library/blocks/gallery/style.css 1.72 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 394 B
build/block-library/blocks/group/editor.css 394 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 336 B
build/block-library/blocks/html/editor.css 337 B
build/block-library/blocks/image/editor-rtl.css 878 B
build/block-library/blocks/image/editor.css 878 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 133 B
build/block-library/blocks/image/theme.css 133 B
build/block-library/blocks/image/view.min.js 1.54 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 306 B
build/block-library/blocks/media-text/editor.css 305 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 668 B
build/block-library/blocks/navigation-link/editor.css 669 B
build/block-library/blocks/navigation-link/style-rtl.css 193 B
build/block-library/blocks/navigation-link/style.css 192 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B
build/block-library/blocks/navigation-submenu/editor.css 295 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.26 kB
build/block-library/blocks/navigation/style.css 2.25 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 734 B
build/block-library/blocks/post-featured-image/editor.css 732 B
build/block-library/blocks/post-featured-image/style-rtl.css 342 B
build/block-library/blocks/post-featured-image/style.css 342 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 409 B
build/block-library/blocks/post-template/style.css 408 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 354 B
build/block-library/blocks/pullquote/style.css 353 B
build/block-library/blocks/pullquote/theme-rtl.css 174 B
build/block-library/blocks/pullquote/theme.css 174 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 235 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 690 B
build/block-library/blocks/search/style.css 689 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 478 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 239 B
build/block-library/blocks/separator/style.css 239 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 323 B
build/block-library/blocks/shortcode/editor.css 323 B
build/block-library/blocks/site-logo/editor-rtl.css 805 B
build/block-library/blocks/site-logo/editor.css 805 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 324 B
build/block-library/blocks/social-link/editor.css 324 B
build/block-library/blocks/social-links/editor-rtl.css 676 B
build/block-library/blocks/social-links/editor.css 675 B
build/block-library/blocks/social-links/style-rtl.css 1.48 kB
build/block-library/blocks/social-links/style.css 1.48 kB
build/block-library/blocks/spacer/editor-rtl.css 350 B
build/block-library/blocks/spacer/editor.css 350 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 395 B
build/block-library/blocks/table/editor.css 395 B
build/block-library/blocks/table/style-rtl.css 639 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/theme-rtl.css 107 B
build/block-library/blocks/template-part/theme.css 107 B
build/block-library/blocks/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 185 B
build/block-library/blocks/video/style.css 185 B
build/block-library/blocks/video/theme-rtl.css 133 B
build/block-library/blocks/video/theme.css 133 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.8 kB
build/block-library/style.css 14.8 kB
build/block-library/theme-rtl.css 707 B
build/block-library/theme.css 713 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/commands/index.min.js 15.1 kB
build/commands/style-rtl.css 953 B
build/commands/style.css 951 B
build/components/style-rtl.css 11.9 kB
build/components/style.css 11.9 kB
build/compose/index.min.js 12.8 kB
build/core-commands/index.min.js 2.77 kB
build/core-data/index.min.js 72.5 kB
build/customize-widgets/index.min.js 10.9 kB
build/customize-widgets/style-rtl.css 1.36 kB
build/customize-widgets/style.css 1.36 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 9 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 578 B
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.07 kB
build/format-library/style-rtl.css 493 B
build/format-library/style.css 492 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.58 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.67 kB
build/interactivity/navigation.min.js 1.17 kB
build/interactivity/query.min.js 740 B
build/interactivity/router.min.js 2.79 kB
build/interactivity/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.3 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 851 B
build/list-reusable-blocks/style.css 851 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 1.57 kB
build/nux/style-rtl.css 748 B
build/nux/style.css 744 B
build/patterns/index.min.js 6.45 kB
build/patterns/style-rtl.css 595 B
build/patterns/style.css 595 B
build/plugins/index.min.js 1.8 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.85 kB
build/preferences/style-rtl.css 710 B
build/preferences/style.css 712 B
build/primitives/index.min.js 809 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
build/react-i18n/index.min.js 623 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.7 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.88 kB
build/server-side-render/index.min.js 1.96 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 2.02 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.74 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react.min.js 4.03 kB
build/viewport/index.min.js 957 B
build/warning/index.min.js 249 B
build/widgets/index.min.js 7.11 kB
build/widgets/style-rtl.css 1.17 kB
build/widgets/style.css 1.17 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

@mtias
Copy link
Member

mtias commented Nov 24, 2023

Do you think the -list-item classes are necessary given the parent ul/ol will have a specific class?

@carolinan
Copy link
Contributor Author

Do you think the -list-item classes are necessary given the parent ul/ol will have a specific class?

I think it is needed to be able to style the block using theme.json instead of unintentionally styling all <li> items everywhere?

@carolinan
Copy link
Contributor Author

It does get noisy, especially with nested lists.

@mtias
Copy link
Member

mtias commented Nov 24, 2023

Yeah, it's quite noisy. We can probably figure out a way to make sure list-item styles become .wp-block-list li when generated through style engine. Might be a good API for blocks that have a parent dependency.

@carolinan
Copy link
Contributor Author

I like the idea: I don't think I can code it.

@carolinan carolinan changed the title WIP: Add block class names to the list blocks WIP: Add block class names to the list block Nov 27, 2023
@carolinan carolinan changed the title WIP: Add block class names to the list block WIP: Add block class name to the list block Nov 27, 2023
@carolinan
Copy link
Contributor Author

I think we can run into styling issues when the css class is added both to the first ul/ol, as well as the ol/ul used to create nested lists, especially with spacing and border.

@oandregal
Copy link
Member

oandregal commented Nov 27, 2023

Yeah, it's quite noisy. We can probably figure out a way to make sure list-item styles become .wp-block-list li when generated through style engine. Might be a good API for blocks that have a parent dependency.

For this we could update the selector generated for the list-item for (see experimentalSelector) from li to .wp-block-list > li.

(edited to make it a descendant selector)

@mtias
Copy link
Member

mtias commented Nov 27, 2023

Might need a descendant selector

@carolinan carolinan marked this pull request as ready for review November 29, 2023 09:27
@fabiankaegy
Copy link
Member

Question? Seeing the amount of work it takes to add a class name to a block, wouldn't it make sense to use this oportunity when we are already chaging the selector that is used for the list item block so also just add the class wp-block-list-item to the list item block?

Copy link
Contributor

@tellthemachines tellthemachines 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 this PR @carolinan ! This is testing well for me as regards global styles defined on the List and List Item blocks not bleeding over to other blocks that use list markup.

Tested by adding a gradient background to List, and custom font size, letter spacing and letter case to List Item.

On trunk, the styles also apply to the Navigation block:

Screenshot 2024-05-08 at 1 51 48 PM

On this branch, they are confined to List/List Item:

Screenshot 2024-05-08 at 1 52 49 PM

The only thing that still needs addressing is support for existing lists, as currently the classname only gets added to new blocks in the front end. That can be fixed by explicitly adding the classname in the front end, similarly to what was done for the Heading block.

@carolinan
Copy link
Contributor Author

carolinan commented May 8, 2024

I have re-added the index.php file.

Does no-one share this concern?

I think we can run into styling issues when the css class is added both to the first ul/ol, as well as the ol/ul used to create nested lists, especially with spacing and border.

"core/list": {
				"border": {
					"style": "solid",
					"width": "6px",
					"radius": "var(--wp--preset--spacing--20)"
				}
			},
A screenshot of a list block with border added to both the parent list and the nested list

@tellthemachines
Copy link
Contributor

Does no-one share this concern?

I think we can run into styling issues when the css class is added both to the first ul/ol, as well as the ol/ul used to create nested lists, especially with spacing and border.

It's a valid concern, but it's not specific to this branch; my testing showed the same happening on trunk. Arguably it's not a problem specific to this block either - any block nested in itself will have both instances styled - though nested lists are kind of a special case because it's unlikely anyone would want the same styles on parent and child list.

I think it's worth discussing and exploring solutions to that in a dedicated issue or PR; it shouldn't block this PR.

@carolinan
Copy link
Contributor Author

carolinan commented May 8, 2024

I am concerned that a solution would involve removing the class name from the nested block, which would then be a breaking change for anyone who has relied on it.

@tellthemachines
Copy link
Contributor

I am concerned that a solution would involve removing the class name from the nested block, which would then be a breaking change for anyone who has relied on it.

I don't believe that would be a viable solution, especially if at any point we want to extend the List block to allow nesting all types of children, as discussed in #57272. It would then become closer to a Group in behaviour.

Copy link
Contributor

@tellthemachines tellthemachines 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 updating! Code LGTM now and testing shows global styles applying on the front end to all previously created lists 🚀

@carolinan carolinan merged commit 83ddbfb into trunk May 9, 2024
63 checks passed
@carolinan carolinan deleted the add/list-block-class branch May 9, 2024 03:12
@github-actions github-actions bot added this to the Gutenberg 18.4 milestone May 9, 2024
@carolinan carolinan added the Needs Dev Note Requires a developer note for a major WordPress release cycle label May 9, 2024
@juanmaguitar juanmaguitar mentioned this pull request May 29, 2024
49 tasks
@carolinan
Copy link
Contributor Author

This change does not need a standalone dev note. It can be in the misc. dev note or wherever is appropriate.

Styling a list block using the Site Editor or theme.json also applied the style to other lists, partially or in full.
This caused styling conflicts with blocks that use lists internally, and with lists in the editor interface.
The problem has been fixed by adding the CSS class wp-block-list to the <ul> and <ol> elements of the list block, and only applying the styling to lists with this class name.
If you have relied on the list block styles to style generic lists, you may need to update your CSS.

@carolinan carolinan added has dev note when dev note is done (for upcoming WordPress release) and removed Needs Dev Note Requires a developer note for a major WordPress release cycle labels Jun 3, 2024
@@ -21,8 +21,8 @@
},
"supports": {
"className": false,
"__experimentalSelector": ".wp-block-list > li",
Copy link
Contributor

Choose a reason for hiding this comment

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

Just noting this should have used the selectors API which landed at the end of 2022, rather than the deprecated __experimentalSelector.

For example:

{
    ...
    "selectors": {
        "root": ".wp-block-list > li"
    }
}

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm in the process of dusting off an old PR to add color support to the List Item block. I can switch this over to use selectors as part of that.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thank you!

Copy link
Member

Choose a reason for hiding this comment

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

Thanks for following up on this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] List Affects the List Block has dev note when dev note is done (for upcoming WordPress release) [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants