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

Featured Product: Enable global style #5555

Merged
merged 25 commits into from
Feb 1, 2022
Merged

Conversation

gigitux
Copy link
Contributor

@gigitux gigitux commented Jan 12, 2022

This PR is blocked by #5542

This PR adds support for global style for the Featured Product block.

Now, the user can edit the style for:

  • text-color
  • background-color
  • font-size
  • border-color
  • border-radius
  • border-width

What missing:

Duotone

At this stage, the Duotone feature is implemented with the filter CSS property. The problem is that on this block, the image is implemented like background-image, so we can't use the filter property.

Padding

At this stage, with the current global style API, the padding is applied to the entire wrapper, so I guess that it doesn't make sense enable it.

#4965

Screenshots

image
without global style

image
with global style

Testing

Manual Testing

Check out this branch:

  1. On WordPress 5.9, install and enable the Gutenberg plugin.
  2. Install and enable the Twenty Twenty-Two theme.
  3. Add the Featured Product block to a post.
  4. On the right sidebar, personalize the styles of the block.
  5. Go on the page and check if there are changes.
  6. Reset to default using the Reset button from the different sections.
  7. Go to Dashboard and select Appearance > Editor (beta). On top of the screen, select Home > Browser all templates > Single Post. When the page is loaded, add the block to the page.
  8. On the Editor page click on the Styles icon on the right-top corner.
  9. Verify that the Featured Product block is shown under the Blocks section. Personalize again the block.
  10. Save your changes.
  11. Go on the page created earlier and check if all styles are applied correctly.
  12. Edit your previous post/page again.
  13. Change again the styles.
  14. Save your changes.
  15. Check if these styles have priority over the styles from the Site Editor.

Changelog

Add support for the global style for the Featured Product block.

@rubikuserbot rubikuserbot requested review from a team and Aljullu and removed request for a team January 12, 2022 16:13
@gigitux gigitux marked this pull request as draft January 12, 2022 16:13
@github-actions
Copy link
Contributor

github-actions bot commented Jan 12, 2022

Size Change: +75 B (0%)

Total Size: 816 kB

Filename Size Change
build/all-products.js 35.2 kB -1 B (0%)
build/atomic-block-components/price.js 1.7 kB +1 B (0%)
build/atomic-block-components/stock-indicator--atomic-block-components/summary--atomic-block-components/title.js 451 B -1 B (0%)
build/cart.js 44.6 kB +2 B (0%)
build/checkout.js 47.1 kB +3 B (0%)
build/featured-category.js 8.64 kB +4 B (0%)
build/featured-product.js 9.97 kB +64 B (+1%)
build/mini-cart-contents.js 3.6 kB -2 B (0%)
build/price-filter.js 8.91 kB -1 B (0%)
build/product-on-sale.js 8.36 kB +1 B (0%)
build/reviews-by-category.js 11.9 kB -1 B (0%)
build/single-product.js 10.5 kB -2 B (0%)
build/wc-blocks-editor-style-rtl.css 4.71 kB +5 B (0%)
build/wc-blocks-editor-style.css 4.71 kB +5 B (0%)
build/wc-blocks-style-rtl.css 21.8 kB -1 B (0%)
build/wc-blocks-style.css 21.8 kB -1 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 6.24 kB
build/active-filters.js 7.08 kB
build/all-products-frontend.js 18.7 kB
build/all-reviews.js 8.43 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---8f355022.js 238 B
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.67 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 7.05 kB
build/atomic-block-components/add-to-cart.js 6.62 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 458 B
build/atomic-block-components/category-list.js 460 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/rating-frontend.js 699 B
build/atomic-block-components/rating.js 699 B
build/atomic-block-components/sale-badge-frontend.js 624 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 386 B
build/atomic-block-components/stock-indicator-frontend.js 924 B
build/atomic-block-components/stock-indicator.js 624 B
build/atomic-block-components/summary-frontend.js 1.22 kB
build/atomic-block-components/summary.js 925 B
build/atomic-block-components/tag-list-frontend.js 460 B
build/atomic-block-components/tag-list.js 459 B
build/atomic-block-components/title-frontend.js 1.2 kB
build/atomic-block-components/title.js 932 B
build/attribute-filter-frontend.js 16.4 kB
build/attribute-filter.js 12.6 kB
build/blocks-checkout.js 17.6 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.14 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 767 B
build/cart-blocks/items-frontend.js 299 B
build/cart-blocks/line-items-frontend.js 5.49 kB
build/cart-blocks/order-summary-frontend.js 8.97 kB
build/cart-blocks/totals-frontend.js 321 B
build/cart-frontend.js 45.5 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 887 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 344 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.39 kB
build/checkout-blocks/shipping-address-frontend.js 973 B
build/checkout-blocks/shipping-methods-frontend.js 4.81 kB
build/checkout-blocks/terms-frontend.js 1.22 kB
build/checkout-blocks/totals-frontend.js 324 B
build/checkout-frontend.js 47.5 kB
build/handpicked-products.js 7.33 kB
build/legacy-template.js 2.19 kB
build/mini-cart-component-frontend.js 14.3 kB
build/mini-cart-frontend.js 1.76 kB
build/mini-cart.js 6.46 kB
build/price-filter-frontend.js 12.6 kB
build/price-format.js 1.18 kB
build/product-best-sellers.js 7.54 kB
build/product-categories.js 3.45 kB
build/product-category.js 8.68 kB
build/product-new.js 7.99 kB
build/product-search.js 2.47 kB
build/product-tag.js 8.08 kB
build/product-top-rated.js 7.96 kB
build/products-by-attribute.js 8.79 kB
build/reviews-by-product.js 13 kB
build/reviews-frontend.js 7.36 kB
build/single-product-frontend.js 22.2 kB
build/stock-filter-frontend.js 6.82 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 7.44 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.74 kB
build/wc-blocks-data.js 8.84 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.52 kB
build/wc-blocks-shared-hocs.js 1.14 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 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.61 kB

compressed-size-action

@gigitux gigitux force-pushed the add/4965-featured-product branch from 0dd39a3 to d77e39b Compare January 12, 2022 16:31
@gigitux gigitux self-assigned this Jan 12, 2022
@gigitux gigitux added focus: FSE Work related to prepare WooCommerce for FSE. block: featured product Issues related to the Featured Product block. focus: global styles Issues that involve styles/css/layout structure. type: enhancement The issue is a request for an enhancement. and removed focus: FSE Work related to prepare WooCommerce for FSE. labels Jan 12, 2022
@gigitux gigitux added the status: blocked The issue is blocked from progressing, waiting for another piece of work to be done. label Jan 12, 2022
@gigitux gigitux marked this pull request as ready for review January 12, 2022 16:34
@gigitux gigitux mentioned this pull request Jan 12, 2022
18 tasks
@Aljullu Aljullu requested a review from dinhtungdu January 18, 2022 18:48
Copy link
Contributor

@Aljullu Aljullu left a comment

Choose a reason for hiding this comment

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

This is working great and code looks good, I just left some minor comments below. Heads-up that I skipped reviewing all Featured Categories files, I guess after rebasing the PR they will be removed from the diff.

background-size: cover;
background-position: center center;
width: 100%;
margin: 0 0 1.5em 0;
margin: 0 0 0 0;
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we use the shorthand here?

Suggested change
margin: 0 0 0 0;
margin: 0;

Comment on lines 285 to 288
size={ {
height: '',
width: '',
} }
Copy link
Contributor

Choose a reason for hiding this comment

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

How does that work? I seem to be able to change the height of the block, but not the width. Is that the expected behavior?

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 think that we should not limit the height of the editor.
Now the user can change the font size. If the font size is high, the block should become bigger otherwise the user can't see the entire text.

In accordance with TS type, we need to specify either height and width

Copy link
Contributor

Choose a reason for hiding this comment

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

Now that the font size can't be modified anymore, should we undo this change?

background-size: cover;
background-position: center center;
width: 100%;
margin: 0 0 1.5em 0;
margin: 0 0 0 0;
Copy link
Contributor

Choose a reason for hiding this comment

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

Here too:

Suggested change
margin: 0 0 0 0;
margin: 0;

line-height: 1.25;
margin-bottom: 0;
text-align: center;
color: inherit;
font-size: inherit;
Copy link
Contributor

Choose a reason for hiding this comment

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

Personally, I think the .wc-block-featured-product__title shouldn't have font-size: inherit;. That changes the default design:

trunk This branch
imatge imatge

What do you think?

Copy link
Contributor Author

@gigitux gigitux Jan 31, 2022

Choose a reason for hiding this comment

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

You are right!
This is a bug that affects Featured Category too :( (already merged in the trunk), but this bug is replicable only when the site has a block theme enabled.

The Global Styles API doesn't support different font-size options, so we can:

  • disable the font size option.
  • font size option will impact only the description (it doesn't make sense IMHO).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In the end, I followed the same approach that we adopted in #5682: the user can't customize font-size

…products-block into add/4965-featured-product
@gigitux gigitux force-pushed the add/4965-featured-product branch from e8cc16c to b4ffeed Compare January 31, 2022 14:40
@gigitux gigitux requested a review from Aljullu January 31, 2022 15:18
@gigitux gigitux force-pushed the add/4965-featured-product branch from 82f8d8f to 0261501 Compare January 31, 2022 17:40
Copy link
Contributor

@Aljullu Aljullu left a comment

Choose a reason for hiding this comment

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

I left one last comment, but besides that, everything looks good to me, so pre-approving.

@github-actions github-actions bot added this to the 6.9.0 milestone Feb 1, 2022
@gigitux
Copy link
Contributor Author

gigitux commented Feb 1, 2022

Thanks for the review!
I restored the height for the Featured Category block too (d565abf) since we disabled the font size on the latter.

@gigitux gigitux merged commit 483ab0b into trunk Feb 1, 2022
@gigitux gigitux deleted the add/4965-featured-product branch February 1, 2022 14:01
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: featured product Issues related to the Featured Product block. focus: FSE Work related to prepare WooCommerce for FSE. focus: global styles Issues that involve styles/css/layout structure. status: blocked The issue is blocked from progressing, waiting for another piece of work to be done. type: enhancement The issue is a request for an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants