Lab/Anime.js vs Motion Lab

アニメーション・比較ショーケース公開中2026

同じお題をAnime.jsとMotionの2ライブラリで実装して並べる比較実験室。左右同時再生とコード比較で、書き味と動きの質感の差を検証します。

サイトを開く
Anime.js vs Motion ラボ(アニメ2大ライブラリ比較)

Screenshots

Anime.js vs Motion ラボ(アニメ2大ライブラリ比較) スクリーンショット 1
Anime.js vs Motion ラボ(アニメ2大ライブラリ比較) スクリーンショット 2

Overview

概要

Web上のアニメーションを担う2つのライブラリ——Anime.js v4と、Framer Motion由来のバニラAPIを持つMotion——を、同じお題で実装して左右に並べる比較実験室です。公平を期すため、Motionも<motion.div>ではなくvanillaのanimate/scroll/inView APIを使い、両者ともに素のDOMを命令的に動かします。スタッガー・SVGの線画・スプリング物理・タイムライン・スクロール連動という5つのテーマを、左右2ペインの同時再生+コード比較パネル+スコアカード(実装行数・使用API数・所感)で提示。最後に記述量やバンドルサイズを表(画像ではないHTMLテーブル)でまとめています。

How to use

遊び方・使い方

各テーマで中央の再生ボタンを押すと左右のペインが同時に動き出し、書き味と動きの質感の差を直接見比べられます。スタッガーは中心・先頭・末尾からの伝播や間隔、スプリングは剛性・減衰・質量を変えてオーバーシュートの違いをグラフで確認、タイムラインはスクラブでコマ送り、スクロールテーマは上下分割でスクロール量に連動します。各ペイン下のコード比較パネルで、同じ動きを2ライブラリがどう記述するかをタブで並べて読めます。

Tech stack

技術スタック

TypeScriptNext.js 16React 19animejs 4motion 12shikiTailwind CSS v4

animejs 4.5のモジュールAPI(animate/createTimeline/stagger/svg/createSpring/onScroll)とmotion 12のvanilla API(animate/scroll/inView/stagger)を用途別に併用。grid staggerはAnime.jsの得意技、距離ベースのdelayをMotion側で手計算する差など、実装の非対称もそのまま見せています。

Highlights

工夫した点

  • 各ペインが{play/reset/setSpeed/setParams}をuseImperativeHandleで公開し、CompareStageが左右へ同時に命令。ライブラリごとのクリーンアップ(Anime.jsのrevert/pause、Motionのstop、ScrollObserver/inViewの解放)を規約化してリークを防止
  • 表示するコードスニペットはデモ実装と同じファイルの定数から供給し、実装と解説のズレを排除。ハイライトはshikiをサーバーコンポーネント側で実行し、クライアントへハイライタを送らない
  • アニメーションはtransform/opacityのみに限定してレイアウトスラッシングを回避し、画面外テーマはLazyMountで遅延。バンドルサイズは実際のnext build出力から計測して比較表に反映

To improve

改善したい点

  • テキスト分割など一部テーマはフェーズ2で、共通の分割ユーティリティによる条件の完全な揃え込みが未完了
  • スコアカードの『所感』は主観を含むため、指標の客観化(FLIP計測やjankの数値化)に伸びしろがある
  • モバイルでのスクロール連動テーマの体験最適化

What's next

今後の展望

  • パーティクル・モーフィングなど比較テーマの追加
  • 同一お題を第3のライブラリ(GSAP等)にも広げた三つ巴比較
  • 計測結果の自動更新(CIでのバンドルサイズ・実行時間の記録)

Category

3D・実験

Genre

アニメーション・比較ショーケース

Year

2026

Status

公開中