이번에 프로젝트를 진행하면서 css module
을 사용하여 스타일을 적용하고 있는데요! 간단하게 css module
이 무엇인지 어떻게 사용하는지 정리해보려고 합니다.
css 클래스의 이름을 고유하게 만들어 클래스명이 중첩되는 것을 막아주는 기술
확장자로.moudule.css
을 사용
먼저 아래와 같이 css module
파일을 생성하여 줍니다.
그리고 만들어진 파일에 container
라는 이름의 클래스를 추가해주었습니다. 간단하게 배경색만 지정해주도록 하였습니다.
.container {
background: #dda0dd;
}
그리고 app.js
에서 만들어준 css를 적용해줄거에요! 스타일을 적용하기 위해서는 styles
객체안에 값을 참조하여야 합니다. 아래와 같이 styles.클래스이름
을 사용하여 불러올 수 있어요!
import React from "react";
import styles from "./app.module.css";
function App() {
return (
<div className={styles.container}>
<h1>CSS MODULE</h1>
</div>
);
}
export default App;
클래스 이름에 -
이 포함된 경우에는 styles[`class-name`]
과 같이 사용해야합니다.
.container-title {
color : #db7093;
font-weight: bold;
text-align: center;
}
위와 같이 container-title
이라는 이름의 css 클래스를 사용하기 위해서는
<h1 className={styles[`container-title`]}>CSS MODULE</h1>
다음과 같이 클래스를 적용시켜주어야 합니다.
오늘은 간단하게 css module
을 사용하는 방법을 정리해보았는데요!
이번에 css module
을 사용하여 스타일링을 하는 과정에서 기존에 사용하던 styled-components
와 비교해보았다.
styled-components
를 사용하면 className
을 사용하지 않아도 바로 적용할 수 있다는 점과 props
에 따라 조건을 바로바로 줄 수 있던 점이 좋았는데..!
물론 css module
로 스타일을 적용했을 때 클래스 이름을 고유하게 사용할 수 있다는 장점이 있었지만 아직 잘 모르겠다. 이번에 css-in-css
와 css-in-js
에 대해 다시 한번 공부해봐야겠다.