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 ability to show drop cap setting in paragraph block by default #45994

Merged

Conversation

fabiankaegy
Copy link
Member

What?

Add the ability for developers to modify whether the Drop Cap setting should be shown by default in the paragraph block.

Closing: #45755

Why?

If the Drop Cap style is a commonly used tool it is frustrating that with the recent change to the tools panel there now always is an additional click to achieve this design. This update allows developers to modify which default controls get shown. Same as they already can for all the other tool panels that get registered via the block supports system.

How?

Adding the isShownByDefault property to the ToolsPanelItem component.

Testing Instructions

You can test this in two ways:

  1. Adding the dropCap option to the __experimentalDefaultControls in the block.json of the paragraph block
  2. Adding this snipped in a plugin:
import { addFilter } from '@wordpress/hooks';

function addDropCapSettingByDefault(settings, name) {
	if (name !== 'core/paragraph') {
		return settings;
	}

	return {
		...settings,
		supports: {
			...settings?.supports,
			typography: {
				...settings?.supports?.typography,
				__experimentalDefaultControls: {
					...settings?.supports?.typography?.__experimentalDefaultControls,
					dropCap: true,
				},
			},
		},
	};
}

addFilter(
	'blocks.registerBlockType',
	'add-drop-cap-setting-by-default',
	addDropCapSettingByDefault,
);

@fabiankaegy fabiankaegy added [Feature] Extensibility The ability to extend blocks or the editing experience [Block] Paragraph Affects the Paragraph Block [Feature] Typography Font and typography-related issues and PRs labels Nov 23, 2022
@fabiankaegy fabiankaegy requested a review from Mamaduka November 23, 2022 09:59
@fabiankaegy fabiankaegy self-assigned this Nov 23, 2022
@fabiankaegy fabiankaegy linked an issue Nov 23, 2022 that may be closed by this pull request
@github-actions
Copy link

github-actions bot commented Nov 23, 2022

Size Change: +43 B (0%)

Total Size: 1.83 MB

Filename Size Change
build/block-library/index.min.js 222 kB +43 B (+0.02%)
ℹ️ View Unchanged
Filename Size
build-module/a11y/index.min.js 482 B
build-module/block-library/file/view.min.js 447 B
build-module/block-library/form/view.min.js 533 B
build-module/block-library/image/view.min.js 1.78 kB
build-module/block-library/navigation/view.min.js 1.16 kB
build-module/block-library/query/view.min.js 742 B
build-module/block-library/search/view.min.js 616 B
build-module/interactivity-router/index.min.js 3.03 kB
build-module/interactivity/debug.min.js 17.2 kB
build-module/interactivity/index.min.js 13.6 kB
build/a11y/index.min.js 952 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1 kB
build/block-directory/style.css 1 kB
build/block-editor/content-rtl.css 4.47 kB
build/block-editor/content.css 4.46 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 258 kB
build/block-editor/style-rtl.css 15.7 kB
build/block-editor/style.css 15.7 kB
build/block-library/blocks/archives/editor-rtl.css 84 B
build/block-library/blocks/archives/editor.css 83 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 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 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 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 555 B
build/block-library/blocks/button/style.css 555 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 345 B
build/block-library/blocks/buttons/style.css 345 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 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 139 B
build/block-library/blocks/code/style.css 139 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 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 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 238 B
build/block-library/blocks/comments-pagination/editor.css 231 B
build/block-library/blocks/comments-pagination/style-rtl.css 245 B
build/block-library/blocks/comments-pagination/style.css 241 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 842 B
build/block-library/blocks/comments/editor.css 842 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 637 B
build/block-library/blocks/cover/editor-rtl.css 631 B
build/block-library/blocks/cover/editor.css 631 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 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 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 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 357 B
build/block-library/blocks/form-input/style.css 357 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 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/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 946 B
build/block-library/blocks/gallery/editor.css 951 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 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 334 B
build/block-library/blocks/group/editor.css 334 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 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 799 B
build/block-library/blocks/image/editor.css 799 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 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 139 B
build/block-library/blocks/latest-posts/editor.css 138 B
build/block-library/blocks/latest-posts/style-rtl.css 520 B
build/block-library/blocks/latest-posts/style.css 520 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 552 B
build/block-library/blocks/media-text/style.css 550 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.2 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.24 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 192 B
build/block-library/blocks/page-list/style.css 192 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 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 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/style-rtl.css 61 B
build/block-library/blocks/post-content/style.css 61 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 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 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 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 399 B
build/block-library/blocks/post-template/style.css 398 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 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 162 B
build/block-library/blocks/post-title/style.css 162 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 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 351 B
build/block-library/blocks/pullquote/style.css 350 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 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 527 B
build/block-library/blocks/query/editor.css 527 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 660 B
build/block-library/blocks/search/style.css 658 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 143 B
build/block-library/blocks/site-title/style.css 143 B
build/block-library/blocks/social-link/editor-rtl.css 309 B
build/block-library/blocks/social-link/editor.css 309 B
build/block-library/blocks/social-links/editor-rtl.css 727 B
build/block-library/blocks/social-links/editor.css 724 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.51 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 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-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 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/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 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 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 441 B
build/block-library/blocks/video/editor.css 442 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.08 kB
build/block-library/common.css 1.08 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.8 kB
build/block-library/editor.css 11.8 kB
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 15 kB
build/block-library/style.css 15 kB
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 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 53 kB
build/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 228 kB
build/components/style-rtl.css 12.4 kB
build/components/style.css 12.4 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 3.09 kB
build/core-data/index.min.js 74.3 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.69 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.66 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 13.4 kB
build/edit-post/style-rtl.css 2.75 kB
build/edit-post/style.css 2.75 kB
build/edit-site/index.min.js 220 kB
build/edit-site/posts-rtl.css 7.38 kB
build/edit-site/posts.css 7.39 kB
build/edit-site/style-rtl.css 13.6 kB
build/edit-site/style.css 13.6 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.09 kB
build/edit-widgets/style.css 4.09 kB
build/editor/index.min.js 114 kB
build/editor/style-rtl.css 9.28 kB
build/editor/style.css 9.28 kB
build/element/index.min.js 4.82 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.05 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.65 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 852 B
build/list-reusable-blocks/style.css 852 B
build/media-utils/index.min.js 3.58 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.62 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.37 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.86 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 972 B
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.3 kB
build/router/index.min.js 5.42 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.9 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 556 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/vips/index.min.js 36.2 kB
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

Copy link
Member

@Mamaduka Mamaduka left a comment

Choose a reason for hiding this comment

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

The enhancement works as expected 👍

Since the dropCap isn't a global typography feature, does it make sense to add this setting to its default controls?

@aaronrobertshaw, what do you think?

@aaronrobertshaw
Copy link
Contributor

Thanks for putting this PR together @fabiankaegy and the ping @Mamaduka 👍

Given drop cap is a bespoke control, only relevant to the paragraph block, and generally is still infrequently used, I think it not being a default control is the right approach.

I'm not against themes or plugins being able to elevate its prominence but toggling a non-block-support control via the block supports configuration doesn't seem like the right place to me.

You can find some additional context and history in #36334 (comment). As part of that conversation it was floated that the drop cap setting might be moved outside of the typography panel eventually.

@jasmussen might have better insight into where the drop cap control best fits now the block inspector sidebar is continuing to evolve.

Ultimately, I think it would be best to avoid muddying the block supports configuration if we can avoid it.

@jasmussen
Copy link
Contributor

One of the challenges we have with the dropcap control, right now, is that it's a blunt boolean toggle. You cannot change size, font, style, margin, row-span, or anything like that. And ideally, you should be able to control all of those, so you can truly customize and have elaborate designs.

In fact, I believe TwentyTwentyTwo disables the drop-cap by default, making it entirely inaccessible, mainly because there isn't a guarantee that the default drop cap values will look good across the various bundled style variations.

In that light, the control itself is due for some design ideation: what would it look like if it wasn't just a toggle, but a toggle that offered various drop cap styles? A toggle that when enabled offered additional tools such as rowspan, font, style, and spacing options. What would that look like? And perhaps more importantly, what would that look like in theme.json definitions?

Those options seem worth figuring out as a starting point. Once we have a clearer picture of that, it might also be clearer whether it's a control that is useful to surface by default, and where to surface it.

@carolinan
Copy link
Contributor

Is there an issue opened for adding these drop cap style options?

@jasmussen
Copy link
Contributor

Is there an issue opened for adding these drop cap style options?

I'm not aware of one.

@fabiankaegy
Copy link
Member Author

Closing this PR as the approach isn't the right fit :)

@jeffpaul
Copy link
Member

jeffpaul commented Nov 4, 2024

Noting that I just ran into a project where dropcap's were prominently utilized in the frontend design and having to get all editors/authors to make all the additional clicks to set this on a paragraph block was not the most graceful experience for anyone. While I totally agree that the dropcap setting should not be exposed as a default, at least having the ability in code to do so for a specific site need (e.g. frontend design uses it on intro paragraph on posts) makes for a dramatically better editor experience.

Re-opening for consideration as this feels like a decent "paper cut" sort of simple improvement that may not impact the large majority but for those who do benefit its a much better experience than the current experience.

@jeffpaul jeffpaul reopened this Nov 4, 2024
@jasmussen
Copy link
Contributor

Does this issue/mockup, #51481 created since this PR, change the calculus?

@jeffpaul
Copy link
Member

jeffpaul commented Nov 5, 2024

@jasmussen while those updates to the dropcap functionality are helpful from a design perspective, that issue doesn't seem to note whether it also allows for the ability to expose the dropcap in the Typography section by default or not. If that is intended as part of that effort, then yes that would solve the issue we're currently seeing with some client work.

@jasmussen
Copy link
Contributor

The reason drop cap is not exposed that commonly, is because the lack of customizability in styles, global or otherwise, means the appearance is unpredictable depending on line height, fonts, etc. By actually adding those controls, the reason to not expose drop cap by default, would help here.

@jeffpaul
Copy link
Member

jeffpaul commented Nov 5, 2024

In my, albeit limited, experience with dropcap usage on client work the theme generally has a singular styling option for it and doesn't usually have a need for editors having flexibility as shown in #51481. It's pretty much on or off and the styling of it is inflexible and set.

@jasmussen
Copy link
Contributor

It's pretty much on or off and the styling of it is inflexible and set.

Indeed, and that's the problem the mockup has tried to solve. Whether we need that for this PR to land, or not, I've personally no strong opinion on. I'm mentioning this because I've asked several theme developers and designers why they choose not to turn on the drop cap feature in their block themes. Consistently the response is: the cap may look good in the default style variation, but as soon as a user picks another style variation, it entirely falls apart visually. So they choose to not even offer the option.

If style variations, each, could ensure the cap looked appropriate to the context, my understanding is they would turn it on. This is a more longer term problem to solve, surely, but the reason for why they choose not to, seems reasonable to me, and a blunt instrument to force it on from elsewhere, while well-meaning (and nothing I'd block) will not solve that problem.

@fabiankaegy
Copy link
Member Author

@jasmussen yeah I think this here is a classic case of different usecases of WordPress looking for different things.

I can fully understand how the drop cap setting as it stands today has little to no value to DIY folks / theme designers that want to provide a flexible experience.

On the other hand in tightly designed environments that is exactly what we are looking for.

The ability to change the visual appearance of every single occurrence of the drop cap is very much not what we would want. Instead we need to be able to define one style of drop cap for the specific design system and then just allow editors to allow / disallow it on a per paragraph basis.

And what this issue was about is that this setting currently is very burried and therefore we would love a way like with all the other controls to determine whether to show it by default or not.

@jasmussen
Copy link
Contributor

On the other hand in tightly designed environments that is exactly what we are looking for.

It sounds like I'm missing some nuance here, sorry about that. In a tightly designed environment, wouldn't you be able to just set dropCap: true in theme.json?

@fabiankaegy
Copy link
Member Author

@jasmussen yes the current setting as it exists is exactly what we need / want.

We just ideally would want a way to have the toggle shown in the tools panel by default. Not hidden behind the tools panel dropdown option

@jasmussen
Copy link
Contributor

We just ideally would want a way to have the toggle shown in the tools panel by default. Not hidden behind the tools panel dropdown option

OH! That was the nuance I was missing. Apologies. These are crazy days.

On my mind is that the current flow, even when drop dap is supported, requires you to first add the control, and then toggle it, which is a bit roundabout virtually counting as "two toggles".

About the prominence: "should you or shouldn't you add a drop cap", I may lean towards the latter and keep a low prominence because it can quickly get out of hand. But that's also not a strongly held opinion. I know that @richtabor is currently very busy elsewhere, but I vaguely recall stumbling upon a mockup of his, that tackled specifically the drop cap control and its prominence in the toolspanel. Perhaps there's something in his design that threads the needle between prominence and direct-access?

@youknowriad
Copy link
Contributor

For me we should just ship this PR and establish __experimentalDefaultControls (or stabilize as defaultControls probably outside supports key) as a way to enable/disable controls by default regardless of whether they are custom controls or block supports. That said that second part can be done in its own dedicated PR/issues. My opinion is that we should ship this PR as a nice little addition.

@aaronrobertshaw
Copy link
Contributor

or stabilize as defaultControls probably outside supports key

@youknowriad there has been some work on block support stabilization lately. I recently merged a PR (#67018) that stabilized __experimentalDefaultControls and __experimentalSkipSerialization. That was done under supports though should we be trying to move that now?

@youknowriad
Copy link
Contributor

youknowriad commented Dec 6, 2024

@aaronrobertshaw Thanks, yeah I had missed that. I don't know what's your thoughts ? I have a feeling that defaultControls should be its own block property but it also wouldn't bother me that much if it's within supports

skipSerialization makes sense within supports because if I'm not wrong, it's always contextual to a given block support.

@aaronrobertshaw
Copy link
Contributor

I don't know what's your thoughts ?

I think if we are going to change it, now is the time. It was only just released in 19.8.

The backport for this change hasn't landed yet as it was taking a little extra time combining the stabilization of typography and border supports along with these common experimental flags, and needed a different approach e.g. within the block type class rather than via a filter.

skipSerialization makes sense within supports because if I'm not wrong, it's always contextual to a given block support.

Agreed. This option was purely to signal that we wanted to skip the automatic serialization of block support classes and styles on the wrapper of a block.

@youknowriad
Copy link
Contributor

I think if we are going to change it, now is the time. It was only just released in 19.8.

I'm curious about your opinion :P and everyone else :). Are there any technical issues for using a top level property? Does it make more or less sense?

@aaronrobertshaw
Copy link
Contributor

Are there any technical issues for using a top level property? Does it make more or less sense?

I don't think there are technical issues for using the top-level property. It might require a polyfill until the minimum supported WP version has server-side block definitions that include it.

To me, the defaultControls config is almost always related to the block supports but I appreciate the validity of this use case. There is effectively a precedent here with the selectors API. The Selectors API is 99% of the time related to the block supports although it also allows a different block selector to be defined e.g. .my-custom-block instead of .wp-block-plugin-custom.

There might be some further questions to answer if moving to a top-level property. What does this property's shape look like? I'm assuming it would mirror the block supports e.g. typography, color, border etc. Is there any reason we can't allow extenders to put whatever they want in there? A plugin offering custom blocks could define its own ToolsPanel, and the top-level property might make it cleaner for the plugin to offer its own extenders the chance to configure default controls.

I don't have strong opinions on this but I probably lean a touch towards the top-level property now. My only concern is to minimise the time between 19.8's release and any change we make. I'm happy to tackle it although I have some AFK in a few days that could delay things a little.

@youknowriad
Copy link
Contributor

I think this discussion shouldn't block this PR though. @fabiankaegy would you be able to refresh the PR to use what's currently available in trunk. I guess that's supports.defaultControls

…default

# Conflicts:
#	packages/block-library/src/paragraph/edit.js
@fabiankaegy
Copy link
Member Author

fabiankaegy commented Dec 6, 2024

@youknowriad Updated 👍

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

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

I would appreciate a second review but this looks good to me.

Copy link
Contributor

@aaronrobertshaw aaronrobertshaw 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 patience and iteration here @fabiankaegy 👍

This tests as advertised for me.

✅ Tested updating paragraph/block.json
✅ Tested with a filter tweaking the setting I added to block.json

Optional Control Default Control
Screenshot 2024-12-09 at 7 58 15 pm Screenshot 2024-12-09 at 7 59 18 pm

As a side note, I've tried to pull together a proof of concept for moving the stable default controls config to a top-level block type property over in #67729.

If that PoC turns into something we want to land, I'll revisit the changes here and update as required in a follow up.

🚢

@WordPress WordPress deleted a comment from codesandbox bot Dec 9, 2024
Copy link

github-actions bot commented Dec 9, 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: fabiankaegy <fabiankaegy@git.wordpress.org>
Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
Co-authored-by: youknowriad <youknowriad@git.wordpress.org>
Co-authored-by: aaronrobertshaw <aaronrobertshaw@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: carolinan <poena@git.wordpress.org>
Co-authored-by: jeffpaul <jeffpaul@git.wordpress.org>
Co-authored-by: jordesign <jordesign@git.wordpress.org>

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

@fabiankaegy fabiankaegy merged commit 0d757db into trunk Dec 9, 2024
61 of 65 checks passed
@fabiankaegy fabiankaegy deleted the feature/allow-drop-cap-setting-to-be-on-by-default branch December 9, 2024 10:45
@github-actions github-actions bot added this to the Gutenberg 19.9 milestone Dec 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Paragraph Affects the Paragraph Block [Feature] Extensibility The ability to extend blocks or the editing experience [Feature] Typography Font and typography-related issues and PRs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add ability to show dropCap tools panel by default
7 participants