emotion README

The project's README from github.com/emotion-js/emotion. As one markdown file: README.md.

Emotion logo

emotion

The Next Generation of CSS-in-JS

Emotion 11 has been released 🚀 See the blog post

Backers on Open Collective Sponsors on Open Collective npm version Build Status codecov @emotion/css size @emotion/css gzip size @emotion/react size @emotion/react gzip size @emotion/styled size @emotion/styled gzip size slack

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:

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

Ecosystem

In the Wild

Sponsors

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

Thinkmill

Backers

Thank you to all our backers! 🙏 [Become a backer]

Contributors

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

emotion (emotion-js/emotion)

Searching Database…

Что это?Emotion — это производительная и гибкая библиотека CSS-in-JS для JavaScript: вы пишете стили прямо в JS-коде вместо отдельных CSS-файлов. Это одна из самых популярных библиотек в своей области.
Это только для React или работает и с другими фреймворками?Это универсальная JavaScript-библиотека, которая лучше всего известна в экосистеме React, но в экосистеме есть также адаптеры для Vue, Nuxt и Ember.
Как добавить её в проект?Установите пакет через npm или yarn (например, npm install @emotion/react). Судя по Quick Start, начать работа можно с одного импорта; подробности — на странице Install в документации.
Нужно ли настраивать плагин Babel, чтобы всё работало?Нет, плагин Babel необязателен. Он не требуется, но даёт некоторые оптимизации и возможности настройки, а в документации есть таблица возможностей, где точно показано, что вы получаете с ним.
Почему стоит использовать её вместо обычных CSS-файлов?Стили предсказуемо комбинируются, так что вы избегаете проблем с приоритетами CSS, получаете source maps и подписи для отладки, а в продакшен-сборках применяется агрессивное кэширование для повышения производительности.
Это готово к продакшену или скорее эксперимент?Библиотека проверена в бою: в разделе «In the Wild» перечислены продакшен-сайты вроде The New York Times, Sentry, Codecademy, Postmates и Apache Superset, а также библиотеки компонентов, построенные на ней.
Работает ли она вне браузера, например в приложениях на React Native?Да, в экосистеме есть поддержка Emotion Native, включая emotion-native-extended для более удобной стилизации с React Native Extended Stylesheet.
Как на самом деле писать с ней стили?Можно использовать строковые или объектные стили через css prop или API styled. Композиция, вложенные селекторы и медиа-запросы — всё это поддерживается и описано в документации.
Можно ли попробовать, ничего не устанавливая?Да, в README есть ссылка на живое демо в CodeSandbox, так что можно поиграться с Emotion прямо в браузере, прежде чем добавлять её в проект.
Есть ли вокруг неё инструменты, например для линтинга?Да, в экосистеме есть интеграция со stylelint, а также вспомогательные библиотеки вроде facepaint и css-in-js-media для адаптивного дизайна и polished для миксинов в духе Sass в JS.
Creator
emotion-js
Size
24.9 MB
Stars
18K
Age
9y
Commits · 90 Days