표준 CSS 방법론
; CSS 클래스명을 어떻게 지으면 좋을지에 대해 정의
Block + Element + Modifier
.(block 명)__(element 명)--(modifier 명)
ID를 사용하지 않음
Class만을 사용함
명명은 '어떻게 보이는가'가 아니라 '어떤 목적이냐'에 따라
명명 시, white space 구분은 '-' 하나로
재사용 가능한 기능적으로 독립적인 페이지 component
Ex.
<div class="logo">
Block을 구성하는 단위
Ex. (속한 block 명)__(element 명)
<form class="search-form">
<input class="search-form__input"/>
<button class="search-form__button">Search</button>
</form>
Ex.
<form class="search-form">
<div class="search-form__content">
<input class="search-form__input"/>
<button class="search-form__button">Search</button>
</div>
</form>
Cf.
<form class="search-form">
<div class="search-form__content">
<input class="search-form__content__input"/>
<button class="search-form__content__button">Search</button>
</div>
</form>
Block이나 Element의 속성
Ex. (속한 block/element 명)--(modifier 명)
boolean type
Ex. --focused
<ul class="tab">
<li class="tab__item tab__item--focused">탭 01</li>
<li class="tab__item">탭 02</li>
<li class="tab__item">탭 03</li>
</ul>
key-value type
Ex. --theme-normal, --color-gray
<div class="column">
<strong class="title">일반 로그인</strong>
<form class="form-login form-login--theme-normal">
<input type="text" class="form-login__id"/>
<input type="password" class="form-login__password"/>
</form>
</div>
<div class="column">
<strong class="title title--color-gray">VIP 로그인 (준비중)</strong>
<form class="form-login form-login--theme-special form-login--disabled">
<input type="text" class="form-login__id"/>
<input type="password" class="form-login__password"/>
</form>
</div>
클래스 명만으로 마크업 구조를 알기 쉬움
BEM을 따른 마크업 Implementation
https://nykim.work/15