animate.css/docsSource/sections/03-best-practices.md

61 lines
4.7 KiB
Markdown
Raw Normal View History

2022-03-01 15:28:05 +01:00
## Best Practices
v4 release (#1050) * New animations added * Update * Update * Update * Update * kill bower * Turn off animations for print media query (#856) * Add a feature to turn off animations for printing as requested. * Add print media type * Update the builds * Moved away from gulp to npx + postcss This PR changes the build system for a simpler one, using only npx as runner and postcss to process all the files. * Solves #618 * Solves #836 * Also solves #758 just for fun ;P * Updated travis and removed animate-config.json * Removed strayed gulpfile and trimmed the header * Moved prefix config to package.json and updated the tasks * Updated travis * Updated dependencies and postcss config * Now using CSS custom properties * Add css module file - solves #933 * Updated README for the new build * Rebulit files * Updated dependencies + added browserlist * Fixed small typo on README * Added imports to Back animations * Added FadeInTopLeft.css file Fade in the animation diagonally * Added fadeInTopRight.css file Fade in the animation diagonally * Added fadeInBottomLeft.css * Added fadeInBottomRight.css * Added fadeOutTopLeft.css * Added fadeOutTopRight.css * Added fadeOutBottomRight.css * Added fadeOutBottomLeft.css * Added imports to diagonal fadings * Aditional formatting * Added diagonal fadings to README * Fixes #966 * Animate.css v4 Updates (#1029) * Update to v4 * Add Iteration-Count CSS utility classes solves #998 * Updated builds * Update lightSpeed animations * Update builds * Fix Invalid CSS Media Query Syntax * Update build * Add gitpod support * Add newline in gitpod file * Update README * Revert * Declare variable * Update builds * Remove Gitpod support Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> * Improves building process and package.json tidy up * Improved animations (#901) * Improved bounce * Improved pulse * Improved bounceInDown * Improved bounceInLeft * Improved bounceInRight * Improved bounceInUp * Improved bounceOutDown * Improved bounceOuLeft * Improved bounceOuRight * Improved bounceOutRight * Improved fadeInDown * Improved fadeInDownBig * Improved fadeInLeft * Improved fadeInLeftBig * Improved fadeInRightBig * Improved fadeInUp * Improved fadeInUpBig * Improved fadeInRight * Reverted fade animations * Compiled * Updated prefers-reduced-motion support on README * Add .delay-1s (#982) The .delay-1s is missing from the readme * HTTPS relevant links on README (#972) prevents HTTP redirects * Create CONTRIBUTING.md (#1033) Co-authored-by: Melek REBAI <melek.rebai89@gmail.com> Co-authored-by: Christian Oliff <christianoliff@yahoo.com> Co-authored-by: Daniel Eden <dan.eden@me.com> * Updates dependencies * Updates prettier config * refactory transform-origin in styles * animation shake with X and Y options :hammer: * Adds shakeX and shakeY to the build * Set 0 Opacity to Out animation classes (#1043) * Update issue templates * Add 0 opacity to out classes * Update builds * Improved implemenation * Update builds * Update current readme * Update builds Co-authored-by: Elton Mesquita <callmeelton@gmail.com> Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> * Removes prefix from att selector * Feature/new demo site (#1046) * Simplify & centralize the Animate.css home page. Finally. * Design tweak * Fix Lightspeed demos * Fix Lightspeed demos (cont.) * Trigger animation on change as well as click * Correct jQuery example. Fixes #127 * Remove Readme on gh-pages to prevent mistakes like ee75b81 * Use animate.min.css because whatever * Update demo page with MS animation JS hooks. * Updating home page with rubberBand animation. * Reverse hue animation Red-orange-brown isn’t a great first impression. * Add readme, use cssmin minified CSS instead of csso * Update gh-pages * Remove protocol from urls Fixes Chrome’s SSL issue * Remove Square Cash link Donations are weird, and only US account holders could use this. * Updating Gh-page animate.css to the current version This is a simple commit, bringing animate.css up to date with the current master version. * Updating Gh-page animate.min.css to reflect the current version This is a simply update to the Animate.min.css file, to reflect the current version * Update CSS * Updating Gh-page index.html to the reflect the addition of zooms (in out down etc) This adds the optgroup "zoom", and associated options of: ZoomIn, zoomOut, zoomInDown, zoomInUp, zoomInLeft, zoomInRight, zoomOutLeft, zoomOutRight, zoomOutUp, and zoomOutDown. * refactoring index.html to mimic the current optgroup styling I added zooms, which were absent, but added them in a way that didn't reflect the current optgroup styling and delineation. I fixed that and now exits and entrances are grouped appropriately. * updated index.html to reflect the standard optgroup styling on sliders, added slideInDown In addition to adding slider keyframes that were missing, I placed them into the appropriate optgroups to mimic the similar styling of the other animations. * Merging updated version of animate.min.css As requested, this is the updated version of animate.min.css that @daneden request I include in the pull request. * Updated animate.min.css Made it the new version * added jello to options * Update CSS * Add jackInTheBox to gh-pages (#694) * New Special - jackInTheBox * copy min.css from master branch * fixed the issue of overflow scroll (#740) for more see this issue https://github.com/daneden/animate.css/issues/739 * Adds heartBeat animation demo (#893) * Update animate.min.css to latest version * Updated CSS for current browsers * Updated animate.css * Removed useless test folder * Added warn about prefers-reduced-motion * Adds docs compiler * Adds new base template * Improves the docs compiler * Fixes flipOutY animation * Updates docs template and build * Reorder docs sections * Updates docs animation list template * Updates prettier ignore * Adds syntax highlight to docs * Small fixes to docs content * Updates templates HTML * Styles the demo website * Adds functionality to demo website * Fixes small website demo issue with medium screens * Adds copy animation to demo site * Renames loop classes to repeat * Small adjusts to docs styles * Updates docs template * Updates docs improving copy and adding sections * Reviews the docs copy * Fix some issues with demo-site * Fixes issue with the demo-site playground * Adjusts tooltip on demo-site * Fix layout issues on mobile and update “close” button for animations list Co-authored-by: Daniel Eden <dan.eden@me.com> Co-authored-by: Matt Willis <contact@mrwillis.net> Co-authored-by: Gabrielmtn <Gabrielmtn@gmail.com> Co-authored-by: Indy Prieto <proforced@gmail.com> Co-authored-by: Robert Pemberton <hellorobertp@gmail.com> Co-authored-by: Khaled nuur <kahalidnuur@gmail.com> Co-authored-by: Vladimir Jovanović <vladimir.jovanovic993@gmail.com> * Updates docs folders * Fix some small documentation issues * Updates edit on github link Co-authored-by: Arda Gedik <arnoldsivastanegezer@hotmail.com> Co-authored-by: Arda Gedik <ardagedikk@hotmail.com> Co-authored-by: Jabran Rafique <jabran.rafique@ratedpeople.com> Co-authored-by: Waren Gonzaga <waren.gonzaga.dev@gmail.com> Co-authored-by: Jabran Rafique⚡️ <jabranr@users.noreply.github.com> Co-authored-by: Vaibhav Tandon <vaibhav.tandongcet@gmail.com> Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> Co-authored-by: Melek REBAI <melek.rebai89@gmail.com> Co-authored-by: Christian Oliff <christianoliff@yahoo.com> Co-authored-by: Daniel Eden <dan.eden@me.com> Co-authored-by: Lucas Ferreira Lima <lucasferreiralimax@gmail.com> Co-authored-by: Matt Willis <contact@mrwillis.net> Co-authored-by: Gabrielmtn <Gabrielmtn@gmail.com> Co-authored-by: Indy Prieto <proforced@gmail.com> Co-authored-by: Robert Pemberton <hellorobertp@gmail.com> Co-authored-by: Khaled nuur <kahalidnuur@gmail.com> Co-authored-by: Vladimir Jovanović <vladimir.jovanovic993@gmail.com>
2020-05-07 17:42:33 +02:00
Animations can greatly improve an interface's UX, but it's important to follow some guidelines to not overdo it and deteriorate the user experience on your web-things. Following the following rules should provide a good start.
### Meaningful animations
You should avoid animating an element just for the sake of it. Keep in mind that animations should make an intention clear. Animations like attention seekers (bounce, flash, pulse, etc) should be used to bring the user's attention to something special in your interface and not only as a way to bring "flashiness" to it.
Entrances and exit animations should be used to orientate what is happening in the interface, clearly signaling that it's transitioning into a new state.
It doesn't mean that you should avoid adding playfulness to the interface, just be sure that the animations are not getting in the way of your user and that the page's performance is not affected by an exaggerated use of animations.
### Don't animate large elements
Avoid it as it won't bring much value to the user and will probably only cause confusion. Besides that, there is a good chance that the animations will be junky, culminating in bad UX.
### Don't animate root elements
Animating the `<html/>` or `<body/>` tags is possible, but you should avoid it. There were some reports pointing out that this could trigger some weird browser bugs. Besides, making the whole page bounce would hardly provide good value to your UX. If you indeed need this sort of effect, wrap your page in an element and animate it, like this:
```html
<body>
<main class="animate__animated animate__fadeInLeft">
<!-- Your code -->
</main>
</body>
```
### Infinite animations should be avoided
Even though Animate.css provides utility classes for repeating animations, including an infinite one, you should avoid endless animations. It will just distract your users and might annoy a good slice of them. So, use it wisely!
v4 release (#1050) * New animations added * Update * Update * Update * Update * kill bower * Turn off animations for print media query (#856) * Add a feature to turn off animations for printing as requested. * Add print media type * Update the builds * Moved away from gulp to npx + postcss This PR changes the build system for a simpler one, using only npx as runner and postcss to process all the files. * Solves #618 * Solves #836 * Also solves #758 just for fun ;P * Updated travis and removed animate-config.json * Removed strayed gulpfile and trimmed the header * Moved prefix config to package.json and updated the tasks * Updated travis * Updated dependencies and postcss config * Now using CSS custom properties * Add css module file - solves #933 * Updated README for the new build * Rebulit files * Updated dependencies + added browserlist * Fixed small typo on README * Added imports to Back animations * Added FadeInTopLeft.css file Fade in the animation diagonally * Added fadeInTopRight.css file Fade in the animation diagonally * Added fadeInBottomLeft.css * Added fadeInBottomRight.css * Added fadeOutTopLeft.css * Added fadeOutTopRight.css * Added fadeOutBottomRight.css * Added fadeOutBottomLeft.css * Added imports to diagonal fadings * Aditional formatting * Added diagonal fadings to README * Fixes #966 * Animate.css v4 Updates (#1029) * Update to v4 * Add Iteration-Count CSS utility classes solves #998 * Updated builds * Update lightSpeed animations * Update builds * Fix Invalid CSS Media Query Syntax * Update build * Add gitpod support * Add newline in gitpod file * Update README * Revert * Declare variable * Update builds * Remove Gitpod support Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> * Improves building process and package.json tidy up * Improved animations (#901) * Improved bounce * Improved pulse * Improved bounceInDown * Improved bounceInLeft * Improved bounceInRight * Improved bounceInUp * Improved bounceOutDown * Improved bounceOuLeft * Improved bounceOuRight * Improved bounceOutRight * Improved fadeInDown * Improved fadeInDownBig * Improved fadeInLeft * Improved fadeInLeftBig * Improved fadeInRightBig * Improved fadeInUp * Improved fadeInUpBig * Improved fadeInRight * Reverted fade animations * Compiled * Updated prefers-reduced-motion support on README * Add .delay-1s (#982) The .delay-1s is missing from the readme * HTTPS relevant links on README (#972) prevents HTTP redirects * Create CONTRIBUTING.md (#1033) Co-authored-by: Melek REBAI <melek.rebai89@gmail.com> Co-authored-by: Christian Oliff <christianoliff@yahoo.com> Co-authored-by: Daniel Eden <dan.eden@me.com> * Updates dependencies * Updates prettier config * refactory transform-origin in styles * animation shake with X and Y options :hammer: * Adds shakeX and shakeY to the build * Set 0 Opacity to Out animation classes (#1043) * Update issue templates * Add 0 opacity to out classes * Update builds * Improved implemenation * Update builds * Update current readme * Update builds Co-authored-by: Elton Mesquita <callmeelton@gmail.com> Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> * Removes prefix from att selector * Feature/new demo site (#1046) * Simplify & centralize the Animate.css home page. Finally. * Design tweak * Fix Lightspeed demos * Fix Lightspeed demos (cont.) * Trigger animation on change as well as click * Correct jQuery example. Fixes #127 * Remove Readme on gh-pages to prevent mistakes like ee75b81 * Use animate.min.css because whatever * Update demo page with MS animation JS hooks. * Updating home page with rubberBand animation. * Reverse hue animation Red-orange-brown isn’t a great first impression. * Add readme, use cssmin minified CSS instead of csso * Update gh-pages * Remove protocol from urls Fixes Chrome’s SSL issue * Remove Square Cash link Donations are weird, and only US account holders could use this. * Updating Gh-page animate.css to the current version This is a simple commit, bringing animate.css up to date with the current master version. * Updating Gh-page animate.min.css to reflect the current version This is a simply update to the Animate.min.css file, to reflect the current version * Update CSS * Updating Gh-page index.html to the reflect the addition of zooms (in out down etc) This adds the optgroup "zoom", and associated options of: ZoomIn, zoomOut, zoomInDown, zoomInUp, zoomInLeft, zoomInRight, zoomOutLeft, zoomOutRight, zoomOutUp, and zoomOutDown. * refactoring index.html to mimic the current optgroup styling I added zooms, which were absent, but added them in a way that didn't reflect the current optgroup styling and delineation. I fixed that and now exits and entrances are grouped appropriately. * updated index.html to reflect the standard optgroup styling on sliders, added slideInDown In addition to adding slider keyframes that were missing, I placed them into the appropriate optgroups to mimic the similar styling of the other animations. * Merging updated version of animate.min.css As requested, this is the updated version of animate.min.css that @daneden request I include in the pull request. * Updated animate.min.css Made it the new version * added jello to options * Update CSS * Add jackInTheBox to gh-pages (#694) * New Special - jackInTheBox * copy min.css from master branch * fixed the issue of overflow scroll (#740) for more see this issue https://github.com/daneden/animate.css/issues/739 * Adds heartBeat animation demo (#893) * Update animate.min.css to latest version * Updated CSS for current browsers * Updated animate.css * Removed useless test folder * Added warn about prefers-reduced-motion * Adds docs compiler * Adds new base template * Improves the docs compiler * Fixes flipOutY animation * Updates docs template and build * Reorder docs sections * Updates docs animation list template * Updates prettier ignore * Adds syntax highlight to docs * Small fixes to docs content * Updates templates HTML * Styles the demo website * Adds functionality to demo website * Fixes small website demo issue with medium screens * Adds copy animation to demo site * Renames loop classes to repeat * Small adjusts to docs styles * Updates docs template * Updates docs improving copy and adding sections * Reviews the docs copy * Fix some issues with demo-site * Fixes issue with the demo-site playground * Adjusts tooltip on demo-site * Fix layout issues on mobile and update “close” button for animations list Co-authored-by: Daniel Eden <dan.eden@me.com> Co-authored-by: Matt Willis <contact@mrwillis.net> Co-authored-by: Gabrielmtn <Gabrielmtn@gmail.com> Co-authored-by: Indy Prieto <proforced@gmail.com> Co-authored-by: Robert Pemberton <hellorobertp@gmail.com> Co-authored-by: Khaled nuur <kahalidnuur@gmail.com> Co-authored-by: Vladimir Jovanović <vladimir.jovanovic993@gmail.com> * Updates docs folders * Fix some small documentation issues * Updates edit on github link Co-authored-by: Arda Gedik <arnoldsivastanegezer@hotmail.com> Co-authored-by: Arda Gedik <ardagedikk@hotmail.com> Co-authored-by: Jabran Rafique <jabran.rafique@ratedpeople.com> Co-authored-by: Waren Gonzaga <waren.gonzaga.dev@gmail.com> Co-authored-by: Jabran Rafique⚡️ <jabranr@users.noreply.github.com> Co-authored-by: Vaibhav Tandon <vaibhav.tandongcet@gmail.com> Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> Co-authored-by: Melek REBAI <melek.rebai89@gmail.com> Co-authored-by: Christian Oliff <christianoliff@yahoo.com> Co-authored-by: Daniel Eden <dan.eden@me.com> Co-authored-by: Lucas Ferreira Lima <lucasferreiralimax@gmail.com> Co-authored-by: Matt Willis <contact@mrwillis.net> Co-authored-by: Gabrielmtn <Gabrielmtn@gmail.com> Co-authored-by: Indy Prieto <proforced@gmail.com> Co-authored-by: Robert Pemberton <hellorobertp@gmail.com> Co-authored-by: Khaled nuur <kahalidnuur@gmail.com> Co-authored-by: Vladimir Jovanović <vladimir.jovanovic993@gmail.com>
2020-05-07 17:42:33 +02:00
### Mind the initial and final state of your elements
All the Animate.css animations include a CSS property called `animation-fill-mode`, which controls the states of an element before and after animation. You can read more about it [here](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode). Animate.css defaults to `animation-fill-mode: both`, but you can change it to suit your needs.
v4 release (#1050) * New animations added * Update * Update * Update * Update * kill bower * Turn off animations for print media query (#856) * Add a feature to turn off animations for printing as requested. * Add print media type * Update the builds * Moved away from gulp to npx + postcss This PR changes the build system for a simpler one, using only npx as runner and postcss to process all the files. * Solves #618 * Solves #836 * Also solves #758 just for fun ;P * Updated travis and removed animate-config.json * Removed strayed gulpfile and trimmed the header * Moved prefix config to package.json and updated the tasks * Updated travis * Updated dependencies and postcss config * Now using CSS custom properties * Add css module file - solves #933 * Updated README for the new build * Rebulit files * Updated dependencies + added browserlist * Fixed small typo on README * Added imports to Back animations * Added FadeInTopLeft.css file Fade in the animation diagonally * Added fadeInTopRight.css file Fade in the animation diagonally * Added fadeInBottomLeft.css * Added fadeInBottomRight.css * Added fadeOutTopLeft.css * Added fadeOutTopRight.css * Added fadeOutBottomRight.css * Added fadeOutBottomLeft.css * Added imports to diagonal fadings * Aditional formatting * Added diagonal fadings to README * Fixes #966 * Animate.css v4 Updates (#1029) * Update to v4 * Add Iteration-Count CSS utility classes solves #998 * Updated builds * Update lightSpeed animations * Update builds * Fix Invalid CSS Media Query Syntax * Update build * Add gitpod support * Add newline in gitpod file * Update README * Revert * Declare variable * Update builds * Remove Gitpod support Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> * Improves building process and package.json tidy up * Improved animations (#901) * Improved bounce * Improved pulse * Improved bounceInDown * Improved bounceInLeft * Improved bounceInRight * Improved bounceInUp * Improved bounceOutDown * Improved bounceOuLeft * Improved bounceOuRight * Improved bounceOutRight * Improved fadeInDown * Improved fadeInDownBig * Improved fadeInLeft * Improved fadeInLeftBig * Improved fadeInRightBig * Improved fadeInUp * Improved fadeInUpBig * Improved fadeInRight * Reverted fade animations * Compiled * Updated prefers-reduced-motion support on README * Add .delay-1s (#982) The .delay-1s is missing from the readme * HTTPS relevant links on README (#972) prevents HTTP redirects * Create CONTRIBUTING.md (#1033) Co-authored-by: Melek REBAI <melek.rebai89@gmail.com> Co-authored-by: Christian Oliff <christianoliff@yahoo.com> Co-authored-by: Daniel Eden <dan.eden@me.com> * Updates dependencies * Updates prettier config * refactory transform-origin in styles * animation shake with X and Y options :hammer: * Adds shakeX and shakeY to the build * Set 0 Opacity to Out animation classes (#1043) * Update issue templates * Add 0 opacity to out classes * Update builds * Improved implemenation * Update builds * Update current readme * Update builds Co-authored-by: Elton Mesquita <callmeelton@gmail.com> Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> * Removes prefix from att selector * Feature/new demo site (#1046) * Simplify & centralize the Animate.css home page. Finally. * Design tweak * Fix Lightspeed demos * Fix Lightspeed demos (cont.) * Trigger animation on change as well as click * Correct jQuery example. Fixes #127 * Remove Readme on gh-pages to prevent mistakes like ee75b81 * Use animate.min.css because whatever * Update demo page with MS animation JS hooks. * Updating home page with rubberBand animation. * Reverse hue animation Red-orange-brown isn’t a great first impression. * Add readme, use cssmin minified CSS instead of csso * Update gh-pages * Remove protocol from urls Fixes Chrome’s SSL issue * Remove Square Cash link Donations are weird, and only US account holders could use this. * Updating Gh-page animate.css to the current version This is a simple commit, bringing animate.css up to date with the current master version. * Updating Gh-page animate.min.css to reflect the current version This is a simply update to the Animate.min.css file, to reflect the current version * Update CSS * Updating Gh-page index.html to the reflect the addition of zooms (in out down etc) This adds the optgroup "zoom", and associated options of: ZoomIn, zoomOut, zoomInDown, zoomInUp, zoomInLeft, zoomInRight, zoomOutLeft, zoomOutRight, zoomOutUp, and zoomOutDown. * refactoring index.html to mimic the current optgroup styling I added zooms, which were absent, but added them in a way that didn't reflect the current optgroup styling and delineation. I fixed that and now exits and entrances are grouped appropriately. * updated index.html to reflect the standard optgroup styling on sliders, added slideInDown In addition to adding slider keyframes that were missing, I placed them into the appropriate optgroups to mimic the similar styling of the other animations. * Merging updated version of animate.min.css As requested, this is the updated version of animate.min.css that @daneden request I include in the pull request. * Updated animate.min.css Made it the new version * added jello to options * Update CSS * Add jackInTheBox to gh-pages (#694) * New Special - jackInTheBox * copy min.css from master branch * fixed the issue of overflow scroll (#740) for more see this issue https://github.com/daneden/animate.css/issues/739 * Adds heartBeat animation demo (#893) * Update animate.min.css to latest version * Updated CSS for current browsers * Updated animate.css * Removed useless test folder * Added warn about prefers-reduced-motion * Adds docs compiler * Adds new base template * Improves the docs compiler * Fixes flipOutY animation * Updates docs template and build * Reorder docs sections * Updates docs animation list template * Updates prettier ignore * Adds syntax highlight to docs * Small fixes to docs content * Updates templates HTML * Styles the demo website * Adds functionality to demo website * Fixes small website demo issue with medium screens * Adds copy animation to demo site * Renames loop classes to repeat * Small adjusts to docs styles * Updates docs template * Updates docs improving copy and adding sections * Reviews the docs copy * Fix some issues with demo-site * Fixes issue with the demo-site playground * Adjusts tooltip on demo-site * Fix layout issues on mobile and update “close” button for animations list Co-authored-by: Daniel Eden <dan.eden@me.com> Co-authored-by: Matt Willis <contact@mrwillis.net> Co-authored-by: Gabrielmtn <Gabrielmtn@gmail.com> Co-authored-by: Indy Prieto <proforced@gmail.com> Co-authored-by: Robert Pemberton <hellorobertp@gmail.com> Co-authored-by: Khaled nuur <kahalidnuur@gmail.com> Co-authored-by: Vladimir Jovanović <vladimir.jovanovic993@gmail.com> * Updates docs folders * Fix some small documentation issues * Updates edit on github link Co-authored-by: Arda Gedik <arnoldsivastanegezer@hotmail.com> Co-authored-by: Arda Gedik <ardagedikk@hotmail.com> Co-authored-by: Jabran Rafique <jabran.rafique@ratedpeople.com> Co-authored-by: Waren Gonzaga <waren.gonzaga.dev@gmail.com> Co-authored-by: Jabran Rafique⚡️ <jabranr@users.noreply.github.com> Co-authored-by: Vaibhav Tandon <vaibhav.tandongcet@gmail.com> Co-authored-by: Waren Gonzaga <warengonzaga.dev@gmail.com> Co-authored-by: Melek REBAI <melek.rebai89@gmail.com> Co-authored-by: Christian Oliff <christianoliff@yahoo.com> Co-authored-by: Daniel Eden <dan.eden@me.com> Co-authored-by: Lucas Ferreira Lima <lucasferreiralimax@gmail.com> Co-authored-by: Matt Willis <contact@mrwillis.net> Co-authored-by: Gabrielmtn <Gabrielmtn@gmail.com> Co-authored-by: Indy Prieto <proforced@gmail.com> Co-authored-by: Robert Pemberton <hellorobertp@gmail.com> Co-authored-by: Khaled nuur <kahalidnuur@gmail.com> Co-authored-by: Vladimir Jovanović <vladimir.jovanovic993@gmail.com>
2020-05-07 17:42:33 +02:00
### Don't disable the `prefers-reduced-motion` media query
Since version 3.7.0 Animate.css supports the `prefers-reduced-motion` media query which disables animations based on the OS system's preference on supporting browsers (most current browsers support it). This is a **critical accessibility feature** and should never be disabled! This is built into browsers to help people with vestibular and seizure disorders. You can read more about it [here](https://css-tricks.com/revisiting-prefers-reduced-motion-the-reduced-motion-media-query/). If your web-thing needs the animations to function, warn users, but don't disable the feature. You can do it easily with CSS only. Here's a simple example:
<p class="codepen" data-height="265" data-theme-id="dark" data-default-tab="css,result" data-user="eltonmesquita" data-slug-hash="oNjGGbw" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="Prefers-reduce-motion media query">
<span>See the Pen <a href="https://codepen.io/eltonmesquita/pen/oNjGGbw">
Prefers-reduce-motion media query</a> by Elton Mesquita (<a href="https://codepen.io/eltonmesquita">@eltonmesquita</a>)
on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
<h2 id="gotchas">Gotchas</h2>
### You can't animate inline elements
Even though some browsers can animate inline elements, this goes against the CSS animation specs and will break on some browsers or eventually cease to work. Always animate block or inline-block level elements (grid and flex containers and children are block-level elements too). You can set an element to `display: inline-block` when animating an inline-level element.
### Overflow
Most of the Animate.css animations will move elements across the screen and might create scrollbars on your web-thing. This is manageable using the `overflow: hidden` property. There's no recipe to when and where to use it, but the basic idea is to use it in the parent holding the animated element. It's up to you to figure out when and how to use it, [this guide](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow) can help you understand it.
### Intervals between repeats
Unfortunately, this isn't possible with pure CSS right now. You have to use Javascript to achieve this result.