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

Make Notice component legible in dark themes #8278

Merged
merged 5 commits into from
Jan 25, 2023
Merged

Conversation

albarin
Copy link
Contributor

@albarin albarin commented Jan 24, 2023

The Notice component text is not legible in dark themes since the background color is light and the text color is too. With this change, we are setting the color always to black for our blocks, so it's always legible.

Fixes #8265 (comment)

Screenshots

Before After
Screenshot 2023-01-24 at 10 06 22 Screenshot 2023-01-24 at 10 06 08

Testing

User-Facing Testing

  1. Install a theme with a dark background (ie: theme TT3 with Aubergine style or theme Zaino).
  2. Go to Appearance > Editor and edit the Product Catalog template.
  3. Add the Store Notices block.
  4. Make sure the notice text is black and legible.

WooCommerce Visibility

  • WooCommerce Core
  • Feature plugin
  • Experimental

Changelog

Fix: Adjust Store Notices text color in dark themes.

The Notice component text is not legible in dark themes since the background color
is light and and the text color is too. With this change we are setting the color
always to black for our blocks, so it's always legible.
@albarin albarin added the focus: global styles Issues that involve styles/css/layout structure. label Jan 24, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Jan 24, 2023

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-8278.zip

Script Dependencies Report

There is no changed script dependency between this branch and trunk.

This comment was automatically generated by the ./github/compare-assets action.

TypeScript Errors Report

  • Files with errors: 496
  • Total errors: 2253

🎉 🎉 This PR does not introduce new TS errors.

comments-aggregator

@albarin albarin requested a review from Aljullu January 24, 2023 09:10
@albarin
Copy link
Contributor Author

albarin commented Jan 24, 2023

@Aljullu do you think this a good place to put styles affecting all blocks?

@albarin albarin marked this pull request as ready for review January 24, 2023 09:11
@woocommercebot woocommercebot requested a review from a team January 24, 2023 09:11
@albarin albarin removed the request for review from a team January 24, 2023 09:11
@github-actions
Copy link
Contributor

github-actions bot commented Jan 24, 2023

Size Change: +130 B (0%)

Total Size: 1.08 MB

Filename Size Change
build/all-products.js 33.5 kB +2 B (0%)
build/all-reviews.js 7.66 kB -2 B (0%)
build/attribute-filter.js 12.4 kB -3 B (0%)
build/cart.js 47.5 kB -2 B (0%)
build/catalog-sorting.js 1.71 kB -1 B (0%)
build/checkout.js 43.3 kB +5 B (0%)
build/featured-product.js 13.4 kB -1 B (0%)
build/filter-wrapper.js 2.39 kB -2 B (0%)
build/handpicked-products.js 7.24 kB -1 B (0%)
build/legacy-template.js 2.87 kB -2 B (0%)
build/mini-cart-contents.js 16.9 kB -5 B (0%)
build/mini-cart.js 4.29 kB -1 B (0%)
build/price-filter.js 8.4 kB +2 B (0%)
build/product-categories.js 2.36 kB +1 B (0%)
build/product-new.js 7.6 kB +1 B (0%)
build/product-on-sale.js 7.92 kB -3 B (0%)
build/product-query.js 5.99 kB -3 B (0%)
build/product-results-count.js 1.67 kB -2 B (0%)
build/product-tag.js 8.08 kB +2 B (0%)
build/product-title.js 3.31 kB +1 B (0%)
build/product-top-rated.js 7.84 kB +1 B (0%)
build/products-by-attribute.js 8.52 kB -1 B (0%)
build/rating-filter.js 7.45 kB +10 B (0%)
build/reviews-by-category.js 11.2 kB -2 B (0%)
build/reviews-by-product.js 12.3 kB -2 B (0%)
build/single-product.js 9.99 kB +1 B (0%)
build/stock-filter.js 8.18 kB +1 B (0%)
build/store-notices.js 1.65 kB +10 B (+1%)
build/wc-blocks-editor-style-rtl.css 5.47 kB +59 B (+1%)
build/wc-blocks-editor-style.css 5.47 kB +58 B (+1%)
build/wc-blocks-vendors.js 64.2 kB +9 B (0%)
ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 7.99 kB
build/active-filters-wrapper-frontend.js 6.01 kB
build/active-filters.js 7.31 kB
build/all-products-frontend.js 11.6 kB
build/attribute-filter-frontend.js 22.9 kB
build/attribute-filter-wrapper-frontend.js 7.68 kB
build/blocks-checkout.js 41 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.38 kB
build/cart-blocks/cart-cross-sells-frontend.js 253 B
build/cart-blocks/cart-cross-sells-products-frontend.js 9.64 kB
build/cart-blocks/cart-express-payment--checkout-blocks/express-payment-frontend.js 5.08 kB
build/cart-blocks/cart-express-payment-frontend.js 720 B
build/cart-blocks/cart-items-frontend.js 299 B
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.34 kB
build/cart-blocks/cart-line-items-frontend.js 1.07 kB
build/cart-blocks/cart-order-summary-frontend.js 1.25 kB
build/cart-blocks/cart-totals-frontend.js 321 B
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/filled-cart-frontend.js 656 B
build/cart-blocks/order-summary-coupon-form-frontend.js 1.69 kB
build/cart-blocks/order-summary-discount-frontend.js 2.12 kB
build/cart-blocks/order-summary-fee-frontend.js 274 B
build/cart-blocks/order-summary-heading-frontend.js 456 B
build/cart-blocks/order-summary-shipping-frontend.js 14.9 kB
build/cart-blocks/order-summary-subtotal-frontend.js 274 B
build/cart-blocks/order-summary-taxes-frontend.js 435 B
build/cart-blocks/proceed-to-checkout-frontend.js 1.24 kB
build/cart-frontend.js 28.5 kB
build/checkout-blocks/actions-frontend.js 1.85 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 3.92 kB
build/checkout-blocks/billing-address-frontend.js 1.16 kB
build/checkout-blocks/contact-information-frontend.js 2.05 kB
build/checkout-blocks/express-payment-frontend.js 1.13 kB
build/checkout-blocks/fields-frontend.js 344 B
build/checkout-blocks/order-note-frontend.js 1.14 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.68 kB
build/checkout-blocks/order-summary-coupon-form-frontend.js 1.85 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.29 kB
build/checkout-blocks/order-summary-fee-frontend.js 277 B
build/checkout-blocks/order-summary-frontend.js 1.25 kB
build/checkout-blocks/order-summary-shipping-frontend.js 14.9 kB
build/checkout-blocks/order-summary-subtotal-frontend.js 275 B
build/checkout-blocks/order-summary-taxes-frontend.js 435 B
build/checkout-blocks/payment-frontend.js 8.32 kB
build/checkout-blocks/pickup-options-frontend.js 2.81 kB
build/checkout-blocks/shipping-address-frontend.js 1.12 kB
build/checkout-blocks/shipping-method-frontend.js 2.27 kB
build/checkout-blocks/shipping-methods-frontend.js 4.83 kB
build/checkout-blocks/terms-frontend.js 1.56 kB
build/checkout-blocks/totals-frontend.js 324 B
build/checkout-frontend.js 30.1 kB
build/customer-account.js 3.08 kB
build/featured-category.js 13.1 kB
build/filter-wrapper-frontend.js 14.1 kB
build/general-style-rtl.css 1.31 kB
build/general-style.css 1.31 kB
build/mini-cart-component-frontend.js 27.7 kB
build/mini-cart-contents-block/empty-cart-frontend.js 366 B
build/mini-cart-contents-block/filled-cart-frontend.js 268 B
build/mini-cart-contents-block/footer-frontend.js 2.82 kB
build/mini-cart-contents-block/items-frontend.js 237 B
build/mini-cart-contents-block/products-table-frontend.js 590 B
build/mini-cart-contents-block/shopping-button-frontend.js 313 B
build/mini-cart-contents-block/title-frontend.js 367 B
build/mini-cart-frontend.js 1.88 kB
build/price-filter-frontend.js 13.9 kB
build/price-filter-wrapper-frontend.js 7.01 kB
build/price-format.js 1.19 kB
build/product-add-to-cart--product-button--product-category-list--product-image--product-price--product-r--a0326d00.js 226 B
build/product-add-to-cart--product-button--product-image--product-rating--product-title.js 151 B
build/product-add-to-cart-frontend.js 6.71 kB
build/product-add-to-cart.js 8.47 kB
build/product-best-sellers.js 7.61 kB
build/product-button--product-category-list--product-image--product-price--product-rating--product-sale-b--e17c7c01.js 439 B
build/product-button--product-image--product-price--product-rating--product-sale-badge--product-title.js 257 B
build/product-button-frontend.js 2.14 kB
build/product-button.js 3.84 kB
build/product-category-list-frontend.js 1.14 kB
build/product-category-list.js 503 B
build/product-category.js 8.6 kB
build/product-image-frontend.js 2.14 kB
build/product-image.js 3.94 kB
build/product-price-frontend.js 2.23 kB
build/product-price.js 1.58 kB
build/product-rating-frontend.js 1.57 kB
build/product-rating.js 920 B
build/product-sale-badge-frontend.js 1.37 kB
build/product-sale-badge.js 814 B
build/product-search.js 2.61 kB
build/product-sku-frontend.js 629 B
build/product-sku.js 377 B
build/product-stock-indicator-frontend.js 1.26 kB
build/product-stock-indicator.js 645 B
build/product-summary-frontend.js 1.53 kB
build/product-summary.js 920 B
build/product-tag-list-frontend.js 1.13 kB
build/product-tag-list.js 496 B
build/product-title-frontend.js 1.57 kB
build/rating-filter-frontend.js 21.4 kB
build/rating-filter-wrapper-frontend.js 6.21 kB
build/reviews-frontend.js 7.14 kB
build/single-product-frontend.js 17.7 kB
build/stock-filter-frontend.js 21.1 kB
build/stock-filter-wrapper-frontend.js 5.87 kB
build/vendors--attribute-filter-wrapper--cart-blocks/cart-cross-sells-products--cart-blocks/order-summary--82e4ed06-frontend.js 6.86 kB
build/vendors--attribute-filter-wrapper--rating-filter-wrapper--stock-filter-wrapper-frontend.js 7.7 kB
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/cart-line-items--cart-blocks/cart-order--3c5fe802-frontend.js 5.26 kB
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/order-summary-shipping--checkout-blocks--18f9376a-frontend.js 19.4 kB
build/vendors--cart-blocks/cart-cross-sells-products--product-add-to-cart-frontend.js 7.53 kB
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--5b8feb0b-frontend.js 4.83 kB
build/vendors--checkout-blocks/shipping-method-frontend.js 12 kB
build/vendors--checkout-blocks/shipping-methods-frontend.js 9.48 kB
build/wc-blocks-data.js 22 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 933 B
build/wc-blocks-registry.js 3.16 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.73 kB
build/wc-blocks-style-rtl.css 25.7 kB
build/wc-blocks-style.css 25.6 kB
build/wc-blocks-vendors-style-rtl.css 1.96 kB
build/wc-blocks-vendors-style.css 1.96 kB
build/wc-blocks.js 2.63 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.6 kB
build/wc-shipping-method-pickup-location.js 29.7 kB

compressed-size-action

@albarin albarin added the type: bug The issue/PR concerns a confirmed bug. label Jan 24, 2023
@Aljullu
Copy link
Contributor

Aljullu commented Jan 24, 2023

@Aljullu do you think this a good place to put styles affecting all blocks?

@albarin maybe /assets/css/editor.scss might be a better one in this case? These notices are only displayed in the editor, right?

At the same time, I wonder if we should be more specific and only target notices inside our blocks. I don't think we have any generic class, but we could write the individual block class name:

.wc-block-attribute-filter .components-notice__content,
.wc-block-store-notices .components-notice__content {
	...
}

Or maybe, even better, adding these styles directly in the block's editor.scss, ie: /assets/js/blocks/attribute-filter/editor.scss.

What do you think?

@albarin
Copy link
Contributor Author

albarin commented Jan 24, 2023

@Aljullu

@albarin maybe /assets/css/editor.scss might be a better one in this case? These notices are only displayed in the editor, right?

True.

At the same time, I wonder if we should be more specific and only target notices inside our blocks. I don't think we have any generic class, but we could write the individual block class name:

.wc-block-attribute-filter .components-notice__content,
.wc-block-store-notices .components-notice__content {
	...
}

I thought about that, but since I couldn't find that generic class for our blocks I didn't do it.

Or maybe, even better, adding these styles directly in the block's editor.scss, ie: /assets/js/blocks/attribute-filter/editor.scss.

What do you think?

I think that a good option, the only thing I see with it and with the prev one is that it is not future-proof. We'll have the same problem every time we use again the Notice component, but maybe this is not that important, it's not something that we use very very frequently. 🤔

@Aljullu
Copy link
Contributor

Aljullu commented Jan 24, 2023

I think that a good option, the only thing I see with it and with the prev one is that it is not future-proof. We'll have the same problem every time we use again the Notice component, but maybe this is not that important, it's not something that we use very very frequently. 🤔

These are my concerns as well, but agree with you that we don't use notices in blocks very frequently, so IMO it should be ok to have this CSS snippet in each block that uses notices in the editor.

@albarin
Copy link
Contributor Author

albarin commented Jan 24, 2023

@Aljullu I've reviewed one by one all the Notices and turns out most of them are shown on the settings sidebar (not affected by the theme), so I've only added the style for the ones showing on the editor side.

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.

For all files which are new, you will need to add import './editor.scss' in the edit.tsx file.

Something like this:

https://github.com/woocommerce/woocommerce-blocks/blob/trunk/assets/js/blocks/attribute-filter/edit.tsx#L37

Otherwise, it doesn't seem to work for me.

@albarin
Copy link
Contributor Author

albarin commented Jan 25, 2023

For all files which are new, you will need to add import './editor.scss' in the edit.tsx file.

Something like this:

https://github.com/woocommerce/woocommerce-blocks/blob/trunk/assets/js/blocks/attribute-filter/edit.tsx#L37

Otherwise, it doesn't seem to work for me.

Weird, I don't understand why it was working for me, I've added them, and removed one file that I realised was not necessary.

@albarin albarin requested a review from Aljullu January 25, 2023 09: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.

I only tested the Filter by Attribute and the Store Notcies blocks, but both of them work well. 🚢

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
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.

Store Notices and Catalog Sorting blocks don't work well in dark themes
2 participants