UTILS.
100% в браузере
💅

CSS в JS-объект стилей

Преобразуйте блок CSS-объявлений в JavaScript-объект стилей для инлайн-стилей React, styled-components или Emotion со свойствами в camelCase.

— результат появится здесь —

Об этом инструменте

Инструмент CSS в JS-объект стилей преобразует блок CSS в JavaScript-объект, пригодный для инлайн-стилей React или CSS-in-JS библиотек вроде styled-components и Emotion. Он разбирает объявления локально в вашем браузере — ничего не загружается — так что перенос таблицы стилей в инлайн-стили сводится к вставке и копированию.

Каждое имя свойства приводится к camelCase: background-color становится backgroundColor, z-index становится zIndex. Вендорные префиксы следуют правилам React — ведущий -ms- переводится в нижний регистр ms (msFilter), тогда как -webkit-, -moz- и -o- капитализируются в Webkit, Moz и O (WebkitBoxShadow). Пользовательские свойства (--brand-color) сохраняются дословно как ключи в кавычках. Значения по умолчанию выдаются как строки, сохраняя единицы и !important; числовой переключатель позволяет голым целым и десятичным становиться числами без кавычек. Ключи, являющиеся допустимыми идентификаторами JavaScript, остаются без кавычек; остальные заключаются в кавычки автоматически.

Когда ввод — простой блок объявлений (без селекторов), он даёт один плоский объект, идеальный для пропа style в React. Когда ввод содержит полные правила с селекторами, режим styled/Emotion выдаёт вложенный объект с ключами по каждой строке селектора — объектный синтаксис, который принимают эти библиотеки. Вы управляете именем выходной const, и всё записывается как const styles = { ... }; готовое к вставке.

Часто задаваемые вопросы

Как преобразуются имена свойств?
Дефисные свойства приводятся к camelCase (background-color в backgroundColor). Вендорные префиксы следуют React: -ms- становится префиксом ms в нижнем регистре, тогда как -webkit-, -moz- и -o- становятся Webkit, Moz и O. Пользовательские свойства вроде --foo сохраняются как ключи в кавычках.
Значения — числа или строки?
По умолчанию каждое значение — строка, что всегда безопасно и сохраняет единицы и !important. Включите числовой переключатель, и чисто числовые значения (вроде z-index: 10) выдаются как числа без кавычек.
В чём разница между двумя режимами?
Режим инлайн React выдаёт один плоский объект из блока объявлений. Режим styled / Emotion выдаёт вложенный объект с ключами по строкам селекторов, соответствующий объектному синтаксису, который styled-components и Emotion принимают для нескольких правил.
Обрабатывает ли он полные правила CSS с селекторами?
Да. Если ввод содержит селекторы и фигурные скобки, каждое правило разбирается в собственный вложенный объект под ключом селектора. Голый список объявлений без селекторов даёт один плоский объект стилей.

Больше инструментов