Use BEM, as opposed to individual utility type classes, otherwise you create a kit where you can’t change the styling for multiple buttons in multiple places at once.
we already use BEM but the problem is that by using it you may end up having different classes for showing the same icon.
Here an example with an icon used in the “team card block” and in the “product card block” with same styling:
.team-card__icon
.product-card_icon
Let’s say I want to use the same icon style, for both block but as I’m using BEM system I need to name them based on the block name, I would end up having multiple classes showing the same thing.
Correct me if I am wrong but the sole purpose of using BEM and understanding it correctly is exactly to make you “free” and use just one style for your use case.
So basically if you want to use one specific style of an icon in two separate places you would end up creating one style and using something like (my long initial name is for better understanding) :
.specificnameofyourchoice-card__icon
and then based on your use case you add that by cascading it into the element of your choice.