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 vw and vh units to the custom font size picker #60607

Merged
merged 9 commits into from
May 23, 2024

Conversation

carolinan
Copy link
Contributor

What?

Add the vw and vh units to the custom font size picker.
Partial for #23323

Why?

The custom font size picker is limited to using px, em, rem. Users are asking for the units to be extended (The units are also more limited than in the custom spacing control, where px, em, rem %, vw and vh are supported)

How?

The PR updates the units in the font size picker component.

Testing Instructions

Add a text based block like a paragraph.
Open the block settings and open the Typography panel.
Select "Set custom size".
Confirm that vw and vh units can be selected.
Select them and confirm that the units are used in the editor and front.

Testing Instructions for Keyboard

Screenshots or screencast

@carolinan
Copy link
Contributor Author

@ramonjd Hi, I am pinging you early because I think I am missing something. I am trying to add the vw and vh units to the font size picker, and I don't think it can be as easy as this? I can't help thinking that, if it only required this code change, why did we not add it earlier? There must be a rabbit hole somewhere :)

@carolinan carolinan added the [Type] Enhancement A suggestion for improvement. label Apr 9, 2024
Copy link

github-actions bot commented Apr 9, 2024

Size Change: +2.19 kB (+0.13%)

Total Size: 1.74 MB

Filename Size Change
build/block-directory/index.min.js 7.29 kB +38 B (+0.52%)
build/block-editor/content-rtl.css 4.57 kB +70 B (+1.56%)
build/block-editor/content.css 4.57 kB +71 B (+1.58%)
build/block-editor/index.min.js 260 kB +2.19 kB (+0.85%)
build/block-editor/style-rtl.css 15.5 kB +35 B (+0.23%)
build/block-editor/style.css 15.5 kB +34 B (+0.22%)
build/block-library/blocks/group/editor-rtl.css 403 B +9 B (+2.28%)
build/block-library/blocks/group/editor.css 403 B +9 B (+2.28%)
build/block-library/blocks/latest-posts/style-rtl.css 494 B +16 B (+3.35%)
build/block-library/blocks/latest-posts/style.css 494 B +16 B (+3.35%)
build/block-library/blocks/rss/editor-rtl.css 101 B -48 B (-32.21%) 🎉
build/block-library/blocks/rss/editor.css 101 B -48 B (-32.21%) 🎉
build/block-library/blocks/shortcode/editor-rtl.css 286 B -37 B (-11.46%) 👏
build/block-library/blocks/shortcode/editor.css 286 B -37 B (-11.46%) 👏
build/block-library/blocks/social-links/style-rtl.css 1.5 kB +19 B (+1.28%)
build/block-library/blocks/social-links/style.css 1.5 kB +19 B (+1.29%)
build/block-library/editor-rtl.css 12.2 kB -27 B (-0.22%)
build/block-library/editor.css 12.2 kB -27 B (-0.22%)
build/block-library/index.min.js 218 kB +115 B (+0.05%)
build/block-library/style-rtl.css 14.8 kB +21 B (+0.14%)
build/block-library/style.css 14.8 kB +22 B (+0.15%)
build/blocks/index.min.js 51.8 kB +58 B (+0.11%)
build/commands/index.min.js 15.2 kB +40 B (+0.26%)
build/components/index.min.js 222 kB +2.25 kB (+1.02%)
build/components/style-rtl.css 12 kB +39 B (+0.33%)
build/components/style.css 12 kB +34 B (+0.29%)
build/compose/index.min.js 12.8 kB +18 B (+0.14%)
build/core-commands/index.min.js 2.71 kB -95 B (-3.38%)
build/core-data/index.min.js 72.5 kB -58 B (-0.08%)
build/customize-widgets/index.min.js 10.9 kB +15 B (+0.14%)
build/data/index.min.js 9.01 kB +13 B (+0.14%)
build/edit-post/index.min.js 14.6 kB +192 B (+1.33%)
build/edit-site/index.min.js 214 kB -8.78 kB (-3.94%)
build/edit-site/style-rtl.css 12.5 kB -448 B (-3.47%)
build/edit-site/style.css 12.5 kB -461 B (-3.57%)
build/edit-widgets/index.min.js 17.5 kB +61 B (+0.35%)
build/edit-widgets/style-rtl.css 4.18 kB +17 B (+0.41%)
build/edit-widgets/style.css 4.18 kB +18 B (+0.43%)
build/editor/index.min.js 91.8 kB +8.63 kB (+10.36%) ⚠️
build/editor/style-rtl.css 8.39 kB +138 B (+1.67%)
build/editor/style.css 8.4 kB +138 B (+1.67%)
build/format-library/index.min.js 8.09 kB +15 B (+0.19%)
build/interactivity/debug.min.js 16.4 kB +124 B (+0.76%)
build/interactivity/index.min.js 13.2 kB +206 B (+1.58%)
build/interactivity/router.min.js 2.81 kB +25 B (+0.9%)
build/keyboard-shortcuts/index.min.js 1.31 kB +13 B (+1%)
build/list-reusable-blocks/index.min.js 2.14 kB +24 B (+1.14%)
build/nux/index.min.js 1.58 kB +13 B (+0.83%)
build/patterns/index.min.js 6.51 kB +61 B (+0.95%)
build/plugins/index.min.js 1.81 kB +11 B (+0.61%)
build/preferences/index.min.js 2.9 kB +48 B (+1.68%)
build/primitives/index.min.js 831 B +22 B (+2.72%)
build/react-i18n/index.min.js 629 B +6 B (+0.96%)
build/reusable-blocks/index.min.js 2.72 kB +22 B (+0.81%)
build/router/index.min.js 1.96 kB +25 B (+1.29%)
build/server-side-render/index.min.js 1.97 kB +10 B (+0.51%)
build/vendors/inert-polyfill.min.js 0 B -2.48 kB (removed) 🏆
build/vendors/react-dom.min.js 42.8 kB +1.12 kB (+2.7%)
build/vendors/react.min.js 2.65 kB -1.37 kB (-34.1%) 🎉
build/viewport/index.min.js 964 B +7 B (+0.73%)
build/widgets/index.min.js 7.13 kB +15 B (+0.21%)
ℹ️ 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/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/block/editor-rtl.css 277 B
build/block-library/blocks/block/editor.css 277 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/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 891 B
build/block-library/blocks/image/editor.css 891 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/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 397 B
build/block-library/blocks/post-template/style.css 396 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/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/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/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/editor-rtl.css 393 B
build/block-library/blocks/template-part/editor.css 393 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/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/style-rtl.css 953 B
build/commands/style.css 951 B
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/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/edit-post/style-rtl.css 2.68 kB
build/edit-post/style.css 2.68 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
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/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keycodes/index.min.js 1.46 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/style-rtl.css 748 B
build/nux/style.css 744 B
build/patterns/style-rtl.css 595 B
build/patterns/style.css 595 B
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/style-rtl.css 710 B
build/preferences/style.css 712 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
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/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 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/react-jsx-runtime.min.js 554 B
build/warning/index.min.js 249 B
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

@ramonjd ramonjd added the Needs Design Feedback Needs general design feedback. label Apr 9, 2024
@ramonjd
Copy link
Member

ramonjd commented Apr 9, 2024

Thanks for the ping @carolinan

I don't think it can be as easy as this?
There must be a rabbit hole somewhere :)

How many times have I thought this too 😄 ?

The PR tests well in the editor. I can't think of any technical reason why we couldn't support these units. vw already exists as a back up in the unit control component.

Not to say there aren't rabbit holes, yet from a code perspective I can't see any obvious ones.

The only issue that occurs to me right now is that fluid typography doesn't yet support vw/vh due to the way the values are calculated. Relative values like these are tricky to get right.

So a user might be left wondering why some units are converted to clamp values and others not. I suppose one day this could be communicated via the UI somehow, or integrated into any controls we might consider, e.g.,

Pinging @jasmussen for a design perspective.

@carolinan
Copy link
Contributor Author

I suppose we could ask the community if this would be useful without clamp(). I'll ask in the issue.

@jasmussen
Copy link
Contributor

The motivation for fluid typography is one of "it just works", and both vh and vw units are fluid in their own way. To that end I'd think this could be as simple as just allowing those units as Carolina suggests.

There's still a very separate question around how the initial theme.json font size array can be built using the editor, and since theme.json allows a font size preset to be fluid or not, that's something you need to be able to build using global styles. That's mostly a UI design question, but it might eventually overlap with some of aspects of this conversation.

@carolinan carolinan changed the title Experiment: Try to add vw and vh units to the custom font size picker Add vw and vh units to the custom font size picker Apr 12, 2024
@carolinan carolinan marked this pull request as ready for review April 12, 2024 05:19
@carolinan carolinan requested a review from ajitbohra as a code owner April 12, 2024 05:19
Copy link

github-actions bot commented Apr 12, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: carolinan <poena@git.wordpress.org>
Co-authored-by: mirka <0mirka00@git.wordpress.org>
Co-authored-by: ramonjd <ramonopoly@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: geriux <geriux@git.wordpress.org>
Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: richtabor <richtabor@git.wordpress.org>

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

Copy link

github-actions bot commented Apr 12, 2024

Flaky tests detected in 2f45c69.
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/9202165130
📝 Reported issues:

@carolinan carolinan requested a review from mirka April 23, 2024 07:40
@mirka mirka added the [Package] Components /packages/components label Apr 23, 2024
@mirka
Copy link
Member

mirka commented Apr 23, 2024

Just to first confirm that we're making the intended changes — do we want to expand the unit types that are available in the Typography panel only? Or expand the default unit types for everybody that uses the FontSizePicker component? The PR description suggests that the intent was the former, but the code changes here will do the latter.

Let me know and I can advise on where to make the changes.

@carolinan
Copy link
Contributor Author

🤔 Great question. I think these units are relevant enough to be added to the component...
But open to listen to other opinions.

Copy link
Member

@mirka mirka left a comment

Choose a reason for hiding this comment

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

I noticed that there is some isValueUnitRelative logic that determines whether to tweak the max and step values. vw and vh are both relative values — can we bunch them in with em and rem for this same logic, or do we want other values for max and step for these units?

max={ isValueUnitRelative ? 10 : 100 }
step={ isValueUnitRelative ? 0.1 : 1 }

@mirka
Copy link
Member

mirka commented Apr 23, 2024

I think these units are relevant enough to be added to the component

I wouldn't consider this a "breaking" change so I don't mind either way, but I'm just wondering whether vw/vh would be kind of irrelevant outside of a "full-page editing" context.

I also wanted to make sure it was clear that we're changing the defaults. Any consumer of FontSizePicker could've already passed vw/vh to the units prop if they wanted. I proposed a follow-up because this was unclear from the docs/code #60996.

@carolinan
Copy link
Contributor Author

For the range slider, it makes sense to me to limit the max value to 10 instead of 100, not least because starting at 50 would be very large.
But I am unsure about using the decimals. I can't say I have seen many examples of that. What do you think @iamtakashi ?

What about the native file? I probably should not have touched it @WordPress/native-mobile.

@carolinan
Copy link
Contributor Author

Here is the range slider in the custom font size control in the Typography panel, with the decimals and max value at 10.

Screen.Recording.2024-04-24.at.10.56.33.mp4

@geriux
Copy link
Member

geriux commented Apr 24, 2024

What about the native file? I probably should not have touched it @WordPress/native-mobile.

I'll take a look 👍

@geriux
Copy link
Member

geriux commented Apr 24, 2024

All working well on mobile, thanks for the ping! 🚀

@carolinan
Copy link
Contributor Author

Since I have not heard anything, I added vw and vh to isValueUnitRelative. It now uses decimals and the range slider has a max value of 10, like em and rem.

@ramonjd
Copy link
Member

ramonjd commented May 9, 2024

Thanks for the updates. Range slider looks good!

This is testing as expected for me, and I think a nice addition to the text block font size options.

Also I can't find any regressions in the way vw/h units are parsed when I define them theme.json styles - the values are being reflected in the global styles controls as defaults:

Screenshot 2024-05-09 at 11 01 04 am

I can't see any interference with fluid typography (which guards against units it doesn't understand anyway)

2024-05-09.10.54.17.mp4

LGTM, but I'd just cc @WordPress/gutenberg-design for awareness and in case there are any gotchas.

@jameskoster
Copy link
Contributor

Seems good to me!

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.

Thanks for the PR!

LGTM

Might be worth rebasing to check for changelog conflicts before merging (I had to resolve some locally on this branch)

@carolinan
Copy link
Contributor Author

Which is the correct place to add the change log entry? I understand that I need to move it to unreleased, but should it be under enhancements or internal?

@ramonjd
Copy link
Member

ramonjd commented May 10, 2024

My vote would be under "Enhancements" 👍🏻

Copy link
Contributor

@t-hamano t-hamano left a comment

Choose a reason for hiding this comment

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

I think we will also need to update the JSDoc and README for this component.

/**
* Available units for custom font size selection.
*
* @default `[ 'px', 'em', 'rem' ]`
*/
units?: string[];

https://github.com/WordPress/gutenberg/blob/enhancement/shorcut-selected-blocks-to-group/packages/components/src/font-size-picker/README.md#units-string

packages/components/CHANGELOG.md Outdated Show resolved Hide resolved
Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>
@t-hamano
Copy link
Contributor

The only concern with this PR is, as already mentioned, changing the default units of the FontSizePicker itself.

And as far as I know, unlike settings.spacing.units, the font size units cannot be changed via theme.json. That's because the typography panel doesn't take units into account, and support like settings.typograpy.units doesn't exist yet. Therefore, all themes are affected, as well as developers using this component without the unit prop.

What do you think about changing the default units of the typography panel in anticipation of adding support for settings/typograhy.units in the future?

@@ -45,6 +45,7 @@

### Enhancements

- `FontSizePicker`: Add `vw` and `vh` units to the font size picker ([#60507]((https://github.com/WordPress/gutenberg/pull/60607)).
Copy link
Contributor

Choose a reason for hiding this comment

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

Sorry, if you were to ship this PR as is, you would need to move the entry to the "Enhancements" section within the "Unreleased" section.

@carolinan
Copy link
Contributor Author

Without a way to control the units, it is not going to make a difference for either type of extenders where the units are added.

@t-hamano
Copy link
Contributor

I'm concerned about backward compatibility and extensibility.

For example, the following changes do not require any changes to the FontSizePicker component.

diff --git a/packages/block-editor/src/components/global-styles/typography-panel.js b/packages/block-editor/src/components/global-styles/typography-panel.js
index 64a7be0443..75e5912d2b 100644
--- a/packages/block-editor/src/components/global-styles/typography-panel.js
+++ b/packages/block-editor/src/components/global-styles/typography-panel.js
@@ -196,6 +196,7 @@ export default function TypographyPanel( {
        const resetFontFamily = () => setFontFamily( undefined );
 
        // Font Size
+       const units = [ 'px', 'em', 'rem', 'vw', 'vh' ];
        const hasFontSizeEnabled = useHasFontSizeControl( settings );
        const disableCustomFontSizes = ! settings?.typography?.customFontSize;
        const mergedFontSizes = getMergedFontSizes( settings );
@@ -385,6 +386,7 @@ export default function TypographyPanel( {
                                                disableCustomFontSizes={ disableCustomFontSizes }
                                                withReset={ false }
                                                withSlider
+                                               units={ units }
                                                size="__unstable-large"
                                        />
                                </ToolsPanelItem>

This means that developers using FontSizePicker components that do not explicitly specify the unit prop will not be affected.

And assuming that font size units are supported in theme.json in the future, all we need to do is make the following changes:

diff --git a/packages/block-editor/src/components/global-styles/typography-panel.js b/packages/block-editor/src/components/global-styles/typography-panel.js
index 75e5912d2b..38c501d7ee 100644
--- a/packages/block-editor/src/components/global-styles/typography-panel.js
+++ b/packages/block-editor/src/components/global-styles/typography-panel.js
@@ -196,7 +196,8 @@ export default function TypographyPanel( {
        const resetFontFamily = () => setFontFamily( undefined );
 
        // Font Size
-       const units = [ 'px', 'em', 'rem', 'vw', 'vh' ];
+       const [ availableUnits ] = useSettings( 'spacing.units' );
+       const units = availableUnits || [ 'px', 'em', 'rem', 'vw', 'vh' ];
        const hasFontSizeEnabled = useHasFontSizeControl( settings );
        const disableCustomFontSizes = ! settings?.typography?.customFontSize;
        const mergedFontSizes = getMergedFontSizes( settings );

What do you think about this approach?

@carolinan
Copy link
Contributor Author

My opinion remains unchanged, that these units are relevant enough to be enabled as the default.

@richtabor
Copy link
Member

@t-hamano is there any reason why FontSizePicker shouldn't have the vw and vh as default font sizes? If we wanted to use useSettings( 'spacing.units' ) in the future for font sizes, why not have it there?

@t-hamano
Copy link
Contributor

is there any reason why FontSizePicker shouldn't have the vw and vh as default font sizes?

My only concern is that for developers using the FontSizePicker component, and in all themes, the vw and vh units will be exposed. If many contributors think it's okay for this unit to be exposed as the default, I think it's okay to ship this PR.

@t-hamano t-hamano self-requested a review May 21, 2024 14:57
Copy link
Contributor

@t-hamano t-hamano left a comment

Choose a reason for hiding this comment

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

If we update the CHANGELOG pointed out in this comment, we should be able to merge.

@carolinan carolinan merged commit b122a98 into trunk May 23, 2024
62 of 63 checks passed
@carolinan carolinan deleted the try/font-size-picker-units branch May 23, 2024 05:42
@github-actions github-actions bot added this to the Gutenberg 18.5 milestone May 23, 2024
carstingaxion pushed a commit to carstingaxion/gutenberg that referenced this pull request Jun 4, 2024
Add vw and vh to the list of default units in the font size picker.

Co-authored-by: carolinan <poena@git.wordpress.org>
Co-authored-by: mirka <0mirka00@git.wordpress.org>
Co-authored-by: ramonjd <ramonopoly@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: geriux <geriux@git.wordpress.org>
Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: richtabor <richtabor@git.wordpress.org>
patil-vipul pushed a commit to patil-vipul/gutenberg that referenced this pull request Jun 17, 2024
Add vw and vh to the list of default units in the font size picker.

Co-authored-by: carolinan <poena@git.wordpress.org>
Co-authored-by: mirka <0mirka00@git.wordpress.org>
Co-authored-by: ramonjd <ramonopoly@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: geriux <geriux@git.wordpress.org>
Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: richtabor <richtabor@git.wordpress.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs Design Feedback Needs general design feedback. [Package] Components /packages/components [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants