Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Remove extra padding for cart sidebar #5430

Merged
merged 1 commit into from Jan 13, 2022
Merged

Remove extra padding for cart sidebar #5430

merged 1 commit into from Jan 13, 2022

Conversation

opr
Copy link
Contributor

@opr opr commented Dec 21, 2021

Original PR #5247 by @alexflorisca - I accidentally merged and closed that PR.

When upgrading the cart, there was an extra left and right margin added to the Cart page sidebar. I'm not sure if this was intentional, however it causes a visual regression bug with the points and rewards plugin where the input box and the button don't line up properly (see issue for screenshots).

This fixes #5152

Testing

How to test the changes in this Pull Request:

  1. Install WooCommerce Points and Rewards, go to WooCommerce > Points and Rewards and add points to your user.
  2. Go to WooCommerce > Points and Rewards > Settings and enable "Allow partial redemption"
  3. Go to Cart and see the input to redeem points is showing
  4. The text input should be inline with the "Apply Discount" button

Changelog

Fixed a visual bug (#5152) with the points and rewards plugin

@rubikuserbot rubikuserbot requested review from a team and ralucaStan and removed request for a team December 21, 2021 13:56
@opr
Copy link
Contributor Author

opr commented Dec 21, 2021

Copying comments from previous thread


@senadir Took me a bit of hunting, but I limited that change to this PR #4974 so we need to make sure it won't regress it as well.


@senadir I tested this and failed to see what's trying to fix. A before and after screenshot would help.


@alexflorisca Hi @senadir, thought I'd reply here for posterity and with some more useful details following our slack convo. Feel free to ping me on slack in that thread in response!

Screenshots of the bug can be seen here.

This happens mainly when the cart page has a sidebar.

So it looks like when the cart block sidebar is a certain width (236px), the browser decides there isn't enough real estate and it drops the "Apply Discount" button on the second line. The styles that control the input/button come from the Woocommerce Points And Rewards plugin so we have not control over making the button smaller for example.

My initial approach was to remove the extra margin added in the PR you mentioned. I realise this causes changes to the design and may not be the best solution

As an alternative, we could reduce the margin to 8px each side, or set a min-width of 236px on the sidebar and that would make sure those buttons are on the same line.

However this seems a bit arbitrary to me and i'm aware that we are trying to fix the layout for a third party plugin at a specific width. It's difficult to test the impact this might have on other plugins that add content to the sidebar and there will likely always be a case of misalignment if we change the width of the sidebar.

I guess reverting the extra 16px margin would ensure any third party plugins that were designed before that PR was merged would still display correctly. Otherwise if we want to keep the current design with the extra margin, we could reach out to the developers of the Woocommerce points and rewards plugin, point out the issue and get them to update their plugin.

I'm looking for a bit of guidance here as I'm not sure what the best approach is.

@opr opr assigned opr and alexflorisca and unassigned opr Dec 21, 2021
@opr opr added focus: blocks Specific work involving or impacting how blocks behave. focus: global styles Issues that involve styles/css/layout structure. type: bug The issue/PR concerns a confirmed bug. block: cart Issues related to the cart block. labels Dec 21, 2021
@github-actions
Copy link
Contributor

Size Change: 0 B

Total Size: 819 kB

ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 6.22 kB
build/active-filters.js 7.05 kB
build/all-products-frontend.js 18.6 kB
build/all-products.js 34.4 kB
build/all-reviews.js 8.35 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.76 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 1.48 kB
build/atomic-block-components/add-to-cart-frontend.js 6.87 kB
build/atomic-block-components/add-to-cart.js 6.42 kB
build/atomic-block-components/button-frontend.js 1.48 kB
build/atomic-block-components/button.js 851 B
build/atomic-block-components/category-list-frontend.js 457 B
build/atomic-block-components/category-list.js 458 B
build/atomic-block-components/image-frontend.js 1.37 kB
build/atomic-block-components/image.js 1.05 kB
build/atomic-block-components/price-frontend.js 1.74 kB
build/atomic-block-components/price.js 1.7 kB
build/atomic-block-components/rating-frontend.js 552 B
build/atomic-block-components/rating.js 554 B
build/atomic-block-components/sale-badge-frontend.js 625 B
build/atomic-block-components/sale-badge.js 622 B
build/atomic-block-components/sku-frontend.js 386 B
build/atomic-block-components/sku.js 385 B
build/atomic-block-components/stock-indicator-frontend.js 584 B
build/atomic-block-components/stock-indicator.js 585 B
build/atomic-block-components/summary-frontend.js 872 B
build/atomic-block-components/summary.js 871 B
build/atomic-block-components/tag-list-frontend.js 458 B
build/atomic-block-components/tag-list.js 458 B
build/atomic-block-components/title-frontend.js 1.11 kB
build/atomic-block-components/title.js 1.1 kB
build/attribute-filter-frontend.js 16.3 kB
build/attribute-filter.js 12.6 kB
build/blocks-checkout.js 17.6 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.15 kB
build/cart-blocks/checkout-button-frontend.js 1.14 kB
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/express-payment-frontend.js 4.86 kB
build/cart-blocks/filled-cart-frontend.js 766 B
build/cart-blocks/items-frontend.js 298 B
build/cart-blocks/line-items-frontend.js 5.13 kB
build/cart-blocks/order-summary-frontend.js 8.95 kB
build/cart-blocks/totals-frontend.js 320 B
build/cart-frontend.js 45.5 kB
build/cart.js 44.3 kB
build/checkout-blocks/actions-frontend.js 1.44 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.22 kB
build/checkout-blocks/billing-address-frontend.js 884 B
build/checkout-blocks/contact-information-frontend.js 2.94 kB
build/checkout-blocks/express-payment-frontend.js 5.15 kB
build/checkout-blocks/fields-frontend.js 343 B
build/checkout-blocks/order-note-frontend.js 1.13 kB
build/checkout-blocks/order-summary-frontend.js 11.4 kB
build/checkout-blocks/payment-frontend.js 7.41 kB
build/checkout-blocks/shipping-address-frontend.js 971 B
build/checkout-blocks/shipping-methods-frontend.js 4.81 kB
build/checkout-blocks/terms-frontend.js 1.21 kB
build/checkout-blocks/totals-frontend.js 324 B
build/checkout-frontend.js 47.6 kB
build/checkout.js 47.1 kB
build/featured-category.js 8.55 kB
build/featured-product.js 9.9 kB
build/handpicked-products.js 7.32 kB
build/legacy-template.js 2.08 kB
build/mini-cart-component-frontend.js 14.2 kB
build/mini-cart-contents.js 3.59 kB
build/mini-cart-frontend.js 1.76 kB
build/mini-cart.js 6.46 kB
build/price-filter-frontend.js 12.4 kB
build/price-filter.js 8.6 kB
build/price-format.js 1.18 kB
build/product-best-sellers.js 7.51 kB
build/product-categories.js 3.47 kB
build/product-category.js 8.36 kB
build/product-new.js 7.66 kB
build/product-on-sale.js 8.05 kB
build/product-search.js 2.47 kB
build/product-tag.js 7.76 kB
build/product-top-rated.js 7.63 kB
build/products-by-attribute.js 8.48 kB
build/reviews-by-category.js 11.9 kB
build/reviews-by-product.js 12.9 kB
build/reviews-frontend.js 7.25 kB
build/single-product-frontend.js 22.1 kB
build/single-product.js 10.4 kB
build/stock-filter-frontend.js 6.81 kB
build/stock-filter.js 6.82 kB
build/vendors--atomic-block-components/add-to-cart--cart-blocks/order-summary--checkout-blocks/billing-ad--c5eb4dcd-frontend.js 19 kB
build/vendors--atomic-block-components/add-to-cart-frontend.js 6.82 kB
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--8a3571de-frontend.js 5.71 kB
build/vendors--cart-blocks/line-items--checkout-blocks/order-summary-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/order-summary---eb4d2cec-frontend.js 4.75 kB
build/wc-blocks-data.js 8.84 kB
build/wc-blocks-editor-style-rtl.css 4.47 kB
build/wc-blocks-editor-style.css 4.47 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 949 B
build/wc-blocks-registry.js 2.7 kB
build/wc-blocks-shared-context.js 1.51 kB
build/wc-blocks-shared-hocs.js 1.14 kB
build/wc-blocks-style-rtl.css 21.6 kB
build/wc-blocks-style.css 21.6 kB
build/wc-blocks-vendors-style-rtl.css 1.28 kB
build/wc-blocks-vendors-style.css 1.28 kB
build/wc-blocks-vendors.js 65.5 kB
build/wc-blocks.js 2.96 kB
build/wc-payment-method-bacs.js 820 B
build/wc-payment-method-cheque.js 816 B
build/wc-payment-method-cod.js 912 B
build/wc-payment-method-paypal.js 838 B
build/wc-payment-method-stripe.js 11.1 kB
build/wc-settings.js 2.61 kB

compressed-size-action

Copy link
Contributor

@ralucaStan ralucaStan left a comment

Choose a reason for hiding this comment

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

The visual bug from #5152 does not happen anymore on trunk, so I don't think this fix is necessary. Could you confirm?

@alexflorisca
Copy link
Member

alexflorisca commented Jan 6, 2022

@ralucaStan This is still an issue for me when I run locally with latest version of WC and latest trunk of WC Blocks, using the Storefront theme. @senadir any chance you could take a look at the comment above and see what you think of the solutions I proposed?

@ralucaStan
Copy link
Contributor

I can look into this

@ralucaStan ralucaStan self-requested a review January 13, 2022 14:05
@@ -238,13 +238,6 @@ table.wc-block-cart-items {
}
}

.wc-block-cart__sidebar {
& > div:not(.wc-block-components-totals-wrapper) {
Copy link
Contributor

Choose a reason for hiding this comment

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

In the Cart block, there is no direct child with class .wc-block-components-totals-wrapper in .wc-block-cart__sidebar. But there is in the Checkout block. So I think this is a leftover code somehow.

Copy link
Member

Choose a reason for hiding this comment

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

I can see .wc-block-components-totals-wrapper in both checkout and cart. This solution isn't bullet proof though because at a certain width, the browser will decide to wrap the input element and the button. The ideal solution would be to set flex-wrap: no-wrap on the .wc-points-rewards-redeem-form element but that needs to be done in the points and rewards app.

Copy link
Contributor

Choose a reason for hiding this comment

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

I can see .wc-block-components-totals-wrapper in both checkout and cart.

Yes, that is correct, but in the Cart is never a direct child of wc-block-cart__sidebar, like the selector here targets >. And it is a direct child in Checkout. That's why I think this could have been a common style at one point.

Exactly, setting flex-wrap: nowrap on the .wc-points-rewards-redeem-form fixes the issue if they always want to have them on the same line. With the current code, flex-wrap: wrap they actually say, hey go on another line if there is not enough space. But they don't have any styling in place for this case, like vertically spacing the button and so on.

We can actually open a ticket on their side.

Copy link
Contributor

@ralucaStan ralucaStan left a comment

Choose a reason for hiding this comment

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

I will approve this PR:

  • I think this class is a leftover, I left a comment on the code
  • the issue with the form wrapping is actually in the plugin, because the form has flex-wrap: wrap but no styling for when the form wraps, goes on two lines.
  • I think we need to fix this on our side tho' because the form looks good in Checkout but not in Cart and we need to be consistent. With this change we can also notice that the spacings between the two columns in C & C are now equal.

Ready to 🚢 as far as I'm concerned.
👏 Alex and Thomas

@github-actions github-actions bot added this to the 6.8.0 milestone Jan 13, 2022
@alexflorisca
Copy link
Member

Thanks for your review @ralucaStan , see my inline comment, but essentially this solution as is, only solves half the problem. it works for Checkout and Cart at most screen widths, but if you play around with the browser width, resize it to around 797px wide (on the checkout page), you will see that the button also jumps down on the second line. This is a bit of an edge case, as it only happens when the screen size is between 780px - 800px. Something similar happens for the cart. Without this fix, this margin would be bigger and there would be more chance of displaying the broken layout to users. So it's not ideal, but it's an improvement.

@ralucaStan
Copy link
Contributor

This is a bit of an edge case, as it only happens when the screen size is between 780px - 800px.

I think we can live with this edge case, considering the extension does not optimize the form for edge cases and it's a bug on their side. We can merge this and open a ticket on their repo like I suggest in my comment

@alexflorisca
Copy link
Member

Sounds good, I'll merge it in and open a ticket with them 👍

@alexflorisca alexflorisca merged commit 1014cfe into trunk Jan 13, 2022
@alexflorisca alexflorisca deleted the fix/cart-margin branch January 13, 2022 17:10
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: cart Issues related to the cart block. focus: blocks Specific work involving or impacting how blocks behave. focus: global styles Issues that involve styles/css/layout structure. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cart block: Visual bug for WooCommerce Points and Rewards
3 participants