Introduction

From the beginning of the Web, when websites were still static and not very interactive, technologies have evolved exponentially, and the care for the user interface has taken on an increasingly important role. In a context where the user is over stimulated by a huge amount of content, creating an interface that is able to capture and keep the user’s attention is essential.

If JavaScript allowed to create dynamic applications with an event-driven paradigm, CSS3, by introducing Media Queries, transitions and animations, allowed the creation of even more dynamic and interactive interfaces. The animations, in particular, object of study since well before the birth of the Web, have spread for their ability to make the interface ”alive”, to help tell a story more effectively and therefore to communicate with the user using a more familiar language.

In recent years, many libraries have been created for managing animations in Web applications, using pure CSS or JavaScript. But, although the creation of animations with the only CSS language can be more performing, JavaScript is extremely more versatile and useful in the management of complex animations.

All libraries have, with their particular nuances, certain characteristics, which define their objective and therefore the proposed solution to a possible existing problem: speed, robustness, simplicity, modularity, weight, specificity, flexibility. However, some of these necessarily determine the shortage of others, and it is therefore important to carefully define the strengths and have a clear objective to achieve. Nevertheless, some properties should always be taken into consideration. According to the Mayers, Hudson and Pausch paper (Past, Present, and Future of User Interface Software Tools), there must be some criteria necessary to determine the goodness of a tool. Good tools:

  • help only where they are needed,
  • maximize its essential functionality while keeping their use simple,
  • make the use intuitive without using automatic techniques which are sometimes unpredictable,
  • guide users to do the right things and discourage the wrong things,
  • must be adaptable to new technological needs.

A very common mistake of the majority of current libraries is the temptation to solve as many problems as possible, creating a monolithic solution whose parts are highly dependent and indistinguishable, and ensuring all the most beautiful features in an unrealistic way. Furthermore, very often there is no solid awareness of the new EcmaScript features and a careful analysis of the library syntax is not carried out.

Based on these considerations, Movigo library offers a very clear and simple solution with the essential tools to create animations in a similar way to CSS but with the advantages of JavaScript.