"매 Block, Element, Modifier 매 명시적 naming". BEM은 Yandex가 2009년 도입한 CSS naming methodology — .block__element--modifier 형식으로 component scope를 explicit encode하여 specificity war 없이 large CSS codebase를 maintain. 2026 기준 CSS Modules / Tailwind / CSS-in-JS에 밀렸으나 SSR-heavy + design-system context에서 여전히 active.
매 핵심
매 3 entity
Block: 매 standalone component — .button, .menu, .card.
Element: 매 block 내부 part — .card__title, .menu__item.
Modifier: 매 variation/state — .button--primary, .menu__item--active.
Naming rule
.block
.block__element (double underscore)
.block--modifier 또는 .block__element--modifier (double dash)
매 hyphen 매 word separator: .search-form__input--wide.