UTILS.
100% no navegador
💅

CSS para Objeto de Estilo JS

Converta um bloco de declarações CSS em um objeto de estilo JavaScript para estilos inline do React, styled-components ou Emotion, com propriedades em camelCase.

— a saída aparece aqui —

Sobre esta ferramenta

A ferramenta CSS para Objeto de Estilo JS converte um bloco de CSS em um objeto JavaScript adequado para estilos inline do React ou bibliotecas CSS-in-JS como styled-components e Emotion. Ela analisa as declarações localmente no seu navegador — nada é enviado — então migrar uma folha de estilos para estilos inline é uma questão de colar e copiar.

Cada nome de propriedade é convertido para camelCase: background-color vira backgroundColor, z-index vira zIndex. Prefixos de fornecedor seguem as regras do React — um -ms- inicial vira minúsculo ms (msFilter), enquanto -webkit-, -moz- e -o- viram maiúsculos Webkit, Moz e O (WebkitBoxShadow). Propriedades customizadas (--brand-color) são mantidas literalmente como chaves citadas. Valores são emitidos como strings por padrão, preservando unidades e !important; um alternador numérico permite que inteiros e decimais nus virem números não citados. Chaves que são identificadores JavaScript válidos são deixadas sem aspas; o resto é citado automaticamente.

Quando a entrada é um bloco de declaração simples (sem seletores) ela produz um objeto plano, perfeito para uma prop style do React. Quando a entrada contém regras completas com seletores, o modo styled/Emotion emite um objeto aninhado com chave em cada string de seletor — a sintaxe de objeto que essas bibliotecas aceitam. Você controla o nome do const de saída, e tudo é escrito como const styles = { ... }; pronto para colar.

Perguntas frequentes

Como os nomes de propriedade são transformados?
Propriedades hifenizadas são convertidas para camelCase (background-color para backgroundColor). Prefixos de fornecedor seguem o React: -ms- vira um prefixo ms minúsculo, enquanto -webkit-, -moz- e -o- viram Webkit, Moz e O. Propriedades customizadas como --foo são mantidas como chaves citadas.
Os valores são números ou strings?
Por padrão todo valor é uma string, o que é sempre seguro e mantém unidades e !important intactos. Ative o alternador numérico e valores puramente numéricos (como z-index: 10) são emitidos como números não citados.
Qual é a diferença entre os dois modos?
O modo inline do React emite um único objeto plano a partir de um bloco de declaração. O modo styled / Emotion emite um objeto aninhado com chave em strings de seletor, correspondendo à sintaxe de objeto que styled-components e Emotion aceitam para múltiplas regras.
Ele lida com regras CSS completas com seletores?
Sim. Se a entrada contém seletores e chaves, cada regra é analisada em seu próprio objeto aninhado sob a chave do seletor. Uma lista de declaração nua sem seletores produz um objeto de estilo plano.

Mais ferramentas