stephane.bio
  • Invest
  • Build
  • Write
  • Think
Ketchup

emotion-js/emotion: πŸ‘©β€πŸŽ€ CSS-in-JS library designed for high performance style composition

URL
https://github.com/emotion-js/emotion
image

emotion

The Next Generation of CSS-in-JS

Emotion 11 has been released πŸš€ See the blog post

image
image
image
image
image
image
image
image
image
image
image
image

Emotion is a performant and flexible CSS-in-JS library. Building on many other CSS-in-JS libraries, it allows you to style apps quickly with string or object styles. It has predictable composition to avoid specificity issues with CSS. With source maps and labels, Emotion has a great developer experience and great performance with heavy caching in production.

πŸ‘€ Demo Sandbox

πŸ“– Docs

Frequently viewed docs:

  • Introduction
  • Install
  • CSS Prop
  • Styled Components
  • Composition
  • Nested Selectors
  • Media Queries

Quick Start

Get up and running with a single import.

npm install --save @emotion/react
/** @jsx jsx */
import { jsx } from '@emotion/react'

let SomeComponent = props => {
  return (
    <div
      css={{
        color: 'hotpink'
      }}
      {...props}
    />
  )
}

Do I Need To Use the Babel Plugin?

The babel plugin is not required, but enables some optimizations and customizations that could be beneficial for your project.

Look here πŸ‘‰ emotion babel plugin feature table and documentation

Demo Sandbox

Demo Code Sandbox

Examples

  • emotion website [Demo Here]
  • next-hnpwa-guide-kit [Demo Here]
  • reactivesearch, a react UI library for Elasticsearch [Website]
  • circuit-ui, a react component library built at SumUp [Storybook]
  • open a PR and add yours!

Ecosystem

  • stylelint - A mighty, modern linter that helps you avoid errors and enforce conventions in your styles.
  • facepaint
  • emotion-vue
  • nuxt-community/emotion-module - Emotion module for Nuxt.js
  • ember-emotion
  • CSS to emotion transform
  • ShevyJS
  • design-system-utils - Utilities to give better access to your design system.
  • polished - Lightweight set of Sass/Compass-style mixins/helpers for writing styles in JavaScript.
  • monad-ui - Utility First CSS-In-JS
  • css-in-js-media - you can deal with responsive design using css-in-js easily with this css-in-js-media which is similar with include-media
  • emotion-native-extended - Better styling support for Emotion Native with React Native Extended Stylesheet

In the Wild

  • feathery.io
  • frontity.org
  • abacusfi.com
  • healthline.com
  • nytimes.com
  • vault.crucible.gg
  • render.com
  • gatsbythemes.com
  • blazity.com
  • postmates.com
  • thedisconnect.co
  • zefenify.com
  • sentry.io
  • comparett.com
  • Domain.com.au
  • cyberhaven.com
  • CommercialRealEstate.com.au
  • codecademy.com
  • Apache Superset

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

image
image
image
image
image
image
image
image
image
image
image

Backers

Thank you to all our backers! πŸ™ [Become a backer]

image

Contributors

This project exists thanks to all the people who contribute. [Contribute].

image
stephane.bio

Made with Notion, Published on Super - 2026 Β© Stephane Boghossian

LinkedInInstagramMediumGitHubXBehanceDiscordPinterest