Closed6

Tailwind CSS ✕ Next.jsにアニメーションを導入する際の調査メモ

ヤマチューヤマチュー

やりたいこと

Tailwind CSS + Next.jsでアニメーションを実装したい!

バージョン

tailwindcss: 2.1.2
next: 10.2.0
react: 17.0.2

ヤマチューヤマチュー

アニメーションの方法

  • Tailwindでアニメーションを定義する
  • 別のライブラリを使う
ヤマチューヤマチュー

Tailwindでアニメーションを定義する場合

標準で4つ定義されているアニメーションを拡張していくパターン
https://tailwindcss.com/docs/animation

メリット

Tailwindの規約に則るので、コード自体がきれいにまとまる

デメリット

標準では疑似要素が使えない

【解決策①】プラグインで疑似要素を導入する

https://github.com/croutonn/tailwindcss-pseudo-elements

【解決策②】aria-hiddenで対処する

下のdiscussionsによるとメンテナはaria-hiddenの方が良いみたいな発言がある
https://github.com/tailwindlabs/tailwindcss/discussions/2119
記事を書いている人もいた
https://dev.to/wheelmaker24/why-you-don-t-need-every-css-pseudo-selector-in-tailwind-css-3kn1

可能な装飾なら解決策②の方が良さそう
今どきのブラウザならちゃんと対応している

ヤマチューヤマチュー

別のライブラリを使う場合

色々な選択肢がありそう

  • react-transition-group
  • Framer Motion

メリット

リッチな画面を作りやすい

デメリット

CSS in JSみたいな記述が多くてTailwindらしさが無くなるかも?

ヤマチューヤマチュー

Framer Motion

ヌルヌル動いて気持ちの良いアニメーションライブラリ
hookも使えて、最近の流行りっぽい
→Chakra UIでも使われている

https://github.com/framer/motion
https://js-challenge.dev/posts/framer-motion-basic-usage/

所感

複雑な動きを簡単に実装できるのは良さそう
ただCSSアニメーションを付けたい程度で導入するのは過剰かも?
ユーザーのアクションに対してアニメーションを付けたい場合には良いのかも

このスクラップは2022/08/29にクローズされました