1
0

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 3 years have passed since last update.

置き換え可能性の高いコンポーネントライブラリを使う場合は、レイアウトにTailwind CSSを使うと良さそう。

Last updated at Posted at 2022-03-31

レイアウトをTailwind CSS中心にして、コンポーネントライブラリに依存させないようにすると、後々置き換えやすくなりそうだし、楽なケースがありそうだよという記事です。

なお、スタイリングとレイアウトを以下のように定義します。

  • スタイリング: ボタンやチェックボックス、アイコンなどのUI要素。
  • レイアウト: ページの中でのレイアウト。margin、padding、flex...など。その他、modalなども。

将来的に置き換えしやすいように作る。

新規開発を行う際に、独立したプロダクトであれば色々選ぶことができますが、様々な事情でそうもできない場合があります。例えば、私の場合、メインプロダクトのUIと揃えるためにsemantic-ui-reactを使うことになりました。ただ、中長期的にみると置き換え可能性もそれなりにありそうです。

メインプロダクトの開発メンバーもちょっと不満を持っていますし、私も、オプションが少ない点が気になっています。

例えばチェックボックスです。
https://react.semantic-ui.com/modules/checkbox/#types-checkbox

<Checkbox toggle /> と書くことで、トグルにできます。これはいいのですが、サイズをオプションで変えられないっぽいです...transformで小さくすることもできると思いますが、ちょっとトリッキーな感じがするので、自作しよっかなと思ってます。その他にも、いいサービスにしたくて色々凝ったことしようとすると、自作やオーバーライドするものがそれなりに出てきそうです。

そうすると、結局自作中心とするか、他のコンポーネントライブラリを使うかということになりそうです。移行の可能性がそれなりに高いので、semantic-ui-reactに依存しすぎないようにスタイリングだけ参考にして、レイアウトではTailwind CSSで作るという方針で進めることにしました。

semantic-ui-reactにもレイアウトができるコンポーネントがあります。

例えば、Gridです。

https://react.semantic-ui.com/collections/grid/

ただ、ここでGridを使ってしまうと、やっぱり他のコンポーネントライブラリを使いたいとか、すべて自作したいとなったときに、全面的にレイアウトをやり直す必要が出てきてしまいます。やってみたら以外とすぐかもしれないですが、追加開発もあるなかでその判断をチームがしやすいかというと、ちょっと難しい気がします。

一方、レイアウトをコンポーネントライブラリに依存しないようにすると、例えば、CheckBoxをコンポーネントライブラリを使わずに自作にするとか、影響範囲を限定しながら進めていくことができます。

Tailwind CSSが好きではない人の中で、クラス名が長くなることを指摘する人もいると思います。ただ、複雑なスタイリングであれば長くなりますが、レイアウトだけであればたいして長くなりません。

CardくらいであればTailwind CSSで簡単に作れるので、こちらもTailwind CSSで作って、その中の各要素をコンポーネントライブラリを使うのがいいと思っています。その他、modalはreact-modal使うとかもいいかもしれません。まあ、modalを作り直すくらいであれば工数たいしてかからなさそうなので、この点、コンポーネントライブラリにあったら使うのもありかもしれません。

ビルドサイズは気にしておこう。

スタイリングとレイアウトを分離する場合、それぞれのビルドサイズも気にしておきましょう。UIライブラリは何を選ぶか次第ですが、余分なものをとってこない書き方がそれぞれあると思います。

Tailwind CSSは、この記事がかなり参考になりそうです。Purgeオプションを使ってあげるとかなり小さくなりそうですね。

https://zenn.dev/ryo_kawamata/articles/purage-tailwind

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?