framer motionとは?導入方法や使い方を解説

Cozies編集部

framer motion

What you'll learn in this article

この記事でわかること

  • framer motionを導入できるようになる

  • アニメーションのコーディングの効率化の方法がわかる

What you'll learn in this article

この記事でわかること

  • framer motionを導入できるようになる

  • アニメーションのコーディングの効率化の方法がわかる

ウェブサイトにアニメーションを取り入れることは、ユーザーの目を引く効果的な手段の1つです。しかし、「ウェブサイトにアニメーションを実装したいが、CSSのコーディングが手間」と感じている方も多いのではないでしょうか。


そこでおすすめなのが「framer motion」です。framer motionを使えば、作成したウェブサイトにおいて、より簡潔なコードでアニメーションを実装できます。


本記事では、ウェブサイトに簡単にアニメーションを実装したいと考えている方に向けて、framer motionの導入方法や使い方を詳しく解説します。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

まずは資料ダウンロードで情報収集、無料トライアルで体験、お問い合わせでご相談ください。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

まずは資料ダウンロードで情報収集、無料トライアルで体験、お問い合わせでご相談ください。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

まずは資料ダウンロードで情報収集、無料トライアルで体験、お問い合わせでご相談ください。

目次

framer motionとは?


framer motionは、ノーコードUIデザインツール・プロトタイピングツール「framer」が提供するオープンソースアニメーションライブラリです。


▼framer motionのURLとGithub


framer motionを使用することで、より簡潔なコードでアニメーションを実装でき、効率的なウェブ開発が可能になります。また、豊富な操作オプションを活用することでカスタマイズの幅が広がり、高い拡張性を持つのも特徴です。


さらに、フレームベースのアニメーションを簡単に管理できる点もframer motionの強みで、コンポーネントベースの開発との相性が非常に良いです。そのため、モダンなフロントエンド開発においても需要が高まっています。


framerについて知りたい方は、「Framerとは?特徴や使い方、料金を解説【ノーコードでウェブサイトを制作】 」をご覧ください。



framer motionと他のアニメーションライブラリとの違い


framerは、Meta社とコミュニティによって開発されたJavaScriptライブラリであるReactを基盤にしたツールです。ウェブサイトのUI設計に用いられるReactは、ソースコードが理解しやすく、編集のしやすさや処理の速さが特徴です。


framer motionと他のアニメーションライブラリとの大きな違いは、Reactで作成されたアプリケーションに特化している点です。


Reactで作成されたアプリケーションであれば、CSSやJavaScriptを直接編集するよりも、アニメーションの設定が簡単かつ直感的に行えます。また、コードの記述が短く済み、読みやすさも向上するため、誤解やミスを減らせる点もframer motionの強みです。


続いてframer motionの特徴をより深く理解するために、メリット・デメリットを解説します。



framer motionのメリット


framer motionは、CSSで直接アニメーションを実装するよりもコーディングの手間を大幅に削減でき、簡単にアニメーションを作成できる点が大きなメリットです。


さらに、ホバリングやアニメーションの期間設定、ページ遷移など、さまざまな種類のアニメーションに対応しているため、ウェブサイトのさまざまな場面でframer motionを活用できます。


framer motionには、参考になるサンプルも豊富に揃っているので、下記のようなサンプルサイトをぜひ参考にしてみてください。


▼framer motionのアニメーションサンプルの例



framer motionのデメリット


framer motionのデメリットの一つは、SSR(サーバーサイドレンダリング)に対応していないことです。SSR非対応とは、サーバーサイドでページの内容を事前にレンダリング(データを処理してテキストや画像などを表示)できないことを意味します。


ページの内容がサーバーサイドでレンダリングされないと、検索エンジンのクローラがコンテンツを正しく解析できない可能性があります。そのため、データの処理に余計な時間がかかり、SEOやAdSenseの審査において不利になる恐れがあります。


SEOについて詳しく知りたい方は、「SEOとは?今日からできる対策と基本となる考え方」をご参照ください。


また、framer motionのパッケージサイズは2.3MBと比較的大きく、ビルドサイズやパフォーマンスに影響を及ぼす可能性がある点もデメリットです。例えば、同じアニメーションライブラリである「react-spring」のパッケージサイズは55.1KBであることからも、そのサイズの大きさがわかります。



framer motionの導入・セットアップ


framer motionを導入・セットアップするには、Node.jsとnpm(またはyarn)のインストールが必要です。Node.js(公式サイト)は、通常ブラウザ内でのみ実行されるJavaScriptをサーバーサイドでも実行可能にするプラットフォームです。


npmとyarnはどちらもNode.jsのパッケージマネージャーであり、ソフトウェアの更新や削除などを簡単に行うためのツールです。これにより、フロントエンドとサーバーサイドで同じJavaScriptを利用でき、エンジニアの作業負担が軽減されます。


framer motionの導入にはnpmとyarnのどちらを使っても問題ありませんが、一般的にはnpmがより広く使用されています。そのため、以下ではnpmを使用したセットアップ手順について解説します。


Framer motionホーム


引用:framer motionのIntroduction



framer motionのインストール


まずは、framer motionをnpmからインストールするには、下記の方法で行います。


1.Reactのバージョンが18の場合


npm install framer-motion


2.Reactのバージョンが19の場合


npm install framer-motion@12.0.0-alpha.0


引用:framer motion Introduction



framer motionを経由してのインポート


framer motionをインストールしたら、このようにインポートできます。



引用:framer motion Introduction



アニメーションの実装方法


framer motionでは、このようにアニメーションを実装していきます。



以下のように、xの後ろの数値を変化させるだけでアニメーションが自動生成されます。


引用:framer motion Introduction



framer motionで実装できるアニメーションの例


framer motionの導入・セットアップが完了したら、いよいよアニメーションの実装です。ここでは代表的なアニメーションの事例を3つ紹介しますが、公式サイトでは、アニメーションの挙動のほか、さまざまなアニメーションの設定方法について解説しています。あわせてご覧ください。


▼公式サイト



基本的なアニメーション


キャプチャの通り、framer motionでは「animate」に値を指定するだけで、基本的なアニメーションを設定できます。



引用:framer motion Animation


animateの値を調整することで、アニメーションを自在に制御できます。



引用:framer motion Animation


また、”transition”で横に細かく動くよう指定することもできます。



引用:framer motion Animation



引用:framer motion Animation


さらに、徐々に要素が表示されていくアニメーションや、要素が飛び出てくるアニメーションも作成可能です。これらの詳細については、framer motionの公式サイトを参照ください。



ジェスチャー


ユーザーの動きに連動したアニメーションを効果的に活用することで、直感的で分かりやすいサイトを作成できます。


ジェスチャーをサイトに取り入れる場合、"while+動作"を設定することで、ユーザーの行動に応じた動作を簡単に追加できます。


例えば、"whileHover"を使えば、ホバー時に対象が浮き上がるアニメーションを実装できます。



引用:Gestures



引用:Gestures


また、"whileTap"を設定することで、タップ時に指定した動作を実装できます。



引用:Gestures



スクロール


スクロールに応じたアニメーションを取り入れることで、ユーザーはページをどこまで読み進めたかわかる上、興味をひく演出も可能です。


例えば、”useScroll”と入力すればスクロールに連動したアニメーションを実装できます。下の例で実装しているのは、スクロールでページの下に移動するほど上の赤色バーが伸びていくアニメーションです。



引用:Scroll animations



引用:Scroll animations


また、”whileInView”と指定すれば、スクロールにより要素が表示されたときに限りアニメーションを起動できます。



引用:Scroll animations

まとめ

framer motionを用いてウェブサイトのアニメーションを容易に実装


framer motionは、framerが提供するオープンソースのアニメーションライブラリです。Reactに簡単にインストールでき、ジェスチャーやスクロールなどのアニメーションを手軽に導入できます。


ウェブサイトのコーディングは手間がかかりますが、framer motionを使えば、短いコードで多様なアニメーションを実装できるため、業務の効率化が図れるでしょう。


もしframerを利用していて、framer motionで特定のアニメーションを実装したい場合は、公式サイトの設定方法を参考にしてください。


ただし、マーケティング施策においては、ウェブサイトで人目を引くデザインだけでは不十分な場合もあります。場合によっては、ウェブサイト以外のメディアや施策が効果的なこともあります。自社のマーケティング戦略に迷った際は、ぜひCoziesにご相談ください。

この記事を書いた人

Cozies編集部

株式会社Coziesの編集部です。2020年の事業開始以来、ウェブマーケティング全般、インターネット広告、マーケティングリサーチの分析・研究を行っています。近年はAIエージェントの活用や業務自動化など、AI×マーケティング領域における実績と知見をもとに最新で有意義な情報をお届けいたします。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

まずは資料ダウンロードで情報収集、無料トライアルで体験、お問い合わせでご相談ください。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

まずは資料ダウンロードで情報収集、無料トライアルで体験、お問い合わせでご相談ください。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

まずは資料ダウンロードで情報収集、無料トライアルで体験、お問い合わせでご相談ください。

よくある質問

framer motionの意味は?

framer motionは、framerが提供するオープンソースアニメーションライブラリです。CSSで直接編集するよりも短いコードでアニメーションを実装できるため、ウェブ開発を効率化してくれます。

アニメーションのコーディングを効率化するためのテクニックは?

類似パターンのHTML・CSSをテンプレートとして保存・活用することで、一からコーディングする手間を省けます。また、エディタの拡張機能でコードの簡略化も可能です。さらには、コーディングの効率化に役立つツールも多数存在します。

framer motionを使うメリットは何ですか?

少ないコードでリッチなアニメーションを実装できること、Framer上で手軽に使えること、ドキュメントが充実していることが主なメリットです。ReactベースのUIにアニメーションを加える最も効率的な方法の一つです。


詳しくは、「framer motionのメリット・デメリット」の章をご覧ください。

framer motionの導入に必要な事前準備は何ですか?

Node.jsとnpm(またはyarn)のインストールが必要です。Node.jsはJavaScriptをサーバーサイドでも実行可能にするプラットフォームで、npmやyarnはパッケージの追加・更新・削除を簡単に行うためのパッケージマネージャーです。


詳しくは、「framer motionの導入に必要な事前準備」の章をご覧ください。

framer motionのインストール方法を教えてください。

ターミナルでnpm install framer-motion(またはyarn)を実行するだけでインストールできます。インストール後、アニメーションを実装したいコンポーネントでimport { motion } from "framer-motion"と記述して使用します。


詳しくは、「framer motionの導入・セットアップ」の章をご覧ください。

framer motionのmotionコンポーネントとは何ですか?

framer motionの基本要素で、通常のHTMLタグ(div・span等)の前に「motion.」を付けることでアニメーション機能を持たせられます。例えば<motion.div>とすると、そのdivにアニメーションプロパティを追加できます。


詳しくは、「framer motionの基本的な使い方」の章をご覧ください。

framer motionでアニメーションの開始・終了状態はどう設定しますか?

initialプロパティで初期状態(アニメーション前)、animateプロパティで最終状態(アニメーション後)を指定します。例えばinitial={{ opacity: 0 }} animate={{ opacity: 1 }}とするとフェードインアニメーションを実装できます。


詳しくは、「framer motionの基本的な使い方」の章をご覧ください。

framer motionのtransitionとは何ですか?

アニメーションの速度・種類・遅延などを制御するプロパティです。transition={{ duration: 0.5, ease: "easeOut" }}のように記述することで、アニメーションの動き方を細かくカスタマイズできます。


詳しくは、「framer motionの基本的な使い方」の章をご覧ください。

framer motionのvariantsとは何ですか?

複数のアニメーション状態をオブジェクトとして定義し、名前で管理できる機能です。コンポーネント間でアニメーション状態を共有・再利用しやすくなるため、複雑なアニメーション設計をシンプルに管理できます。


詳しくは、「framer motionの基本的な使い方」の章をご覧ください。

framer motion以外でコーディングを効率化する方法はありますか?

Framerのテンプレート(あらかじめアニメーションが組み込まれたデザインテンプレート)を活用する方法があります。テンプレートを使えばゼロからコードを書かずに高品質なアニメーションを実装でき、開発工数をさらに削減できます。


詳しくは、「コーディングの効率化方法」の章をご覧ください。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

デジタルマーケティング・オールインワンツール導入・AI活用でお困りの方はお気軽にお問い合わせください。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

デジタルマーケティング・オールインワンツール導入・AI活用でお困りの方はお気軽にお問い合わせください。

「うちの場合はどうすれば?」
そんな相談から、お気軽に。

デジタルマーケティング・オールインワンツール導入・AI活用でお困りの方はお気軽にお問い合わせください。