RESKUE
TECHNOLOGIES

BASÉ À
PARIS, FRANCE

motion-design-framer-motion

Motion Design et Framer Motion : Animer vos Interfaces avec Élégance

Le motion design est l'art de donner vie aux éléments visuels, de créer des interactions fluides et d'engager les utilisateurs à travers des mouvements captivants.

Dans cet article, nous plongerons dans le monde dynamique du motion design et explorerons comment Framer Motion simplifie et optimise la création d'animations pour les interfaces utilisateur avec React.

Qu'est-ce que le Motion Design 🌈 ?

Le motion design ( ou animation graphique ) est l'art de créer des animations visuelles pour transmettre des émotions et des interactions.

Depuis ses débuts dans les médias traditionnels, il a évolué pour devenir un élément fondamental de la conception numérique, avec des applications web, les applications mobiles et bien plus encore.

Framer Motion Cover

Framer Motion, c'est quoi 🤔 ?

Créé par l'équipe de Framer, Framer Motion est une librairie d’animation de composants pour la bibliothèque React.

Cette librairie JavaScript offre une approche déclarative pour créer des animations complexes comme la gestion des transitions au contrôle des effets physiques avec une facilité déconcertante.

Chez Reskue nous utilisons cette librairie sur notre site Reskue Tech et notre future V.2 de Reskue art qui sera bientôt disponible.

Comment ça marche ?

Voici un petit exemple pour illustrer la simplicité d'intégration de cette librairie.

Tout d'abord, créer un nouveau projet en utilisant Create React App :

npx create-react-app my-framer-motion-app
cd my-framer-motion-app

Ensuite, installez Framer Motion dans votre projet :

npm install framer-motion

Importez "motion" de Framer Motion:

import React from 'react';
import { motion } from 'framer-motion';

Créons ensuite une animation de déplacement au chargement de notre composent :

import React from "react";
import { motion } from "framer-motion";

const App = () => {
  return (
    <motion.div
      initial={{ x: 0 }}
      // La propriété 'initial' définit l'état initial de l'élément avant le début de l'animation.
      animate={{ x: 100 }}
      // La propriété 'animate' spécifie vers quelles valeurs les propriétés doivent être animées.
      transition={{ duration: 1, type: "spring" }}
      // La propriété 'transition' contrôle la durée et le type d'animation.
    >
      Animer moi !
    </motion.div>
  );
};
export default App;


Dans cet exemple, lors du chargement de notre composant, notre div effectuera un déplacement de son positionnement initial au centre vers la droite.

Image-0

Vous pouvez absolument tout animer en quelques lignes de code !

  • Au survol d'un elements :

import React from "react";
import { motion } from "framer-motion";

const App = () => {
  return (
    <motion.div
      whileHover={{ scale: 1.2 }}
      // La propriété 'whileHover' permet de définir des animations qui se déclenchent lors du survole d'un élément.
      transition={{ duration: 1, type: "spring" }}
    >
      Animer moi !
    </motion.div>
  );
};
export default App;

Image-0
  • Au click d'un élément

import React from "react";
import { motion } from "framer-motion";

const App = () => {
  return (
    <motion.div
      transition={{ duration: 1, type: "spring" }}
      whileTap={{ scale: 0.5 }}
      // La propriété 'whileTap' permet de définir des animations qui se déclenchent lors du clic sur un élément.
    >
      Animer moi !
    </motion.div>
  );
};
export default App;
Image-0

vous avez la possibilité d'animer pratiquement tous les éléments de votre interface.

Que ce soit au survol d'un élément, au clic d'un bouton, ou même en réponse à d'autres interactions utilisateur.

Fonctionnalités clés de Framer Motion 🔑

  • Transitions Fluides : Framer Motion permet de définir des transitions fluides entre les états des éléments en utilisant le hook "useAnimation" pour contrôler les animations et les transitions entre les états d'un composent.

  • Effets de Ressorts Physiques : Avec Framer Motion, vous pouvez utiliser le hook "useSpring" pour créer des animations réalistes avec des effets de ressorts physiques, donnant ainsi une sensation de mouvement naturel à vos éléments.

  • Animations au Scroll : En utilisant le composant motion.div de Framer Motion associé au hook "useViewportScroll", vous pouvez créer des animations réactives basées sur le défilement de la page, offrant ainsi une expérience utilisateur immersive et interactive.

On abordera ces fonctionnalités plus détaillées dans un prochain article !

Quelques conseil à garder en tête 🤔

  • Performance : Optez pour des animations légères et évitez les surcharges qui pourraient ralentir les performances de votre application.

  • Accessibilité : Assurez-vous que vos animations sont accessibles à tous les utilisateurs, en offrant des alternatives pour les personnes souffrant de handicaps visuels ou moteurs.

  • Conception Responsive : Pensez à la manière dont vos animations s'adapteront à différents appareils et tailles d'écran pour une expérience utilisateur cohérente, surtout au niveau du téléphone portable.

Conclusion

Le motion design et Framer Motion ouvrent de nouvelles perspectives dans la conception d'interfaces utilisateur en créant des expériences interactives qui captivent et qui offrent une expérience riche aux utilisateurs.

En combinant votre créativité avec les fonctionnalités de Framer Motion, vous pouvez donner vie à des interfaces fluides et élégantes.

Plongez dans le monde du motion design et découvrez la simplicité et le potentiel de Framer Motion pour transformer vos idées créatives en interfaces interactive 🚀

Crédit : Hasni Fodeilla

Mar 28, 2024
BRISONS LA GLACE ❄️

Un projet en tête? Nous serions ravis de vous partager notre avis

ou

eric@reskue.tech

+33 (0)6 18 56 17 22