emotion-js/emotion

👩‍🎤 CSS-in-JS library designed for high performance style composition

View on GitHub ↗Jump to charts ↓

emotion-js/emotion has 18k+ stars and 1k+ forks on GitHub, is written in JavaScript, and was last pushed on Aug 28, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 1 hour ago
Added to GitGenius on September 14th, 2021
Created on May 27th, 2017
Open Issues & Pull Requests: 399 (+0)
GitHub issues: Enabled
Number of forks: 1,136
Total Stargazers: 18,016 (+0)
Total Subscribers: 98 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 82.6 days
Mean response time: 474.6 days
90th percentile: 1650.3 days
Tracked items: 137

How this project is maintained

99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 64% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 257
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 1,138 days
Stale 30+ days: 255
Stale 90+ days: 250

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 2

Top labels

  • needs triage (457)
  • bug (450)
  • feature request (168)
  • documentation (66)
  • question (66)
  • invalid (47)
  • TypeScript (46)
  • needs more information (19)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Emotion is a CSS-in-JS library positioned as the next generation of styling solutions for JavaScript applications. It provides a performant and flexible approach to styling by allowing developers to write styles using either string or object syntax, with particular emphasis on predictable composition that avoids CSS specificity issues. The library includes source maps and labels to enhance developer experience while maintaining heavy caching in production for performance optimization.

The core functionality centers on enabling rapid app styling through CSS-in-JS patterns. Emotion offers multiple styling approaches including a CSS prop for inline styling and styled components for component-based design. The library supports composition patterns, nested selectors, and media queries as documented in its frequently referenced guides. While a Babel plugin is available to enable additional optimizations and customizations, it is not required for basic usage, giving developers flexibility in how they integrate Emotion into their build processes.

Emotion 11 represents a significant release milestone for the project. The library has achieved substantial adoption across the web, with usage documented in production applications including major properties like The New York Times, Healthline, Sentry, Codecademy, and Apache Superset. The ecosystem around Emotion extends its capabilities through integrations with tools like stylelint for style linting, facepaint for responsive design patterns, and framework-specific modules for Vue and Nuxt. Additional tooling includes CSS-to-Emotion transformation utilities, design system helpers, and styling utilities like polished.

The project maintains overlapping contributor relationships with major repositories including Microsoft's VSCode and TypeScript implementations, as well as the Rust language project, indicating cross-project collaboration among maintainers.

The library's classification spans multiple domains including inline styles, stylesheets, React components, JavaScript frameworks, theming, component-based design, dynamic styling, and performance optimization. This breadth reflects Emotion's positioning as a comprehensive styling solution that addresses both the technical requirements of CSS-in-JS and the practical needs of modern component-based application development. The project is supported through sponsorships and community backing, with Thinkmill listed as a primary sponsor alongside numerous individual backers contributing to its ongoing development and maintenance.