UTILS.
100% ブラウザ内で完結
💅

CSS から JS スタイルオブジェクトへ

CSS 宣言のブロックを、React インラインスタイル、styled-components、Emotion 向けの JavaScript スタイルオブジェクトに変換します。プロパティは camelCase 化されます。

— ここに結果が表示されます —

このツールについて

CSS から JS スタイルオブジェクトへのツールは、CSS のブロックを React インラインスタイルや styled-components、Emotion のような CSS-in-JS ライブラリに適した JavaScript オブジェクトに変換します。宣言はブラウザ内でローカルに解析され、何もアップロードされないため、スタイルシートをインラインスタイルへ移行するのは貼り付けとコピーだけで済みます。

各プロパティ名は camelCase 化されます。background-color は backgroundColor に、z-index は zIndex になります。ベンダープレフィックスは React のルールに従います。先頭の -ms- は ms に小文字化され(msFilter)、-webkit-、-moz-、-o- はそれぞれ Webkit、Moz、O に大文字化されます(WebkitBoxShadow)。カスタムプロパティ(--brand-color)はクォートされたキーとしてそのまま保持されます。値は既定で文字列として出力され、単位や !important が保たれます。数値トグルにより、素の整数や小数を代わりにクォートなしの数値にできます。有効な JavaScript 識別子であるキーはクォートなしのままで、残りは自動的にクォートされます。

入力がプレーンな宣言ブロック(セレクターなし)の場合、1 つのフラットなオブジェクトを生成し、React の style prop に最適です。入力がセレクターを含む完全なルールの場合、styled/Emotion モードは各セレクター文字列をキーとするネストしたオブジェクトを出力します。これはそれらのライブラリが受け付けるオブジェクト構文です。出力の const 名を制御でき、全体は const styles = { ... }; として書き出され、貼り付ける準備が整います。

よくある質問

プロパティ名はどう変換されますか?
ハイフン付きのプロパティは camelCase 化されます(background-color は backgroundColor)。ベンダープレフィックスは React に従い、-ms- は小文字の ms プレフィックスになり、-webkit-、-moz-、-o- は Webkit、Moz、O になります。--foo のようなカスタムプロパティはクォートされたキーとして保持されます。
値は数値ですか文字列ですか?
既定ではすべての値は文字列で、これは常に安全で単位や !important をそのまま保ちます。数値トグルを有効にすると、純粋に数値の値(z-index: 10 など)は代わりにクォートなしの数値として出力されます。
2 つのモードの違いは何ですか?
React インラインモードは宣言ブロックから 1 つのフラットなオブジェクトを出力します。styled / Emotion モードはセレクター文字列をキーとするネストしたオブジェクトを出力し、styled-components と Emotion が複数のルールに対して受け付けるオブジェクト構文に一致します。
セレクター付きの完全な CSS ルールを扱えますか?
はい。入力にセレクターと波括弧が含まれる場合、各ルールはセレクターキーの下で独自のネストしたオブジェクトに解析されます。セレクターのない素の宣言リストは 1 つのフラットなスタイルオブジェクトを生成します。

その他のツール