UTILS.
100 % im Browser
💅

CSS zu JS-Style-Objekt

Konvertieren Sie einen Block von CSS-Deklarationen in ein JavaScript-Style-Objekt für React-Inline-Styles, styled-components oder Emotion, mit camelCase-Eigenschaften.

— Ausgabe erscheint hier —

Über dieses Tool

Das Tool CSS zu JS-Style-Objekt konvertiert einen Block von CSS in ein JavaScript-Objekt, das für React-Inline-Styles oder CSS-in-JS-Bibliotheken wie styled-components und Emotion geeignet ist. Es parst die Deklarationen lokal in Ihrem Browser — nichts wird hochgeladen — sodass die Migration eines Stylesheets zu Inline-Styles nur ein Einfügen und Kopieren entfernt ist.

Jeder Eigenschaftsname wird in camelCase gesetzt: background-color wird zu backgroundColor, z-index wird zu zIndex. Vendor-Präfixe folgen den Regeln von React — ein führendes -ms- wird zu kleingeschriebenem ms (msFilter), während -webkit-, -moz- und -o- zu Webkit, Moz und O großgeschrieben werden (WebkitBoxShadow). Custom Properties (--brand-color) werden wörtlich als zitierte Schlüssel beibehalten. Werte werden standardmäßig als Strings ausgegeben, wobei Einheiten und !important erhalten bleiben; ein numerischer Umschalter lässt nackte Ganzzahlen und Dezimalzahlen stattdessen zu unzitierten Zahlen werden. Schlüssel, die gültige JavaScript-Bezeichner sind, bleiben unzitiert; der Rest wird automatisch zitiert.

Wenn die Eingabe ein einfacher Deklarationsblock ist (keine Selektoren), erzeugt sie ein flaches Objekt, perfekt für eine React-style-Prop. Wenn die Eingabe vollständige Regeln mit Selektoren enthält, gibt der styled/Emotion-Modus ein verschachteltes Objekt aus, das nach jedem Selektor-String verschlüsselt ist — die Objektsyntax, die diese Bibliotheken akzeptieren. Sie steuern den Namen des Ausgabe-const, und das Ganze wird als const styles = { ... }; geschrieben, bereit zum Einfügen.

Häufig gestellte Fragen

Wie werden Eigenschaftsnamen transformiert?
Eigenschaften mit Bindestrich werden in camelCase gesetzt (background-color zu backgroundColor). Vendor-Präfixe folgen React: -ms- wird zu einem kleingeschriebenen ms-Präfix, während -webkit-, -moz- und -o- zu Webkit, Moz und O werden. Custom Properties wie --foo werden als zitierte Schlüssel beibehalten.
Sind Werte Zahlen oder Strings?
Standardmäßig ist jeder Wert ein String, was immer sicher ist und Einheiten und !important intakt hält. Aktivieren Sie den numerischen Umschalter, und rein numerische Werte (wie z-index: 10) werden stattdessen als unzitierte Zahlen ausgegeben.
Was ist der Unterschied zwischen den beiden Modi?
Der React-Inline-Modus gibt ein einzelnes flaches Objekt aus einem Deklarationsblock aus. Der styled/Emotion-Modus gibt ein verschachteltes Objekt aus, das nach Selektor-Strings verschlüsselt ist und der Objektsyntax entspricht, die styled-components und Emotion für mehrere Regeln akzeptieren.
Verarbeitet es vollständige CSS-Regeln mit Selektoren?
Ja. Wenn die Eingabe Selektoren und Klammern enthält, wird jede Regel in ihr eigenes verschachteltes Objekt unter dem Selektor-Schlüssel geparst. Eine nackte Deklarationsliste ohne Selektoren erzeugt ein flaches Style-Objekt.

Weitere Tools