스타일 경계

스타일 책임은 값의 출처와 재사용 범위로 나눈다

인라인 스타일은 컴포넌트 안에서 계산되는 작은 값에 붙이고, CSS 클래스는 선택자와 재사용 규칙이 필요한 화면 스타일을 맡긴다.

style prop

상태가 곧 스타일 값이 될 때

active, percent, colorMap처럼 JavaScript 값 하나가 곧 CSS 값으로 연결되는 경우에 읽기 쉽다.

코드 위치

const boxStyle = { backgroundColor: isActive ? blue : gray }

className

CSS 기능과 반복 규칙이 필요할 때

hover, media query, transition, 여러 컴포넌트가 공유하는 레이아웃은 CSS 파일에 두는 편이 안정적이다.

코드 위치

<button className={isActive ? "btn active" : "btn"}>

값 출처

props와 state에서 바로 계산되면 인라인 후보가 된다.

선택자

hover나 반응형 조건은 CSS 클래스가 더 자연스럽다.

반복성

같은 패턴이 두 번 이상 나오면 이름 있는 클래스로 옮긴다.

다음 단계

클래스 이름 충돌이 보이면 CSS 모듈로 경계를 좁힌다.