BEM methodology was invented at Yandex to develop sites which should be launched fast and supported for a long time. It helps to create extendable and reusable interface components.
These problems are solved by BEM methodology,
a development approach allowing to achieve flexible and maintainable code.
Common approach for all technologies: HTML, CSS, JavaScript, docs, tests, etc.
Code grows following predefined rules.
Most projects use the same components. Code reuse significantly reduces price and time of development.
Simplicity of updates and scalability increases productivity.
Common terminology provides ability for developers to rapidly switch projects — everything is familiar.
Common rules help to automate process. Code may be partially autogenerated.
Methodology provides language agnostic practices to increase code reliability and reuse.
You can read all the methodology during your morning coffee.
I use BEM notation on everything I build now as its usefulness has proved itself over and over.
Itʼs less confusing than the other methods (i.e. SMACSS) but still provides us the good architecture we want (i.e. OOCSS) and with a recognisable terminology.
Combined with a preprocessor, BEM makes keeping your CSS modular and object-oriented a breeze.
BEM is okay.
Most common misspelling is “SMACCS”. I should just rename it to BEM.
This BEM stuff is next-level shit. Itʼs incredible how methodical it is.
BEM is far more than a HTML/CSS system. Iʼve got no plans to use it all; just adapted some of its ideas.