Skip to content
This repository has been archived by the owner. It is now read-only.
Automatically animate all inserted and removed DOM elements
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


"It's like auto-tune for web pages"

Automatically animate all inserted and removed DOM elements with good defaults:

  • Slide down/up for elements with display=block & position=static
  • Fade in/out for all others
  • Elements with existing CSS transitions or animations will be left alone
  • Uses velocity.js to assure smooth 60fps animations even in mobile

compare with (that has no autoanimate)

##USAGE Just include this script, and add an animation-duration to your css, e.g.

* { 
    animation-duration: .2s; 


  • Elements shown/hidden using the style's display (e.g. jquery's show, hide and toggle) will not be animated.
  • In javascript UI frameworks (e.g. React) it's recommended that this script is run after first render
  • You can add this as the URL of a bookmark to create a bookmarklet to test it in any web page:
    • javascript:(function(){document.styleSheets[0].insertRule("* {animation-duration: .2s}", 0);document.body.appendChild(document.createElement('script')).src='';})();
  • This overrides HTMLElement prototype methods, so it's a huge hack (only a POC) and there might be several side effects.

####EXCEPTIONS If you don't want some element to automatically animate (e.g. external libraries) just set its animation-duration to 0s, e.g. :

.SomeCustomComponent, .SomeCustomComponent * {animation-duration: 0s; }  
You can’t perform that action at this time.