Closed18

調査:UIライブラリとStyleツールを検討する

ピン留めされたアイテム
TKTK

結論

MUI + CSS Module

  • バックオフィス用のシステムの為、デザインのカスタマイズがあまり必要ない
  • Multiple Selectが要件に入っていたので、Chakra UIとの比較でMUIのが必要なコンポーネントが揃っていた
  • 依存パッケージでEmotionをインストールすることになるが、パフォーマンス対策としてなるべくCSS Moduleで通常のスタイリングはする
TKTK

背景

Vite x React x TSのアプリケーションを新規に構築しており、コンポーネントライブラリとCSSライブラリの導入を検討中。

"react": "^18.2.0",
"typescript": "^4.6.4",
"vite": "^3.0.0"

バックオフィス用のアプリケーションとなる為、スタイルのカスタマイズ性はあまり重要ではないが、Headlessのライブラリも含め検討する。

選定ポイント

  • TypeScript
  • Bundle size
  • React 18対応
  • Vite対応
  • a11y
  • メンテナンス体制
  • カスタマイズ性(バックオフィス用のアプリのため、そこまで重要ではない)
  • ポータビリティ(乗り換えやすさ)
TKTK
TKTK

CSS Library

TKTK

Styleをコンポーネントと同一ファイルに書くか

書かない

  • CSS Modules
  • vanilla extract

書く

  • styled-components
  • emotion
  • linaria
TKTK

https://techlife.cookpad.com/entry/2021/03/15/090000

CSS moduleの問題点

  • クラス名を間違っていたとしても実行するまで気づくことができない
  • 未使用のスタイルを静的解析により検出することができない
    • 一方CSS in JSは、ESLint や TypeScript コンパイラといった JavaScript 向けの静的解析ツールにより、未使用の CSS を簡単に検出できる
TKTK

候補

  1. MUI + emotion
  2. Radix + CSS Module
  3. Radix + stitches(vite対応しているか不明)

MUI

  • カスタマイズ性があまり必要のないバックオフィスのアプリケーションなので、コンポーネント数が多く、時間をかけることなく実装を進められそうなのは良い。
  • 依存パッケージがemotion(変更可)なので、CSSフレームワークはMUIの場合emotionとなる

Radix

  • Headlessでコンポーネントの数もそこそこあるのは魅力的
  • まだversionが0始まりなのはちょっと気になる
このスクラップは2022/07/23にクローズされました