I can tell we&#x27;re aligned regarding CSS architecture - and also regarding Angular. :)<p>The style guide you linked is very clear and concise in explaining why BEM is great without being a panacea - it&#x27;s ugly, but it&#x27;s simple, predictable and solves many of the issues which arise with CSS nature (e.g. everything in CSS is global). I also liked the emphasis on having BEM as a naming convention, no more.<p>Regarding how you introduce BEM, I would only:<p>* Reinforce the idea that a BEM compliant worflow would typically allow developers to change mark-up without having to look up stylesheets and vice-versa;<p>* Reinforce how much it would typically reduce side-effects!<p>I&#x27;d also give a few words on the topic of using the preprocessor (mixins, extends and, obviously, variables) to achieve DRYness.<p>* My argument to my team was to have readable semantic and obvious classnames (without style references in the name, e.g. no .blue-widget) which are &quot;composed&quot; via SASS (and SASS constructs might have style references in the name e.g. my-button @extends %blue-button);<p>* The other argument, and the one I actually believe `<i>philosophically</i> is that this allows you <i>transfer the object-composition duty from the browser to the build process</i>. It just makes sense to me: why have thousands of clients composing styles (e.g. button class=&quot;btn btn-lg btn-primary&quot;) when this is predictable ahead-of-time (button class=&quot;my-btn&quot;, where .my-btn = @make-btn(lg, primary)). This gives you performance and, as I said above, the possibility to have readable class names - I don&#x27;t exactly know what &quot;btn btn-lg btn-primary&quot; might be, but &quot;btn-login&quot; is quite obvious.<p>In your contributing guidelines I noticed you have @extends with classes (e.g.  @extend .mint-list). I use placeholders instead of classes to avoid side effects which are difficult to predict (even more so when you have a team with different levels of expertise). Here&#x27;s why: <a href="http:&#x2F;&#x2F;csswizardry.com&#x2F;2014&#x2F;01&#x2F;extending-silent-classes-in-sass&#x2F;" rel="nofollow">http:&#x2F;&#x2F;csswizardry.com&#x2F;2014&#x2F;01&#x2F;extending-silent-classes-in-s...</a>.<p>I&#x27;d also reinforce the notion - as less experienced developers do this quite often - of the different concerns of HTML (structure) and CSS (style). Newcomers to HTML seem to believe that HTML is a GUI mark-up language and, ergo, it shouldn&#x27;t be problematic to use it as a presentational layer. As a practical example, &quot;newcomers&quot; usually have HTML elements only for presentational purposes, such as &lt;div class=&quot;shadow&quot;&gt; or a list item used as a divider between other list items. I usually spend a few minutes of my time explaining how to avoid this using e.g. :before and&#x2F;or :after.