CSS Modules

클래스 이름 충돌을 파일 단위로 막는 방식

CSS 모듈은 작성한 클래스 이름을 그대로 전역에 흘려보내지 않고, 빌드 단계에서 컴포넌트 파일에 묶인 고유 이름으로 바꿉니다.

React 트랙 색상은 이 다이어그램의 핵심 표시 색으로 사용합니다.

충돌 방지 흐름

1

CSS Module 작성

Button.module.css 안에 button 같은 짧은 이름을 작성합니다.

.button { color: white; }
2

가져오기

CSS 파일을 객체처럼 가져와 컴포넌트 안에서만 참조합니다.

import styles from Button.module.css
3

매핑

JSX는 원래 문자열 대신 styles.button 값을 사용합니다.

className={styles.button}
4

출력

브라우저에는 파일명과 해시가 섞인 고유 클래스가 렌더링됩니다.

Button_button__a1b2c3
CSS Module 적용 신호

컴포넌트별 CSS를 유지하면서 클래스 충돌만 줄이고 싶을 때

클래스 이름 충돌을

여러 조건의 클래스 조합이 많으면 classNames 같은 도구가 편합니다.

구분

앱 전체 규칙과 컴포넌트 내부 규칙을 파일 단계에서 나눕니다.