-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Button Block: Apply Stretch Styles Correctly #64770
Conversation
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 Unlinked AccountsThe following contributors have not linked their GitHub and WordPress.org accounts: @joecsmalley. Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases. If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
05cb5d5
to
e0f6a91
Compare
Size Change: +54 B (0%) Total Size: 1.81 MB
ℹ️ View Unchanged
|
This seems good to me, thanks for the careful research and attention. In case @tellthemachines has a chance to look, I'd defer to her! Otherwise 👍 👍 |
e0f6a91
to
7683a26
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just gave this a test run and it LGTM! Tried Buttons block both standalone and inside Navigation block and nothing seems broken, plus stretching now works as expected in both vertical and horizontal orientation.
Thanks for the review! |
Fixes #52533
What?
This PR ensures that buttons are stretched correctly when "Stretch to fill" or "Stretch items" are applied.
Why?
When "Stretch to fill" or "Stretch items" is applied to the Buttons block, its child element (
.wp-block-button
) is stretched by thealign-items: stretch
style. However, the actual button is the.wp-block-button__link
element inside it, and since this has thedisplay: inline-block
style, there is no visible change.As I've researched in this comment, it appears that the stretch option for the Button block never worked when it was first implemented.
How?
Make the actual button height/width 100%. This will make the actual button the same size as the flex layout child.
However, simply changing the height or width to 100% will not center the content inside when buttons of different heights are lined up:
I first thought of applying
display: inline-flex
instead ofinline-block
to center the content, but if it containsbr
tags or inline formatting, it will cause an unintended layout:So I left it as
inline-block
and appliedalign-content:center
. This CSS is now defined as available for block containers other than flex/grid layouts, and should be supported in major browsers (W3C link).Testing Instructions
Screenshots or screencast
Horizontal Layout
Vertical Layout