Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Améliorer l'expérience utilisateur grâce aux an...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Stéphanie Walter Stéphanie Walter
February 25, 2016

Améliorer l'expérience utilisateur grâce aux animations CSS3

À travers de cas concrets illustrés, nous verrons comment créer des animations performantes grâce à CSS3 (et un peu de JavaScript) qui vont, si utilisées à bon escient, améliorer grandement l’expérience de vos utilisateurs. Au programme : transitions de boutons et animations d'icônes en SVG, menu off-canvas full CSS, customisation de checkboxs et améliorer la visibilité et compréhension des erreurs de formulaires grâce à des animations.

Avatar for Stéphanie Walter

Stéphanie Walter

February 25, 2016
Tweet

More Decks by Stéphanie Walter

Other Decks in Design

Transcript

  1. Designer web & mobile. Spécialisée en interface et expérience utilisateur.

    Je fais partie de ces gens qui considèrent le CSS comme un outil de design www.stephaniewalter.fr @WalterStephanie Disponible en freelance et chez Alsacréations
  2. Le bouton « save » de codepen s’anime si vous

    oubliez d’enregistrer. Attirer l’attention sur des moments critiques
  3. Avec une animation, c’est la machine qui fait ce travail

    e création des étapes intermédiaires. Laisser la machine faire le travail
  4. L’état :active des liens / boutons est la forme la

    plus simple de retour de l’interface pour l’utilisateur. Montrer la réactivité de l’interface via Codrops
  5. D’où vient cet élément ? Où a-t-il disparu ? Comment

    le faire réapparaitre ? Organiser l’espace de l’interface
  6. Animations @keyframes rainbow { 0% { color: darkorchid; } 30%

    { color: magenta; } 60% { color: orangered; } 100% { color: darkorchid; } } a { animation-name: rainbow; animation-duration: 3s; }
  7. Si vous avez besoin de préfixes … @-webkit-keyframes rainbow {

    ... -webkit-transform: … ; … } @keyframes rainbow { ... transform: … ; … }
  8. Transition de color au :hover button { border: 2px solid;

    color: rgb(255,255,255); } button:hover { color: rgb(255, 167, 15); }
  9. Transition de color au :hover button { border: 2px solid;

    color: rgb(255,255,255); transition-property: color; transition-duration: .3s; } button:hover { color: rgb(255, 167, 15); }
  10. Animer l’étoile avec le pseudo-element :after /* transition de pseudo

    élément*/ button:active:after { transform: scale(1.3); } button:after { transition: transform .3; } Pour animer un pseudo élément, l’ordre est important : pseudo classe PUIS pseudo élément.
  11. Animer du SVG inline /* colorer le SVG */ button

    .icon { fill: currentColor; }
  12. Animer du SVG inline /* colorer le SVG */ button

    .icon { fill: currentColor; } button:hover { color: rgb(255, 167, 15); } button { transition: color .3s; }
  13. Animer l’étoile @keyframes favorite { to { transform: scale(1.3); }

    } button.activated .icon { animation-name: favorite; animation-duration: .3s; animation-iteration-count: 1; }
  14. Jouer avec l’étoile et cubic-bezier button.activated .icon { animation-name: favorite;

    animation-duration: .3s; animation-iteration-count: 1; animation-fill-mode: forwards; animation-timing-function: cubic-bezier(.01, 1.93, 1, 1.6); }
  15. Masquer / afficher le menu /* masquer le menu */

    .menu { transform: translateX(-155px); }
  16. /* masquer le menu */ .menu { transform: translateX(-155px); }

    /* l’afficher au :hover */ .menu:hover { transform: translateX(0); } .menu { transition: transform .3s .25s; } Masquer / afficher le menu
  17. /* animer le contenu */ .menu:hover ~ .content { transform:

    translateX(155px); } Animer le menu sur un sélecteur adjacent .content, .menu{ transition: transform .3s .25s; }
  18. La fausse case à cocher /* Styler une fausse checkbox

    */ .checkbox + label:before { background: rgb(255, 255, 255); border: 1px solid rgb(216, 216, 216); }
  19. L’animation sur :checked /* une transition quand on coche */

    .checkbox:checked + label:before { background: rgb(0,158,186); border-color: rgb(4,126,147); } /* appliquer la transition */ .checkbox + label:before { transition: background .2s, border-color .2s; }
  20. Animer la coche /* la réduire quand elle n’est pas

    visible */ .checkbox:not(:checked) + label:after { transform: scale(0); } /* la rafficher quand on coche la case */ .checkbox:checked + label:after { transform: scale(1); } /* appliquer la transition */ .checkbox + label:after { transition: transform .4s; }
  21. /* créer l’animation */ @keyframes shakeMe { 0%, 100% {

    transform: translateX(0); } 20%, 60% { transform: translateX(-10px); } 40%, 80% { transform: translateX(10px); } } Secouer en cas d’erreur
  22. Secouer en cas d’erreur /* créer l’animation */ @keyframes shakeMe

    { … } /* appliquer l’ animation */ .errors { animation-name: shakeMe; animation-duration: .5s; }
  23. Animation animation-name: shakeIt ; animation-duration: 300ms ; animation-timing-function: ease ;

    animation-iteration-count: 1 ; animation-direction: normal ; animation-play-state: running ; animation-delay: 1.5s ; animation-fill-mode: none ; @keyframes shakeIt { 0% { … } 100% { … } } ➔ animation: shakeIt 300ms ease 1 normal running 1.5s none ;
  24. • :hover, :active, :focus • :checked, :invalid, :required, etc. •

    : target • click, focus, blur, submit, etc. • .nom-de-classe ➔ Créer l’animations en CSS, ajouter les classes pour la déclencher en. CSS JavaScript Déclencheurs
  25. Les propriétés que le navigateur peut animer de manière fluide.

    Opacity, transform & filter = ❤ learn more about animations properties performance
  26. 3 états d’une recherche avancée animée pour communiquer l’animation au

    développeur. Prototype papier dans les premières étapes du projet
  27. Utiliser un gif / une video pour communiquer et valider

    les animations avec le client / développeur. Le sacro saint Gif animé
  28. Tester ses animations dans un vrai navigateur avec des utilisateurs

    au début du projet. Le prototype HTML/CSS rapide
  29. Partagés sous licence Attribution - Pas d’Utilisation Commerciale - Pas

    de Modification 3.0 France Designer web & mobile. Spécialisée en interface et expérience utilisateur. www.stephaniewalter.fr @WalterStephanie inpx.it/css-animations-ux-confoo-2016
  30. • Animation and UX ressources by Rachel Nabors - @rachelnabors

    • Animation & UX ressources by Val Head - @vlh Crédits & Liens • Interface Animations - A workshop with Mark Geyer • Google Web Fundamentals on Animations • (Accadémique) Animation: From Cartoons to the User Interface by Bay-Wei Chang and David Ungar • (Accadémique) Animation Support in a User Interface Toolkit: Flexible, Robust, and Reusable Abstractions by Scott E. Hudson and John T. Stasko