Framer Motion初心者向けガイド
Lukas Schneider
DevOps Engineer · Leapcell

Framer MotionはReact向けの人気の高いアニメーションライブラリで、開発者が最小限の労力で滑らかで視覚的に魅力的なアニメーションを作成できるように設計されています。洗練されたユーザーインターフェースを構築する場合でも、動的なWebエクスペリエンスを構築する場合でも、Framer Motionはアニメーションを簡単かつ優雅にするための強力なツールを提供します。このガイドでは、コード例とベストプラクティスを用いて、Framer Motionの使用の基本を説明します。
Key Takeaways
- Framer Motionは、直感的なAPIと強力な機能により、Reactアニメーションを簡素化します。
- 主要なツールには、アニメーションの状態を管理するための
motion
コンポーネント、AnimatePresence
、およびvariants
が含まれます。 - ベストプラクティスには、単純なものから始めること、バリアントを再利用すること、およびパフォーマンスを最適化することが含まれます。
Framer Motionとは?
Framer Motionは、Reactアプリケーションでのアニメーションを簡素化する宣言型ライブラリです。それは以下を提供します:
- 使いやすさ:直感的な構文とAPI。
- 柔軟性:単純なアニメーションと複雑なアニメーションの両方をサポートします。
- パフォーマンス:スムーズなトランジションに最適化されています。
- アクセシビリティ:ユーザーのモーション削減設定を処理します。
インストール
まず、npmまたはyarnを介してFramer Motionをインストールします。
npm install framer-motion # or yarn add framer-motion
コアコンセプト
Framer Motionは、いくつかのコアコンポーネントとフックを中心に構築されています。以下に重要なものを示します。
- motionコンポーネント:標準のHTML要素を
motion
コンポーネントに置き換えてアニメーション化します。 - AnimatePresence:マウントおよびアンマウントのアニメーションを処理します。
- useAnimation:アニメーションのプログラムによる制御を提供します。
- Variants:再利用可能なアニメーションの状態を定義します。
基本的なアニメーション
ボックスをアニメーション化する簡単な例を次に示します。
import React from 'react'; import { motion } from 'framer-motion'; const App = () => { return ( <motion.div style={{ width: 100, height: 100, backgroundColor: 'blue' }} animate={{ x: 200 }} transition={{ duration: 0.5 }} /> ); }; export default App;
この例では、次のようになります。
motion.div
は、アニメーション化されたdiv
を作成するために使用されます。animate
プロパティは、ターゲットアニメーションの状態を指定します。transition
プロパティは、アニメーションの期間を制御します。
バリアントの追加
バリアントを使用すると、複数のアニメーションの状態を定義して切り替えることができます。
const boxVariants = { hidden: { opacity: 0, x: -100 }, visible: { opacity: 1, x: 0 }, }; const App = () => { return ( <motion.div variants={boxVariants} initial="hidden" animate="visible" transition={{ duration: 0.8 }} style={{ width: 100, height: 100, backgroundColor: 'red' }} /> ); };
ここ:
boxVariants
は、hidden
とvisible
の2つの状態を定義します。initial
およびanimate
プロパティは、使用するバリアントを指定します。
AnimatePresenceの使用
要素がDOMに出入りするときにアニメーション化するには、AnimatePresence
を使用します。
import { motion, AnimatePresence } from 'framer-motion'; import React, { useState } from 'react'; const App = () => { const [isVisible, setIsVisible] = useState(true); return ( <div> <button onClick={() => setIsVisible(!isVisible)}>Toggle</button> <AnimatePresence> {isVisible && ( <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} exit={{ opacity: 0 }} transition={{ duration: 0.5 }} style={{ width: 100, height: 100, backgroundColor: 'green' }} /> )} </AnimatePresence> </div> ); }; export default App;
ベストプラクティス
- シンプルに保つ:基本的なアニメーションから始めて、徐々に複雑さを増していきます。
- バリアントの再利用:一貫性のために、再利用可能なバリアントを定義します。
- CSSとの組み合わせ:静的なスタイルにはCSSを使用し、動的なアニメーションにはFramer Motionを使用します。
- パフォーマンスの最適化:不要な要素のアニメーション化や、負荷の高いトランジションの使用は避けてください。
FAQs
npm install framer-motion
またはyarn add framer-motion
を使用します。
DOMに出入りする要素のアニメーションを処理します。
はい、静的なスタイルにはCSSを使用し、動的なアニメーションにはFramer Motionを使用します。
結論
Framer Motionは、Reactアプリケーションで洗練されたアニメーションを作成するための強力なツールです。そのシンプルなAPIと豊富な機能により、ユーザーインターフェースの強化を目指す開発者にとって、頼りになる選択肢となっています。今日からFramer Motionを試して、デザインに命を吹き込みましょう!
Node.jsプロジェクトをクラウドにデプロイするための、あなたのトップチョイスLeapcellはこちらです。
Leapcellは、Webホスティング、非同期タスク、およびRedis用の次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に応じて支払い—リクエストも課金もありません。
比類のない費用対効果
- アイドル料金なしで、従量課金制。
- 例:25ドルで、平均応答時間60ミリ秒で694万件のリクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI / CDパイプラインとGitOps統合。
- 実行可能な洞察のためのリアルタイムのメトリックとロギング。
簡単なスケーラビリティと高いパフォーマンス
- 高い同時実行を容易に処理するための自動スケーリング。
- 運用上のオーバーヘッドゼロ—構築に集中するだけです。
ドキュメントで詳細をご覧ください。
Xでフォローしてください:@LeapcellHQ