Animation isn't equally appropriate everywhere

One of the most recurring arguments against the use of Flash for animation was its plug-in nature, which meant that the designer couldn't be sure that his creation will be seen by the user. Another argument was the waste of CPU cycles, which could quickly drain a battery on a mobile device. But what is often forgotten and may not seem apparent at first is that Flash was disliked by many mostly because of the way designers used it. It was used for animation effects in the web site's navigation; for ads that grew over the content; for games in which the mouse cursor had the role of a missile-upgraded battleship; for beautifully animated, sound-rich Christmas cards; for video compression with Sorenson Squeeze. Entire websites were Flash-based, and to some extent still are. There wasn't any question that Flash can do that and much more. Its power made it quite flexible, but also more likely to be misused.

Now we see CSS transitions and CSS animations coming and they are also starting to appear on more and more websites and devices. The good thing with transitions is that thanks to very knowledgeable people, they can be executed on the graphics card thus freeing the CPU for more general-purpose computations. But the fundamental question still remains the same: "Do we really know how to apply animation on the web properly? When is the turning point that marks its usefulness zenith?" Can animation be decorative, like a normal image without being of any particular purpose at all?

Something else that caught my attention was the statement that "animation can be made functional". I do not entirely agree with that, even though I like animation too. If we think of something in motion that should be useful in some way, it will quickly become clear how tedious it can be for the end user to point with his mouse to something he doesn't know how it will behave two seconds later. Animation stands in the way of predictability in web design, which is a very strong argument against its random use. Very often, interface elements become almost unusable at the time their state changes. Correct, timing is important, but also for usability.