Created by Benjamim Sonntag for a siosLIFE talk & roll
Every web developer meets the same problems.
It was invented to develop sites which should be
launched fast and supported for a long time.
It helps to create extendable and reusable
interface components.
BEM provides rules to...
...achieve code consistency.
BEM provides rules to...
...grow and scale your codebase.
BEM provides rules to...
...increase productivity.
BEM provides rules to...
...improve team work.
| B | Block |
| E | Element |
| M | Modifier |
A functionally independent component.
Being independent allows for their re-use.
A block encapsulates behavior, layout and style.
Block features:
An example:
Blocks can be nested inside any other blocks.
Blocks can be moved around on a page,
moved between pages or projects.
Blocks can be re-used multiple times.
A constituent part of a block that can't be used outside of it.
Element features:
An example:
Defines the appearance and behavior of a block or element.
A block is changed by adding or removing modifiers.
This frees you from unneeded copying and pasting.
An example:
.Button.Button-icon.Button--primary
.Button.is-active
by Brad Frost
“Atomic design is a methodology composed of five distinct stages working together to create interface design systems in a more deliberate and hierarchical manner.”