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

Restore default border and focus style on image url input field. #58505

Merged
merged 6 commits into from
Feb 9, 2024

Conversation

afercia
Copy link
Contributor

@afercia afercia commented Jan 31, 2024

Fixes #58494

What?

The UI to inseert link on images is different from the default URL input UI and has now an insufficient, and inconsistent, focus style. This UI is used in a few blocks e.g. Image, Media & Text, etc.

Why?

Focus style must always be clear. Ideally it should be consistent across all the input fields in the editor UI.
There's no good reason why the image URL input mut look and work differently from the default URL input UI used for text, besides very specific features that are only available for images.

This PR aims to make the image URL input use the default focus style. To do so, some additional CSS changes are necessary like adjusting the input and button sizes to the new defaults and better spacing and alignment. I tried to keep the changest o a minimum.

There's more inconsistencies to fix, both visual and functional. I'll create a follow=up issue.

How?

  • Adjusts the CSS to use the default focus style for input fields.
  • Restores the input border: the border is integrant part of the focus style and should never be overridden with 'ad hoc' CSS.
  • Adjust input and button sizes.
  • Adjusts spacing around the input and alignments.

Testing Instructions

Testing Instructions for Keyboard

  • HInt: compare with the 'default' URL input UI used for links on text content.
  • Add a link to an image for example in a Media & Text block or an Image block.
  • The image URL input popover opens.
  • Initial focus is set on the input field.
  • Observe the focus style is the default one used for all input fields.
  • Observe the input field and buttons sizes is nor bigger.
  • Observe spacing and alignments are closer to the ones of the default URL input UI.

Screenshots or screencast

Before: non focused and focused:

before 01

After: non focused and focused:

after 01

Compare with the default URL input UI:

default 01

@afercia afercia added [Type] Bug An existing feature does not function as intended [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). [Block] Image Affects the Image Block [Package] Format library /packages/format-library [Package] Block editor /packages/block-editor [Feature] Link Editing Link components (LinkControl, URLInput) and integrations (RichText link formatting) labels Jan 31, 2024
@afercia
Copy link
Contributor Author

afercia commented Jan 31, 2024

As I mentioned in this PR description, there's more inconsistencies to fix:

  • The button placement: visually placed inside or outside the input field.
  • The aria-disabled state of the Submit button.
  • The labelling of the button: Apply vs. Submit.
  • Different placeholder text.
  • Divider border, spacing, and other CSS details.

I will create a follow-up issue to keep changes in this PR to a minimum.

Copy link

github-actions bot commented Jan 31, 2024

Size Change: -65 B (0%)

Total Size: 1.71 MB

Filename Size Change
build/block-editor/style-rtl.css 15.4 kB -33 B (0%)
build/block-editor/style.css 15.4 kB -32 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.32 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 578 B
build/block-directory/index.min.js 7.22 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.35 kB
build/block-editor/content.css 4.35 kB
build/block-editor/default-editor-styles-rtl.css 381 B
build/block-editor/default-editor-styles.css 381 B
build/block-editor/index.min.js 251 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 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 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.69 kB
build/block-library/blocks/cover/style.css 1.68 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 98 B
build/block-library/blocks/details/style.css 98 B
build/block-library/blocks/embed/editor-rtl.css 322 B
build/block-library/blocks/embed/editor.css 322 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/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 947 B
build/block-library/blocks/gallery/editor.css 952 B
build/block-library/blocks/gallery/style-rtl.css 1.72 kB
build/block-library/blocks/gallery/style.css 1.72 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 654 B
build/block-library/blocks/group/editor.css 654 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 336 B
build/block-library/blocks/html/editor.css 337 B
build/block-library/blocks/image/editor-rtl.css 863 B
build/block-library/blocks/image/editor.css 862 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 126 B
build/block-library/blocks/image/theme.css 126 B
build/block-library/blocks/image/view.min.js 1.54 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 668 B
build/block-library/blocks/navigation-link/editor.css 669 B
build/block-library/blocks/navigation-link/style-rtl.css 259 B
build/block-library/blocks/navigation-link/style.css 257 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.25 kB
build/block-library/blocks/navigation/editor.css 2.26 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/navigation/view.min.js 1.1 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 666 B
build/block-library/blocks/post-featured-image/editor.css 662 B
build/block-library/blocks/post-featured-image/style-rtl.css 342 B
build/block-library/blocks/post-featured-image/style.css 342 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 409 B
build/block-library/blocks/post-template/style.css 408 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 354 B
build/block-library/blocks/pullquote/style.css 354 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/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 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 614 B
build/block-library/blocks/search/style.css 614 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 229 B
build/block-library/blocks/separator/style.css 229 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 204 B
build/block-library/blocks/site-logo/style.css 204 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.49 kB
build/block-library/blocks/social-links/style.css 1.48 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 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 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 185 B
build/block-library/blocks/video/style.css 185 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.3 kB
build/block-library/editor.css 12.3 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 216 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.8 kB
build/block-library/style.css 14.7 kB
build/block-library/theme-rtl.css 688 B
build/block-library/theme.css 693 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 51.8 kB
build/commands/index.min.js 15.6 kB
build/commands/style-rtl.css 921 B
build/commands/style.css 918 B
build/components/index.min.js 226 kB
build/components/style-rtl.css 11.8 kB
build/components/style.css 11.8 kB
build/compose/index.min.js 12.6 kB
build/core-commands/index.min.js 2.77 kB
build/core-data/index.min.js 72.7 kB
build/customize-widgets/index.min.js 12.1 kB
build/customize-widgets/style-rtl.css 1.32 kB
build/customize-widgets/style.css 1.32 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 8.93 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 544 B
build/edit-post/classic.css 545 B
build/edit-post/index.min.js 25.2 kB
build/edit-post/style-rtl.css 5.65 kB
build/edit-post/style.css 5.64 kB
build/edit-site/index.min.js 212 kB
build/edit-site/style-rtl.css 15.8 kB
build/edit-site/style.css 15.9 kB
build/edit-widgets/index.min.js 17.3 kB
build/edit-widgets/style-rtl.css 4.23 kB
build/edit-widgets/style.css 4.23 kB
build/editor/index.min.js 61.8 kB
build/editor/style-rtl.css 5.43 kB
build/editor/style.css 5.43 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 7.88 kB
build/format-library/style-rtl.css 478 B
build/format-library/style.css 477 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/index.min.js 12.7 kB
build/interactivity/navigation.min.js 1.24 kB
build/interactivity/query.min.js 740 B
build/interactivity/router.min.js 1.29 kB
build/interactivity/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.74 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 836 B
build/list-reusable-blocks/style.css 836 B
build/media-utils/index.min.js 2.9 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 2 kB
build/nux/style-rtl.css 735 B
build/nux/style.css 732 B
build/patterns/index.min.js 5.74 kB
build/patterns/style-rtl.css 540 B
build/patterns/style.css 539 B
build/plugins/index.min.js 1.8 kB
build/preferences-persistence/index.min.js 2.07 kB
build/preferences/index.min.js 2.82 kB
build/preferences/style-rtl.css 698 B
build/preferences/style.css 700 B
build/primitives/index.min.js 975 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
build/react-i18n/index.min.js 623 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.72 kB
build/reusable-blocks/style-rtl.css 243 B
build/reusable-blocks/style.css 243 B
build/rich-text/index.min.js 10.4 kB
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.95 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 2.08 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.72 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 957 B
build/warning/index.min.js 249 B
build/widgets/index.min.js 7.21 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

@carolinan carolinan left a comment

Choose a reason for hiding this comment

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

I have tested the change with the media & text block and image block.
The focus style is corrected and the size and alignments of the button matches the one in the link control that is used for the paragraph.

@afercia
Copy link
Contributor Author

afercia commented Feb 1, 2024

@WordPress/gutenberg-design @t-hamano in the context of the ongoing effort to standardize sizes of controls and buttons, see #46734, can you please clarify what size these buttons should use?

I'm not sure this is a case that hae been taken into consideration on #46734
These buttons are either visually shown inside the input field or on the right of the input field.
Assuming the input field must now be 40 pixels, should the buttons be 40 pixels as well? Thank you.

Screenshot 2024-02-01 at 09 54 07

@t-hamano t-hamano self-requested a review February 1, 2024 10:17
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.

As far as I know, URLInput component has been around for a very long time, as evidenced by the fact that they are class-based components. I think the fundamental problem is that we are using the input element itself, which requires various style customizations.

My guess is that this input element can be replaced with a TextControl component. If we do so, I think that way we can restore focus style to the default and at the same time remove many CSS styles (padding, margin, height, border etc).

In the future, as mentioned in #50893, it may be replaced with the LinkControl component.

Assuming the input field must now be 40 pixels, should the buttons be 40 pixels as well?

In this PR, the button size is back to 36px, so I think we should change it to 32px or 40px.
How about changing the button size to 32px and aligning it vertically with the 40px input field?

Additionally, we will also need to adjust the balance of the layout when opening the link settings.

image

@afercia
Copy link
Contributor Author

afercia commented Feb 1, 2024

My guess is that this input element can be replaced with a TextControl component.

Sure, standardizing would be welcome. However, that would a bigger refactoring that is out of the scope of this PR. We should always try to keep changes limited to the specific issue we're trying to solve. This PR only aims to:

  • Restore a correct focus style, which implies restoring the input field border.
  • Adjust the CSS so that the restored border doesn't look ugly, limiting the changes to the bare minimum.
  • Improve consistency and use the new controls and button sizes.

Anything else should go in a separate issue. I already created #58507

How about changing the button size to 32px and aligning it vertically with the 40px input field?

If we make the inpput field 40 and the buttons 32, it won't look that nice especially for the button inside the input field. I'd rather make them 40. Screenshot with focused buttons to illustrate how it would look with 32:

Screenshot 2024-02-01 at 12 36 56

we will also need to adjust the balance of the layout when opening the link settings.

Good point, thank you.

Edit: Ok I will use 32 for the buttons, as it's the simplest solution for now.

@afercia
Copy link
Contributor Author

afercia commented Feb 1, 2024

The keyboardReturn icon could be improved. The SVG glyph isn't really centered within the viewBox so that while the button is alignred, the icon doesn't look aligned. Zoomed-in screenshot with background colors applies to better illustrate:

keyboardReturn

I will create a separate issue.

@afercia
Copy link
Contributor Author

afercia commented Feb 1, 2024

Noting that the image link settings spacing, left/right padding and top border look broken on trunk as well. Screenshot from current trunk:

Screenshot 2024-02-01 at 14 24 54

I'll try to adjust that a little keeping changes to a minimum as that's out of the scope of this issue. Further adjustments should be handled in a separate issue, see #58507

@afercia afercia force-pushed the fix/image-url-input-focus-style branch from e712912 to d7374ed Compare February 1, 2024 13:40
@afercia afercia requested a review from getdave as a code owner February 1, 2024 13:40
@afercia
Copy link
Contributor Author

afercia commented Feb 1, 2024

Screenshots after latest commits. All buttons focused to better illustrate their size:

Screenshot 2024-02-01 at 14 50 54

@annezazu
Copy link
Contributor

annezazu commented Feb 1, 2024

@richtabor just in case you have any thoughts here after you've done so much work with link control in general.

Copy link

github-actions bot commented Feb 1, 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: afercia <[email protected]>
Co-authored-by: carolinan <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: annezazu <[email protected]>
Co-authored-by: richtabor <[email protected]>

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

@@ -281,6 +281,7 @@ If passed, children are rendered after the input.
label={ __( 'Submit' ) }
icon={ keyboardReturn }
className="block-editor-link-control__search-submit"
size="compact"
Copy link
Contributor

Choose a reason for hiding this comment

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

Since the code example focuses on LinkControlSearchInput, I believe this prop on the Button component is unnecessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure I agree. Your argumentation could then be made for other things in this example, for example the HStack component would be unnecessary together with the justify prop. The className prop would be unnecessary. Instead, I think that code examples should be a full representation of the intended usage because developers will just copy and paste them. If the code example is incomplete or inaccurate, that would lead to inconsistencies or even bugs.

Copy link
Contributor

Choose a reason for hiding this comment

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

I see. I don't have a strong opinion on this, so either is fine. However, I was just curious because there was no code example of opting in this prop to the Button component in the Gutenberg documentation.

Comment on lines 7 to 8
padding: $grid-unit-10;
padding-left: $grid-unit-20;
padding: $grid-unit-20;
padding-right: $grid-unit-10;
Copy link
Contributor

Choose a reason for hiding this comment

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

To me, this padding seems a bit large. How about just applying padding: $grid-unit-10?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is the container of the image URL input field. For clarity, the one with lightbox background in the screenshot below. For consistency with the normal link input field UI, the padding must be 16 pixels The only difference is that the image URL input has buttons outside of the input on the right so the right padding must be smaller for a better balance, and it's unchanged: it was 8 pixels also before.

Screenshot 2024-02-05 at 11 57 46

Copy link
Contributor

Choose a reason for hiding this comment

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

This padding also takes effect after the URL input is submitted. To me, this padding seems a bit large. How about leaving the padding at its original value to narrow down the focus for this PR?

image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

To me, the padding looks okay and it's more consistent with the enw UI of the LinkControl which is not surprising because that padding is supposed to be 16 pixels, accordingly to teh mockups and design I've seen.

Screenshots: before, after, and compared to the LinkControl where you can see the spacing is almost identical:

Screenshot 2024-02-08 at 15 04 06

I'm not sure this PR is the right place to over-optimize the layout. This PR has a different scope. Moreover, the UI will be sooner or later replaced with the LinkControl. I'm not against further improvements but if you feel there's room for (unrelated) layout adjustments I'd kindly ask you to please create a separate issue.

Comment on lines 17 to 18
padding: $grid-unit-10;
padding-left: $grid-unit-20;
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a reason why only the left padding is large? How about unifying it with $grid-unit-10?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes there is a reason. For consistency with the normal link URL input field, where the left padding is 16 pixels. Pn trunk, besides the inconsistent focus style, the left padding is cleaerly inconsistent. See screenshot below.
Worth reminding there's some large inconsistency with the padding of form controls throughout the editor UI and that's tracked in #57394 It would be great to give that issue some priority.

Screenshot 2024-02-05 at 12 12 45

Copy link
Contributor

Choose a reason for hiding this comment

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

I see, so how about making the padding on the right side $grid-unit-20 as well? The URL field of the MediaReplaceFlow component has 16px padding applied to the left and right sides.

image

Alternatively, to narrow the scope of this PR, it might be a good idea to revert the padding change and address it in the future with #57394.

Copy link
Contributor Author

@afercia afercia Feb 6, 2024

Choose a reason for hiding this comment

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

Fair enough. I will change the left padding. I'd be more glad to change it if I knew what the correct padding to use is. As I said, there's large inconsistency across the editor and that should be addressed in #57394.
Personally, I don't like the 16 pixels left padding. To better clarify: I don't like left padding when it's uneven with top and bottom padding. I think that's visually unbalanced and doesn't help readability. It feels like an unnecessary 'empty' space. Regarding the right padding, I think it should be addressed in the context of a new issue I created, see #58679

@richtabor
Copy link
Member

@richtabor just in case you have any thoughts here after you've done so much work with link control in general.

Instead of dedicating a lot of time to force this component to look and feel consistent with LinkControl, why not migrate it to actually use LinkControl, as detailed in #50893? That way we get all the benefits of LinkControl, and a consistent linking experience wherever you are in WordPress.

@afercia
Copy link
Contributor Author

afercia commented Feb 5, 2024

@richtabor just in case you have any thoughts here after you've done so much work with link control in general.

Instead of dedicating a lot of time to force this component to look and feel consistent with LinkControl, why not migrate it to actually use LinkControl, as detailed in #50893? That way we get all the benefits of LinkControl, and a consistent linking experience wherever you are in WordPress.

@richtabor sure, that would be welcome. As I mentioned earlier, this PR is about accessibility and only aims to restore a correct focus style. It brings in some additional CSS changes for the sole purpose to not make these input fields look ugly and inconsistent.

Any other change or bigger refactoring should go in a separate issue.

Edit: Oh well I meant that there is an issue, but no PR yet for that refactoring. In the meantime this is a smaller, self-contained improvement that can land in the next WordPress release, while I guess that for a larger refactoring we'll have to wait a little longer.

@afercia
Copy link
Contributor Author

afercia commented Feb 8, 2024

I reported the main pending points in a separate issue at #58840

@t-hamano
Copy link
Contributor

t-hamano commented Feb 8, 2024

My biggest concern is that the final release of Gutenberg, which will be bundled with WP6.5, is just around the corner. Once that version is released, enhancements should not be backportable. We need more time to find the ideal solution. I think we need to find a realistic landing point for WP6.5.

Once again, I would like to mention the problems with the current trunk that I think should at least be fixed in this PR.

Input field in the inline text URL popover has no default border (Regression with #58666):

image

Input field in URL popover opened from block toolbar has no default border:

image

Border layout is incorrect when opening the Link Settings

image

@afercia @richtabor What is your best solution in WP6.5?

@richtabor
Copy link
Member

Input field in the inline text URL popover has no default border (Regression with #58666):

I say we fix this, and..

Input field in URL popover opened from block toolbar has no default border:

add the border here (if not fixed by the above).

If they're separate, that's fine.

@t-hamano
Copy link
Contributor

t-hamano commented Feb 9, 2024

I appreciate the work @afercia has done on this PR. But how about following the title of this PR and simply restoring the default border? All we need to do is make the following changes in trunk:

diff --git a/packages/block-editor/src/components/url-input/style.scss b/packages/block-editor/src/components/url-input/style.scss
index 66f71e8035..f8d84ae43b 100644
--- a/packages/block-editor/src/components/url-input/style.scss
+++ b/packages/block-editor/src/components/url-input/style.scss
@@ -18,10 +18,6 @@ $input-size: 300px;
                margin-left: 0;
                margin-right: 0;
 
-               &:not(:focus) {
-                       border-color: transparent;
-               }
-
                /* Fonts smaller than 16px causes mobile safari to zoom. */
                font-size: $mobile-text-min-font-size;
                @include break-small {

The broken border layout when opening Link Setting is a bug, so it should be possible to backport it even after the release of WP6.5 Beta1 (Of course, I also think it's a bug that the input field doesn't have a default border).

We should be able to refer to the discussion in this PR when improving the layout and size in the future.

@afercia
Copy link
Contributor Author

afercia commented Feb 9, 2024

enhancements should not be backportable.

@t-hamano I'm not sure I understand your point. The lack of consistent focus style (already fixed elsewhere) and the lack of the default border are bugs, not enhancements.

This PR originally contained only the very minimum of CSS changes necessary to make the restored focus style and border not look ugly.

It now contains much more than originally needed because I received feedback during code review to 'how about fixing also this' and 'how about adjusting also that'... I tried to address the received feedback but I see now that maybe I shouldn't have done that. All those unnecessary adjustments made this PR take much longer than needed. I would like to point out that I remarked a few times to please try to keep this PR focused on its original scope. It is now bigger than planned because of the feedback I received, including the feedback I received from you.

Overall, I think this PR fixes a bug and improves the layout. Changes don't need to be perfect. They need to be good enough.

Lastly, I'm not sure the overall process followed in this PR is ideal to make contributors work pleasant and efficient. I know everybody's intent is good, but we actually wasted a lot of time on this PR.

Fair enough, I will revert all the changes except the one that restores the border. It will look ugly.

For the future, I'd kindly ask everyone to be more respectful of other contributors time.

@t-hamano
Copy link
Contributor

t-hamano commented Feb 9, 2024

For the future, I'd kindly ask everyone to be more respectful of other contributors time.

I apologize if my reviews have been inconsistent. However, like all contributors, I have limited time to contribute. I will try to do my best in all reviews within that time.

@afercia afercia force-pushed the fix/image-url-input-focus-style branch from 381f306 to 416da3c Compare February 9, 2024 15:08
@afercia
Copy link
Contributor Author

afercia commented Feb 9, 2024

In the latest commit I reverted all changes except the restored border.

See attached screenshot below with the various states and comparison with the LinkControl UI.

All the small glitches and inconsistencies are now back, including:

  • input height
  • input padding
  • buttons vertical alignment
  • top border of the settings panel
  • padding of the link preview

I would like to note that if this is what the prevalent opinion on this PR really wants, then I'm afraid we have different ideas on what is good to be merged, and what is best for a better user experience.

Screenshot 2024-02-09 at 15 58 59

@t-hamano t-hamano self-requested a review February 9, 2024 15:19
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.

LGTM!

I would like to note that if this is what the prevalent opinion on this PR really wants, then I'm afraid we have different ideas on what is good to be merged, and what is best for a better user experience.

I understand this, of course. After merging this PR, we will still need to continue the discussion.

@afercia
Copy link
Contributor Author

afercia commented Feb 9, 2024

I understand this, of course. After merging this PR, we will still need to continue the discussion.

Sure thanks. For clarity, I'm not against accurate revisions. I would love to see the same level of accuracy for all the pull requests, including the ones that broke the border and focus style.

@afercia afercia merged commit 13fcf4a into trunk Feb 9, 2024
59 checks passed
@afercia afercia deleted the fix/image-url-input-focus-style branch February 9, 2024 16:08
@github-actions github-actions bot added this to the Gutenberg 17.8 milestone Feb 9, 2024
@t-hamano
Copy link
Contributor

This PR is not part of the final Gutenberg version 17.7 that will be bundled with WP6.5, so it must be backported.

This PR fixes the "bug" of missing default focus, and also fixes the "regression" that occurred in #58666, so it should be backportable.

@t-hamano t-hamano added the Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Feb 10, 2024
youknowriad pushed a commit that referenced this pull request Feb 13, 2024
)

* Restore default focus style on image url input field.

* Make buttons use the 32 pixels compat size.

* Remove image link settings top border.

* Decrease left padding to grid-unit-15.

* Restore the default border.

* Revert all changes but the restored border.

Co-authored-by: afercia <[email protected]>
Co-authored-by: carolinan <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: annezazu <[email protected]>
Co-authored-by: richtabor <[email protected]>
@youknowriad
Copy link
Contributor

I just cherry-picked this PR to the backports/beta1 branch to get it included in the next release: f8897cc

@youknowriad youknowriad removed the Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Feb 13, 2024
youknowriad pushed a commit that referenced this pull request Feb 13, 2024
)

* Restore default focus style on image url input field.

* Make buttons use the 32 pixels compat size.

* Remove image link settings top border.

* Decrease left padding to grid-unit-15.

* Restore the default border.

* Revert all changes but the restored border.

Co-authored-by: afercia <[email protected]>
Co-authored-by: carolinan <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: annezazu <[email protected]>
Co-authored-by: richtabor <[email protected]>
youknowriad pushed a commit that referenced this pull request Feb 13, 2024
)

* Restore default focus style on image url input field.

* Make buttons use the 32 pixels compat size.

* Remove image link settings top border.

* Decrease left padding to grid-unit-15.

* Restore the default border.

* Revert all changes but the restored border.

Co-authored-by: afercia <[email protected]>
Co-authored-by: carolinan <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: annezazu <[email protected]>
Co-authored-by: richtabor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Image Affects the Image Block [Feature] Link Editing Link components (LinkControl, URLInput) and integrations (RichText link formatting) [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. [Package] Block editor /packages/block-editor [Package] Format library /packages/format-library [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Image: URL input field insufficient focus style
6 participants