당신은 React 컴포넌트의 스타일링을 현대적이고 강력하게 다루고 싶나요? Emotion 라이브러리를 사용하면 CSS를 React 컴포넌트에 직접 통합하여 사용자 인터페이스를 효과적으로 디자인할 수 있습니다. 이 안내서에서는 Emotion을 사용한 스타일링의 기본 개념을 설명하고 라이브러리를 설치하고 적용하는 방법, 그리고 몇 가지 유용한 팁을 제공합니다.
중요한 Insights
- Emotion은 CSS를 JavaScript에서 작성하고 직관적으로 다룰 수 있도록 합니다.
- Emotion을 사용하면 템플릿 리터럴과 css-Props 사용을 포함한 다양한 스타일링 기술을 활용할 수 있습니다.
- Emotion의 사용으로 스타일 관리가 모듈화되어 재사용성과 가독성이 향상됩니다.
단계별 안내
1. Emotion 설치
먼저 프로젝트에 Emotion을 설치해야 합니다. 터미널을 열고 프로젝트 디렉토리로 이동합니다. 다음 명령어를 실행하여 emotion 라이브러리를 설치합니다:
npm install @emotion/react @emotion/styled

2. CSS importieren
App.jsx 파일에서 Emotion을 사용할 수 있습니다. css 함수를 사용하고 styled 요소를 가져와야 합니다. 파일 맨 위에 다음을 추가합니다:

3. 템플릿 리터럴로 스타일링
Emotion의 css 함수를 사용하여 CSS 변수를 만드세요. 템플릿 리터럴을 사용하여 CSS 규칙을 정의하세요. 다음은 앱을 위한 래퍼 클래스를 작성하는 예시입니다:
이 코드는 flexbox의 사용을 통해 레이아웃 배치를 보장합니다.
4. 스타일 적용
정의된 스타일을 적용하려면 appStyle 변수를 주요 HTML 요소의 className 속성에 전달하십시오. 다음과 같이 보일 것입니다:
5. Styled-Components 사용
css 변수를 사용하는 것 외에도 Emotion과 함께 Styled-Components를 사용할 수 있습니다. Styled-Component를 만들려면 다음 코드를 사용할 수 있습니다:
이렇게 하면 Container가 정의된 스타일을 가진 새로운 CSS 기반 컴포넌트가 됩니다.
6. 미디어 쿼리 삽입
Emotion을 사용하면 CSS에 미디어 쿼리를 쉽게 통합할 수 있습니다. 템플릿 리터럴에 추가하면 됩니다:
이 미디어 쿼리는 화면 너비가 600픽셀보다 작을 때 텍스트 크기를 변경합니다.
7. 호버 효과 적용
또한 CSS 템플릿에서 호버 효과를 정의할 수도 있습니다:
이 CSS 규칙은 마우스를 가져가면 요소의 배경색을 변경합니다.

8. 더 복잡한 스타일 결합
Emotion은 복수의 클래스 이름을 결합할 수 있습니다. 이를 cx 함수를 통해 할 수 있습니다:
const primaryStyle = css color: blue; ;
const secondaryStyle = css color: red; ;
이 경우에는 텍스트가 파란색과 빨간색으로 표시됩니다.
9. 미래 확장성
미래에 큰 프로젝트를 관리할 때 스타일을 다양한 모듈로 구성하는 것이 유용할 수 있습니다. 예를 들어 commonStyles.js를 만들어 기본 스타일을 그곳에서 내보낼 수 있습니다:
이제 flexCenter를 다른 컴포넌트에 삽입할 수 있습니다.
10. 테스트 및 조정
브라우저에서 앱을로드하고 스타일이 올바르게 표시되는지 확인하세요. 다양한 스타일을 실험하고 실시간으로 결과를 확인하세요.
요약
Emotion과 React를 결합하면 현실적인 UI 레이아웃을 만들 수 있습니다. Emotion을 사용하면 JavaScript에서 CSS를 직접 정의하고 효과적으로 관리할 수 있습니다. 또한 화면 밀도의 장점과 로직 및 스타일링 간의 밀접한 통합을 이용할 수 있습니다.
자주하는 질문
Emotion이란 무엇인가요?Emotion은 CSS를 JavaScript에서 사용하고 React 컴포넌트에 대한 포괄적인 스타일링 옵션을 제공하는 라이브러리입니다.
Emotion을 어떻게 설치하나요?프로젝트 디렉토리에서 npm install @emotion/react @emotion/styled 명령을 사용하세요.
Emotion으로 미디어 쿼리를 사용할 수 있나요?네, Emotion Styled 컴포넌트 내에서 직접 템플릿 리터럴에 작성하면 미디어 쿼리를 사용할 수 있습니다.
Emotion은 호버 효과를 지원하나요?네, Emotion을 사용하면 CSS 템플릿에서 &:hover 규칙을 정의하여 호버 효과를 쉽게 추가할 수 있습니다.