7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CSSをCSS in JSに変換しよう!(ついでに色々変換できるツールの紹介)

Posted at

CSSをCSS in JSに変換しよう!

CSS in JSを使う時の悩み

FigmaやCSS設定ツールなど、便利なデザインツールの多くはCSSを出力します。しかし、CSS in JS(JSのオブジェクトで定義するタイプ)はCSSで多いkebab-caseではなく、camelCaseで書かれる(JavaScriptの流儀に則る)ので出力されたCSSをそのまま貼り付けることができません。

  • kabab-caseをcamelCaseに直して…
  • 単位付きの値をクオテーションで囲んで文字列にして…
  • セレクタはネストしたり、キーを文字列にしたり…

このようになかなか面倒な作業です。vanilla-extractのように型補完の効く便利なCSS in JSがあっても、この辺りが厄介でCSSがそのまま使えるCSS Modulesや、既にコンポーネントになってるMUIやChakra UIを使う理由の一つになる時があります…

最近、筆者は会社の研修でFigmaのデザインをvanilla-extractで再現することになり、Figmaなどから貼り付けたくなったので調べてみました。

VSCode

VSCodeであれば以下のような拡張機能が提供されています。
双方向の変換が可能みたいなので、JSのオブジェクト形式をCSSに取り込めます(需要ある?)。

Vim

以下のようなプラグインやPerlによるスクリプトが作成されていました。

ブラウザ

ブラウザ上で変換するためのサイトが色々と提供されています。
以下は使ってみたところ、裏側の通信もないようなので、安心して使えそうです。
特にtransformは色々な変換に対応している(CSS -> tailwindやJSON -> Zodなど)みたいなので、非常に便利そうです。

最後に

同じ悩みを持ってる人は多く、探せば色々な方法が見つかりました。
個人的にはNeoVimを使用しているので、Vimプラグインかブラウザが良さげかなと思っています。

ただ今回調べての一番の収穫は、transformな気がします。
言語を超えて型や書式を変換できるのは非常に便利です。
個人開発で複数の言語を使う際も、一つ書けば使いまわせるようになるのが嬉しいですね。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?