UTILS.
100% en el navegador
💅

CSS a objeto de estilo JS

Convierte un bloque de declaraciones CSS en un objeto de estilo JavaScript para estilos en línea de React, styled-components o Emotion, con propiedades en camelCase.

— la salida aparece aquí —

Acerca de esta herramienta

La herramienta CSS a objeto de estilo JS convierte un bloque de CSS en un objeto JavaScript apto para estilos en línea de React o librerías CSS-in-JS como styled-components y Emotion. Analiza las declaraciones localmente en tu navegador —nada se sube— así que migrar una hoja de estilos a estilos en línea está a un pegar-y-copiar de distancia.

Cada nombre de propiedad se pasa a camelCase: background-color pasa a backgroundColor, z-index pasa a zIndex. Los prefijos de proveedor siguen las reglas de React: un -ms- inicial se pasa a minúscula ms (msFilter), mientras que -webkit-, -moz- y -o- se capitalizan a Webkit, Moz y O (WebkitBoxShadow). Las propiedades personalizadas (--brand-color) se mantienen literalmente como claves entrecomilladas. Los valores se emiten como cadenas por defecto, preservando unidades y !important; un interruptor numérico permite que los enteros y decimales escuetos pasen a números sin comillas. Las claves que son identificadores JavaScript válidos se dejan sin comillas; el resto se entrecomilla automáticamente.

Cuando la entrada es un bloque de declaraciones plano (sin selectores) produce un objeto plano, perfecto para una prop style de React. Cuando la entrada contiene reglas completas con selectores, el modo styled/Emotion emite un objeto anidado indexado por cada cadena de selector: la sintaxis de objeto que esas librerías aceptan. Controlas el nombre del const de salida, y todo se escribe como const styles = { ... }; listo para pegar.

Preguntas frecuentes

¿Cómo se transforman los nombres de propiedad?
Las propiedades con guion se pasan a camelCase (background-color a backgroundColor). Los prefijos de proveedor siguen a React: -ms- pasa a un prefijo ms en minúscula, mientras que -webkit-, -moz- y -o- pasan a Webkit, Moz y O. Las propiedades personalizadas como --foo se mantienen como claves entrecomilladas.
¿Los valores son números o cadenas?
Por defecto cada valor es una cadena, lo cual siempre es seguro y mantiene intactas las unidades y !important. Activa el interruptor numérico y los valores puramente numéricos (como z-index: 10) se emiten como números sin comillas.
¿Cuál es la diferencia entre los dos modos?
El modo en línea de React emite un solo objeto plano desde un bloque de declaraciones. El modo styled / Emotion emite un objeto anidado indexado por cadenas de selector, coincidiendo con la sintaxis de objeto que styled-components y Emotion aceptan para múltiples reglas.
¿Maneja reglas CSS completas con selectores?
Sí. Si la entrada contiene selectores y llaves, cada regla se analiza en su propio objeto anidado bajo la clave del selector. Una lista de declaraciones escueta sin selectores produce un solo objeto de estilo plano.

Más herramientas