【React】デザインライブラリを用途別に比較してみる
こんにちは、フリーランスエンジニアの太田雅昭です。
Reactのデザイン周り
Reactには色々なライブラリがあります。その中で下記をピックアップしました。
- MUI
- CSS Module
- Tailwind
この他にもPandaCSSも検討してみたのですが、どうもCSS Moduleがあれば特に手を出す必要はないかなと。
MUI
MUIはマテリアルデザインを簡単に構築できます。テーマ管理も素晴らしく、サイト全体で一貫したデザインを作成できます。ただほとんどがすでにあるデザインを使用することになるので、他サイトとの差別化は難しいです。また細かい設定も面倒になりがちです。具体的には、要素のクラス名 .MUI_xxxみたいなのをいちいち確認して書いたりしないといけなかったりします。
CSS Module
全体のデザインも可能で、部分的な設計も柔軟です。ファイルを分割して、関心の分離も簡単に行えます。がっつりデザインする場合はかなり有力です。
Tailwind
Tailwindはクラス名でスタイルを指定します。慣れれば素早くサイト構築が行えるかと思います。ただクラス名がとても見にくく、後からメンテナンスするのはかなりしんどそうです。コンポーネントベースで設計すれば、ある程度のメンテナンス性を持つことは可能でしょうが、そうするとわざわざTailwindを使う必要はあるのか?という話になってくるかと。
用途別に考える
下記、用途別にそれぞれを考えてみました。
- 楽にデザイン => MUI
- 細かいデザイン => CSS Module
- 素早いデザイン => Tailwind
ただ、Tailwindはデザイン変更が辛くなりそうな気がしてならないので、個人的にはMUIかCSS Moduleかの2択になりそうです。