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

Checkout: Make sure the font size for PMME is smaller than the labels #9925

Open
wants to merge 9 commits into
base: develop
Choose a base branch
from

Conversation

danielmx-dev
Copy link
Contributor

@danielmx-dev danielmx-dev commented Dec 11, 2024

Fixes #9818

Changes proposed in this Pull Request

The size of PMME inside the Payment labels should be smaller than the label that contains the payment method name.

Testing instructions

  • You can use the Storefront theme
  • Activate Klarna, Affirm, and/or Afterpay.
  • Add a product over 50 USD and go to blocks checkout.
  • To compare between before and after, you'll need to clear the transients. You can use the WCPay devtools or use this query:
DELETE FROM `wp_options` WHERE `option_name` LIKE '_transient_wcpay_upe_%' OR `option_name` LIKE '_transient_wcpay_wc_blocks_upe_appearance%';
Before After
image image
  • Go to classic/shortcode checkout and also compare the results
Before After
image image

Regression Testing
No changes in size should be visible for PMME in Product Details and Cart pages.


  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

@danielmx-dev danielmx-dev self-assigned this Dec 11, 2024
@botwoo
Copy link
Collaborator

botwoo commented Dec 11, 2024

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 9925 or branch name fix/change-font-size-pmme-checkout in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 9ba2309
  • Build time: 2024-12-23 14:49:28 UTC

Note: the build is updated when a new commit is pushed to this PR.

Copy link
Contributor

github-actions bot commented Dec 11, 2024

Size Change: +1.47 kB (0%)

Total Size: 1.39 MB

Filename Size Change
release/woocommerce-payments/dist/blocks-checkout.js 55.5 kB +163 B (0%)
release/woocommerce-payments/dist/cart-block.js 17.2 kB +185 B (+1%)
release/woocommerce-payments/dist/checkout.js 33.6 kB +183 B (+1%)
release/woocommerce-payments/dist/express-checkout.js 15.7 kB +205 B (+1%)
release/woocommerce-payments/dist/product-details.js 12.5 kB +180 B (+1%)
release/woocommerce-payments/dist/settings.js 225 kB +180 B (0%)
release/woocommerce-payments/dist/tokenized-express-checkout.js 16.6 kB +184 B (+1%)
release/woocommerce-payments/dist/woopay-express-button.js 25 kB +191 B (+1%)
ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.37 kB
release/woocommerce-payments/assets/css/admin.rtl.css 1.37 kB
release/woocommerce-payments/assets/css/success.css 182 B
release/woocommerce-payments/assets/css/success.rtl.css 184 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 2.63 kB
release/woocommerce-payments/dist/blocks-checkout.css 2.63 kB
release/woocommerce-payments/dist/cart.js 5.73 kB
release/woocommerce-payments/dist/checkout-rtl.css 932 B
release/woocommerce-payments/dist/checkout.css 931 B
release/woocommerce-payments/dist/express-checkout-rtl.css 229 B
release/woocommerce-payments/dist/express-checkout.css 229 B
release/woocommerce-payments/dist/frontend-tracks.js 854 B
release/woocommerce-payments/dist/index-rtl.css 52.7 kB
release/woocommerce-payments/dist/index.css 52.6 kB
release/woocommerce-payments/dist/index.js 303 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.08 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 4.47 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 60.9 kB
release/woocommerce-payments/dist/multi-currency.css 4.47 kB
release/woocommerce-payments/dist/multi-currency.js 57.6 kB
release/woocommerce-payments/dist/order-rtl.css 730 B
release/woocommerce-payments/dist/order.css 730 B
release/woocommerce-payments/dist/order.js 42.4 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.33 kB
release/woocommerce-payments/dist/payment-gateways.css 1.33 kB
release/woocommerce-payments/dist/payment-gateways.js 38.7 kB
release/woocommerce-payments/dist/plugins-page-rtl.css 386 B
release/woocommerce-payments/dist/plugins-page.css 386 B
release/woocommerce-payments/dist/plugins-page.js 20.1 kB
release/woocommerce-payments/dist/product-details-rtl.css 433 B
release/woocommerce-payments/dist/product-details.css 436 B
release/woocommerce-payments/dist/settings-rtl.css 11.7 kB
release/woocommerce-payments/dist/settings.css 11.6 kB
release/woocommerce-payments/dist/subscription-edit-page.js 703 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 20.2 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 730 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 19.3 kB
release/woocommerce-payments/dist/tokenized-express-checkout-rtl.css 229 B
release/woocommerce-payments/dist/tokenized-express-checkout.css 229 B
release/woocommerce-payments/dist/tos-rtl.css 235 B
release/woocommerce-payments/dist/tos.css 235 B
release/woocommerce-payments/dist/tos.js 21.8 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 6.13 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.31 kB
release/woocommerce-payments/dist/woopay.css 4.28 kB
release/woocommerce-payments/dist/woopay.js 71 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 625 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 814 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.46 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/jetpack-script-data.js 767 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.02 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/script-data.js 69 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/babel.config.js 163 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.js 14.2 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.rtl.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.css 10 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.js 28.4 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.rtl.css 10 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.js 280 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.rtl.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.css 625 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.js 333 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.rtl.css 626 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-users.js 424 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 585 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.css 215 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.css 721 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js 412 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js 632 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.04 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 294 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 408 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.59 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 301 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 746 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 574 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 414 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 543 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.4 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.78 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.84 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 545 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.52 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.2 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.7 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 507 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 358 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 428 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 782 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.09 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.26 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 391 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.04 kB

compressed-size-action

@danielmx-dev danielmx-dev marked this pull request as ready for review December 11, 2024 18:59
@danielmx-dev danielmx-dev requested review from a team and FangedParakeet and removed request for a team December 11, 2024 19:00
@danielmx-dev
Copy link
Contributor Author

danielmx-dev commented Dec 11, 2024

@pierorocca Can you please confirm that the adjustment in size looks fine in the screenshots provided? I set the PMME font to be at most 85% of the Payment Method Label size in both blocks and shortcode checkout. Other flows (product details, cart) are unchanged.

Copy link
Contributor

@FangedParakeet FangedParakeet left a comment

Choose a reason for hiding this comment

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

I've left a few small comments for tiny things that could be tweaked. In general, I thought the changes here look pretty tidy: I think the appearance looks perfect on the blocks checkout, though I think the font-size of the PMME text on the shortcode checkout appeared a little small.

Here's what the Figma designs look like.

Figma

Blocks

Figma blocks design
Label: 15px, PMME: 13px, 87% difference

Shortcode

Figma shortcode design
Label: 16px, PMME: 13px, 81% difference

Following the sizes described in the designs, I can see how you arrived at using an 85% multiplier for the font shrinkage. However, here's what I noticed testing across a few themes locally.

Storefront

Blocks

Storefront blocks PMME
Looks fine

Shortcode

Storefront shortcode PMME
Looks a little small

AFAICT, for both blocks and shortcode the target font-size is 16px and the computed PMME font-size becomes 13.6px, but for some reason this appears slightly differently on the shortcode checkout.

Now here come a few of my favourite uglier themes for further comparison.

Twenty Twenty-One

Blocks

2021 Blocks PMME
Looks OK

Here the label text is supposedly 20px and our PMME text becomes 17px.

Shortcode

2021 shortcode PMME
This looks a little too small

The label font here is 16px and our PMME font is 13.6px.

Deli

Blocks

Deli blocks PMME
Looks fine

13.712 px ➡️ 11.6552px

Shortcode

Deli shortcode PMME
This looks OK too actually, though maybe touching on the smaller side

13.712 px ➡️ 11.6552px

The more that I stare at this, I think that the main issue might be the difference in spacing on the shortcode checkout.

One other thing to note that in the designs, while the shortcode text has a greater font-size differential, the shortcode design actually uses a different font from the blocks design. Perhaps this explains the difference in appearance.

Anyways, let me know your thoughts and whether you noticed any of these sizing differences yourself or am I just seeing things? Do we maybe need to use a different PMME_RELATIVE_TEXT_SIZE constant for the blocks and shortcode checkouts? Let me know what you think. 🙏

CC @pierorocca

globalRules.fontSizeBase = ensureFontSizeSmallerThan(
selectors.pmmeRelativeTextSizeSelector,
paragraphRules.fontSize,
PMME_RELATIVE_TEXT_SIZE // The font size of the payment method messaging should be 85% or less of the target font size.
Copy link
Contributor

Choose a reason for hiding this comment

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

Just a thought, but it's a little strange to pass a constant as a function parameter. This function isn't used anywhere else and there isn't yet really an indication that it might be, so this parameter seems a little superfluous, since it will never change.

Perhaps we can remove the parameter and just use this constant inside the body of ensureFontSizeSmallerThan() instead? 🤔

@@ -527,9 +565,18 @@ export const getAppearance = ( elementsLocation, forWooPay = false ) => {
colorBackground: backgroundColor,
colorText: paragraphRules.color,
fontFamily: paragraphRules.fontFamily,
// fontSizeBase: transformFontSize( paragraphRules.fontSize, 0.9 ),
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// fontSizeBase: transformFontSize( paragraphRules.fontSize, 0.9 ),

I presume we don't need this anymore.

@danielmx-dev
Copy link
Contributor Author

danielmx-dev commented Dec 18, 2024

@FangedParakeet I have updated the default size percentage to .875 so it matches the 16px/14px ratio. I also added more selectors in an attempt to match elements using a secondary font size during Checkout as Piero mentioned.

Another thing that I noticed is that even if now both Classic and Blocks checkout were using 14px in the PMME containers, the text looked a bit larger in blocks. I found out that we were not sending the font rules to the container, so it used a font (Helvetica Neue) that looked larger than the actual font (Source Sans Pro).

After fixing that, now the fields look like this (Storefront):

Blocks Shortcode
image image

@pierorocca
Copy link
Contributor

One of the secondary goals here is to have the fonts across the entire checkout form aligned. So if the payments secondary font size ends up being computed differently to the secondary font size in order summary component or elsewhere on Checkout that would be a problem and an inconsistency.

@danielmx-dev
Copy link
Contributor Author

danielmx-dev commented Dec 18, 2024

One of the secondary goals here is to have the fonts across the entire checkout form aligned. So if the payments secondary font size ends up being computed differently to the secondary font size in order summary component or elsewhere on Checkout that would be a problem and an inconsistency.

I added new selectors to target the mentioned secondary font sizes (if available).

For classic checkout I wasn't able to find many alternative sizes, so I chose the #payment .payment_methods li .payment_box fieldset selector, which applies the font-size for this element:
image

For blocks checkout I went with .wc-block-components-checkout-step__description, which should target this element:
image

If those elements are not available it will fallback to other elements in the page that contain text. If the resulting size is too large, then it will reduce the size using the 0.875 ratio.

@pierorocca
Copy link
Contributor

@elizaan36 @ralucaStan could you please sanity check this against pdFofs-2xh-p2? Thank you.

@elizaan36
Copy link

@danielmx-dev Could you share before and after images after this change. Thank you.

@danielmx-dev
Copy link
Contributor Author

@danielmx-dev Could you share before and after images after this change. Thank you.

The Before remains unchanged as the one shown in the description.

Blocks

Before After
image image

Shortcode

Before After
image image

@pierorocca
Copy link
Contributor

Are the save payment methods in this location new? I don't recall seeing them located within the card component before.
image

@pierorocca
Copy link
Contributor

Existing:

image

@danielmx-dev
Copy link
Contributor Author

Are the save payment methods in this location new? I don't recall seeing them located within the card component before. image

This is for Classic/Shortcode Checkout, and it is existing behavior.

@pierorocca
Copy link
Contributor

I see that now thanks Daniel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BNPL PMME text size on blocks and shortcode checkout
5 participants