【Next.js】Tailwind でアニメーションを付ける方法

公開日: 2026年9月12日 · 読了目安 9 分

Next.js と Tailwind CSS だけで入場・ホバー・ループを付ける方法。framer-motion が要る境界、カスタム keyframes、完成セクションの流用。

先に結論:入場とホバーは Tailwind で足りる

多くの LP は、animate-in、delay、hover:scale、ゆっくりした loop で足ります。スクロール量に応じた変化や、共有レイアウトが要るときだけ Framer Motion を足します。導入は https://design-layer.com/articles/nextjs-framer-motion-guide です。

page をクライアントにする必要はありません。クラスを付けたマークアップのままです。

よく使う3種

入場:opacity と translate-y。delay を要素ごとにずらす。

ホバー:scale か brightness。影のアニメーションは重いです。

ループ:グラデーションやマーキー。linear の長い duration。

カスタム keyframes

tailwind.config か CSS の @theme に、短い keyframes を1つ足します。汎用の bounce をヒーローに使うと、LP らしくなくなります。

遅延入場の例

app の CSS
@keyframes rise {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.rise { animation: rise 0.5s cubic-bezier(0.22, 1, 0.36, 1) both; }
.rise-delay { animation-delay: 0.1s; }

Tailwind だけでは届かないとき

スクロール位置、ピン留め、ドラッグ、レイアウトの共有。ここから先は JS です。完成している塊を載せる選択肢もあります。

DesignLayer は、ライブでその境界を見てから Copy できます。無料は1日3回です。https://design-layer.com/components

公開前

prefers-reduced-motion で animation: none。大きな loop はヒーロー1つ。モバイルで delay を短くする。

【Next.js】Tailwind でアニメーションを付ける方法 | DesignLayer