poporonnet/kaniwriter

feat: Joy UI (MUI) やめる

Open

#571 opened on May 20, 2025

View on GitHub
 (6 comments) (0 reactions) (0 assignees)TypeScript (1 fork)auto 404
discussionhelp wanted

Repository metrics

Stars
 (1 star)
PR merge metrics
 (PR metrics pending)

Description

追記

Mantine に移行する方針を取りたいです。 cf. https://github.com/poporonnet/kaniwriter/issues/571#issuecomment-3667965147


主な理由

  • ライブラリとして大きいため、レンダリング負荷が大きい
    • 細かなチューニングをしてきたが、キャッシュが効いている環境でもページスコア90点を超えられない
    • キャッシュが効かない環境だと70点程度
  • 開発停止中である
    • https://mui.com/joy-ui/getting-started/

      Joy UI is in beta and development is currently on hold. When starting a new project from scratch, we recommend Material UI over Joy UI because we can guarantee ongoing support.

    • 主にMUI v7に注力するためであり、開発終了というわけではない
    • それでもこのような状況が発生すること自体嬉しくない
  • material-iconがmuiに依存しており、Joy UIを使っているのにMUIを剝がせない
    • このためアイコンライブラリを置き換えたいという議論が以前からあった
    • cf. #942
  • RSCとの相性が悪い
    • 少なくともReact Rounter v7を使ったプリレンダリングには失敗する
  • ビルドが重い
    • 多分muiへの依存とかemotionとかのせい

移行のデメリット

  • 大変
  • メンバーの学習コスト
    • これを考えると、少なくとも書いたことのないものは選べない

方針

  • 見た目は可能な限り変えない
  • 主にパフォーマンスの向上が目的
  • 作業はそこそこ頑張ってもいい

移行先

  • Tailwind CSS
    • 使用経歴あり
    • パフォーマンス◎
    • 極力UIを変えないで移行できる
    • アイコンを別に選定する必要あり
    • 作業が大変
  • Mantine
    • 使用履歴あり
    • パフォーマンス○
    • 作業はそこまで大変じゃなさそう?
    • アイコンを別に選定する必要あり
    • UIがMantine味に変わる
  • UnoCSS
    • 使用経歴なし ( ただし、書き方はTailwindと同じ )
    • パフォーマンス◎
    • 極力UIを変えないで移行できる
    • アイコン機能が搭載されているのでこれだけで完結
    • 作業が大変

Contributor guide