CRA는 파일 명명 규칙(naming convention)을 사용하는 CSS 모듈 방식을 지원합니다. CSS 모듈을 사용 하면 고유한 클래스 이름을 자동으로 생성하여 CSS 적용 범위(scope)를 지정할 수 있습니다. 일반 CSS 파일 불러오기와 구분되는 CSS 모듈 파일을 불러오는 방법은 CSS 파일 이름을 다음과 같이 작성하는 것입니다.
[name].module.css
호출 된 CSS 모듈 파일의 스타일 모듈을 Rect 컴포넌트에서 사용하면 클래스 이름이 다음과 같이 생성됩니다.
Button, Notification 컴포넌트 스타일은 모두 오류 상태를 표시하는 스타일을 가질 수 있습니다. 일반적인 CSS에서는 BEM 표기법을 사용해 .Button--error, .Notification--error 클래스 이름을 사용해 이름 충돌 문제를 해결할 수 있지만, 모듈을 사용하면 클래스 이름이 동일하더라도 문제가 발생하지 않습니다.
예를 들어 다음과 같이 Button, Notification 컴포넌트의 각 스타일 파일에서 동일한 .error 클래스 이름을 사용하지만 이 이름은 글로벌 클래스 이름이 아니므로 아무런 문제가 되지 않습니다.
.error{background-color:#f0011e;}
.error{background-color:#e64a19;}
Button 컴포넌트에서 Button.module.css 파일을 불러온 후 스타일 모듈(JavaScript object)의 클래스 이름 멤버를 사용해 React 요소의 클래스 이름으로 설정합니다.