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

Featured Category block: add support for global style #5542

Merged
merged 13 commits into from
Jan 26, 2022

Conversation

gigitux
Copy link
Contributor

@gigitux gigitux commented Jan 10, 2022

This PR is blocked by #5515

This PR adds support for global style for the Featured Category 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 Category 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 Category 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 Category block.

@gigitux gigitux added type: enhancement The issue is a request for an enhancement. block: featured category Issues related to the Featured Category block, focus: global styles Issues that involve styles/css/layout structure. focus: FSE Work related to prepare WooCommerce for FSE. labels Jan 10, 2022
@gigitux gigitux self-assigned this Jan 10, 2022
@gigitux gigitux mentioned this pull request Jan 10, 2022
18 tasks
@gigitux gigitux force-pushed the add/4965-featured-category branch from 0a96add to 3dc70d9 Compare January 11, 2022 09:00
Featured Category block: Add support for global style
@gigitux gigitux force-pushed the add/4965-featured-category branch 2 times, most recently from 5892079 to 1826f91 Compare January 11, 2022 11:19
@gigitux gigitux marked this pull request as draft January 11, 2022 17:48
@gigitux gigitux force-pushed the add/4965-featured-category branch 2 times, most recently from 98059dc to 6ea99a2 Compare January 12, 2022 15:40
@github-actions
Copy link
Contributor

github-actions bot commented Jan 12, 2022

Size Change: +895 B (0%)

Total Size: 816 kB

Filename Size Change
build/active-filters-frontend.js 6.24 kB +24 B (0%)
build/all-products-frontend.js 18.7 kB +19 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 452 B +1 B (0%)
build/atomic-block-components/title.js 931 B -1 B (0%)
build/attribute-filter-frontend.js 16.4 kB +19 B (0%)
build/cart-blocks/line-items-frontend.js 5.49 kB -1 B (0%)
build/cart-blocks/order-summary-frontend.js 8.97 kB +1 B (0%)
build/cart-frontend.js 45.5 kB +74 B (0%)
build/cart.js 44.6 kB +22 B (0%)
build/checkout-blocks/contact-information-frontend.js 2.94 kB +1 B (0%)
build/checkout-blocks/order-summary-frontend.js 11.4 kB -1 B (0%)
build/checkout-blocks/payment-frontend.js 7.39 kB -1 B (0%)
build/checkout-blocks/terms-frontend.js 1.22 kB +1 B (0%)
build/checkout-frontend.js 47.6 kB +63 B (0%)
build/checkout.js 47.1 kB +22 B (0%)
build/featured-category.js 8.66 kB +110 B (+1%)
build/mini-cart-component-frontend.js 14.3 kB +90 B (+1%)
build/mini-cart-contents.js 3.59 kB +4 B (0%)
build/mini-cart.js 6.46 kB +2 B (0%)
build/price-filter-frontend.js 12.6 kB +14 B (0%)
build/price-filter.js 8.91 kB +1 B (0%)
build/product-best-sellers.js 7.54 kB +1 B (0%)
build/product-categories.js 3.46 kB +2 B (0%)
build/product-category.js 8.69 kB +1 B (0%)
build/product-new.js 7.99 kB +1 B (0%)
build/product-on-sale.js 8.36 kB -1 B (0%)
build/product-top-rated.js 7.96 kB +1 B (0%)
build/reviews-by-category.js 11.9 kB -1 B (0%)
build/reviews-frontend.js 7.32 kB +28 B (0%)
build/single-product-frontend.js 22.2 kB +105 B (0%)
build/single-product.js 10.5 kB +29 B (0%)
build/stock-filter-frontend.js 6.82 kB +9 B (0%)
build/wc-blocks-editor-style-rtl.css 4.68 kB +62 B (+1%)
build/wc-blocks-editor-style.css 4.68 kB +62 B (+1%)
build/wc-blocks-style-rtl.css 21.8 kB +67 B (0%)
build/wc-blocks-style.css 21.8 kB +64 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters.js 7.08 kB
build/all-products.js 35.2 kB
build/all-reviews.js 8.39 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.61 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 700 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 626 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/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/totals-frontend.js 321 B
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/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/shipping-address-frontend.js 973 B
build/checkout-blocks/shipping-methods-frontend.js 4.81 kB
build/checkout-blocks/totals-frontend.js 324 B
build/featured-product.js 9.9 kB
build/handpicked-products.js 7.33 kB
build/legacy-template.js 2.35 kB
build/mini-cart-frontend.js 1.76 kB
build/price-format.js 1.18 kB
build/product-search.js 2.47 kB
build/product-tag.js 8.08 kB
build/products-by-attribute.js 8.79 kB
build/reviews-by-product.js 12.9 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-category branch from 6ea99a2 to 201d8ed Compare January 12, 2022 15:58
@@ -325,7 +308,10 @@ const FeaturedCategory = ( {
return (
<ResizableBox
className={ classes }
size={ { height } }
size={ {
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 in 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.

@gigitux gigitux force-pushed the add/4965-featured-category branch from 201d8ed to 126e9b5 Compare January 12, 2022 16:05
…products-block into add/4965-featured-category
@gigitux gigitux force-pushed the add/4965-featured-category branch from 126e9b5 to c2cab62 Compare January 12, 2022 16:06
@gigitux gigitux marked this pull request as ready for review January 12, 2022 16:09
@gigitux gigitux requested a review from Aljullu January 12, 2022 16:35
@gigitux gigitux added the status: blocker Used on issues or pulls that block work from being released. label Jan 13, 2022
@gigitux gigitux removed the status: blocker Used on issues or pulls that block work from being released. label Jan 17, 2022
@Aljullu Aljullu requested a review from dinhtungdu January 18, 2022 18:48
Copy link
Member

@dinhtungdu dinhtungdu left a comment

Choose a reason for hiding this comment

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

@gigitux Overall, the block style and global style are working as expected. But there are some things we can improve:


The background is different between editors (both Blocks and Site Editors) and the front-end. In the Blocks Editor, changing the background Opacity doesn't update the style of the preview block.

Screenshot Screen Shot 2022-01-19 at 21 58 07

When the border-radius is set, there are small curves at four corners of the block. This happens because we set the border-radius for both wrapper and overlay elements.

Screenshot Screen Shot 2022-01-19 at 21 55 56

The preset font sizes in the editors don't match corresponding ones on the front-end. Look like this issue occurs in other blocks, if so we can address it in a separated PR.

Screenshot Screen Shot 2022-01-20 at 00 00 43

@gigitux gigitux force-pushed the add/4965-featured-category branch from 78846a5 to 3effda7 Compare January 21, 2022 16:01
@gigitux
Copy link
Contributor Author

gigitux commented Jan 21, 2022

Thanks for the review!

I fixed the issue about the opacity and border-radius 👍

For the font-size, I have always the same value (I'm using Edge):

image
frontend

image
FSE Editor

@gigitux gigitux requested a review from dinhtungdu January 21, 2022 16:25
Comment on lines 42 to 45
color: {
text: true,
background: true,
},
Copy link
Member

Choose a reason for hiding this comment

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

Background and text color are enabled by default so this can be shortened like this:

Suggested change
color: {
text: true,
background: true,
},
color: true,

Copy link
Member

@dinhtungdu dinhtungdu 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 LGTM now! 🎉 I left some minor comments but pre-approving this PR so you can merge it after addressing those comments.

Comment on lines 2 to 5
border-color: transparent;
overflow: hidden;
color: #fff;
background-color: #000;
Copy link
Member

Choose a reason for hiding this comment

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

Can we order CSS properties alphabetically? It's easier to maintain.

@github-actions github-actions bot added this to the 6.9.0 milestone Jan 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: featured category Issues related to the Featured Category block, focus: FSE Work related to prepare WooCommerce for FSE. focus: global styles Issues that involve styles/css/layout structure. 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