BEM — Block Element Modifier is a methodology that helps you to create resuable components and code sharing in front-end development


To use BEM you inly need to employ BEM's naming convention.


Independent blocks and CSS selectors make your code reusable and modular.


Using BEM, methodologies and tools can be recomposed and configured the way you like.


BEM is a highly useful, powerful, and simple naming convention that makes your front-end code easier to read and understand, easier to work with, easier to scale, more robust and explicit, and a lot more strict.


The BEM approach ensures that everyone who participates in the development of a website works with a single codebase and speaks the same language. Using BEM’s proper naming convention will better prepare you for design changes made to your website.


— Why do I need CSS classes for block instead of using semantic custom tags?

— May I combine a tag and a class in a selector, such as button.button?

Look for answers in the awesome FAQ list!

Companies using BEM