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

List block: Add numbering type selection #51186

Merged
merged 8 commits into from
Jun 16, 2023

Conversation

glendaviesnz
Copy link
Contributor

What?

Adds the ability to choose the number type to the List block, eg. 1, A, a, i, I.

Why?

Fixes: #17738

How?

Used the existing type attribute, that didn't seem to be used for anything currently.

Testing Instructions

  • Add a list block and add some items and set the type of list to ordered
  • In the Inspector Panel change the number type and check that the correct style displays in the editor
  • Check that the selected styles display correctly in the frontend

Screenshots or screencast

list-numbers.mp4

@glendaviesnz glendaviesnz added [Type] Enhancement A suggestion for improvement. [Block] List Affects the List Block labels Jun 2, 2023
@glendaviesnz glendaviesnz self-assigned this Jun 2, 2023
@glendaviesnz glendaviesnz added the Needs Design Feedback Needs general design feedback. label Jun 2, 2023
@glendaviesnz
Copy link
Contributor Author

glendaviesnz commented Jun 2, 2023

@WordPress/gutenberg-design I have added the numbering options to the Inspector Panel as there were already some numbered list settings there, but another option would be to add a dropdown to the toolbar - what do you think?

@github-actions
Copy link

github-actions bot commented Jun 2, 2023

Size Change: +2.51 kB (0%)

Total Size: 1.4 MB

Filename Size Change
build/block-editor/index.min.js 195 kB -286 B (0%)
build/block-library/blocks/image/interactivity.min.js 1.34 kB +544 B (+68%) 🆘
build/block-library/blocks/image/style-rtl.css 1.34 kB +231 B (+21%) 🚨
build/block-library/blocks/image/style.css 1.34 kB +235 B (+21%) 🚨
build/block-library/index.min.js 201 kB +64 B (0%)
build/block-library/style-rtl.css 13.5 kB +198 B (+1%)
build/block-library/style.css 13.5 kB +204 B (+2%)
build/components/index.min.js 231 kB +5 B (0%)
build/core-commands/index.min.js 2.12 kB +348 B (+20%) 🚨
build/edit-post/index.min.js 34.1 kB -4 B (0%)
build/edit-site/index.min.js 69.9 kB +940 B (+1%)
build/edit-site/style-rtl.css 11.6 kB +16 B (0%)
build/edit-site/style.css 11.6 kB +15 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 955 B
build/annotations/index.min.js 2.69 kB
build/api-fetch/index.min.js 2.29 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 451 B
build/block-directory/index.min.js 7.05 kB
build/block-directory/style-rtl.css 1.02 kB
build/block-directory/style.css 1.02 kB
build/block-editor/content-rtl.css 4.22 kB
build/block-editor/content.css 4.22 kB
build/block-editor/default-editor-styles-rtl.css 381 B
build/block-editor/default-editor-styles.css 381 B
build/block-editor/style-rtl.css 14.9 kB
build/block-editor/style.css 14.9 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 126 B
build/block-library/blocks/audio/theme.css 126 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 584 B
build/block-library/blocks/button/editor.css 582 B
build/block-library/blocks/button/style-rtl.css 624 B
build/block-library/blocks/button/style.css 623 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 409 B
build/block-library/blocks/columns/style.css 409 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.61 kB
build/block-library/blocks/cover/style.css 1.6 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 159 B
build/block-library/blocks/details/style.css 159 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 126 B
build/block-library/blocks/embed/theme.css 126 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/interactivity.min.js 395 B
build/block-library/blocks/file/style-rtl.css 269 B
build/block-library/blocks/file/style.css 270 B
build/block-library/blocks/freeform/editor-rtl.css 2.58 kB
build/block-library/blocks/freeform/editor.css 2.58 kB
build/block-library/blocks/gallery/editor-rtl.css 947 B
build/block-library/blocks/gallery/editor.css 952 B
build/block-library/blocks/gallery/style-rtl.css 1.53 kB
build/block-library/blocks/gallery/style.css 1.53 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 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 76 B
build/block-library/blocks/heading/style.css 76 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 834 B
build/block-library/blocks/image/editor.css 833 B
build/block-library/blocks/image/theme-rtl.css 126 B
build/block-library/blocks/image/theme.css 126 B
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 507 B
build/block-library/blocks/media-text/style.css 505 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 712 B
build/block-library/blocks/navigation-link/editor.css 711 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/editor-rtl.css 2.35 kB
build/block-library/blocks/navigation/editor.css 2.36 kB
build/block-library/blocks/navigation/interactivity.min.js 978 B
build/block-library/blocks/navigation/style-rtl.css 2.21 kB
build/block-library/blocks/navigation/style.css 2.2 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 174 B
build/block-library/blocks/paragraph/editor.css 174 B
build/block-library/blocks/paragraph/style-rtl.css 279 B
build/block-library/blocks/paragraph/style.css 281 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 588 B
build/block-library/blocks/post-featured-image/editor.css 586 B
build/block-library/blocks/post-featured-image/style-rtl.css 319 B
build/block-library/blocks/post-featured-image/style.css 319 B
build/block-library/blocks/post-navigation-link/style-rtl.css 153 B
build/block-library/blocks/post-navigation-link/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 314 B
build/block-library/blocks/post-template/style.css 314 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 103 B
build/block-library/blocks/preformatted/style.css 103 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 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 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 450 B
build/block-library/blocks/query/editor.css 449 B
build/block-library/blocks/quote/style-rtl.css 222 B
build/block-library/blocks/quote/style.css 222 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 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 178 B
build/block-library/blocks/search/editor.css 178 B
build/block-library/blocks/search/style-rtl.css 587 B
build/block-library/blocks/search/style.css 584 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 531 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 323 B
build/block-library/blocks/shortcode/editor.css 323 B
build/block-library/blocks/site-logo/editor-rtl.css 754 B
build/block-library/blocks/site-logo/editor.css 754 B
build/block-library/blocks/site-logo/style-rtl.css 203 B
build/block-library/blocks/site-logo/style.css 203 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 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.43 kB
build/block-library/blocks/social-links/style.css 1.42 kB
build/block-library/blocks/spacer/editor-rtl.css 348 B
build/block-library/blocks/spacer/editor.css 348 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 433 B
build/block-library/blocks/table/editor.css 433 B
build/block-library/blocks/table/style-rtl.css 645 B
build/block-library/blocks/table/style.css 644 B
build/block-library/blocks/table/theme-rtl.css 146 B
build/block-library/blocks/table/theme.css 146 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 174 B
build/block-library/blocks/video/style.css 174 B
build/block-library/blocks/video/theme-rtl.css 126 B
build/block-library/blocks/video/theme.css 126 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.1 kB
build/block-library/common.css 1.1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.2 kB
build/block-library/editor.css 12.1 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/interactivity/runtime.min.js 2.71 kB
build/block-library/interactivity/vendors.min.js 8.2 kB
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/theme-rtl.css 686 B
build/block-library/theme.css 691 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 50.8 kB
build/commands/index.min.js 14.9 kB
build/commands/style-rtl.css 827 B
build/commands/style.css 827 B
build/components/style-rtl.css 11.8 kB
build/components/style.css 11.8 kB
build/compose/index.min.js 12.1 kB
build/core-data/index.min.js 15.7 kB
build/customize-widgets/index.min.js 12 kB
build/customize-widgets/style-rtl.css 1.38 kB
build/customize-widgets/style.css 1.38 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 8.3 kB
build/date/index.min.js 40.4 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.63 kB
build/edit-post/classic-rtl.css 544 B
build/edit-post/classic.css 545 B
build/edit-post/style-rtl.css 7.58 kB
build/edit-post/style.css 7.57 kB
build/edit-widgets/index.min.js 16.8 kB
build/edit-widgets/style-rtl.css 4.53 kB
build/edit-widgets/style.css 4.53 kB
build/editor/index.min.js 44.7 kB
build/editor/style-rtl.css 3.54 kB
build/editor/style.css 3.53 kB
build/element/index.min.js 4.8 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 7.57 kB
build/format-library/style-rtl.css 554 B
build/format-library/style.css 553 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/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.71 kB
build/keycodes/index.min.js 1.84 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 836 B
build/list-reusable-blocks/style.css 836 B
build/media-utils/index.min.js 2.9 kB
build/notices/index.min.js 948 B
build/plugins/index.min.js 1.84 kB
build/preferences-persistence/index.min.js 1.84 kB
build/preferences/index.min.js 1.24 kB
build/primitives/index.min.js 941 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 939 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.7 kB
build/reusable-blocks/index.min.js 2.21 kB
build/reusable-blocks/style-rtl.css 243 B
build/reusable-blocks/style.css 243 B
build/rich-text/index.min.js 10.7 kB
build/router/index.min.js 1.77 kB
build/server-side-render/index.min.js 2.02 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 1.42 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.57 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 1.04 kB
build/warning/index.min.js 268 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.15 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

Copy link
Contributor

@alexstine alexstine left a comment

Choose a reason for hiding this comment

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

@glendaviesnz Mostly wanted an early review on this for accessibility, like the fact this uses SelectControl, found one typo. So far, this should be pretty easy for UI.

packages/block-library/src/list/ordered-list-settings.js Outdated Show resolved Hide resolved
@aurooba
Copy link
Member

aurooba commented Jun 2, 2023

(Peeking into this PR, and love that this is here!)

I'm wondering, if it would make sense to having something a touch more visual like the Text Transform button group in the Heading block for this? Although I recognize that to do that, we'd need new icons designed.
screenshot of the Text Transforms tools control in the heading block sidebar

@jasmussen
Copy link
Contributor

Thanks for the ping. I'm realizing we already have a start value input field shipping in trunk, this one:

start value in inspector

I don't know this is the best place for such a control, as it gives an undue prominence to a feature that isn't that commonly used. And because it's a setting, it causes the inspector to be come split in settings and styles. Commonly my instinct would be for styles to be the more interesting in this case, yet due to the prominence of this control they become relegated to the second tab.

This is not intrinsically bad, but I think we can do better, and to Aurooba on this one, be a bit more intuitive as well. The dropdowns with visual radios that Google Docs uses is one option:

docs unordered list split dropdown showing 6 bullet options docs ordered list split dropdown showing 6 number options

Another option which might be simpler for now is to emulate the drop-cap options that the Apple Pages app does:

apple pages showing a drop cap checbox and  advanced settings  button in the inspector, opening a popover with visual dropcap options

For us, that might translate reasonably well to the ItemGroup button/flyout combo that is leveraged for the Duotone control:

image block inspector showing the duotone button opening a flyout menu with advanced duotone options

I suspect a similar pattern will be used to enhance the Drop-cap control for Paragraphs in the future, and it could be worth starting work for the list block here:

  • Instead of a settings panel causing a split inspector, it becomes a shown-by-default List Block control
  • The control could be called "Bullets & Lists", and consist of a single ItemGroup button just like Duotone
  • It would open a flyout sideways, containing every aspect of the current "Ordered list settings" panel
  • In the future that would also allow us to show unordered list settings, like choosing a bullet, etc.

I'm happy to provide a mockup as I get a chance, but let me know what you think.

@paaljoachim
Copy link
Contributor

paaljoachim commented Jun 2, 2023

Thank you Glen for beginning to explore these list styles features!

There are various good suggestions above.
My first impulse is to have an icon with a drop down in the toolbar showing different list styles to choose from. It is easy to find and use. It does also seem like a very good idea to begin exploring the various ideas that Joen shared for a broader thinking of handling various use cases for different blocks that have their own unique features.

@aurooba
Copy link
Member

aurooba commented Jun 2, 2023

Oh I'm so glad you said that @paaljoachim ! To be honest my initial instinct was also that this belongs in the toolbar, but typically I get push back in any suggested moves to the toolbar so I ignored my initial instinct to suggest that. 😅

@glendaviesnz
Copy link
Contributor Author

The control could be called "Bullets & Lists", and consist of a single ItemGroup button just like Duotone

@jasmussen are you thinking that would be under the Style tab? Also, what are your thoughts on the above suggestions that it would be better in the toolbar? Some mockups when you have time would be great thanks.

@paaljoachim
Copy link
Contributor

The most important controls for a given block are usually in the toolbar and the sidebar settings.

@jasmussen
Copy link
Contributor

Sorry for the delay. Because of the feedback around the block toolbar, I put some thought into how this might work across both paragraph and list, according to the flyout, wanted to make sure I captured all the pros and cons. I'll start with the mockups.

List type:

List items i3

Paragraph drop cap:

Drop Cap i6

You'll note some shared DNA between the two in terms of the control and the flyout as well as the preset selector.

So why didn't I go with the dropdown from the block toolbar? To break it down, there are some benefits to the inspector flyout:

  • Both the list type indicator, and the drop cap, are likely settings you want to configure in global styles once, and then only rarely touch again. In Global Styles, this happens in the inspector. So in order for this to be stylable globally, it has to have an inspector interface.
  • Because they are likely to be "set once globally and forget", to me it makes the most sense to then just have only that inspector interface, rather than encumbering the list block with additional controls.
  • The flyout affords the space necessary to show advanced configuration controls, like line-span, size, height, and more. Personally for bullets, I'd love to even see something like rotation or animation at one point, in addition to a custom unicode glyph to use, so you could style the bullets to be diamonds that spin slowly as you scroll. Such an interface is all the more stylistic, and can make good use of the flyout space, but would be hard to fit in the block toolbar.
  • These controls would be available both locally and globally, and can even be shown by default for lists or paragraphs in their respective inspectors. But they would keep the block toolbar functional, making it a choice of numbers or unordered lists, and their indentation, rather than the style.

Let me know your thoughts! This PR might not be the best place for it, so depending on your thoughts I might open separate issues, especially since this wasn't about the drop cap at all, that just came as a consequence of needing to explain the overlap in interface. 🙏

@paaljoachim
Copy link
Contributor

I really like it @jasmussen Joen!
The flyout gives added possibilities.

One reason why I mentioned the toolbar is because of the current List block options.

Unordered:
Screenshot 2023-06-13 at 16 35 33

Ordered:
Screenshot 2023-06-13 at 16 34 47

My thinking was that we could instead of having the two icons ordered and unordered in the toolbar that we could have a drop down showing ordered, unordered etc etc.

But the flyout you mention Joen has a lot more going for it. Gives a lot more flexibility in relation to styling and design. Which is very helpful. I am not sure how the current two icons in the toolbar would relate to the flyout though.

It would be nice to create a mvp of the flyout version. Having an initial first version in place which can gradually be improved.

@glendaviesnz
Copy link
Contributor Author

@jasmussen Thanks for the designs. I think we should keep the scope of this PR to list options, so if you want to add some new issues for the drop caps that would be great.

Also, just to clarify, this PR is also limited in scope to the numbering types, not the unordered list bullets, but your designs will work just as well for the numbering types I think and bullet types could be added later, although I think at the moment it was decided that bullet styling may be left to plugins to enhance.

@jasmussen
Copy link
Contributor

Sounds good. I opened these two issues for list block and drop cap:

I included a new mockup for number selection. Glen if you can take a look at that and see if the feature can eventually grow into that concept (notably replacing the entire list panel with a flyout that exists for the List block in the Styles/Typography panel), then I think this PR as-is can land. If the move from Settings tab to Styles tab is a larger issue, we might want to rethink the approach. Let me know!

@glendaviesnz
Copy link
Contributor Author

Thanks @jasmussen those designs look great. It doesn't seem like there will be any issues with moving the numbering/bullet types to the styles tab as a second step so I think it would be good to merge this change as is as you suggest in order to get it in by the 6.3 deadline, and then look to implement your designs post 6.3. It would be great to just go straight for your designs, but realistically I don't think we would get it all done and tested by next Wednesday with some of the other 6.3 work that also needs to be finished.

Copy link
Contributor

@alexstine alexstine left a comment

Choose a reason for hiding this comment

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

One thought but can ignore.

packages/block-library/src/list/ordered-list-settings.js Outdated Show resolved Hide resolved
@github-actions
Copy link

github-actions bot commented Jun 14, 2023

Flaky tests detected in 171975d.
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/5285432991
📝 Reported issues:

@glendaviesnz glendaviesnz force-pushed the add/numbering-options-to-list-block branch from 8ac56e3 to fc458c6 Compare June 15, 2023 04:41
Copy link
Member

@ramonjd ramonjd left a comment

Choose a reason for hiding this comment

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

LGTM

List behaves as I'd expect and looks good in editor and frontend

2023-06-16.11.49.29.mp4

Nested lists also get the same treatment

Screenshot 2023-06-16 at 11 51 39 am

I created a list in trunk and loaded it in this branch and came across no validity warnings.

👍

packages/block-library/src/list/ordered-list-settings.js Outdated Show resolved Hide resolved
packages/block-library/src/list/ordered-list-settings.js Outdated Show resolved Hide resolved
packages/block-library/src/list/ordered-list-settings.js Outdated Show resolved Hide resolved
glendaviesnz and others added 3 commits June 16, 2023 14:02
Co-authored-by: Ramon <ramonjd@users.noreply.github.com>
Co-authored-by: Ramon <ramonjd@users.noreply.github.com>
Co-authored-by: Ramon <ramonjd@users.noreply.github.com>
@glendaviesnz glendaviesnz merged commit d481efb into trunk Jun 16, 2023
@glendaviesnz glendaviesnz deleted the add/numbering-options-to-list-block branch June 16, 2023 03:10
@github-actions github-actions bot added this to the Gutenberg 16.1 milestone Jun 16, 2023
@bph bph added the Needs User Documentation Needs new user documentation label Jun 29, 2023
sethrubenstein pushed a commit to pewresearch/gutenberg that referenced this pull request Jul 13, 2023
Co-authored-by: Alex Stine <alex.stine@yourtechadvisors.com>
Co-authored-by: Ramon <ramonjd@users.noreply.github.com>
@ed-richards
Copy link

Do we have any kind of rough ETA on this feature making it to release?

We have so many clients who would love to add more legal documentation to their sites but are blocked without support for these additional list types!

@ramonjd
Copy link
Member

ramonjd commented Dec 18, 2023

Hi @ed-richards

I just checked WordPress 6.4 and it looks like the feature is in Core already:

Screenshot 2023-12-19 at 7 10 00 am

@ed-richards
Copy link

@ramonjd Oh fantastic! I spun up a fresh install to check yesterday and it wasn't there so I've probably missed something on my end. Thanks for the clarification 👍🏼

@paaljoachim
Copy link
Contributor

For anyone dropping by this issue.
Clicking the ordered list in the toolbar opens various options in the right sidebar such as Start Value.
A drop down:
Numbers
Uppercase letters
Lowercase letters
Uppercase Roman numerals
Lowercase Roman numerals

Screenshot 2023-12-20 at 08 55 13

It can though be somewhat overlooked as it is not directly selectable through the toolbar. It is only seen in the sidebar.

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 Needs Design Feedback Needs general design feedback. Needs User Documentation Needs new user documentation [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improving the List block with basic HTML list types
8 participants