Facebook이 사용자 인터페이스에서 최적화된 atomic CSS 스타일을 정의할 수 있도록 만든 JavaScript 스타일링 라이브러리입니다.
emotion-js/emotion
문자열 또는 객체 스타일과 예측 가능한 스타일 조합을 지원하는 고성능의 유연한 CSS-in-JS 라이브러리입니다.
- 스타
- 18,018
- 포크
- 1,137
- 열린 이슈
- 399
- 마지막 커밋
- 2개월 전
어떤 프로젝트인가요?
Emotion을 사용하면 문자열이나 객체 문법으로 JavaScript에서 컴포넌트 스타일을 작성할 수 있습니다. 스타일은 런타임에 생성되어 CSS로 적용되므로, 별도의 스타일시트를 관리하지 않고도 props와 state에 따라 모양을 바꿀 수 있습니다.
스타일 조합 모델은 CSS 명시도 충돌을 피하도록 설계되어 있어 여러 스타일을 결합해도 예측 가능하게 동작합니다. Emotion은 디버깅을 위한 소스 맵과 컴포넌트 라벨을 제공하며, 프로덕션 빌드에서는 생성된 스타일을 적극적으로 캐싱합니다.
주요 패키지는 css prop과 jsx helper를 제공하는 @emotion/react, 그리고 styled-components와 유사한 API를 제공하는 @emotion/styled입니다. 선택 사항인 Babel 플러그인을 사용하면 최적화와 사용자 지정 기능을 더할 수 있습니다.
핵심 기능
- 01문자열이나 객체 문법으로 스타일을 작성할 수 있습니다.
- 02css prop과 styled-components 스타일 API를 제공합니다.
- 03명시도 문제를 피하는 예측 가능한 스타일 조합을 지원합니다.
- 04디버깅을 돕는 소스 맵과 라벨을 제공합니다.
- 05프로덕션에서 스타일을 적극적으로 캐싱합니다.
- 06추가 최적화를 위한 선택 사항인 Babel 플러그인을 제공합니다.
활용 사례
- props에 따라 스타일이 바뀌거나 동적 스타일을 사용하는 React 애플리케이션을 꾸미는 경우.
- 조합 가능한 스타일을 활용해 재사용 가능한 컴포넌트 라이브러리를 만드는 경우.
- 클래스 기반 스타일시트에서 벗어나 컴포넌트와 스타일을 함께 관리하는 방식으로 전환하는 경우.
빠른 시작
- 1
npm으로 코어 패키지를 설치합니다
npm install --save @emotion/react - 2
Emotion에서 jsx를 가져와 컴포넌트에서 css prop을 사용합니다
사용 전 알아둘 점
- Babel 플러그인은 선택 사항이지만 일부 기능에는 필요합니다.
토픽
자주 묻는 질문
- emotion은(는) 무엇인가요?
- 문자열 또는 객체 스타일과 예측 가능한 스타일 조합을 지원하는 고성능의 유연한 CSS-in-JS 라이브러리입니다. Emotion을 사용하면 문자열이나 객체 문법으로 JavaScript에서 컴포넌트 스타일을 작성할 수 있습니다. 스타일은 런타임에 생성되어 CSS로 적용되므로, 별도의 스타일시트를 관리하지 않고도 props와 state에 따라 모양을 바꿀 수 있습니다.
- emotion은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- emotion은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- emotion은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. emotion의 마지막 커밋은 2026년 8월 28일입니다.
- emotion은(는) 어디에 사용할 수 있나요?
- props에 따라 스타일이 바뀌거나 동적 스타일을 사용하는 React 애플리케이션을 꾸미는 경우. 조합 가능한 스타일을 활용해 재사용 가능한 컴포넌트 라이브러리를 만드는 경우. 클래스 기반 스타일시트에서 벗어나 컴포넌트와 스타일을 함께 관리하는 방식으로 전환하는 경우.
- emotion는 어떻게 설치하나요?
- npm으로 코어 패키지를 설치합니다: npm install --save @emotion/react Emotion에서 jsx를 가져와 컴포넌트에서 css prop을 사용합니다
- emotion은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/emotion-js/emotion
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
웹 기술로 만든 크로스 플랫폼 터미널 에뮬레이터로, 플러그인과 테마를 추가해 확장할 수 있습니다.
JavaScript 기초부터 hooks, 라우팅, 상태 관리까지 단계별로 배우는 30일 React 강의입니다.
사용자 관점에서 컴포넌트를 조회하고 상호작용하는 가벼운 React DOM 테스트 유틸리티입니다.
웹, 서버, 네이티브 플랫폼에서 사용할 수 있으며 조합 가능한 컴포넌트로 인터랙티브 UI를 만드는 JavaScript 라이브러리입니다.
반응형 모바일 우선 웹사이트를 만드는 데 쓰이는 인기 프런트엔드 프레임워크로, HTML·CSS·Sass/JavaScript 컴포넌트를 제공합니다.