今までBootstrapを使ったことがなかったが、新しいサイトを作るにあたりReact Bootstrapに触れてみた。
感想としては、Chakra UIやMaterial UIなど他のUIライブラリと比較すると使いづらさを感じた。
React Bootstrapでは基本的にclassNameでスタイルを指定する。
たとえば、Cardコンポーネントに次のようなスタイルをつけてみる。
<Card bg="blue" className="m-1 m-sm-2" style={{ maxWidth: "300px" }}> ...</Card>
あるいはCSSファイルに独自のclassを作ってclassNameで指定することもできる。
パフォーマンス面ではCSS-in-JSよりもこっちのほうが良いはず。
ただ、classNameでスタイルを指定すると、エディターの入力補完機能が使えなくなる。
そのためどんなclassがあるのか調べなければならない。
同じものをChakra UIで作成してみる。
<Card bg="blue.500" m={{ base:1,sm:2 }} maxW='300px'> ...</Card>
こっちのほうが直感的に理解できると思う。
プロパティでスタイルを指定するのでエディターの入力補完も機能する。
「m」と入力すればmaxWidthやmarginTopなど使用できるプロパティ候補が表示される。
これの欠点としてパフォーマンスが悪いことが挙げられるが、Chakra-UIではゼロランタイムCSS-in-JSのpandaを開発しているらしいので改善されるかもしれない。
僕の場合、簡素なサイトだけなのでCSS-in-JSによるパフォーマンス悪化が気になったことなはい。
新しいサイトもChakra-UIで作っていこうと思う。